Skip to content

Carry WORKFLOW.md Section 4 Into workflow-ci-contract as an Include - #1385

Merged
ptr727 merged 4 commits into
developfrom
feature/d-guarantees-include
Sep 6, 2026
Merged

Carry WORKFLOW.md Section 4 Into workflow-ci-contract as an Include#1385
ptr727 merged 4 commits into
developfrom
feature/d-guarantees-include

Conversation

@ptr727

@ptr727 ptr727 commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Class 5 of #1317, the d-guarantees catalog, on the maintainer's call in this session: include WORKFLOW.md section 4 whole, and pointer the skill's GOVERNANCE.md restatements.

What changed

  • The condensed catalog is retired for a generated include. references/d-guarantees.md keeps its path and is now a title, one framing sentence, and one include region filled from WORKFLOW.md > 4. Behavioral Contract: Expected Outcomes, so the skill carries the contract's own text and the condensation that The d-guarantees preamble describes section 4's clause convention over a catalog that uses neither label #1205, Six D4 items in the condensed catalog drop the clause that carries their meaning #1212, d-guarantees.md's D2.1 drops the step half of job/step, and fails the contract's own example #1250, and workflow-ci-contract Skill Restates D1.6's uv.lock Guard and D7.3's Unscoped Boolean Rule #1240 found drifting no longer exists. The include carries all nine D-subsections, byte for byte.
  • Section 4 gains the constraints an included source carries. Its two cross-section references name the document and heading (WORKFLOW.md section 3's "Output Seam by Destination" bullet, WORKFLOW.md section 5B's S9), the D9 heading's "(See Section 2)" becomes a sentence naming what section 2 resolves for D9.1 and D9.2, and the section ends with the one-sentence formula naming its includer that GOVERNANCE.md's three included sections use. The two spec/project-types.json workflowRef anchors that named the D9 heading's old slug name its current one.
  • The eighteen SKILL.md rows against GOVERNANCE.md homes become pointers, each naming the home by document and heading and keeping only the skill's own consequence: "Why This Exists" no longer restates the precedence claim, "Outcomes, not bytes" and "Reached, not carried" point at "Foundational Principles" and "Hub-Hosted Tooling", the nine style bullets become "Style Rules", a pointer at "Workflow YAML Conventions" and WORKFLOW.md section 2, the three spine rows point at "Release Model" and "Workflow YAML Conventions", and "After Any Workflow Edit" points at "Verification Discipline" for the whole-gate rule it used to contradict, dropping the single-linter invocation.
  • The surfaces that cite the skill as an example say which shape it now uses. skill-lifecycle "The Doc-Packaging Pattern" names it under kept authority for WORKFLOW.md outside section 4 and under included content for section 4, and docs/fleet-map.md's G9 resolution and the skill's overlap line say the same.
  • The ledger drops six entries for the retired catalog's sections and the renamed heading, which the engine reports as orphans and leaves to a reader to prune. The ledger's note says it is never written by hand, and the engine has no prune verb, which canonical_review.py Has No Prune Path for a Retired Unit, So the Ledger Note and the Orphan Report Disagree #1387 files.

What did not change

The spine's condensations of section 4 itself are SKILL.md's summary under skill-lifecycle "Split bulk into references/", one read from the whole text, and section 4 rows were not in the inventory. references/test-methodology.md stays true as written. The skill's frontmatter description is untouched. docs/fleet-map.md's checked G9 roadmap row still says "guarantee catalog", declined as a record of the delivery that closed the gap at the time, the way G8's row records its own history, with the G9 detail block the file's maintenance rule names updated.

Verification

  • python3 scripts/build_dist.py --check, python3 scripts/prose_lint.py . --diff origin/develop, python3 scripts/repo_gate.py --check eol, python3 spec/validate.py, python3 scripts/tests/test_build_dist.py, markdownlint and editorconfig-checker through scripts/docker_lint.py: clean. The sentence-length check on the diff flags only the included section 4 text, pre-existing sentences on touched lines, and the one-sentence include formula, every other sentence this change wrote is under the cap.
  • Carried-content pass: nine units read whole at the fable tier, one reviewer per unit per round, recorded in reports/canonical-review.json. Four diff passes recorded per local-strict-review, one after each commit.

