Skip to content

§17 progress reports become a labelled-row block — v1.47 + v1.48 - #27

Merged
UnbreakableMJ merged 2 commits into
feat/agents-md-context-filesfrom
feat/progress-report-row-block
Aug 16, 2026
Merged

§17 progress reports become a labelled-row block — v1.47 + v1.48#27
UnbreakableMJ merged 2 commits into
feat/agents-md-context-filesfrom
feat/progress-report-row-block

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Rewrites §17.1 and §17.2. Requested format change: every tracked track gets its own row, its own 20-cell bar, and its own percentage.

M0:   [████████████░░░░░░░░]  60%
M1:   [████████████░░░░░░░░]  60%
M2:   [████████████░░░░░░░░]  60%
MVP: [ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▱▱▱▱▱▱ ] 70%
TODO: [████████████░░░░░░░░]  60%
PLAN: [████████████░░░░░░░░]  60%
PRD:  [████████████░░░░░░░░]  60%

What changed and why

The old format packed everything into three dense lines, and only the PRD total ever got a bar — the least granular figure got the only visual, while milestones and MVP were bare integers.

  • TODO and PLAN are new tracks. The old format could not report against a plan document or a task list at all, so work driven by either was reported against a PRD that did not exist.
  • Only applicable rows are emitted. Milestone rows match the milestones the plan actually defines; TODO/PLAN/PRD appear only when the task is driven by such an artifact; MVP is always present. Padding with fabricated 0% rows is forbidden — a reader cannot tell a placeholder from a genuine zero.
  • Two cell styles, normatively distinct. MVP keeps / with one space inside each bracket; every other row uses / with tight brackets. MVP is the headline figure and the rows around it are its inputs, so it stays findable in a stack of otherwise identical bars.

Specified beyond the requested sample

Two glyph sets forced the column math to be pinned down:

  • Label-plus-colon left-aligned in a six-character field, five on MVP followed by [ and a space; bars occupy columns 8–27 on both.
  • Percentage right-aligned so its % lands in the same column — two spaces after ] on tight rows, one on MVP. That asymmetry is exactly what the bracket padding buys.
  • One documented collision: at 100% the MVP row cannot both keep a separator and hold the column, so its percentage sits one column right. Stated as a rule rather than left as an accident.
  • Cell count, specified for the first time. The old text said "20-character" and never defined the mapping, so 43% could legitimately render as 8 cells or 9. Now: scaled to twenty cells and rounded, saturating only at exactly 0% and 100% — 99% must not read as complete.

