Repository navigation
feat(uuid-v8): the profile C domain register and its check (ADR-008) - #1246
Merged
Merged
Conversation
Profile C requires a registered domain, but there was no register. The owner chose a single register in standards (2026-10-14). - docs/decisions/ADR-008-profile-c-domains.json: one JCS line of {domain, name, purpose, repos} entries. The first entries come from current code: - echidnabot-proof-obligation; - proof-goal, the cross-tool goal address that echidnabot and proof-burrower compute identically, so one registration covers both; - prove-result; - gv-clade-index, as ruled in D320. - scripts/check-uuid-v8-domains.sh [--registry FILE] [DOMAIN...] validates the register: its bytes, its shape, the domain rule, and strict order so no domain is registered twice. Given domains, it fails on any that are unregistered, so a repository can gate its own domains in CI against a pinned standards checkout. - scripts/tests/check-uuid-v8-domains-test.sh: 23 cases, each a planted defect failing for its own reason, plus the real register passing. Removing the order check, or the JCS comparison, fails the suite. - ADR-008 gains an amendment section that records the answer and the register. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
Contributor
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 26 minutes. View limit details
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. Comment |
Contributor
K9 contract conformancerun https://github.com/hyperpolymath/standards/actions/runs/38540931519 K9 normative contract typecheckK9 contract self-testK9 conformance fixturesK9 corpus conformance (L2) |
|
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.



Summary
ADR-008 profile C requires a registered domain, but no register existed. The owner chose a single register in standards (2026-10-14), over per-repo declarations in each chora deed. This PR adds the register, its check, and the first entries.
Changes
docs/decisions/ADR-008-profile-c-domains.json: one JCS line (D306) of{domain, name, purpose, repos}entries.namesays in words what is hashed afterdomain:.reposlists every repository that mints ids in that domain.scripts/check-uuid-v8-domains.sh [--registry FILE] [DOMAIN...]checks that:jq -cS .(which is JCS for this value shape);{domains, schema}withschemaestate-uuid-v8-domains/1;{domain, name, purpose, repos};:;reposlist is non-empty, sorted, unique, and inowner/repoform;scripts/tests/check-uuid-v8-domains-test.sh(auto-discovered byrun-shell-test-suite.sh): 23 cases. The real register passes, and each planted defect fails for its own reason. Exit 2 is reserved for "could not run".First entries (from current code)
echidnabot-proof-obligation{claim, context, prover, repo}(ProofObligationRecord.id)gv-clade-indexgithub.com/<owner>/<name>(D320 amendment)proof-goalprove-resultProofReceipt.result_id)proof-goalis shared on purpose. echidnabot and proof-burrower compute the goal id identically today, and proof-burrower's ledger documents it as the cross-tool content address. Separate domains would break that identity.berrywiki-import. It is left for berrywiki to register with its own name form; I have not read its code.Verification
bash scripts/tests/check-uuid-v8-domains-test.sh: PASS=23 FAIL=0.falsefails 2 cases (a duplicate, and out-of-order domains).cmpwithfalsefails 2 cases (pretty-printed, and keys out of order).ijson-jcs check(built fromhyperpolymath/ijson-jcs3a9a4ee) reports the register canonical. So doesserde_json_canonicalizer.🤖 Generated with Claude Code
https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
Generated by Claude Code