docs(ledger): correct the DL-241 forge toolset count to twelve (RIG-3774) - #1209
Conversation
|
😎 Merged successfully - details. |
|
Compass engineering docs preview: https://compass-forge-rig-3774-dl241.compass-eng-docs.pages.dev Deployed from Changed pages: |
…IG-3774) Review on #1209 caught the miss: forge.ts's own header still said 'ten native tools' and 'TWO SUBSCRIPTION TOOLS SHIP DORMANT ... CodeUnimplemented stubs', contradicting the SUBSCRIBE_RULE rewritten four hundred lines below it in the same file. My post-edit grep searched my own phrasings, so it could not see the original wording. Swept every remaining site: - forge.ts header: twelve tools; the subscription arms described as live. - packages/compass-agent/AGENTS.md: the package contract forge.ts names as authoritative. Ten -> twelve, both transition tools added under writes (approval: "write", verified in forge.ts), and the 'unimplemented until the writer lands' sentence retired. - compassv1.ts barrel comment: ten -> twelve forge arms. - The prescriptive createForgeTools docstring in the design record's T2 block. Left deliberately: one 'ten precise JSON Schemas' in a rejected alternative (a historical argument about a multiplexed tool, not a claim about what shipped), and the gitignored eng-docs ledger copy, which regenerates. Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
Review findings addressed — both mediums fixed, plus the two stale-count lows. Second commit The catch that mattered: my sweep missed the file I was editing
Root cause worth naming: my post-edit verification grepped my own phrasings ( Fixed
Left deliberately, with reasons
On the review's no-over-promise checkConfirmed independently before rewriting Verification
One note on the submit: the gate log showed a |
…774) DL-241 recorded ten tools and enumerated ten; createForgeTools ships twelve. The transition pair (forge_transition_issue_state, forge_transition_pull_request_state) arrived with DL-342 / RIG-3331 and the row was never refreshed. The row's own closing line makes the count load-bearing for future toolset-refresh rows, so a refresh diffing against 'ten' would start from a wrong base. Amended in place per Matt. Also retires the row's ratified subscribe caveat: both arms persist now (EnsureAgentForgeSubscription / DeleteAgentForgeSubscription), so they are no longer CodeUnimplemented stubs. The stale caveat was also shipping to agents at runtime. SUBSCRIBE_RULE told every model the subscribe calls 'return unimplemented' and 'should not be relied on yet', steering agents off a working feature; it now describes what a subscription does. Record tasks T1/T2 are checked, its counts and the ForgeCallRequest arm range (2-11 plus 14-15) corrected. Co-authored-by: Matt Wilkinson <matt@rigel.build>
…IG-3774) Review on #1209 caught the miss: forge.ts's own header still said 'ten native tools' and 'TWO SUBSCRIPTION TOOLS SHIP DORMANT ... CodeUnimplemented stubs', contradicting the SUBSCRIBE_RULE rewritten four hundred lines below it in the same file. My post-edit grep searched my own phrasings, so it could not see the original wording. Swept every remaining site: - forge.ts header: twelve tools; the subscription arms described as live. - packages/compass-agent/AGENTS.md: the package contract forge.ts names as authoritative. Ten -> twelve, both transition tools added under writes (approval: "write", verified in forge.ts), and the 'unimplemented until the writer lands' sentence retired. - compassv1.ts barrel comment: ten -> twelve forge arms. - The prescriptive createForgeTools docstring in the design record's T2 block. Left deliberately: one 'ten precise JSON Schemas' in a rejected alternative (a historical argument about a multiplexed tool, not a claim about what shipped), and the gitignored eng-docs ledger copy, which regenerates. Co-authored-by: Matt Wilkinson <matt@rigel.build>
2c1d259 to
da58e57
Compare
|
Rebased onto
Resolution kept main's trimmed wording and re-applied only the semantic delta on top: ten → twelve, and dormant → live. Taking my side wholesale would have silently reverted RIG-3580's trim of those same comments — the conflict was a genuine two-sided one, not a stale-branch artifact. Main still carries both stale claims in the new shorter text ( One more site the rebase surfacedRe-sweeping post-rebase found a miss the earlier pass had not: the design record's prescriptive spec of the subscribe tool guidance still dictated the old string — "subscriptions are NOT YET WIRED ... should not be relied on yet". That is the spec for the very Left alone, deliberately
Gates at
|
Fixes RIG-3774. In-place amendment per Matt.
The count was wrong in a row that says its count is load-bearing
DL-241recorded ten tools and enumerated ten.createForgeToolsinpackages/compass-agent/src/forge.tsships twelve — the two missing areforge_transition_issue_stateandforge_transition_pull_request_state, which arrived with DL-342 / RIG-3331 (PR #981, my lane) without the row being refreshed.That matters because of DL-241's own closing clause:
A future refresh diffing against "ten" starts from a wrong base.
A stale caveat was shipping to agents at runtime
This is the part worth reviewing closely, because it is a behaviour change, not a doc edit.
SUBSCRIBE_RULEis interpolated into both theforge_subscribeandforge_unsubscribedescriptions, and it read:Both arms persist now:
subscribeForgecallsstore.EnsureAgentForgeSubscriptionand returns a real subscription id,unsubscribeForgecallsstore.DeleteAgentForgeSubscription(both ingo/server/forge.go). So every agent was being told in its tool schema not to rely on a working feature.SUBSCRIBE_RULEnow describes what a subscription actually does.No test pinned the old wording. Three
forge.test.tsassertions contain "subscription writer not yet wired", but that is a server-returned error string the test injects to exercise the in-band error rendering — generic to the error path, unaffected.Also corrected
docs/designs/agent/compass-agent-forge-tools/design.md:Status: Activewith both tasks unchecked despite T1 and T2 being fully built and tested — now checked; ten→twelve throughout, including the § heading the ledger anchor targets; the transition pair added to Decision 2's name list; a landed-since note appended under Decision 3 (the ratified Matt ruling text is preserved, not rewritten).ForgeCallRequestarm range: the record said "arms 2–11"; the oneof is 2–11 plus 14–15 (verified inproto/compass/v1/agent_gateway.proto).Left alone deliberately: one "ten precise JSON Schemas" in a rejected alternative (a historical argument about a multiplexed tool, not a claim about what shipped), and
apps/eng-docs/src/content/docs/designs/DECISIONS.md, which is gitignored build output perapps/eng-docs/.gitignoreand regenerates.Verification
design-ledger-gate:checkOK (329 rows, 137 record headers valid);bun test packages/compass-agent/src/forge.test.ts57 pass / 0 fail; biome clean on the changed file; unionmoon ci31/31 (BASEfe5c401d, HEADb5549c06), 0 failures.