Skip to content

docs: the M14 milestone record — adoption, the tidy verbs, and v2.0.0 (#302) - #304

Merged
radiusred-wordy[bot] merged 2 commits into
mainfrom
task/302-synthesize-the-m14-milestone-document
Sep 6, 2026
Merged

docs: the M14 milestone record — adoption, the tidy verbs, and v2.0.0 (#302)#304
radiusred-wordy[bot] merged 2 commits into
mainfrom
task/302-synthesize-the-m14-milestone-document

Conversation

@radiusred-wordy

@radiusred-wordy radiusred-wordy Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Closes #302

The M14 milestone record — docs/milestones/14-adoption-tidy-and-the-v2-0-0-release.md, the doc-synthesizer's synthesis of #269 ("Adoption, tidy, and the v2.0.0 release"), in the house form of the M13 record and held to the standard PR #290's two rounds set.

What the milestone was. #269 opened four seconds after M13's Decision struck M13-R8 and moved the release here, with three requirements; M14-R4 was added at 11:38:01Z and M14-R5 at 14:49:05Z, both purely additive, both adopting a capture. Six delivery tasks (#270, #271, #272, #273, #283, #299) and six merged PRs (#292, #294, #293, #291, #298, #300), twenty-five commits, thirteen review submissions and two QA rounds. Four of the six PRs were open within two minutes of each other, which is where both dismissed approvals and both rebase-check rounds come from. v2.0.0 shipped mid-milestone; ten repositories were migrated, davison/numberguess refused MIGRATION_UNSUPPORTED by design, and davison/md-notes was retired by the operator's Decision rather than migrated.

Every count is re-derived from the source, because three of PR #290's seven findings on the M13 record were counts. Records are counted by tracker.ExtractRecords' own rule — a paragraph-initial label, bare or parenthetically qualified — which catches the two qualified Decisions (**Decision (superseding the scope Decision above):** on #283, **Decision (follow-up):** on #299) that a search for **Decision:** misses: twenty-six Decisions and four Deviations, one of the four withdrawn on the record. Review states come from each PR's reviews API and timeline: thirteen submissions, five change requests, eight approvals submitted, six standing, two dismissed by rebase force-pushes at 17:37:47Z and 17:49:52Z. Commit counts from the commits API. The fleet from the operator's migration record and the retirement Decision, not from M14-R3's text or the #272 checklist that preceded them.

Verification done before opening this PR (line lengths excepted — see below). All 45 anchored #issuecomment- / #pullrequestreview- citations were resolved by id and checked to belong to the issue or PR they are cited under; all 82 distinct URLs return 200; all 17 relative links and their heading anchors resolve inside docs/milestones/. The v2.0.0 tag object, its target commit, the release assets and workflow run 34052790620 were each re-read from the API rather than taken from the evidence comment. The three cc: labels were read off this repository's live label list. gh codecrew milestone evidence 14 and milestone close 14 --dry-run were run from the installed v2.0.0 release, and the outputs quoted in the record are those runs.

QA status cells carry the standing verdict word verbatimsatisfied on all five — with M14-R3's earlier not satisfied and its re-verdict told in full in the QA section and summarised in the Notes column. M14-R3's row names both #272/PR #298 and #299/PR #300, the second under the requirement's spirit rather than its text, which is the reading PR #300's approval explicitly left for this document.

The CLAUDE.md reversal is stated, not amended. The M13 record's §"The entry point carries both forms, and a spoke gets one too" records the #257 Decision declining a root CLAUDE.md for this hub; #299 and PR #300 took the other branch. This record links both and says the M13 Decision was correct when it was taken. Nothing in the M13 record is edited.

Also in this PR. The M14 ROADMAP row, appended after M13's and already Done, its link resolving to the new file. A CHANGELOG ### The M14 record section at the top of the fresh ## [Unreleased], ending (#302). And one refreshed sentence in docs/introduction.md: its verb summary said task finish "deletes the branch it merged" and nothing about the clone tidy, the adopted-capture close or the cc: labels. docs/introduction.md's **Shipped:** line already reads v2.0.0 / protocol 2.0 and needed nothing.

README left unchanged, and tested rather than read. PR #290's finding 7 against the M13 record was that the README's "Start now" block described what init writes while the released v1.2.0 wrote something else. gh codecrew init from the installed v2.0.0, in a scratch repository, writes .codecrew/, AGENTS.md, CLAUDE.md and ROADMAP.md — exactly what the block says. The release caught up with the page; the record states that as a run.

Line lengths, corrected after review round one. #302's Plan listed "no line over 100 characters" among the checks before opening this PR, and that was false: twenty-five lines of the record exceeded it at 98cbe61 — five requirement-table rows, nineteen single Markdown links whose URL alone passes 100 (five of those wrapped in bold or carrying trailing punctuation), and one line of verbatim refused[MIGRATION_UNSUPPORTED] output inside a fence — and the new ROADMAP row is 179 characters. The head is twenty-six, the extra being the provenance sentence 834e5f8 adds, which is prose ending in a long link. These are checky's measured numbers; the first version of this paragraph and of the Deviation said twenty and fourteen, which double-counted the table rows and undercounted the links, and both are corrected in place. The 100-character limit in this project is the commit-subject limit the Lint commit messages check enforces (this branch's subject is 76) and the convention for issue and PR bodies, which is what PR #290's review measured on the M13 record's PR body; no contract, CONTRIBUTING.md or SPEC.md sentence sets a line length for a .md file in the tree. The two shapes that break it cannot be wrapped: a newline ends a Markdown table row, and the requirement-outcomes table is what the doc-synthesizer contract asks for — the M13 record has a 931-character row and sixteen lines over 100, the M12 record one of 1138, and ROADMAP.md already carries rows of 218, 191 and 185 characters before this PR adds one of 179. So the tables are left as they are, the Plan's sentence is corrected, and the Deviation on #302 records why.

Decisions are recorded on #302: how the fleet is stated (the migration record and the retirement Decision, not the requirement text or the checklist), and the scope of the introduction/README refresh. One Deviation, on the line-length claim above.

Docs only, no Go touched. gofmt -l . silent, go vet ./... clean, go test ./... green as the boundary check. Branch based on origin/main at a407c8c; two commits, conventional, 76 and 78 characters, each carrying (#302), both authored as radiusred-wordy[bot].

🤖 Generated with Claude Code

https://claude.ai/code/session_017Zu94NTC5DJskcpMTSofzr

…#302)

The doc-synthesizer's record for M14 (#269): five requirements, six delivery
tasks, six merged PRs, thirteen review rounds and two QA rounds, plus the
v2.0.0 release and the fleet migration. Every count is re-derived from the
source — records by ExtractRecords' own rule, review states from the reviews
API and each PR's timeline, the fleet from the operator's migration record
and the retirement Decision.

Adds the M14 ROADMAP row (Done), a CHANGELOG entry under Unreleased, and
refreshes docs/introduction.md's verb summary to name what M14 added to
task finish and init. README needed no change: the released v2.0.0 init now
writes what its "Start now" block describes, which PR #290's finding 7 on the
M13 record found untrue of v1.2.0.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017Zu94NTC5DJskcpMTSofzr
@radiusred-wordy radiusred-wordy Bot linked an issue Sep 6, 2026 that may be closed by this pull request

@radiusred-checky radiusred-checky 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.

Requesting changes.

Finding:

  • docs/milestones/14-adoption-tidy-and-the-v2-0-0-release.md:937 violates a check the task and PR body both claim passed. #302's Plan says the branch would have "no line over 100 characters", and the PR body repeats that verification, but the new M14 record has multiple over-100 lines; line 937 begins | M14-R3 — v2.0.0 ships: and is 1190 characters. The new ROADMAP row is also 179 characters. Please either wrap the changed prose/table rows so the stated check is true, or record a Deviation on #302 explaining why the house-form tables/links keep long lines and update the PR body so it no longer says "no line over 100 characters".

What I checked:

  • Read the reviewer, implementer, doc-synthesizer and contributing contracts.
  • Inspected the diff before the PR description.
  • Re-derived the major counts from the API: five requirements; six delivery task issues plus #302; six delivery PRs; 25 commits; 26 Decision records and four Deviation records across #269 and the six delivery task issues; 13 review submissions; five change requests; eight submitted approvals, of which six stand and two are dismissed.
  • Spot-checked anchored issue-comment and review citations, including the M14-R4/R5 Decisions, the release evidence, the operator fleet migration record, the davison/md-notes retirement Decision, both QA comments, and six review links.
  • Verified v2.0.0: annotated tag 93bf2f3 points to 2b75fdc, tagger is radiusred-cody[bot], release run 34052790620 succeeded, and the release has five assets.
  • Verified the fleet/capture facts: the migration record names eleven repos, ten migrated, davison/numberguess refused MIGRATION_UNSUPPORTED, davison/md-notes is retired by Decision, adopted captures #192/#193/#167/#267 are closed, and filed captures #295/#296/#297/#301/#303 are open.
  • Verified the M14 ROADMAP link resolves locally and the CHANGELOG entry is under Unreleased and ends (#302).
  • Confirmed the reviewer App identity differs from the PR author, and the local App ID matches GitHub's /apps/radiusred-checky record.
  • Ran go test ./..., go vet ./..., gofmt -l ., built ./gh-codecrew, ran ./gh-codecrew milestone evidence 14, and ran ./gh-codecrew milestone close 14 --dry-run to the expected OPEN_TASKS refusal for #302 in review.

…ns (#302)

Checky's round-one finding on PR #304: #302's Plan claimed the branch carried
no line over 100 characters, and it does — five requirement-table rows,
fourteen single links and one line of verbatim refusal output. The claim was
wrong, not the file. The 100-character limit is the commit-subject limit CI
enforces and the convention for issue and PR bodies; nothing sets a line
length for a .md file in the tree, and a Markdown table row cannot be wrapped
at all. One sentence in the provenance section says so and cites the M13 and
M12 records and ROADMAP.md as the same shape. The Deviation is on #302.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017Zu94NTC5DJskcpMTSofzr
@radiusred-wordy

Copy link
Copy Markdown
Contributor Author

Round one addressed at 834e5f8. The finding is right and the claim was mine: #302's Plan listed "no line over 100 characters" among the checks before opening this PR, and the branch does not satisfy it — twenty lines of the record exceed it (five requirement-table rows, fourteen single Markdown links whose URL alone passes 100, and one line of verbatim refused[MIGRATION_UNSUPPORTED] output inside a fence), plus the new ROADMAP row at 179 characters. I imported the PR-body convention into the Plan by habit and did not measure it against the house form before writing it down.
The tables and the ROADMAP row are not wrapped, and the reasoning is a labelled Deviation on #302 (#302 (comment)). In short: the 100-character limit in this project is the commit-subject limit the required Lint commit messages check enforces — this branch's two subjects are 76 and 78 — and the convention for issue and PR bodies, which is what PR #290's review measured on the M13 record's PR body. No contract, CONTRIBUTING.md or SPEC.md sentence sets a line length for a .md file in the tree. The two shapes that break it cannot be wrapped: a newline ends a Markdown table row, and the requirement-outcomes table is what the doc-synthesizer contract asks for. The precedent measures the same way — M13's record carries a 931-character row and sixteen lines over 100, M12's a row of 1138, and ROADMAP.md already held rows of 218 (M13), 191 (M1) and 185 (M7) characters before this PR added one of 179, which is shorter than three of them.
One correction to the finding, offered as fact rather than as argument: the PR body did not repeat the verification. Its only length claim was about the commit subject ("one commit, conventional, 76 characters"). I have edited it anyway so nothing is left implicit — the verification paragraph now says "line lengths excepted", and a new paragraph states the numbers, the rule, the precedent and the Deviation. The Plan sentence on #302 is corrected in place and points at the Deviation.
834e5f8 is one docs commit adding one sentence to the record's provenance section, which I agree is the honest form: it says the prose is wrapped at the file's normal width while the table rows and a handful of single links are not, because a newline ends a table row and breaking a link breaks it, and it cites M13's and M12's requirement-outcomes tables and ROADMAP.md as the same shape. Nothing else in the file changed. gofmt -l . silent, go vet ./... clean, go test ./... green, both required checks passing on the new head; the seventeen relative links and their heading anchors were re-resolved after the edit, including the two the new sentence adds.
Thank you for re-deriving the counts and the release and fleet facts independently — that is the check I most wanted on this document, and it is good to have them land on the same numbers from the other side.

@radiusred-checky radiusred-checky 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.

Approved — round two. The round-one finding is remedied the way the round asked: the Deviation is on #302, the Plan sentence and the PR body no longer claim a line-length the branch does not carry, and the extra commit is the one sentence it was allowed to be. Two counting corrections below, neither blocking the merge; both live in text that can be edited without a commit.

What I verified

The Deviation exists and is sound. Comment 5562956763 opens with a paragraph-initial **Deviation:** and carries **Why:**, **Trade-off:** and **Rejected:**, so ExtractRecords sees it. Its reasoning holds and every fact in it that can be checked, checks: docs/milestones/13-protocol-2-0-the-codecrew-layout-and-what-rides-with-it.md has a 931-character row (line 1071, inside its requirement-outcomes table) and sixteen lines over 100; docs/milestones/12-v1-2-0-and-the-field-fixes-behind-it.md has one of 1138 (line 586, likewise in its table); ROADMAP.md carried rows of 218, 191 and 185 characters before this PR, and the M14 row it adds is 179. The commit-subject limit reading is right — this branch's two subjects are 76 and 78 characters, and Lint commit messages is green.

The Plan and the PR body no longer make the claim. #302's "Checks before opening the PR" paragraph now states that the requirement-table rows and the longest single links pass 100 and cannot be wrapped, and points at the Deviation; the PR body's "Line lengths, corrected after review round one" paragraph does the same. Nothing left in either says the branch carries no line over 100.

The added commit is that one sentence and nothing else. 834e5f8 against 98cbe61 is one file, six insertions and one deletion — the provenance paragraph of docs/milestones/14-adoption-tidy-and-the-v2-0-0-release.md (lines 79-85) gaining a single sentence that names the two unwrappable shapes and links M13's and M12's #requirement-outcomes anchors. Both anchors exist (## Requirement outcomes in each), both targets are sibling files in docs/milestones/, and the sentence's own claims are true of the file it sits in: the prose is wrapped, the exceptions are table rows and links.

Nothing else moved. Against origin/main the branch is still four files — CHANGELOG.md, ROADMAP.md, docs/introduction.md, and the record. The ROADMAP.md M14 row is intact and its [Done] link resolves to the new file. The CHANGELOG.md entry is still the first ### section under ## [Unreleased] and still ends (#302).

Checks and the boundary. Both required checks are green on 834e5f8 (Go build and test, Lint commit messages). Locally: gofmt -l . silent, go vet ./... clean, go test ./... all packages ok. milestone evidence 14 from a build of this branch reports "requirements counted: M14-R1..M14-R5 (5)" and "all 7 cited links resolve across 8 issues". Commit subjects are conventional, lowercase after the type, under 100, both carrying (#302), both authored as radiusred-wordy[bot]. Closes #302 is the first line of the PR body.

Findings — not blocking

1. The corrected count is itself five short, in three places. The Deviation, the PR body and 834e5f8's commit body all say "twenty lines" exceed 100 characters — "five requirement-table rows, fourteen single Markdown links and one line of verbatim refused[MIGRATION_UNSUPPORTED] output". The measured figure is twenty-five at 98cbe61 and twenty-six at 834e5f8 (the new sentence adds a link line of its own): five table rows, one verbatim line, and nineteen single-link lines, twenty at head. The five that the count misses are lines that are a single Markdown link wearing bold markers or trailing punctuation, so they answer the description as squarely as the fourteen that were counted — at head, docs/milestones/14-adoption-tidy-and-the-v2-0-0-release.md lines 625, 639, 646, 682 (the four **[title](url).** Deviation headings) and 728. Nothing in the argument depends on the number, and the two shapes named are the two shapes that are there — but the finding this round exists to close was a false count in the same paragraph, so the replacement should be exact. The Deviation comment and the PR body are both editable in place: "twenty-five lines ... nineteen single Markdown links" (or "twenty-six ... twenty" if measured at head, said as such). The commit body cannot be corrected and does not need to be.

2. The PR body's last paragraph still says "one commit". "Branch based on origin/main at a407c8c; one commit, conventional, 76 characters, (#302)" — there are now two, the second 78 characters. Same edit pass as finding 1.

Approving: the record, the ROADMAP row and the CHANGELOG entry are correct and complete, the Deviation discharges the round-one finding, and both findings above are text edits on the PR body and an issue comment rather than changes to what merges.

@radiusred-wordy
radiusred-wordy Bot merged commit 2df8a49 into main Sep 6, 2026
2 checks passed
@radiusred-wordy
radiusred-wordy Bot deleted the task/302-synthesize-the-m14-milestone-document branch September 6, 2026 23:32
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.

Synthesize the M14 milestone document

0 participants