Read record, introduced over total per read

Eight units in round 1, then only the units the previous round's fixes changed. Rounds 1 and 2 were the budget. Rounds 4, 5, and 6 were three maintainer grants under the stop rule, each scoped to the items the preceding diff pass named. The diff pass row sits in the column of the round it followed.

Read R1 R2 R3 R4 R5 R6
d-guarantees.md (preamble) 0/0
Why This Exists 0/0
How the Contract Is Read 1/4 1/3 0/3 0/1
Style Rules 3/3 1/2 0/0 0/0
The Core Behavioral Spine 0/2
After Any Workflow Edit 1/1 0/0
WORKFLOW.md section 4 1/7 1/5 0/7 0/6 0/11
The Behavioral Contract (include) 0/8 1/6 0/7 0/3 0/4
skill-lifecycle, The Doc-Packaging Pattern 1/2 0/0
Diff pass 3/3 3/3 1/1 1/1

The round 1 introduced findings: the style heading promised rules its pointer body no longer named, its line-ending sentence claimed "Workflow YAML is LF" from a section that does not say so, "the actionlint wrapper" named a single-linter wrapper the hub-only section never describes, the D9 sentence "keeps the conventions behind these items" was false for D9.4, and "section 4" in a rewritten sentence named no document. Round 2: the pointer's "editing a workflow" missed the composite actions the skill also fires on, the rewritten hook sentence had dropped the "for what is its own" clause that made the hook conditional, and deleting the D9 pointer left D9.2's "the suffix rules" with no antecedent, one root cause the two section 4 reads both raised. Round 2 also raised the absence of a summary under the pointer, declined as a preference against the pointer shape, with the four rules the description names each present in the include.

The grants. The first diff pass found skill-lifecycle still naming this skill as the kept-authority example, docs/fleet-map.md describing the removed shape, and the ledger's never-by-hand note against the prune, and the round 4 read of the packaging section found the closing paragraph in three sentences where that section prescribes one. The second diff pass found the D9 rename had broken two workflowRef anchors, the example narrowed to section 5 where sections 1, 3, and 6 are summarized the same way, and "Reached, not carried" without the job-graph qualifier that lets a repo own its release task. The third found the style pointer naming GOVERNANCE.md alone where the LF rule lives in WORKFLOW.md section 2. Every whole-unit read on unchanged text widened again, section 4 going 7, 5, 7, 6, 11 with nothing introduced after round 2, and its pre-existing findings are #1369 items 23 to 51, the skill's own are #1386, and the packaging section's is #1376 item 4.

Copilot ran one round with full coverage on the first head and raised one thread, a misparse of the D9 sentence, fixed in 2451e2c.

Closes on promotion: #1205, #1212, #1250, #1240

🤖 Generated with Claude Code

Class 5 of #1317. The condensed D-guarantees catalog in the skill's
references/d-guarantees.md is replaced by one include region filled from
WORKFLOW.md section 4, so the skill carries the contract's own text and the
condensation that #1205, #1212, #1250, and #1240 found drifting no longer
exists. Section 4 names its two cross-section references by document and
heading, drops the "See Section 2" from the D9 heading for a sentence naming
what section 2 resolves, and ends with the sentence naming its includer, the
constraints an included source carries.

The eighteen SKILL.md rows the inventory lists against GOVERNANCE.md homes
become pointers naming the home by document and heading, keeping only the
skill's own consequence. The ledger drops the six entries for units the
retired catalog and the renamed heading no longer hold.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 5, 2026 20:07
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: a7b5374c-cb6c-40ca-bdcc-d25c6b0fa1a3


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

A small grammar error in newly added WORKFLOW.md section 4 text is duplicated into the generated include, so it should be fixed before merge.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR updates the workflow-ci-contract skill to carry WORKFLOW.md section 4 as a generated include (instead of a condensed, drift-prone catalog), and rewrites several skill text blocks to point back to the authoritative GOVERNANCE.md sections rather than restating them.

