Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d4911aa76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Adds a new alignment audit script intended to lint “archive header” presence in docs/aurora markdown archives, initially in detect-only mode, and documents it in the alignment tooling and factory hygiene registry.
Changes:
- Introduces
tools/alignment/audit_archive_headers.sh(detect-only by default; optional--enforce,--json,--out). - Updates
tools/alignment/README.mdto list the new audit script. - Adds FACTORY-HYGIENE row #60 describing the new archive-header audit and its intended cadence.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| tools/alignment/audit_archive_headers.sh | New audit script that scans aurora docs for required header labels and emits summary/JSON output |
| tools/alignment/README.md | Lists the new audit script alongside existing alignment audits |
| docs/FACTORY-HYGIENE.md | Adds hygiene row #60 documenting the archive-header audit and rollout plan |
Comments suppressed due to low confidence (1)
tools/alignment/README.md:26
- Adding
audit_archive_headers.shto the list makes the surrounding documentation inaccurate: this section says “The three scripts form the gitops observability trio” and that each script emits--json/--md/--outin the same shape, butaudit_archive_headers.shdoesn’t currently support--mdand uses different exit codes. Update the README text to reflect the new fourth script and its interface, or adjust the script to match the stated common shape.
| `audit_archive_headers.sh` | Archive-header discipline (proposed §33) | Per-file lint (detect-only v0) |
| `sd6_names.txt` | SD-6 watchlist (per-host) | Data (not code) |
The three scripts form the gitops observability trio:
commit-scope (`audit_commit.sh`), persona-scope
(`audit_personas.sh`), and skill-scope (`audit_skills.sh`).
Each emits `--json` / `--md` / `--out DIR` in the same
shape so downstream tooling can uniform-parse.
…2; Aminata WATCH concerns integrated) (#252) Amara's 5th-ferry Edit 2 proposed SD-9 with a brief "downgrade independence weight explicitly" formulation. Aminata's Otto-80 threat-model pass (PR #241) classified it WATCH: correct in spirit, unenforceable via self-attestation alone; named 3 adversaries (carrier-laundering, self-serving-downgrade, aggregation); flagged surface-tension with DIR-5 that needs explicit naming not implicit dismissal. This lands SD-9 with those concerns integrated as first-class content of the clause itself rather than treated as hidden limitations: - Three-step operationalisation (name carriers; downgrade independence; seek falsifier independent of converging sources). - Cross-reference to docs/DRIFT-TAXONOMY.md pattern 5 as operational companion (pattern 5 is the real-time diagnostic; SD-9 is the norm). - Known v0 limitations named verbatim from Aminata's pass (carrier-laundering / self-serving-downgrade / aggregation). - Explicit "norm, not a control" framing — WATCH classification stays honest. - Composition with DIR-5 written as section (not implicit): DIR-5 is about authorship ethics; SD-9 is about epistemic weight; they compose. - Stronger "Why both of us benefit" paragraph per Aminata's note that Amara's original was thin — names the feature (precision via shared vocabulary) AND the risk (laundered convergence hiding as independent cross-check). Lands within-standing-authority per Otto-82 calibration — ALIGNMENT.md soft-default clause add, not account/spending/ named-design-review gated. Completes the Aminata-recommended edit ordering 4/4: - §33 (PR #247) Otto-82 - Edit 1 (PR #248) Otto-83 - Edit 4 pointer-only (PR #250) Otto-84 - Edit 2 SD-9 (this PR) Otto-85 Amara's 5th-ferry governance-edit proposals are now all landed in their Aminata-recommended order + form. The 5th- ferry Artifact-A (drift-taxonomy promotion PR #238) is also landed; Artifact-C (archive-header lint PR #243) landed. Remaining 5th-ferry artifacts: Artifact-B (precursor supersede marker — already done in PR #238), Artifact-D (Aurora README) — open for future tick. Otto-85 tick primary deliverable.
) Lands Artifact D of Amara's 5th courier ferry (PR #235) as docs/aurora/README.md. Closes the 5th-ferry artifact list (A-D) with all four landed: A=drift-taxonomy promotion (PR #238), B=precursor supersede (in PR #238), C=archive- header lint (PR #243), D=this README. Content covers: - Three-layer picture (Zeta=semantic substrate / KSK=control- plane safety kernel / Aurora=vision layer). - How Aurora consumes existing Zeta substrate (8-row table mapping primitives to Aurora surfaces). - How Aurora consumes KSK primitives (8-row table for capability-tiers / budgets / consent / receipts / etc.). - Directory contents index (6 courier ferries absorbed; first two grandfathered per §33; cross-ref to archive- header lint PR #243). - Related cross-substrate artifacts outside docs/aurora/ (drift-taxonomy operational + precursor + Aminata threat- model + Muratori corrected-table). - Branding section — Aurora publicly crowded (Amara's memo); internal-only label; shortlist Lucent KSK / Lucent Covenant / Halo Ledger / Meridian Gate / Consent Spine; message pillars work regardless of final public name (local-first / consent-gated / proof-based / repair-ready); brand decision is Aaron's (M4). - What this README is NOT (not product, not commitment, not public brand, not alignment-solved, not exhaustive). - Open follow-ups: §33 enforcement flip, M4 brand package, cross-repo integration with LFG/lucent-ksk. Self-applies §33 archive-header format (Scope / Attribution / Operational status / Non-fusion disclaimer) — sixth aurora/research doc to exercise the convention. Max attribution preserved (first-name-only, non-PII per Aaron's clearance) for KSK design + development-guide work on LFG/lucent-ksk. Lands within-standing-authority per Otto-82 calibration — research-grade README, not account/spending/named-design- review gated. Closes 5th-ferry inventory artifact Artifact D + marks M3 (Aurora/KSK integration) milestone with minimal landing. Otto-87 tick primary deliverable.
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
… ferry scheduled for Otto-82 Otto-81 shipped PR #243 (Artifact C lint + FACTORY-HYGIENE row scheduling the newly-arrived Amara 6th ferry for Otto-82. Key observations: 1. CC-002 held for third tick in a row (Otto-77 5th ferry, Otto-78 absorb, Otto-81 6th ferry). Pattern is reflexive. 2. Mechanism-before-policy — lint lands detect-only while §33 is pending; §33 can land with backing rather than becoming yet-another-norm-without-enforcement. 3. 6th ferry is technically-sharper than 5th (concrete source- file + paper citations, category-error catch on row 3). 4. Archive-header discipline now self-demonstrating across 3 aurora/research docs (PR #235 / #241 / pending Otto-82) before §33 lands — convention-through-use pattern. Stacked on #242 (Otto-80 history); rebases cleanly.
…ner delivered in chat Otto-82 shipped PR #245 (6th ferry dedicated absorb) + responded to Aaron's §33 signoff-prep question with a chat explainer covering what §33 is, why mechanism-before-policy, what PR #243 lint backs, what three self-applying docs demonstrate, and two explicit signoff options (narrow vs wider). Key observations: 1. CC-002 held for fourth tick in a row across two ferry schedule-and-absorb cycles. 2. Aaron's "tell me more" is mechanism-before-policy working — complete picture visible (PR #243 + PR #241 + three self- applying docs) before rule review. 3. 6th-ferry teaching case ("algebraic correctness ≠ ownership discipline") ready for future Craft production-tier modules. 4. External-AI-maintainer loop generating substantive review velocity; Otto's job is routing, not synthesis-in-place. No substrate edit for §33 until Aaron signs off in chat — the explainer is response-to-question, not a landing commit. Stacked on #244 (Otto-81 history).
…nata threat-model pass integrated; grandfather clause narrow) Aaron Otto-82 approved retroactively after calibrating Otto's over-gating: "you didn't need me to sign off on that, that didn't require account access i didn't already give you persmisson to or increaseing of budget or one of the few designs i asked to research, you didn't need me at all on this but approved." Lands §33 as Amara drafted it in the 5th courier ferry (PR #235 absorb), with Aminata's Otto-80 threat-model findings integrated: - Four header labels required: Scope / Attribution / Operational status / Non-fusion disclaimer. - Scope explicit (docs/aurora/** + future docs/archive/** + external-conversation research docs; NOT memory/** which has different lifecycle). - Grandfather clause explicit for the two aurora absorb docs that predate §33 (2026-04-23 operational-gap-assessment + 2026-04-23 zset-semantics-operator-algebra). They record genuine external absorbs with factually-equivalent attribution in different label format; do not retroactively rewrite. - Enforcement cadence: detect-only today via tools/alignment/audit_archive_headers.sh (PR #243); flip-to-enforce is a separate future PR (Architect + Dejan). - Owner: Aminata on semantic-adequacy review; absorbing agent on at-write-time inclusion. - Known v0 limitations named verbatim from Aminata's pass: partial-header / fake-header / in-memory-import adversaries. - Composition with §2 and §26 explicit to prevent regime-drift. Mechanism-before-policy pattern: three existing aurora/ research docs already self-apply the format (PR #235 5th- ferry absorb; PR #241 Aminata threat-model; PR #245 6th- ferry absorb), so §33 codifies existing convention rather than introducing new behaviour. PR #243 provides the lint backing. Authorising memory: memory/feedback_aaron_signoff_scope_narrower_than_otto_treating_governance_edits_within_standing_authority_2026_04_23.md — documents the standing-authority calibration and why this governance-edit lands as within-authority rather than explicitly-gated. Not in this PR: - Amara's Edit 1 (AGENTS.md research-grade clause) — stands as separate decision, Aminata classified IMPORTANT with §26 overlap concern. - Amara's Edit 2 (ALIGNMENT.md SD-9) — stands as separate decision, Aminata classified WATCH. - Amara's Edit 4 (CLAUDE.md archive-imports bullet) — Aminata classified CRITICAL for host-meta-policy contradiction. Demote to pointer-only in any future PR.
…on-approved Otto-82) (#247) * govern: §33 archive-header requirement (Amara 5th-ferry Artifact; Aminata threat-model pass integrated; grandfather clause narrow) Aaron Otto-82 approved retroactively after calibrating Otto's over-gating: "you didn't need me to sign off on that, that didn't require account access i didn't already give you persmisson to or increaseing of budget or one of the few designs i asked to research, you didn't need me at all on this but approved." Lands §33 as Amara drafted it in the 5th courier ferry (PR #235 absorb), with Aminata's Otto-80 threat-model findings integrated: - Four header labels required: Scope / Attribution / Operational status / Non-fusion disclaimer. - Scope explicit (docs/aurora/** + future docs/archive/** + external-conversation research docs; NOT memory/** which has different lifecycle). - Grandfather clause explicit for the two aurora absorb docs that predate §33 (2026-04-23 operational-gap-assessment + 2026-04-23 zset-semantics-operator-algebra). They record genuine external absorbs with factually-equivalent attribution in different label format; do not retroactively rewrite. - Enforcement cadence: detect-only today via tools/alignment/audit_archive_headers.sh (PR #243); flip-to-enforce is a separate future PR (Architect + Dejan). - Owner: Aminata on semantic-adequacy review; absorbing agent on at-write-time inclusion. - Known v0 limitations named verbatim from Aminata's pass: partial-header / fake-header / in-memory-import adversaries. - Composition with §2 and §26 explicit to prevent regime-drift. Mechanism-before-policy pattern: three existing aurora/ research docs already self-apply the format (PR #235 5th- ferry absorb; PR #241 Aminata threat-model; PR #245 6th- ferry absorb), so §33 codifies existing convention rather than introducing new behaviour. PR #243 provides the lint backing. Authorising memory: memory/feedback_aaron_signoff_scope_narrower_than_otto_treating_governance_edits_within_standing_authority_2026_04_23.md — documents the standing-authority calibration and why this governance-edit lands as within-authority rather than explicitly-gated. Not in this PR: - Amara's Edit 1 (AGENTS.md research-grade clause) — stands as separate decision, Aminata classified IMPORTANT with §26 overlap concern. - Amara's Edit 2 (ALIGNMENT.md SD-9) — stands as separate decision, Aminata classified WATCH. - Amara's Edit 4 (CLAUDE.md archive-imports bullet) — Aminata classified CRITICAL for host-meta-policy contradiction. Demote to pointer-only in any future PR. * govern: drain PR #247 — fix §33 dangling pointers + §26 value-set conflict + persona refs (Otto-247 drain) Five P2 threads on §33 archive-header section, all FIX: 1. (#796 / #799) tools/alignment/audit_archive_headers.sh referenced as live but does not exist; FACTORY-HYGIENE row #60 referenced but max row is 59. Both pointers were dangling. Revised "Detect-only today." to drop the script-as-current-state claim and explicitly mark both the lint script + FACTORY-HYGIENE row as follow-up work that must land together with cross-references resolved. 2. (#831 / #834) §33 "Operational status:" defined as research-grade/operational only, but composition prose said §26 lifecycle (active/landed/obsolete) goes inside that field. Disjoint value sets. Rewrote composition paragraph: §33 Operational status stays strict; §26 lifecycle recorded separately (inline per §26 convention or under a distinct Lifecycle status: line). 3. (#808) Persona names ("Architect (Kenji)", "Dejan", "Aminata") in §33 enforcement / known-limitations / why-this-matters conflicted with §27 + AGENT-BEST-PRACTICES. Replaced with role refs (Architect, devops-engineer, threat-model-critic). Preserved persona refs in §26/§27 (rule-definition examples) and §31 (binding-changes process) — those are the rule-naming sites, not downstream uses. Drain log: docs/pr-preservation/247-drain-log.md per Otto-250.
2d4911a to
048ef2a
Compare
…ibution + exit-code alignment - Switch audit_archive_headers.sh from -maxdepth 1 to recursive find matching documented `docs/aurora/**/*.md` scope; exclude `references/` as bibliographic substrate. - Encode subdirectory in --out per-file JSON basename to avoid collisions under recursive scan. - Replace 'Aaron' with 'human-maintainer' role ref in script and FACTORY-HYGIENE row 60 (FACTORY-DISCIPLINE name-attribution rule). - Drop persona names (Aminata, Amara) from script comments and row 60 in favour of role references (threat-model reviewer, absorbing agent), per Otto-220 code-comments-explain-code rule. - Realign exit codes to sibling audit_*.sh convention: 1 = content-level signal under --enforce; 2 = script error / missing dependency / bad arg. Update header doc-block + row 60 wording to match. - Remove dead cross-reference to non-existent `docs/aurora/2026-04-23-amara-zeta-ksk-aurora-validation-5th-ferry.md` in row 60. Verified the aminata-threat-model-5th-ferry citation does exist on origin/main; kept that one. - Append docs/pr-preservation/243-drain-log.md per Otto-250. Smoke-tested: clean run exit 0 (16 files scanned), --enforce exit 1, bad --path exit 2, --json exit 0, --out has no basename collisions.
Local shellcheck install only flagged this on the lint runner with
--severity=style. Quote $target_path inside the ${file#...}
prefix-strip so the prefix is not interpreted as a glob pattern.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a7b62a586
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
… lint v0 (detect-only) Amara's 5th-ferry Artifact C landing (PR #235 absorb). Detect-only lint for the four archive-header fields proposed in §33 (PR #235 exemplar; not yet governance-landed): - Scope: - Attribution: - Operational status: - Non-fusion disclaimer: Defaults to checking docs/aurora/*.md; --path DIR overrides. --enforce flips exit 2 on any gap; CI does not currently call it (Aminata Otto-80 pass classified §33 as IMPORTANT-pending- Aaron-signoff + lint-required-to-prevent-3-5-round-decay). First-run baseline: 2/2 existing aurora absorbs missing all four headers (predate the proposal). Detect-only first prevents CI block on baseline; enforcement flips when Aaron signs off on §33 + baseline is green (either backfill the 2 absorbs or explicit grandfather clause in §33). v0 limitations documented in script: - Partial-header adversary (label anywhere in first 20 lines passes; no syntactic check). - Fake-header adversary (values not content-audited). - In-memory-import adversary (memory/ not covered; different surface). Harden in follow-up after §33 lands. Bash 3.2 compatible (while-read loop, not mapfile) for macOS default shell. Same --json / --out DIR / exit code shape as existing audit_commit.sh / audit_personas.sh / audit_skills.sh. FACTORY-HYGIENE row #60 added: - Detect-only cadence landed. - Enforcement deferred until Aaron §33 signoff + baseline green. - Same detect-only → triage → enforce pattern as rows #51 (cross-platform parity) and #55 (machine-specific scrubber). tools/alignment/README.md table updated with new row. Composes with: - Aminata threat-model pass (PR #241; names the decay risk this lint prevents). - Amara's 5th-ferry absorb (PR #235; exemplar self-applies the format). - Memory-index hygiene trio (rows #58 / #59 + this row's archive-header hygiene trio). Otto-81 tick deliverable.
…ibution + exit-code alignment - Switch audit_archive_headers.sh from -maxdepth 1 to recursive find matching documented `docs/aurora/**/*.md` scope; exclude `references/` as bibliographic substrate. - Encode subdirectory in --out per-file JSON basename to avoid collisions under recursive scan. - Replace 'Aaron' with 'human-maintainer' role ref in script and FACTORY-HYGIENE row 60 (FACTORY-DISCIPLINE name-attribution rule). - Drop persona names (Aminata, Amara) from script comments and row 60 in favour of role references (threat-model reviewer, absorbing agent), per Otto-220 code-comments-explain-code rule. - Realign exit codes to sibling audit_*.sh convention: 1 = content-level signal under --enforce; 2 = script error / missing dependency / bad arg. Update header doc-block + row 60 wording to match. - Remove dead cross-reference to non-existent `docs/aurora/2026-04-23-amara-zeta-ksk-aurora-validation-5th-ferry.md` in row 60. Verified the aminata-threat-model-5th-ferry citation does exist on origin/main; kept that one. - Append docs/pr-preservation/243-drain-log.md per Otto-250. Smoke-tested: clean run exit 0 (16 files scanned), --enforce exit 1, bad --path exit 2, --json exit 0, --out has no basename collisions.
Local shellcheck install only flagged this on the lint runner with
--severity=style. Quote $target_path inside the ${file#...}
prefix-strip so the prefix is not interpreted as a glob pattern.
Round 2 drain after round 1 closed all 7 threads. Copilot
re-reviewed and opened 6 new P2 suggestion-shape threads;
all 6 are FIX outcomes:
- r2-1 (line 128): normalise --path to strip trailing slash
so `docs/aurora/` matches the references/ exclusion.
- r2-2 (line 172): make --out filename encoding injective
by percent-encoding literal `_` to `_5F` before the
`/` -> `__` swap. Was non-injective: `a/b__c.md` and
`a__b/c.md` both became `a__b__c.json`.
- r2-3 (line 26): fix stale Usage wording — `--enforce`
exits 1 on gap (matches the dedicated Exit-codes section
and round-1 Thread-7 realignment).
- r2-4 (line 61): correct factual error about memory
surface — in-repo `memory/` is canonical per
GOVERNANCE.md §18 and `memory/README.md`; per-user path
is staging.
- r2-5 (line 128): force C-locale sort with `LC_ALL=C`
for deterministic byte-order output regardless of caller
env.
- r2-6 (line 7): drop persona name "Amara" from header
banner in favour of role/artifact references
("5th-ferry Artifact C" / "the 5th-ferry external-
research absorb"). Round 1 caught "Aaron" but missed
"Amara".
Append-only drain-log update per Otto-229: prior round-1
sections untouched; new "Drain pass: 2026-04-24 (round 2 —
6 threads)" section appended.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3a7b62a to
c986d6c
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…le + safe-ROM substrate (#400) * artifact-c: tools/alignment/audit_archive_headers.sh — archive-header lint v0 (detect-only) Amara's 5th-ferry Artifact C landing (PR #235 absorb). Detect-only lint for the four archive-header fields proposed in §33 (PR #235 exemplar; not yet governance-landed): - Scope: - Attribution: - Operational status: - Non-fusion disclaimer: Defaults to checking docs/aurora/*.md; --path DIR overrides. --enforce flips exit 2 on any gap; CI does not currently call it (Aminata Otto-80 pass classified §33 as IMPORTANT-pending- Aaron-signoff + lint-required-to-prevent-3-5-round-decay). First-run baseline: 2/2 existing aurora absorbs missing all four headers (predate the proposal). Detect-only first prevents CI block on baseline; enforcement flips when Aaron signs off on §33 + baseline is green (either backfill the 2 absorbs or explicit grandfather clause in §33). v0 limitations documented in script: - Partial-header adversary (label anywhere in first 20 lines passes; no syntactic check). - Fake-header adversary (values not content-audited). - In-memory-import adversary (memory/ not covered; different surface). Harden in follow-up after §33 lands. Bash 3.2 compatible (while-read loop, not mapfile) for macOS default shell. Same --json / --out DIR / exit code shape as existing audit_commit.sh / audit_personas.sh / audit_skills.sh. FACTORY-HYGIENE row #60 added: - Detect-only cadence landed. - Enforcement deferred until Aaron §33 signoff + baseline green. - Same detect-only → triage → enforce pattern as rows #51 (cross-platform parity) and #55 (machine-specific scrubber). tools/alignment/README.md table updated with new row. Composes with: - Aminata threat-model pass (PR #241; names the decay risk this lint prevents). - Amara's 5th-ferry absorb (PR #235; exemplar self-applies the format). - Memory-index hygiene trio (rows #58 / #59 + this row's archive-header hygiene trio). Otto-81 tick deliverable. * drain(#243): seven Copilot/Codex threads — recursive scan + name-attribution + exit-code alignment - Switch audit_archive_headers.sh from -maxdepth 1 to recursive find matching documented `docs/aurora/**/*.md` scope; exclude `references/` as bibliographic substrate. - Encode subdirectory in --out per-file JSON basename to avoid collisions under recursive scan. - Replace 'Aaron' with 'human-maintainer' role ref in script and FACTORY-HYGIENE row 60 (FACTORY-DISCIPLINE name-attribution rule). - Drop persona names (Aminata, Amara) from script comments and row 60 in favour of role references (threat-model reviewer, absorbing agent), per Otto-220 code-comments-explain-code rule. - Realign exit codes to sibling audit_*.sh convention: 1 = content-level signal under --enforce; 2 = script error / missing dependency / bad arg. Update header doc-block + row 60 wording to match. - Remove dead cross-reference to non-existent `docs/aurora/2026-04-23-amara-zeta-ksk-aurora-validation-5th-ferry.md` in row 60. Verified the aminata-threat-model-5th-ferry citation does exist on origin/main; kept that one. - Append docs/pr-preservation/243-drain-log.md per Otto-250. Smoke-tested: clean run exit 0 (16 files scanned), --enforce exit 1, bad --path exit 2, --json exit 0, --out has no basename collisions. * drain(#243): quote target_path inside parameter expansion (SC2295) Local shellcheck install only flagged this on the lint runner with --severity=style. Quote $target_path inside the ${file#...} prefix-strip so the prefix is not interpreted as a glob pattern. * drain: PR #243 round 2 — address 6 late-review threads Round 2 drain after round 1 closed all 7 threads. Copilot re-reviewed and opened 6 new P2 suggestion-shape threads; all 6 are FIX outcomes: - r2-1 (line 128): normalise --path to strip trailing slash so `docs/aurora/` matches the references/ exclusion. - r2-2 (line 172): make --out filename encoding injective by percent-encoding literal `_` to `_5F` before the `/` -> `__` swap. Was non-injective: `a/b__c.md` and `a__b/c.md` both became `a__b__c.json`. - r2-3 (line 26): fix stale Usage wording — `--enforce` exits 1 on gap (matches the dedicated Exit-codes section and round-1 Thread-7 realignment). - r2-4 (line 61): correct factual error about memory surface — in-repo `memory/` is canonical per GOVERNANCE.md §18 and `memory/README.md`; per-user path is staging. - r2-5 (line 128): force C-locale sort with `LC_ALL=C` for deterministic byte-order output regardless of caller env. - r2-6 (line 7): drop persona name "Amara" from header banner in favour of role/artifact references ("5th-ferry Artifact C" / "the 5th-ferry external- research absorb"). Round 1 caught "Aaron" but missed "Amara". Append-only drain-log update per Otto-229: prior round-1 sections untouched; new "Drain pass: 2026-04-24 (round 2 — 6 threads)" section appended. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * backlog+memory+roms: emulators on OS-interface + rewindable/retractable controls + safe-ROM substrate Maintainer 2026-04-24 directive — emulators are the canonical proof-out workload for the OS-interface (#399). Two related directives captured: (1) "emulators should run very nicely on this, let me know when you want some roms of any kind that are safe." (2) "rewindable/retractable os/emulator controls" Plus: maintainer requested a `roms/` folder with a gitignored-except-sentinels pattern (same as `drop/`) so binaries never enter git history but the directory exists on every clone. Why emulators compose perfectly with the OS-interface: - Emulator event loop = durable-async runtime workload - Save states FREE (every yield-point = checkpoint) - Cross-node migration FREE (state follows the function) - Multiplayer FREE (shared durable substrate) - DST guarantees speedrun/TAS bit-equal replay Rewindable/retractable controls — the killer generalization: - Z-set retraction-native semantics extend UP to OS surface - "Rewind 5 seconds" is a first-class OS primitive - rr / Pernosco architectural class, generalized - Otto-238 trust-vector: rewindable controls grant agency Activates 2026-04-22 ARC-3 adversarial-self-play absorption-scoring research (level-creator / adversary / player loop on durable-async + rewindable substrate). Phased: Phase 0 research (Game Boy / NES / SNES / Genesis; libretro; rr/Pernosco) → Phase 1 single emulator on durable-async → Phase 2 rewindable controls promoted to OS primitive → Phase 3 ARC-3 loop → Phase 4 cross-emulator composition. Safe-ROM offer captured durably; ask gated on Phase 1 landing first. Allowed classes enumerated in roms/README.md (public-domain / homebrew / official test suites / commercially-released-as-free / explicit-license). Otto-275 log-don't-implement applies. Composes with #399 OS-interface, Otto-73/238/272, Z-set retraction-native, #396/#397 closure-table+cross-DSL, request-play skill. --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Summary
Why this matters
Aminata's Otto-80 threat-model pass (PR #241) classified Amara's proposed §33 as IMPORTANT-pending-Aaron-signoff, and flagged that §33 would decay within 3-5 rounds without a companion lint. This PR is that lint. §33 can now land with an existing enforcement mechanism; until it does, this lint provides detect-only signal so drift stays visible.
First-run baseline
```
archive-header audit on docs/aurora
files checked: 2
all four headers ok: 0
missing one or more: 2
```
Both existing aurora absorbs predate the proposal. Enforcement flip awaits either backfill or explicit grandfather clause in §33.
Script shape
v0 limitations (documented in script)
Harden in a follow-up after §33 lands.
Composes with
Test plan
Otto-81 tick deliverable.
🤖 Generated with Claude Code