Repository navigation
Conversation
…the pin file stands (P-22, S-24) All 14 entries exist upstream at v5.15.2. term:presumed-discharge pins cleanly (status draft; 75 pins, 0 basis-loss in a scratch copy). The 13 decision entries cannot: validate-core-order.py indexes upstream claims and terms only, so a decision pin fires E12, and upstream decisions carry no status for status_at_pin. Nothing committed to graph/ or core/; DDD-dec-112 taken, not filed. Options recorded for Emil (S-24). Basis: DDD-dec-111 Refs #46 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NbWSYPXwaETPuPCWwCGmpg
…2 with a derived standing validate-core-order.py reads upstream core/decisions/ at the ref; a decision's standing is superseded when an upstream decision lists it in supersedes: (string or list), else in-force; pinned, the standing is status_at_pin (W5 on change) and the content_hash is over the statement. Four fixture scenarios in ci.py, each failing before the change. Seven pins added at v5.15.2, no ref change: DDD-dec-09, -15, -17, -26, -37, -39 at in-force, term:presumed-discharge at draft. graph/unresolved-basis.yaml emptied. 81 pins, 0 basis-loss, 0 content-drift; 0 unresolved in both validators; canon check --compare agrees on every case. The pin rule has no canon counterpart yet (no canon pins), recorded in the ledger. Basis: DDD-dec-112; DDD-dec-111; DDD-dec-84 Refs #46 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NbWSYPXwaETPuPCWwCGmpg
Hafeok
marked this pull request as ready for review
November 3, 2026 11:37
Collaborator
Author
|
approve 05a05fc |
main carries the agent-review round (DDD-dec-109, DDD-dec-110; PR #51), which landed before S-21 as ruled (S-23). Refs #46 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NbWSYPXwaETPuPCWwCGmpg
Collaborator
Author
|
(Edited by Claude: this comment first quoted the approval phrase verbatim. It was posted through Emil's account, so Generated by Claude Code |
Collaborator
Author
|
approve a07629d |
One editorial commit (the product-cli definition), after Emil's approval of a07629d; landing is by fast-forward only, so the head follows main. Refs #46 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NbWSYPXwaETPuPCWwCGmpg
This branch was successfully deployed
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.
Session
2026-11-02-canon-cli, issue #46, S-21 and S-24. S-20 landed as #55 (1554509). Ratification is Emil's landing by fast-forward after CI is green.What this changes, and why
Emil, Round 5 (S-21): "Pin them at v5.15.2 (Recommended)". Round 6 (S-24): "Derived standing + hash (Recommended)". Both are verbatim in
meta/sessions/2026-11-02-canon-cli/rulings.md.DDD-dec-112(basedOnDDD-dec-111,DDD-dec-84), covering S-21 and S-24.scripts/validate-core-order.py:load_upstream_graphreads upstreamcore/decisions/at the ref.supersededwhen an upstream decision at the ref lists it insupersedes:(string or list), elsein-force. As a pin it isstatus_at_pin, and W5 fires on a change.content_hashis the existing digest, over the statement. E12 and E13 work as for claims.scripts/ci.py,upstream-pins/*): four scenarios against a local upstream with a tag, each failing before the change:graph/upstream.yaml: seven pins atv5.15.2, with no ref change.DDD-dec-09,-15,-17,-26,-37and-39are atin-force, andterm:presumed-dischargeatdraft, each with its hash read from the tag.graph/unresolved-basis.yaml: emptied. It stays, with no entries, becauseDDD-dec-111names it. The rule now has no exceptions.What was measured
DDD-dec-39,mainup to-111, and agent review up to-110. This PR takesDDD-dec-112.validate-core-order.py core/: "81 pins resolved against the pinned ref, 0 basis-loss, 0 content-drift, 1 shadowed id(s)".validate-claims.py --decisionsis valid at 88 decisions with no warning, andcanon checkhas noDEC-BASEDON-UNRESOLVEDfinding of either class.canon check --compare: 49 cases, every case agrees. The live decisions go from 14 / 14 to 0 / 0.scripts/ci.py: all gates pass. canon: 37 tests andchangelog --checkpass.What was found
basedon-unpinned-upstreamnamedDDD-dec-39. This change pins that id, so both implementations stopped refusing it, together. It now namesDDD-dec-12, which is upstream only and unpinned.canon pins, S-19). The new rule therefore has no canon counterpart and no first agreement yet. The ledger records this.What is left
canon pins, including this rule.mainafter this lands.Refs #46on every commitBasis:on every canon commit; no filed decision editedmainmerged last (unchanged at1554509)Generated by Claude Code