Changes:

  • Replace the condensed D-guarantees catalog with an include region filled from WORKFLOW.md > 4. Behavioral Contract: Expected Outcomes.
  • Update WORKFLOW.md section 4 to be include-friendly (explicit cross-section references, D9 heading tweak, includer note).
  • Convert several workflow-ci-contract SKILL.md rule restatements into pointers to their GOVERNANCE.md homes, and regenerate distributed skill copies + source digests.
File summaries
File Description
WORKFLOW.md Makes section 4 safe to include verbatim (cross-references, D9 heading/notes, includer note).
reports/canonical-review.json Updates canonical review ledger entries/digests for the touched units.
.agents/skills/workflow-ci-contract/SKILL.md Replaces restatements with pointers to GOVERNANCE.md homes; updates framing for the new include model.
.agents/skills/workflow-ci-contract/references/d-guarantees.md Retires the condensed catalog and adds an include region for WORKFLOW.md section 4.
.github/skills/workflow-ci-contract/SKILL.md Regenerated GitHub Copilot skill distribution copy of the updated skill.
.github/skills/workflow-ci-contract/references/d-guarantees.md Regenerated GitHub Copilot distribution copy of the included section 4 contract.
.claude-plugin/fleet-skills/skills/workflow-ci-contract/SKILL.md Regenerated Claude plugin distribution copy of the updated skill.
.claude-plugin/fleet-skills/skills/workflow-ci-contract/references/d-guarantees.md Regenerated Claude plugin distribution copy of the included section 4 contract.
.claude-plugin/fleet-skills/.source-digests/workflow-ci-contract Updates the plugin source digest for the regenerated skill unit.
Review details
  • Files reviewed: 9/9 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread WORKFLOW.md Outdated
The third round the maintainer granted past the two-round budget, for the
three surfaces the diff pass found still describing the retired catalog:
skill-lifecycle's doc-packaging examples name workflow-ci-contract under
both shapes it now uses, section 5 kept and section 4 included, and
docs/fleet-map.md's resolution and overlap lines say the same. The ledger
prune stays, with the engine's missing prune path filed as #1387.

The D9 pointer says "requires" where Copilot read "applies" as needing
"to", so the sentence has one reading.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 5, 2026 21:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The include conversion and accompanying pointer/reference updates are internally consistent, and the regenerated distributions/digests align with the updated .agents/ sources.

Review details
  • Files reviewed: 14/14 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

The fourth round the maintainer granted, for what the second diff pass and
the packaging-section read found. The two spec/project-types.json
workflowRef values that named the D9 heading's old slug name its current
one. skill-lifecycle's kept-authority example says the skill keeps that
shape for WORKFLOW.md outside section 4, since sections 1, 3, and 6 are
summarized the same way section 5 is, and docs/fleet-map.md says the same.
"Reached, not carried" keeps the job-graph qualifier GOVERNANCE.md carries,
so a repo owning its release task is not graded as a defect. Section 4's
closing paragraph is the one-sentence formula the included GOVERNANCE.md
sections use, which is the shape skill-lifecycle prescribes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 5, 2026 22:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The include migration and reference updates are consistent across sources and regenerated distributions, with no broken in-repo references found.

Review details
  • Files reviewed: 15/15 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

The fifth round the maintainer granted, for the one item the third diff
pass found: the Style Rules pointer named GOVERNANCE.md alone, and the
workflow-YAML-is-LF rule the deleted bullet carried lives in WORKFLOW.md
section 2, so the pointer names both homes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 6, 2026 00:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The updated workflow-ci-contract skill text introduces (or preserves) an internally inconsistent sentence about “phase” and “graded as below” that does not match the referenced rollout doc or any criteria in the skill.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

.agents/skills/workflow-ci-contract/SKILL.md:18

  • The last sentence claims the workflow's "phase" and that "its copy is graded as below", but this skill does not define any grading criteria below, and the referenced docs/reusable-workflows.md is organized by "Stage" (not "phase"). This makes the guidance internally inconsistent and points readers at terminology the source doc does not use.
  • Files reviewed: 15/15 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@ptr727

ptr727 commented Sep 6, 2026

