docs: accuracy and consistency pass across spec, SDK READMEs, and companion docs - #55
Merged
Conversation
…panion docs Reconcile all protocol documentation to the same canonical facts and fix drift found in a deep review. No code or protocol behavior changes. SPEC: - Align the section 4 failure-type list with the section 5.9 status set (drop the reserved-only unauthorized; add scope_denied, invalid_scope, delegation_not_authorized). - Correct cross-references: VerifyOptions fast-path to 5.17, the constraint_unknown fail-closed status to 5.9, and a dangling section 3 principle reference. README / SDK READMEs: - Describe the constraints file by its real types (geo, time, speed, amount, rate, resource-path); remove a nonexistent version constraint. - Fix compile-breaking C examples: challenge length argument on ratify_challenge_generate and ratify_proof_bundle_create, and the expires_at argument on ratify_delegation_issue; verified against the public header. - Document the resource-path verification entry point and the advanced and bounds C test suites. - Remove unused imports in the TypeScript, Python, and Rust snippets and make the Python receive example self-contained. Companion docs: - Move resource-bound authority and deeper chains into the shipped section of the roadmap; scope the benchmark latency claim to measured depths; reconcile the test-plan fixture enumeration to 79 and align the single-component tamper section with the shipped fixtures; refresh release ladder, SDK status, resource-profile status, and attribution wording. Signed-off-by: chuks <891251+chuks@users.noreply.github.com>
…d companion docs Continues the documentation reconciliation. Documentation only; no code, wire format, or protocol behavior changes. Gates green (readme-sync, release-sync, link and section-reference validation, full SDK test suite). Interop and CI accuracy: - Replace the overstated N-by-N interop matrix claim in SDKS and RELEASES with the actual hub-and-spoke mechanism (the Go reference generates the byte-equivalence corpus; TypeScript, Python, and Rust assert against it; C is validated through the shared conformance fixtures). - Correct the CI descriptions to the real per-SDK jobs. Counts, names, and dependencies: - CONTRIBUTING: fixture count 59 to 79 across all five SDKs, and name the TypeScript post-quantum dependency. - SDKS: correct the Python package name, the Rust and C crypto libraries, and the current minimum API surface; qualify C target support (std and heap targets, and RTOS only with a std shim; bare-metal points to Rust). - demos: four narrative demo languages (no C narrative demo); fixture count. Receipts and cross-references: - AGENT_TO_AGENT: one hybrid verification per additional cert; receipt envelope, fixtures, and SDK APIs shipped; TransactionReceipt is a native multi-party envelope, not pairwise-only. - TRANSACTION_RECEIPTS: normative version corrected to alpha.6. - SECURITY: repoint the out-of-scope reference to the section that exists. - TypeScript README: correct a canonical-serialization section reference. ROADMAP and SDK READMEs: - Move the released alpha.11 and alpha.12 work out of the planned section. - C README: reconcile the status table, the entropy and RTOS and bare-metal guidance, and the key-generation wording. - Add a consistent alpha.16 API section to every SDK README (available on main, ships in the next release) via the body sources. Signed-off-by: chuks <891251+chuks@users.noreply.github.com>
…nd demo build Addresses defects found in adversarial re-review. Documentation and one test gate only; no protocol or SDK code changes. Confirmed defects: - Rust quickstart and narrative demo destructured generate_agent as a tuple, but it returns a Result; both now use .expect(). The Rust demo is a standalone cargo project outside the SDK workspace, so it was not built by any gate; add its build to test-all so this cannot recur. Verified the demo compiles and runs (valid case accepts, all four attack cases reject). - Resource-path chain algebra was overclaimed as "can only narrow" in the root README, EXPLAINED, ROADMAP, and the unreleased CHANGELOG entry. A child may carry a broader prefix on the same resource and still verify; effective authority can stay the same or narrow but never widen because every upstream constraint still applies. Corrected all four to match SPEC 5.7.3 and the child_broader_accept fixture. - C README mapped excessive chain depth to delegation_not_authorized; actual behavior is identity_status invalid with error_reason beginning chain_too_deep. delegation_not_authorized is for a non-root issuer lacking identity:delegate. Fixed both passages and the status table; added time to the constraint_denied list. - Demo and testing docs claimed five narrative demos; there are four (Go, TypeScript, Python, Rust). C is exercised through the conformance fixtures, not a narrative demo. Corrected the claims and added the C conformance command to the rigorous-validation list. Smaller accuracy fixes: - Fixture descriptions in SDKS and TEST_PLAN no longer say all 79 assert verifier output; each fixture runs through the API for its kind (62 of 79 exercise bundle verification). - C RTOS targets (FreeRTOS, Zephyr, thumbv7em-none-eabihf) marked conditional and unverified: they need a custom std-providing toolchain and are not gated. Nits: C alpha.16 section cites both 5.7.3 and 5.16; C abbreviated snippets labelled; Go pin guidance recommends a commit SHA; TEST_PLAN depth telemetry uses a 4-through-8 bucket. Signed-off-by: chuks <891251+chuks@users.noreply.github.com>
Completes the cross-reference sweep for the accuracy pass. Documentation only. The SPEC referenced ROADMAP by section numbers that ROADMAP does not use (it has named sections, not numbered ones), so four v1.1 type descriptions pointed at nonexistent ROADMAP sections. Repointed each to the ROADMAP section by name: - RevocationPush and SessionToken to "Continuous real-time interactions". - WitnessEntry and TransactionReceipt to "Tamper-evident transaction streams". CHANGELOG: an ambiguous "(5.3.1)" now names its target explicitly (docs/RELEASES.md 5.3.1). Deliberately preserved, because they are correct: - FIPS 204 3.4 and RFC 8032 5.1.5 are external-standard citations. - The CHANGELOG note that a "stale SPEC 4.3 reference" was "corrected to 5.1/5.7" is accurate historical narrative, not a live link. - The CHANGELOG reference to docs/RELEASES.md 4.2 resolves to a real heading. Swept every Markdown file: all section references now resolve to a real current heading (SPEC, or an explicitly named companion document), all Markdown anchors resolve to real heading slugs, and all relative links resolve to real files. Signed-off-by: chuks <891251+chuks@users.noreply.github.com>
…n the gate Narrative-demo maintenance and test-gate coverage; no protocol, SDK, or wire-format behavior changes. - The Go, TypeScript, and Python demos used the deprecated legacy revocation closure (is_revoked / IsRevoked), scheduled for removal in v1.0.0-beta.1; the Python demo printed a DeprecationWarning during the advertised run. All three now use a minimal demo-local RevocationProvider (SPEC 17.1), matching what the Rust demo already does. The revoked output is unchanged. - The Rust demo and the Rust README quickstart ignored the must-use Result from issue_delegation; both now handle it with .expect(). The Rust demo gate in test-all now builds with RUSTFLAGS="-D warnings" so an ignored Result fails the gate rather than warning. - demos/README no longer claims the narrative demos prove byte-for-byte canonical-serialization equivalence (they use independently generated keys and do not compare signable bytes). It now says each demo signs and verifies using its SDK's canonical serialization; byte equivalence is established by the fixture and cross-SDK corpus, as the following paragraph already states. Verified: all four narrative demos (Go, TypeScript, Python, Rust) build and run with matching accept/reject outcomes; the Python demo no longer emits a DeprecationWarning; the Rust demo builds clean under -D warnings. Signed-off-by: chuks <891251+chuks@users.noreply.github.com>
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.
A deep accuracy and consistency review of all protocol documentation, so every doc points to the same canonical facts, plus the narrative-demo and test-gate maintenance that the review surfaced.
Scope: documentation, narrative-demo maintenance, and test-gate coverage; no protocol, SDK, or wire-format behavior changes. Gates green (release-sync, readme-sync, section/link validation, full SDK test suite including the narrative-demo build gate).
Why
The docs are the front door for anyone integrating the protocol. This pass reconciles cross-references, enumerations, and examples that had drifted, and makes the SDK quickstarts copy-paste correct.
SPEC
unauthorizedand addscope_denied,invalid_scope,delegation_not_authorized.constraint_unknownfail-closed status to 5.9, and a dangling section 3 principle reference.README and SDK READMEs
ratify_challenge_generateandratify_proof_bundle_create, and theexpires_atargument onratify_delegation_issue.advancedandboundsC test suites.Companion docs
Verification
check-release-sync.sh: ok (79 fixtures, 54 scopes)gen-sdk-readmes.py --check: readme-sync okmake test-all: ok across Go, TypeScript, Python, Rust, CAdditional accuracy rounds (commits 2 through 5)
Beyond the round-1 items above, later commits on this branch:
make test-all.Nothing is merged; the alpha.16 tag remains held. Version pins stay at alpha.15 (the release process owns the bump).