rfc(0001): v0.3.0 closure rationale + memory provenance (closes #3, #4 refs coven-threads)#3
Conversation
221a6af to
2a5bb98
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2a5bb98 to
15f4701
Compare
|
Adversarial-review fix set applied and coordinator-verified at 15f4701: standard admission path defined + complement closed, §5.6 mandatory under Property-4 provenance claims with new |
NOVA COHERENCE REVIEW — BLOCKING FINDINGS (1)Scope: OpenCoven/familiar-contract PR #3, head 1. Evidence of independent executionConformance suite ( Direct validator runs:
Validator delta inspected: the Compatibility: all 5 positive fixtures and both in-repo examples ( 2. BLOCKING findingsB-1. Provenance chain's second anchor is not falsifiable:
|
B-1 (blocking): provenance-chain anchors are now falsifiable — principal_authorized_write/ward_updated events MUST carry principal_authorization (ward_updated additionally ward_version/ward_hash); attestations resolving to events lacking them are unverified; unresolvable referents MUST be rejected (§5.6). Advisories: A-1 'claiming Property 4 provenance' → 'provides a standard admission path (§1.1)'; A-2 continuity-bearing defined + fail-closed classification default; A-3 attestation ≠ authorization, loop-origin gating; A-4 Gate 4 closure re-check + §9 runtime gap bullet; A-5 equivalent-form allowance scoped to runtime storage; A-6 committed Ward state defined + attestation referent resolution; A-7 §6.3 semver redefinition disclosed in CHANGELOG; A-8 genesis bootstrap note in §4.1; A-9 ward-deep-dive version refs updated. Nits: N-1 audit trail → audit log; N-2 §4.1 self-citation removed; N-3 negative-fixture comment now states deliberate omission; N-4 faq dangling ward-spec path repointed at docs/ward-deep-dive.md; N-5 tagged- release citation qualified until v0.3.0 tag exists. Conformance: 5/5 positive, 10/10 negative, READY. Review: #3 issuecomment-5037409670 (bead threads-uqx.2) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
B-1 (blocking) — RESOLVED§5.6 now closes the permit-on-silence hole at both provenance-chain anchors:
Advisories — all applied
Nits
Evidence
Bead: |
…1 changelog NEW-1: memory_entry_admitted events for loop-originated entries MUST carry the principal_authorization required by §3.4 — closes the audit- falsifiability gap one level above the B-1 anchors. NEW-2: RFC §11 v0.3.0 changelog now discloses the anchor-evidence MUSTs, loop-origin rule, Gate-4 closure re-check, and §6.3 semver redefinition. NEW-3: §1.1 Ward-manifest entry rephrased to avoid lowercase 'requires' reading as a keyword. Conformance: 5/5 positive, 10/10 negative, READY. Re-review verdict: SIGN-OFF RECOMMENDED (fresh-context, session a2cdc3f5); bead threads-uqx.2. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…5.6) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
NOVA RE-REVIEW — SIGN-OFF RECOMMENDEDB-1 (blocking): RESOLVED. Chain verified closed end-to-end: event lacking required fields → attestation unverified (§5.6) → entry MUST NOT be admitted (§3.4) → path rejects unverified continuity claims (§1.1). Both provenance anchors falsifiable; genesis note does not bypass — the genesis All 9 advisories + 6 nits: RESOLVED (independently verified against the tree, not the fix-set comment). Re-review surfaced 3 new findings (1 advisory, 2 nits) — all fixed in fast-follows on this branch:
Evidence (all runs executed by the reviewer, per head): conformance Downstream (coven-threads Phase-5): §5.3 tier/veto table byte-untouched; staged-write remains the only additive agent-lane outcome (Gate-4 closure re-check only blocks); Residual (future work, non-blocking): hash algorithm/entry canonicalization for cross-implementation chain verification remains unspecified (pre-noted in original review as A-6 residual). Ready for Val: approval → merge → tag |
NOVA RE-REVIEW ×2 — CONCURRING SIGN-OFF (PASS)Two re-reviews ran independently (parallel sessions, same claim window). Verdicts agree on every point, so this is a compact corroboration, not a second package:
One nit not in the package above (non-gating, fast-follow): §1.1's standard admission path definition enumerates attestation validation, audit recording, and unverified-claim rejection — but not the §3.4 origin-gating/human-authorization check the path must now also perform. Not a contradiction (the definition cross-references §3.4, and "attestation establishes provenance, not authorization" disambiguates), but appending "and verifies explicit human authorization for loop-originated entries (§3.4)" would make the definition self-contained. Same tier: the §5.6 SHOULD-list's conditional bullets could carry "(MUST — see below)" pointers. Process note: two commits landed mid-review-window; the pin discipline caught it and both were fully read, but future fix-sets should freeze the head once a re-review is requested. Concur with the recommendation: ready for Val — approve → merge at |
|
Merged + tagged. Val approval received 2026-07-21 (in-session, human gate — not simulated); squash-merged at pinned head |
There was a problem hiding this comment.
Pull request overview
Updates RFC-0001 to Draft v0.3.0 with new normative language around (a) Ward-manifest closure (the manifest must protect itself) and (b) continuity-bearing memory provenance via a standard admission path and audit-log evidence, plus aligns repository documentation and the validator output with the new draft version.
Changes:
- Bumps RFC-0001 draft version references across docs and the validator from v0.2.0 → v0.3.0.
- Adds/rewrites RFC-0001 sections defining Ward-manifest closure semantics, memory-entry provenance/admission requirements, and audit-log event vocabulary/fields.
- Adds a new negative conformance fixture where
ward.tomlis omitted from[protected].files.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| validators/validate.js | Updates validator output strings to report v0.3.0 compliance. |
| tests/conformance/negative/10-protected-missing-ward/ward.toml | New negative fixture Ward missing ward.toml in [protected].files. |
| tests/conformance/negative/10-protected-missing-ward/SOUL.md | New negative fixture SOUL content for the case directory. |
| tests/conformance/negative/10-protected-missing-ward/MEMORY.md | New negative fixture MEMORY stub for the case directory. |
| tests/conformance/negative/10-protected-missing-ward/IDENTITY.md | New negative fixture IDENTITY stub for the case directory. |
| tests/conformance/negative/10-protected-missing-ward/CASE.md | Documents the intended violation and expected validator failure for the new negative case. |
| SPEC.md | Updates “current normative specification” pointer to RFC-0001 v0.3.0. |
| rfcs/RFC-0001-familiar-contract.md | Core RFC update: v0.3.0 version/date bump plus new/rewritten normative text for closure + memory provenance + audit evidence. |
| rfcs/README.md | Updates RFC index and citation guidance to v0.3.0. |
| README.md | Updates the repo’s specification badge/version reference to v0.3.0. |
| docs/ward-deep-dive.md | Updates version references and reframes open questions post v0.3.0 changes. |
| docs/faq.md | Updates FAQ references and conformance-suite negative-case count to ten. |
| CHANGELOG.md | Adds a 0.3.0 release section summarizing the RFC and fixture additions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| if (allViolations.length === 0 && allWarnings.length === 0) { | ||
| console.log(green(bold('✓ PASS')) + ' — All checks passed. This familiar is familiar-contract v0.2.0 compliant (RFC-0001).\n'); | ||
| console.log(green(bold('✓ PASS')) + ' — All checks passed. This familiar is familiar-contract v0.3.0 compliant (RFC-0001).\n'); |
| For academic citation, prefer the tagged release (the `v0.3.0` tag is cut when the corresponding RFC revision merges; until then, cite the latest existing tag): | ||
|
|
||
| ``` | ||
| https://github.com/OpenCoven/familiar-contract/releases/tag/v0.2.0 | ||
| https://github.com/OpenCoven/familiar-contract/releases/tag/v0.3.0 | ||
| ``` |
Resolves 9 conflicted files. Resolution strategy: - RFC-0001: main's side for the landed v0.3.0 fix-set normative text (§1.1 terms, §3.4 provenance/authorization, §4.1 genesis closure, §5.6 anchor-evidence MUSTs, §9 runtime-closure gap, §11 v0.3.0 changelog); branch side for v0.4.0 identity, §6.1 two-command conformance claim, and §6.3 draft-versioning rule; §1.1 keeps both term sets. - validators/validate.js: branch (v0.4.0 TOML+Ajv rewrite supersedes main's string bumps). - CHANGELOG.md, RFC §11: union — v0.4.0 entries atop enriched v0.3.0 entries; added disclosure of the branch's own §1.1/§6.1/§6.3 redefinitions (NEW-2 pattern from PR #3 review). - rfcs/RFC-0001-v0.3.md snapshot refreshed to the merged v0.3.0 text. - Fixture 10-protected-missing-ward: main's comment wording. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
Amends RFC-0001 as a draft-only soundness update for the two accepted coven-threads flags, now versioned as draft v0.3.0 because the patch adds backward-compatible normative requirements.
Reconciliation findings
The coven-threads issue references were stale relative to current RFC-0001:
Exact normative additions / rewrites
Notes
ward.tomlomitted from[protected].files.Review gate
This PR must remain DRAFT. Merge is gated on Nova/Val review.
Closes OpenCoven/coven-threads#3
Closes OpenCoven/coven-threads#4