Copy link
Copy Markdown
Owner Author

Answering the one suppressed finding from Copilot's review of ffa162c, which opened no thread.

.agents/skills/workflow-ci-contract/SKILL.md:18 The last sentence claims the workflow's "phase" and that "its copy is graded as below", but this skill does not define any grading criteria below, and the referenced docs/reusable-workflows.md is organized by "Stage" (not "phase"). This makes the guidance internally inconsistent and points readers at terminology the source doc does not use.

Real and pre-existing: that sentence is unchanged by this pull request, and the same two defects are filed as #1386 items 3 and 4, the tracker this class opened for the skill's own file, from the whole-unit reads that found them first. Deferred there rather than fixed here, since the fix is a rewrite of the reached-versus-carried grading rule and not a restatement this class removes.

@ptr727
ptr727 merged commit 66d7946 into develop Sep 6, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/d-guarantees-include branch September 6, 2026 00:17
ptr727 added a commit that referenced this pull request Sep 6, 2026
…1388)

Class 6 of #1317, `WORKFLOW.md` section 2 against `GOVERNANCE.md`
"Workflow YAML Conventions", on the maintainer's call in this session:
pointer, not include, since the include generator walks only
`.agents/skills/` and an include into `WORKFLOW.md` would need an engine
change first.

## What changed

- **Section 2 becomes a pointer.** It keeps its heading and number, so
every "section 2" reference and its slug still resolve, and its eleven
condensed bullets, the twelve inventory rows against the home, become
one paragraph naming `GOVERNANCE.md` "Workflow YAML Conventions" and
nothing of its content. The line-endings bullet had no home in that
section, its home being the `comment-and-doc-style` Skill's policy that
`GOVERNANCE.md` "Documentation Style Conventions" routes to under "Line
Endings", so it becomes a pointer at that route rather than a rule moved
into the YAML section. The row that contradicted D7.3, the both-forms
boolean comparison, goes with the bullets, and the conflict it exposed
is now the home's own, on #1367 item 1 and #1369 item 35.
- **The sentences that cited section 2 for a rule name the home.** The
preamble's opening sentence, its audit verb, and its canonical-scope
note, which used to say section 2 restates the conventions so the file
reads on its own, the D9 preamble inside section 4, the D8/D9
walkthrough in 5A, and the operational bullet in section 6. The
generated include in `references/d-guarantees.md` and the three
distributions regenerate from the D9 sentence.
- **The two homes stop claiming to be two.** `GOVERNANCE.md`'s section
no longer says it and `WORKFLOW.md` keep the full rules with itself
winning on overlap, and the skill's "Style Rules" points at the home and
at the line-ending policy's skill instead of at section 2.
- **The cut line-endings bullet's rule is retired, not moved.**
"Workflow YAML is LF (Actions and Dependabot rewrite it that way)" had
its only home in section 2, since the line-endings policy's operational
section requires a CRLF default in both files and never exempts workflow
YAML. A grant moved it into that policy, and the whole-unit reads the
move owed showed its reason false under the configuration the policy
prescribes: with the paired `* text=auto eol=crlf` git stores LF and
checks out CRLF, so a Dependabot commit of LF bytes leaves nothing
mixed, and Actions never writes a workflow file. On the maintainer's
call the rule is deleted rather than carried without its reason, and the
policy file is back at its `develop` text. The fleet's one CRLF config
repo carries such a pin by hand, with the same reason in its comment,
and that is left to the maintainer.
- **The ledger records a whole-unit pass over each of the eleven units
this moves**, per `local-strict-review` "The Carried-Content Pass".

## What did not change

The "Release Model" overlap in the canonical-scope note stays, since it
is a section 3 row set the inventory lists under that home, not this
class. D9's five style guarantees in section 4 stay as written, since
section 4 rows were not in this class and D9 states outcomes a workflow
must meet rather than the conventions' text. `README.md`'s "Conventions"
list is class 13. Two phrases the condensed bullets carried and the home
does not go with them: "Lowercase, hyphen-separated" on the Filename
bullet, which the inventory row already listed as drift the condensation
added to a suffix-only rule, and "Grant least privilege" on the
permissions bullet, which D7.2 states as the one entry point that needs
the scope. The third diff pass raised the first as a rule retired
without a home, and it is declined on the inventory's evidence rather
than promoted into the home, since adding a case rule to `GOVERNANCE.md`
is class 14's decision list. #1369 items 35 and 50 name "section 2" for
a rule that now lives at the home alone, noted on that tracker rather
than edited.