Verification

  • makeinfo --no-split0 errors, 0 warnings
  • .md companion regenerated via the DocBook route
  • A reference renderer was written and all 59 example rows across the eight affected documents validated byte-identical against it, including the 100% exception
  • reuse lint clean (the one flagged file is an untracked local .docx, absent from CI's checkout)

§17.3's cadence is unchanged. §16's §17 checklist bullet rewritten to match.

Stacked

PR 2 of 2 — based on #26 (v1.46), merge after it. The Construct-side sync is a separate PR at the same version; Scrubber's implementation is Spacecraft-Software/Scrubber#1.

🤖 Generated with Claude Code

Rewrite §17.1 and §17.2. Every tracked track now gets its own row, its
own 20-cell bar, and its own percentage, in a fixed order: milestone
rows M0..Mn ascending, then MVP, then TODO, then PLAN, then PRD.

TODO and PLAN are new tracks — the old three-line format had no way to
report against a plan document or a task list, so work driven by either
was reported against a PRD that did not exist.

Only applicable rows are emitted; padding the block with fabricated 0%
rows is forbidden, since a reader cannot tell a placeholder from a
genuine zero.

§17.2 now defines two cell styles. Milestone/TODO/PLAN/PRD rows use
U+2588/U+2591 with tight brackets; the MVP row keeps U+25B0/U+25B1 with
one space inside each bracket. MVP is the headline figure and the rows
around it are its inputs, so it stays findable in a stack of otherwise
identical bars. The bracket padding is what holds the columns aligned —
the MVP label field is one character narrower and each bracket one
character wider, so every bar cell and percentage digit shares a column.

Cell count is specified for the first time: the percentage scaled to
twenty cells and rounded, with twenty filled only at exactly 100% and
zero filled only at exactly 0%. Rounding 99% up to a complete bar
reports work as finished that is not.

§17.3 cadence is unchanged. §16's §17 checklist bullet is rewritten to
match. Regenerated the .md companion.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3d04df7f87

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread The_Steelbore_Standard.texi Outdated
@documentencoding UTF-8
@documentlanguage en
@settitle The Steelbore Standard 1.46
@settitle The Steelbore Standard 1.47

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Sign this commit before landing

This reviewed commit has no gpgsig or SSH-signature header, so when pushed to GitHub it cannot show as Verified. Recreate it with a valid cryptographic signature before landing it; the repository explicitly makes this mandatory for assistant-generated commits as well.

AGENTS.md reference: AGENTS.md:L90-L90

Useful? React with 👍 / 👎.

Comment thread The_Steelbore_Standard.texi Outdated
Comment on lines +3782 to +3784
The percentage is right-aligned so its @code{%} sign lands in the same column on every row — two spaces after the closing bracket on the tight-bracket rows, one on the @code{MVP} row. That difference is exactly what the padded brackets buy.
@item
The separator never drops below one space. At 100% the @code{MVP} row keeps its single space and its percentage therefore sits one column right — the only value at which the two row types do not align, and preferable to a bracket abutting a digit.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Define digit-dependent percentage padding

For a block mixing one- and two-digit percentages, the fixed separators specified here do not right-align the % signs: on a tight row, two spaces put 5% and 60% in different columns. At 100%, the stated fixed gaps instead put both row types in the same column, contradicting the following MVP exception. A renderer therefore cannot satisfy all these normative rules; specify a target percentage column and digit-dependent padding instead.

Useful? React with 👍 / 👎.


@strong{Row order} is fixed: milestone rows @code{M0}…@code{Mn} in ascending order, then @code{MVP}, then @code{TODO}, then @code{PLAN}, then @code{PRD}.

@strong{Only applicable rows are emitted.} The milestone rows match the milestones the plan actually defines — there is no fixed count, and @code{M0}–@code{M4} in the template above is an illustration, not a required set. @code{TODO}, @code{PLAN}, and @code{PRD} each appear only when the task is driven by such an artifact. @code{MVP} is always present. A row is never padded in at 0% to fill out the block: a fabricated track reports progress against nothing and misrepresents the work.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add TODO-driven tasks to the chapter trigger

When a task is driven only by a TODO list, this new rule says to emit a TODO row, but the unchanged chapter introduction at line 3729 requires reporting only for work based on a PRD or project plan. Consequently TODO-only work remains outside §17 and never has to emit the row introduced for that case; include TODO-driven tasks in the chapter’s triggering scope.

Useful? React with 👍 / 👎.

The v1.47 ▰/▱ padded-bracket MVP carve-out is retired before it ever
reaches main: every row now uses █/░ with tight brackets and a
six-character label field. The alignment rules collapse from five
bullets to three, and the misalignment-at-100% edge case disappears —
the percentage's five-character field absorbs a three-digit value.

Construct published the skill at v1.47, so this increments rather than
revising v1.47 in place.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@UnbreakableMJ UnbreakableMJ changed the title §17 progress reports become a labelled-row block — v1.47 §17 progress reports become a labelled-row block — v1.47 + v1.48 Aug 16, 2026
@UnbreakableMJ
UnbreakableMJ merged commit 09e83bd into feat/agents-md-context-files Aug 16, 2026
2 checks passed
UnbreakableMJ added a commit that referenced this pull request Aug 16, 2026
…1.46-v1.48 (#26, #27)

* feat(standard): §5.7 Agent Context Files — v1.46

AGENTS.md becomes the single harness-neutral source of truth for agent
context; CLAUDE.md is reduced to an @AGENTS.md import plus Claude-only
content. Five normative rules: write to AGENTS.md, no duplication, both
files tracked, no secrets (with a review gate before un-ignoring a
previously private file), and generated blocks targeting AGENTS.md only.

This inverts the guidance previously carried only in the
spacecraft-agentic-cli skill, which mandated CLAUDE.md as a strict
superset — a rule that produced duplication by construction.

§16 gains a §5.7 checklist bullet; the Skill Cross-References table gains
a spacecraft-agentic-cli row.

makeinfo --no-split: zero errors, zero warnings.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: adopt the §5.7 AGENTS.md-first context-file layout

CLAUDE.md becomes AGENTS.md (the authoritative, harness-neutral file) and
a new CLAUDE.md carries the @AGENTS.md import plus Claude-only notes.
Both leave .gitignore and become tracked, per the §5.7 rule this repo
just published — the standard governs itself (§8 self-applies).

The Files table row is updated from "Gitignored / local agent guidance"
to two tracked rows.

Reviewed for sensitive content before un-ignoring: no credentials,
hostnames, or personal filesystem paths.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(reuse): cover the now-tracked AGENTS.md and CLAUDE.md

§5.7 makes both files tracked artifacts, so reuse lint began failing on
them. They carry no inline SPDX tags by design — CLAUDE.md's first
non-heading line must be the bare @AGENTS.md import. A REUSE.toml
override is the right instrument, matching how the .texi and .md are
already handled.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(reuse): SPDX headers on the now-tracked AGENTS.md and CLAUDE.md

§5.7 makes both files tracked artifacts, so reuse lint began failing on
them. Inline headers rather than a REUSE.toml override: the .texi/.md
overrides exist because those files contain *example* SPDX tags in §4.3
that must not be parsed as real ones, which is not true here. A leading
HTML comment also costs nothing in context — Claude Code strips
block-level comments before injecting a CLAUDE.md — and the @AGENTS.md
import only needs to be on its own line, not the first one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* §17 progress reports become a labelled-row block — v1.47 + v1.48 (#27)

* feat(standard): §17 progress reports become a labelled-row block — v1.47

Rewrite §17.1 and §17.2. Every tracked track now gets its own row, its
own 20-cell bar, and its own percentage, in a fixed order: milestone
rows M0..Mn ascending, then MVP, then TODO, then PLAN, then PRD.

TODO and PLAN are new tracks — the old three-line format had no way to
report against a plan document or a task list, so work driven by either
was reported against a PRD that did not exist.

Only applicable rows are emitted; padding the block with fabricated 0%
rows is forbidden, since a reader cannot tell a placeholder from a
genuine zero.

§17.2 now defines two cell styles. Milestone/TODO/PLAN/PRD rows use
U+2588/U+2591 with tight brackets; the MVP row keeps U+25B0/U+25B1 with
one space inside each bracket. MVP is the headline figure and the rows
around it are its inputs, so it stays findable in a stack of otherwise
identical bars. The bracket padding is what holds the columns aligned —
the MVP label field is one character narrower and each bracket one
character wider, so every bar cell and percentage digit shares a column.

Cell count is specified for the first time: the percentage scaled to
twenty cells and rounded, with twenty filled only at exactly 100% and
zero filled only at exactly 0%. Rounding 99% up to a complete bar
reports work as finished that is not.

§17.3 cadence is unchanged. §16's §17 checklist bullet is rewritten to
match. Regenerated the .md companion.

* feat(standard): §17.2 MVP row joins the single cell style — v1.48

The v1.47 ▰/▱ padded-bracket MVP carve-out is retired before it ever
reaches main: every row now uses █/░ with tight brackets and a
six-character label field. The alignment rules collapse from five
bullets to three, and the misalignment-at-100% edge case disappears —
the percentage's five-character field absorbs a three-digit value.

Construct published the skill at v1.47, so this increments rather than
revising v1.47 in place.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ deleted the feat/progress-report-row-block branch August 17, 2026 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant