Distribution Protocol v0.3 (close open review findings) + repo controls for a hash-pinned spec - #2
Merged
askclaw-vesper merged 7 commits intoSep 7, 2026
Conversation
BlueBirdBack
marked this pull request as ready for review
September 6, 2026 01:06
There was a problem hiding this comment.
Confidence Score: 2/5
Summary
Score reconciled from 3/5 because the review includes a blocking finding.
Docs-only PR: Distribution Protocol v0.3 plus .gitattributes, CI, CONTRIBUTING, PR template. Core hash unchanged, renormalize clean, CI verified locally. One self-contradiction in the v0.3 changelog; several small normative inconsistencies.
Important Files Changed
| File | Overview |
|---|---|
| protocols/distribution.md | v0.3: detached signature, closed summary field set, leak-date validity, corrected matrix |
| .github/workflows/docs.yml | Offline lychee link check and UTF-8/LF/BOM/newline check; verified working |
| .gitattributes | Forces LF for all text; renormalize produces no churn |
| CONTRIBUTING.md | No-case-content rule, revision policy, hash-pinning rationale |
| .github/PULL_REQUEST_TEMPLATE.md | Checklist mirroring CONTRIBUTING |
| PLAN.md | Pinned to v0.3; M1 exit criteria extended |
| README.md | Chinese index updated for v0.3 and CONTRIBUTING link |
… findings Addresses every finding from the review of PR #1 that was left open when v0.2 merged: - Manifest signature is now detached (manifest.yaml.sig) so coverage is well-defined (§3, §5.1); previously the signature was a manifest field said to cover the entire manifest. - Redacted manifest summary field set enumerated with explicit exclusions (§5.1); previously referenced but never published. - Leak-window runs routed to pending_adjudication; validity keyed to the leak date, not the retirement (discovery) date, with a fallback to the last passed leak check (§6). - Verification matrix corrected: external consumers verify all three artifact hashes by value against the signed index, spec_sha256 by possession, and nothing else by possession (§7.1); previously contradicted §4. - spec_sha256 byte definition fixed: UTF-8, LF, no BOM, whole file (§2). - Index described as content-free rather than hash-only; public cutoff_utc disclosure recorded as a limit (§1, §4, §8). - Core miscitations corrected: leak-status rationale -> Purpose + §5.3; selection bias no longer attributed to Core §6 (§1, §8). Normative clarifications -> minor bump per Core's revision policy. Co-authored-by: BlueBirdBack ✨ <BlueBirdBack@users.noreply.github.com>
Distribution Protocol §2 keys comparability to the SHA-256 of the exact Core specification bytes. Without a .gitattributes, a checkout with core.autocrlf=true rewrites line endings and yields a different spec_sha256 from the same commit. Normalize all text to LF so the bytes on disk match the bytes in the repository on every platform. Co-authored-by: BlueBirdBack ✨ <BlueBirdBack@users.noreply.github.com>
Codifies the rules a public-channel spec repository needs and that were previously only implicit: no case content ever (a leak retires the case permanently), the revision policy and what a normative PR must include, and the fact that AMBER-Core-Specification.md is hash-pinned so byte changes are never free. The PR template turns those into a checklist. Co-authored-by: BlueBirdBack ✨ <BlueBirdBack@users.noreply.github.com>
Two deterministic, network-free jobs for a documentation repository: - links: lychee in --offline mode verifies that every relative link and fragment between the Markdown documents resolves. - encoding: every tracked .md file and LICENSE must be valid UTF-8 with LF line endings, no BOM, and a trailing newline — the byte conditions Distribution Protocol §2 places on the hash-pinned Core specification, enforced at the boundary rather than trusted to local git config. Co-authored-by: BlueBirdBack ✨ <BlueBirdBack@users.noreply.github.com>
…ontrols PLAN: status moved to 2026-09, published protocol version pinned to v0.3 with the closed review findings listed; M1 exit criteria extended to the detached manifest signature and the closed redacted-summary field set that v0.3 specifies; index trust-root question cross-referenced to the new §5.1 deferral. README: distribution bullet updated, CONTRIBUTING linked. Co-authored-by: BlueBirdBack ✨ <BlueBirdBack@users.noreply.github.com>
- distribution.md changelog: fix by-value/by-possession self-contradiction (external consumers hold spec bytes -> by possession; bundle/oracle -> by value) - retitle §3 to 'three artifacts, one detached signature' (table has four rows) - §3 manifest: record leak-check result, not only its last run date (grounds §6 fallback) - §4: define index_version as a property of the index, not an entry field - §5.1: cite index_version of the index carrying the case's entry - §7: comparability extended to cutoff_utc; externally asserted run records must be producer-signed (§7.1 consumes signed run records only) - workflows/docs.yml: pin actions/checkout and lychee-action to commit SHAs - CONTRIBUTING: attribute LF to .gitattributes, UTF-8/no-BOM to CI - PLAN: record hash-index/v2026-09 as the live §4 data instance
askclaw-vesper
force-pushed
the
cursor/distribution-v03-review-fixes-and-repo-hygiene-3726
branch
from
September 7, 2026 15:58
8540f55 to
8a34171
Compare
…instance The published index carries a face column and truncated hashes, and omits manifest sha256/spec_sha256/cutoff_utc/state and a producer signature; §4 entries carry exactly the listed fields. Conformance is M5 work.
askclaw-vesper
deleted the
cursor/distribution-v03-review-fixes-and-repo-hygiene-3726
branch
September 7, 2026 16:07
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.
What
Two things: the Distribution Protocol moves to v0.3, closing every finding the review of #1 left open when v0.2 merged; and the repository gains the controls a public-channel, hash-pinned spec repo needs (
.gitattributes, CI,CONTRIBUTING.md, PR template).AMBER-Core-Specification.mdis byte-for-byte unchanged (spec_sha256=755af5b7…5755e4).protocols/distribution.md→ v0.3manifest.yaml.sig) over the exact bytes ofmanifest.yaml; manifest carries producer identity + signing-key id. No YAML canonicalization needed. (§3, §5.1)candidate_input_bundle, rubric, allowlist, …). Summary is itself signed. (§5.1)pending_adjudicationper Core §5.8; fallback to last passed leak check. (§6)oracle.packsha256 via index)spec_sha256by possession and both artifact hashes by value against the signed index. (§7.1)cutoff_utc+ state; thecutoff_utcdisclosure is named as an accepted limit. (§1, §4, §8)Also: §2 now defines "exact bytes" (UTF-8, LF, no BOM, whole file,
sha256sum) and §5.1 says where the producer key is published, deferring rotation/witnessing to the index open question. Normative clarifications → minor bump per Core's revision policy. All Core§citations re-checked against the current Core text.Repository controls
.gitattributes— LF/UTF-8 for all text. Without it, acore.autocrlf=truecheckout produces a differentspec_sha256from the same commit.git add --renormalizeshowed zero churn, so existing hashes are unaffected..github/workflows/docs.yml) — two network-free jobs: lychee--offlinerelative-link + fragment check, and an encoding check (UTF-8, LF, no BOM, trailing newline) over tracked.md+LICENSE. Both verified locally, including that the link check fails on a broken link/fragment.CONTRIBUTING.md— the no-case-content rule (a leak retires the case; git history is public), the revision policy and what a normative PR must include, and why byte changes to Core are never free.PLAN.md/README.md— pinned to v0.3, M1 exit criteria extended to the detached signature and the closed summary field set, CONTRIBUTING linked.Deliberately not done
spec_sha256; the two candidate nits — §8 layering not listingdistribution,AMBER.md"planned" — are not worth a hash change).schemas// M1 tooling: Core §8 says schemas inherit the SHRE v0.1 corpus, which is not in this repository, so authoring them here would be guesswork.Checklist
PLAN.md).AMBER-Core-Specification.mdunchanged.§citations checked.