Repository navigation
skills: the board-tend contract amendment, C1 Delivery closure and the delivery declaration (Refs #5136) - #5168
Merged
Merged
Conversation
…e delivery declaration (Refs #5136) Phase 2 PR 6 of the board reconciler design (section 12 item 6). The lifecycle contract gains a "Board tend automatic writes" section carrying the fsgg:board-tend-contract/v1 marker, which admits the contract-gated rules S1, S3, S3b, S4, S9, S9r, O1, E1, C1, W1d and T1d: - the intended-fields line grammar (as implemented by V2Tend.parseIntendedLine) and S9/S9r's limits; - the S3, S3b and S4 Delivery Status moves on strict linkage; - the bounded Outcome roll-up O1 among Backlog, Ready and In progress (D3), replacing "never climb"; - dispatch rule 3: C1 Delivery closure (programme decision 9 with the #5150 rulings, including the delivery-completes last-merge condition) and the S1 Done backstop (D2); - dispatch rule 5: E1's attended membership add; - the installed-acceptance line: a Delivery owing a release, install or readback declares delivery-continues on its source merges, so C1 never closes it on source alone. status-lifecycle names the bounded automatic Status writes; the board-currency gate design names the S1 backstop, C1 and the tend Status moves in its automatic-writes table and marker grammar. pnext-item step 3 (the routine-PR contract) requires exactly one of fsgg:delivery-continues/v1 and fsgg:delivery-completes/v1 in every routine PR body. pnext-item is a kit item and 0.114.1 is published, so the coherent set moves to 0.114.2 (source preparation; the release is #5136 PR 7) with the CLI release notes. Mirrored into .agents/skills; driver and coordination-kit manifests, repos.lock and the writer-census digests regenerated; skills.CHANGELOG entry. Refs #5136 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Root/fdev: independent review of Fix now, on this PR:
Follow-up: N2 (engine marker read) is filed as #5174. It must land before PR 7. A delta re-review follows. Refs #5136 |
Root's REQUEST_CHANGES on #5168 at feabdc2: - B1: S9 still fills Backlog when the line declares another Status, beside the P-INTENT proposal. - B2: status-lifecycle's In review row and validation line name tend's S3/S3b mapping: a PR whose required validation is unfinished stays draft; pnext-item step 3 keeps a PR draft until its required gates pass. - N1: delivery-completes means nothing in Done when remains after the merge; continues is declared on every merge after which any release, install or readback remains (lifecycle-contract, pnext-item, board-currency gate marker table). - N3: C1 reads the most recent strictly linked merge. N4: O1 only proposes, and writes nothing, for an Outcome with no open child. N5: section headings match ignoring case. - N6: status-lifecycle names the merge gate's post-merge transition and "Item closed -> Done" as existing automatic writers. - N7: strict-item-lifecycle section 6: a strict PR carries no declaration, so C1 never closes after it. - N8: the 0.114.2 release notes name the merge gate's delivery-marker check (#5161). - The BoardV2Application comment points at #5174 for the engine's marker read (comment only). Mirrors, manifests, repos.lock, census digest and changelog regenerated. Refs #5136 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd-contract # Conflicts: # registry/driver-skill-manifest.json # registry/skills.CHANGELOG.md
Contributor
Author
|
Root/fdev: the independent delta re-review APPROVED exact head
Finding triage: the three wording observations (the line-80 scope, pnext's draft rule, the changelog summary) change no rule's effect. They are follow-up #5185, deferred so they don't cost another full CI cycle under the current congestion (#5182). Auto-merge is set, pinned to this head, once required CI is green. Refs #5136 |
Contributor
Author
This was referenced Nov 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #5136
This is phase 2 PR 6 of the board reconciler design (
docs/coordination/2026-10-31-board-reconciler-design.md, §12 item 6): the contract amendment that the contract-gatedboard-v2 tendrules need (S1, S3, S3b, S4, S9, S9r, O1, E1, C1, W1d, T1d). It is a governing skill/policy change. It writes nothing to the board, and it does not wire the engine's marker read (see "Not in this PR").Lifecycle contract (
work-board/references/lifecycle-contract.md, both roots)<!-- fsgg:board-tend-contract/v1 -->, the only occurrence of that marker in the file. It states:V2Tend.parseIntendedLine;fsgg:delivery-completes/v1. Root's manual sweep applies the same conditions until C1 is enabled. The rule also adds the S1 Done backstop (D2).fsgg:delivery-continues/v1on its source merges, so C1 never closes it on source alone. Root closes it under rule 3 once that effect is read back.Status lifecycle (
status-lifecycle.md, both roots)Routine-PR contract
pnext-item/SKILL.md, step 3 (both roots). Every routine PR body carries exactly one offsgg:delivery-continues/v1andfsgg:delivery-completes/v1. A Delivery is closed by Root's acceptance, or by C1 only after a last merge that declares completion.fsgg:delivery-continues/v1. The §2b table, the automatic-writes table and decision 2 name S1 as the Done backstop and add C1 and the tend Status moves. The §2b roll-up sentence names O1.Generated and release files
pnext-itemis a kit item, and 0.114.1 is published (nuget.org newest 0.114.1; tagcoherent-set/v0.114.1at 6eca811). Thekit-published-coherencepr-arm therefore requires a higher version.FsggCoherentSetVersionmoves to 0.114.2. This is source preparation only; the release is [COORD-EFF-02] F# board reconciler: derive, plan and auto-apply safe board fixes; propose the rest #5136 PR 7.PackageReleaseNotescarries a 0.114.2 entry covering coord: the board-v2 tend writer, allowlisted and item-scoped, with C1 close and gate replay behind the enable file (Refs #5136) #5158, coord: migration-apply re-reads only the item of each planning initialization (Refs #5136) #5160, coord: board-v2 tend proposals to #4985 and the merge gate's advisory delivery-marker check (Refs #5136) #5161, coord: ConstructorIdentity admits a later main by its unchanged constructor closure, not commit-id equality (Refs #5113) #5147, coord: enrollment rebind-reader, a designed stage that rebinds the reader identity after a coherent upgrade (Refs #5120) #5152 and this PR.check-coherent-set-version.py, checked against the nuget.org feed and thekit/v*tags by the pr-arm. It has no clock and no ambient environment..agents/skillsis mirrored byte-identical.repos.lockare regenerated bygenerate-driver-manifest --writeandrepos.sh relock.lifecycle-contract.md(both roots) andDirectory.Build.propsare rehashed; no sink kinds changed.skills.CHANGELOG.mdhas a new entry.Local checks (printed results)
tests/skill-quality/run.sh: "all 60 rejection cases passed"skill-union-assert.sh: "29/29 byte-identical";skill-view check: "29 declared skill(s) visible in every one of 2 root(s)";skill-view-parity.sh: "AGREE … over 29 id(s)"generate-driver-manifest --check: current;generate-projections --check: current;repos.sh validate: OK (10 kit items)check-v1-writer-census.py --structural: PASS (73 source identities); census advisory: passescheck-kit-published-coherence.py --pr-arm: ok (0.114.2 > 0.114.1);tests/kit-published-coherence/run.sh: all 273 legs rancheck-coherent-set-version.py: ok (0.114.2);check-engine-release-notes.py: 4990 of 35000 characters; fixtures: engine-release-notes 32 passed, coherent-set-version 13 passed;tests/release-successor-candidate/run.py: 26 tests OKcheck-paths-coherence.py: 120 workflows agree;check-prose-citations.py: ok (674 documents);check-worker-id-attractor.py: ok;check-projection.py: ok (24 coherence ids)Review repairs (Root's REQUEST_CHANGES at
feabdc20, ada7990)B1. When the line declares another Status, it is proposed and S9 still fills Backlog (
V2Tend.fsS9 arm).B2. status-lifecycle's In review row and validation line name tend's mapping:
pnext-item step 3 keeps a PR draft until its required gates pass. No workflow skips draft PRs, so CI still runs on a draft.
N1.
fsgg:delivery-completes/v1means nothing in Done when remains after the merge.fsgg:delivery-continues/v1is declared on every merge after which any release, install or readback remains. This is fixed in lifecycle-contract, pnext-item and the gate design's marker table.N3. C1 reads the most recent strictly linked merge.
N4. O1 only proposes, and writes nothing, for an Outcome with no open child, even with an empty Status. A Backlog fill of an empty Status happens only when every open child is Blocked, matching
V2Tend.evalOutcomeStatus.N5. Section headings are matched ignoring case.
N6. status-lifecycle names the existing automatic writers: the merge gate's post-merge transition and "Item closed → Done".
N7. strict-item-lifecycle §6: a strict PR carries no declaration, so C1 never closes after one.
N8. The 0.114.2 notes name the merge gate's delivery-marker check (coord: board-v2 tend proposals to #4985 and the merge gate's advisory delivery-marker check (Refs #5136) #5161).
N2 is not in this PR; it is board-v2 tend reads the board-tend contract marker, so gated rules can be enabled (before #5136 PR 7) #5174. The
BoardV2Application.fscomment now points at board-v2 tend reads the board-tend contract marker, so gated rules can be enabled (before #5136 PR 7) #5174. This is a comment-only change with no behaviour change.main is merged in (
206dc790, then35113805for process: fdev lane-capacity probe, review-finding triage before merge, push before stop (Refs #5172) #5173 and Add finalizer r5 for the pod profile #5029; the changelog and driver-manifest conflicts are resolved by keeping both entries and regenerating). Mirrors, manifests,repos.lock, the census digest and the changelog are regenerated.Not in this PR
architecture-map: unaffected
🤖 Generated with Claude Code