## Verification

- `python3 scripts/build_dist.py --check`, `python3
scripts/prose_lint.py . --diff origin/develop`, `python3
scripts/repo_gate.py --check eol`, `python3 spec/validate.py`, `python3
scripts/tests/test_build_dist.py`, and markdownlint,
editorconfig-checker, and cspell through `scripts/docker_lint.py`:
clean.
- Carried-content pass: eleven units read whole, one reviewer per unit
per round, at the `fable` tier through round 10 and at the `opus` tier
from round 11, when that tier stopped being reachable mid-drive,
recorded in `reports/canonical-review.json`, two of them the
line-endings policy sections no pass had read before, which the final
diff no longer touches. Three diff passes per `local-strict-review`, one
after each commit, the last recorded as the receipt.

## Read record, `introduced` over total per read

Eight units in round 1, then only the units the previous round's fixes
changed. Rounds 1 and 2 were the edit budget, round 3 is the read the
round 2 fix owed, and rounds 4 to 6 are the maintainer's scoped grants
under the stop rule, the first two answering the diff pass before them,
the third and fourth answering what the grants' own reads found, the
fourth a deletion, rounds 7 and 8 are the reads owed by the fix for
Copilot's first round, the second push's two-round budget, and round 9
is the maintainer's fifth grant, un-enumerating the tie-break after the
round 8 read found the three-section form naming no winner for a
conflict with the Skill text a named section routes to, its Release
Model half being #1206's own loop, and round 10 the sixth, dropping the
line-endings clause the Copilot fix had added to the scope note after
the round 9 read found "live in" false for a section that only routes to
a Skill. The diff pass row sits in the column of the round it followed.

| Read | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 |
R13 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
| --- | --- |
| WORKFLOW.md (preamble) | 1/5 | 2/4 | 0/4 | 0/2 | | | 1/2 | 1/1 | 1/1 |
0/1 | 0/1 | | |
| WORKFLOW.md section 2 | 0/0 | 0/0 | | | | | | | | | 1/1 | 0/0 | |
| WORKFLOW.md section 4 | 0/2 | | | | | | | | | | | | |
| WORKFLOW.md section 5 | 0/7 | 0/6 | | | 0/2 | | | | | | | | |
| WORKFLOW.md section 6 | 0/3 | | | | | | | | | | | | |
| GOVERNANCE.md Workflow YAML Conventions | 0/1 | | | 0/2 | | | | | | |
0/3 | | |
| Style Rules | 1/1 | 0/0 | | | | | | | | | | | |
| The Behavioral Contract (include) | 0/5 | | | | | | | | | | | | |
| AGENTS.md Where the Rules Live | | | | 0/3 | | | | | | | | | 0/5 |
| line-endings.md Operational (config) repos | | | | | 2/2 | 1/1 | | | |
| | | |
| line-endings.md Scripts and extensionless executables | | | | | 1/5 |
0/1 | | | | | | | |
| Diff pass | | | 2/2 | 2/2 | | 1/1 | | | | 1/1 | | 0/0 | 0/0 |

The introduced findings, all on the pointer prose. Round 1: the Style
Rules sentence said `GOVERNANCE.md` "Line Endings" keeps the line-ending
policy where that subsection only routes to the `comment-and-doc-style`
Skill, the same shape in section 2 and 5A, fixed as one class, and the
preamble still called the document a mixture that includes code style.
Round 2, both on the preamble sentences round 1 rewrote: "the
`GOVERNANCE.md` section it points at" named one section where section 2
routes to two and 5C needs a third, and "pointed at rather than carried"
was false because D9 carries five style guarantees. Round 3 raised four
pre-existing findings and nothing introduced. The first diff pass then
raised two introduced findings on surfaces no whole-unit read holds: the
`AGENTS.md` "Where the Rules Live" row still said this section and
`WORKFLOW.md` keep the full rules, and the two rewritten scope sentences
had dropped the tie-break saying `GOVERNANCE.md` wins wherever the two
overlap, narrowing the release one to section 3 while sections 3 and 4
still restate that section's bullets and D7.3 contradicts one, an added
qualifier where the original had none. Both fixed in the first granted
round, the tie-break restored unscoped. The second diff pass raised two
more: the cut line-endings bullet, "Workflow YAML is LF", had its only
home in section 2, since the line-endings policy's operational section
requires a CRLF default in both files and never exempts workflow YAML
while the fleet's one CRLF config repo pins its workflows to LF by hand,
and the 5A sentence cited D9.5 for `.gitattributes`, which D9.5 does not
name. The second grant moved the rule into that policy, its "Operational
(config) repos" section stating the pin and its reason and "Scripts and
extensionless executables" no longer saying the LF overrides are for
POSIX-executed scripts only, and dropped the qualifier. The reads of the
two policy sections that grant wrote raised three introduced findings on
the granted sentences: the pin was written as a brace glob
`.gitattributes` cannot expand, the operational sentence read as the
only LF carve-out, and the scripts-section pointer claimed its sibling
holds the POSIX-script exception. The third grant rewrote both
sentences, and the re-read then showed the pin's reason itself false
under the paired attribute, which the fourth grant answered by retiring
the rule and returning the policy to its `develop` text, so the two
policy sections are not in the final diff and the ledger's two entries
for them record passes over text this branch held and no longer does.
The granted round's three reads raised seven pre-existing findings and
nothing introduced, the restored tie-break judged right on its own terms
with the D7.3 conflict it overrules left at the home. One of round 3's
four, that "keep workflows legible" mischaracterizes a section that is
mostly safety rules, sits on a sentence this change re-routed, and it is
classed pre-existing because the claim is #1206's own second item, filed
before this change, the edit having touched only the route.

The pre-existing findings, 54 in all, are filed: #1336 items 2 to 9,
#1367 items 9 to 14, #1369 items 52 to 57, #1370 items 20 to 34, #1371
items 2 to 4, #1389, the tracker this class opens for the line-endings
reference, items 1 to 5, and the preamble's on #1206, the open decision
issue that already holds most of them, which gains the six it did not.
Section 5 widened from 7 to 6 new findings on unchanged text across two
reads, and the preamble from 4 to 2 to 4, the pattern #1385 measured.

This pull request closes no issue. It removes two of #1206's preamble
claims, the "restates them" sentence and the undrawn code-style
boundary, and leaves that decision issue open.

Copilot ran four rounds, one per head, with full coverage on each. Its
first round raised two threads: a missing relative pronoun in two
sentences, fixed in 1a8b243, and the opening sentence not naming the
style home's section, answered in 1a8b243 by keeping the opening at the
document rather than one section, since the round 7 read showed one
named section to be one home where section 2 routes to two, and the
scope note's attempt to name both drew a finding on each of the next two
reads, so it names "Workflow YAML Conventions" alone as it did when
rounds 3, 4, and 6 read it clean. Round 10 then raised that one-section
form as omitting the line-endings home, the mirror of round 7, and it is
classed pre-existing because the same sentence shape and omission stood
on `develop` and #1206 already holds section 2's line endings against
the overlap partition. The two readings are each right about the
sentence and cannot both be satisfied by naming sections, which is the
non-convergence #1385 measured, and the home question is #1206's to
settle. Its second round raised two threads and one suppressed finding,
all wording on sentences this change wrote, fixed in 571e504: the
`GOVERNANCE.md` intro sentence split in two, section 2's "every other
file" reworded, and "workflow style rules" in the opening. Round 11 read
the three units those fixes moved and found one more on this change's
own text, section 2's closing clause reworded earlier from a
parenthetical into a "since" clause, which fixed the property its
"necessary but not sufficient" claim is measured against and made the
claim false, so `develop`'s parenthetical is restored verbatim and round
12 read it clean. Its third round raised no thread and two suppressed
findings, both on unchanged text: the rules-map row reading as a
fragment, fixed in 395024c with the reviewer's own connector, and the
canonical-scope note's "(sections 3 to 6)" mislabel, answered in the
pull request as byte-identical on `develop` and already #1206's item.
Round 13 read the map whole and raised five more, none introduced. Its
fourth round raised no thread and re-raised the "(sections 3 to 6)"
mislabel alone, declined a second time on the maintainer's call, since
the clause is `develop`'s own and #1206 holds both halves of it, the
widened labels and the excluded section 1, where this finding would fix
only the first. The fourth diff pass raised the un-enumerated tie-break
as contradicting "authoritative for sections 3 to 6" two sentences
earlier, the pair that stood on `develop` and that #1206 files as one
paragraph giving two answers, so it is pre-existing too, and the second
diff pass had asked for exactly that unscoped form. The pre-existing
findings count is 44, #1206 gaining a fourth.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Sep 7, 2026
…sh the WORKFLOW.md Reshape (#1397)

Closes #1205.
Closes #1212.
Closes #1240.
Closes #1250.
Closes #1267.
Closes #1268.
Closes #1271.
Closes #1288.
Closes #1305.
Closes #1314.

Sixteen commits, ten issues. Each was driven as its own feature pull
request into `develop`,
reviewed by the PR-hosted reviewers, and merged only with CI green and
every finding disposed of
by one of the five outcomes: fixed, declined on evidence, decided by the
maintainer, deferred
behind a filed issue, or fixed as a class.

## What this promotes

**The one-home include mechanism and its first six classes** (#1317).
`scripts/build_dist.py`
gained include regions filled from a rule's home and checked by
`--check` (#1378), so a Skill
carries a rule's whole text without a copy that can drift. Classes 2 to
6 then converted the
restatements: `agent-conduct`'s three conduct sections (#1382),
`pr-review-conduct`'s five
outcomes into `drive-pr` with every step-ref renamed to a heading
(#1383),
`backlog-burndown`'s two narrowing rows cut to the narrowing with
fourteen restatements
pointered (#1384), `WORKFLOW.md` section 4 into `workflow-ci-contract`
(#1385), and section 2
cut to a pointer at `GOVERNANCE.md` "Workflow YAML Conventions" (#1388).

**The `WORKFLOW.md` reshape** (#1311 step 14's six-pull-request
sequence, now finished). The
verdict clause aligned with section 5's Assessment (#1390), sections 3
and 5 carried into
`workflow-ci-contract` as generated includes (#1392), 5A collapsed to a
procedure and an evidence
rule (#1394), and the preamble decisions settled alongside the reshape
of section 4, section 6 and
the YAML conventions (#1395). Section 4's two longest items shrank to
their outcomes with the
displaced knowledge moved rather than deleted, and section 6 now states
only what each type adds,
carrying no N/A list at all.

**The review loop's stop rule and disposition policy** (#1330),
rewriting disposal by deletion and
committing the condition under which a whole-unit loop ends, which #1267
filed as missing.

**The Merge Gate's bound on an out-of-diff prose finding**, with the
reviewer footing recorded
(#1333), and reviewer bots scoped away from the generated Skill mirrors
(#1329) so a mirror's diff
is never reviewed in place of its source.

**The fleet label set**, declared and applied through `configure.sh`
(#1334).

**The review ledger and skills digest decoupled from the working tree**
(#1328), so concurrent
branches no longer conflict in a generated report that cannot be
hand-merged.

Plus one grouped Dependabot bump, `docker/setup-qemu-action` 4.2.0 to
4.3.0 (#1325).

## What is deliberately not closed

`#1311`, `#1317`, `#1206`, `#1367`, `#1369`, `#1370`, `#1371`, `#1386`
and `#1237` each still
hold findings this work did not settle. #1317 stands at class 6 of
fourteen, and #1311's step 17
comment records what the reshape filed rather than fixed.

## Owed on merge

`spec/files.json` declares both edited `GOVERNANCE.md` sections at
`verbatim` fidelity, so every
downstream copy goes stale on this promotion and a fleet resync follows
it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.

2 participants