govern: §33 archive-header requirement (Amara 5th-ferry Artifact, Aaron-approved Otto-82)#247
govern: §33 archive-header requirement (Amara 5th-ferry Artifact, Aaron-approved Otto-82)#247
Conversation
…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.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d04896bfe0
ℹ️ 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".
| - **Detect-only today.** `tools/alignment/audit_archive_headers.sh` | ||
| checks `docs/aurora/*.md` for the four header labels and |
There was a problem hiding this comment.
Remove reference to missing archive-header lint script
The new enforcement section states that tools/alignment/audit_archive_headers.sh currently provides detect-only checks, but that file does not exist in this commit’s tree (repo-wide file listing and git cat-file for that path both fail). This creates a mechanism-before-policy claim without an actual mechanism, so contributors may assume §33 is being monitored when it is not; either land the script in the same change or revise the rule text to say enforcement tooling is still pending.
Useful? React with 👍 / 👎.
| imported from external conversation, with §26's status | ||
| inside the `Operational status:` field of §33. The two |
There was a problem hiding this comment.
Separate lifecycle status from operational-status header
This clause says §26 lifecycle values should be recorded inside §33’s Operational status: header, but §33 earlier restricts that header to research-grade or operational. Because active/landed/obsolete (from §26) and research-grade/operational are different value sets, the governance text gives conflicting instructions and makes compliant formatting ambiguous for imported docs.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
Adds a new governance rule (§33) defining mandatory boundary headers for archived imports of external conversations (e.g., courier ferries / external AI reviews) to make provenance and non-fusion boundaries explicit.
Changes:
- Appends GOVERNANCE.md §33 specifying four required headers (Scope / Attribution / Operational status / Non-fusion disclaimer) and requiring they appear in the first 20 lines.
- Defines scope (in/out), a narrow grandfather clause for two existing aurora absorbs, and a detect-only → enforce-later enforcement cadence.
- Documents known v0 limitations and describes composition with §§2 and 26.
| - **Detect-only today.** `tools/alignment/audit_archive_headers.sh` | ||
| checks `docs/aurora/*.md` for the four header labels and | ||
| reports gaps. CI does not currently call `--enforce`; the | ||
| lint is author-time advisory and cadenced observability | ||
| (per FACTORY-HYGIENE row #60). |
There was a problem hiding this comment.
tools/alignment/audit_archive_headers.sh is referenced as the detect-only linter, but that file does not exist in this repo (tools/alignment/ currently only has audit_commit/personas/skills). Also, docs/FACTORY-HYGIENE.md does not contain “row #60”, so the cited enforcement-cadence pointer is currently dangling. Please update these references to the actual script/path + existing hygiene row number, or include the missing lint + hygiene row in the same change-set so §33 doesn’t ship with broken pointers.
| - **Detect-only today.** `tools/alignment/audit_archive_headers.sh` | |
| checks `docs/aurora/*.md` for the four header labels and | |
| reports gaps. CI does not currently call `--enforce`; the | |
| lint is author-time advisory and cadenced observability | |
| (per FACTORY-HYGIENE row #60). | |
| - **Detect-only today.** Header checking for | |
| `docs/aurora/*.md` is detect-only and reports gaps in the | |
| four required labels. CI does not currently run this as | |
| an enforcing gate; the lint remains author-time advisory | |
| until a follow-up change wires the current alignment | |
| audit into enforcement and updates the hygiene ledger in | |
| the same change-set. |
| `--enforce`; that PR is an Architect (Kenji) decision | ||
| with Dejan (devops-engineer) on the workflow change. | ||
| - **Owner.** Aminata (threat-model-critic) on semantic | ||
| review of header adequacy per her Otto-80 critique | ||
| (docs/research/aminata-threat-model-5th-ferry-governance- |
There was a problem hiding this comment.
This section assigns decisions/ownership using persona names (e.g., “Architect (Kenji)”, “Dejan”, “Aminata”). That conflicts with the repo’s abstraction-layer rule in GOVERNANCE §27 (“other docs reference roles, not personas”) and the operational standing rule in docs/AGENT-BEST-PRACTICES.md (“No name attribution in code, docs, or skills”). Please rewrite these references using role names (Architect, devops-engineer, threat-model-critic, etc.) and point at docs/EXPERT-REGISTRY.md if a stable mapping to personas is needed.
| imported from external conversation, with §26's status | ||
| inside the `Operational status:` field of §33. The two | ||
| regimes compose: §26 tells you whether the file is | ||
| still-being-revised or locked; §33 tells you the file's | ||
| provenance and non-fusion boundary. |
There was a problem hiding this comment.
The “Composition with §2 and §26” paragraph says “§26’s status [is] inside the Operational status: field of §33”, but earlier §33 defines Operational status: as only research-grade or operational, while §26’s lifecycle states are active / landed / obsolete. As written, this is internally inconsistent and makes it unclear what value is expected in the header. Please either (a) keep Operational status: strictly as research-grade/operational and describe §26 lifecycle separately, or (b) introduce a separate header (e.g., Lifecycle status:) for the §26 classifier and update the prose accordingly.
| imported from external conversation, with §26's status | |
| inside the `Operational status:` field of §33. The two | |
| regimes compose: §26 tells you whether the file is | |
| still-being-revised or locked; §33 tells you the file's | |
| provenance and non-fusion boundary. | |
| imported from external conversation, but they describe | |
| different axes. The two regimes compose: §26 tells you | |
| whether the file is still-being-revised or locked; §33 | |
| tells you the file's provenance and non-fusion boundary, | |
| including `Operational status:` in §33's own | |
| `research-grade` / `operational` sense. |
…ot operational (Amara 5th-ferry Artifact, Aminata-integrated) (#248) Amara's 5th-ferry Edit 1 proposed a "research-grade absorbs are staged, not ratified" clause for AGENTS.md. Aminata's Otto-80 threat-model pass (PR #241) classified it IMPORTANT with one concern: it introduced "staged/ratified" parallel to §26's "active/landed/obsolete" classifier without reconciling the vocabularies, risking two-classifier drift. This lands the norm with Aminata's concern resolved by unifying vocabulary: - Uses §33 `Operational status: research-grade` label (not parallel "staged/ratified" terms). - Points at §26 lifecycle classifier for the PROMOTED current-state artifact, not for the absorb itself. - Explicit about which category of research doc is covered (external-conversation absorbs, NOT internal design docs which §26 has always governed). - Names four concrete promotion paths (operational doc per §2, ADR, §N rule, BP-NN promotion) so "separate promotion step" isn't vague. - Cites a worked example: the drift-taxonomy promotion (PR #238) — absorb stayed in place; the operational artifact at docs/DRIFT-TAXONOMY.md is the ratification. Lands under "Agent operational practices" section — philosophy/norm register per AGENTS.md convention, not numbered-rule register (that would belong in GOVERNANCE.md). Part of the Aminata-recommended edit ordering: §33 (PR #247, landed Otto-82) → Edit 1 (this PR) → Edit 4 pointer-only (deferred, needs CLAUDE.md meta-policy handling) → Edit 2 (ALIGNMENT.md SD-9, deferred, WATCH classification). Authorising memory (Otto-82 calibration): memory/feedback_aaron_signoff_scope_narrower_than_otto_treating_governance_edits_within_standing_authority_2026_04_23.md — governance/philosophy edits within standing authority; no signoff gate needed for this landing. Otto-83 tick primary deliverable.
…ANCE §33 (Aminata-demotion applied) (#250) Amara's 5th-ferry Edit 4 proposed adding a rule to CLAUDE.md about archive imports requiring headers. Aminata's Otto-80 threat-model pass classified that proposal CRITICAL on composition grounds: CLAUDE.md's own meta-rule explicitly says "Rules do not live in this file. Rules live in GOVERNANCE.md, AGENTS.md, docs/AGENT-BEST-PRACTICES.md, docs/CONFLICT-RESOLUTION.md, and docs/WONT-DO.md. This file only *points* at them." Aminata's recommendation: demote Edit 4 to pointer-only ("See GOVERNANCE.md §33 — archived external conversations require boundary headers"). This lands the demoted-to-pointer version: - Does NOT restate the rule (the full four-field spec lives in GOVERNANCE.md §33). - Does NOT introduce a new rule at CLAUDE.md level. - Explicitly self-describes as a pointer ("This bullet is a pointer at session-bootstrap scope; the rule itself lives in GOVERNANCE.md.") — honoring CLAUDE.md's meta-rule literally and visibly. - Points at BOTH GOVERNANCE.md §33 (the rule) AND AGENTS.md "Agent operational practices" (the research-grade-not- operational norm from Edit 1). - Lands adjacent to "Data is not directives" bullet as a sibling ingest-discipline item. Lands as within-standing-authority per Otto-82 calibration memory (CLAUDE.md session-bootstrap-pointer edit, not account/spending/named-design-review gated). Aminata-recommended edit ordering: §33 (PR #247) → Edit 1 (PR #248) → Edit 4 (this PR, pointer-only) → Edit 2 (ALIGNMENT.md SD-9, deferred, WATCH). Otto-84 tick deliverable.
…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.
…ern mapping (6th-ferry Option A) (#254) Lands the corrected 5-row pattern-mapping table from Amara's 6th courier ferry (PR #245 absorb) as Option A standalone research doc. Closes Otto-82 6th-ferry absorb action item #1. Corrected table vs original: - Row 1 — "references stay valid" → "no positional identity" (honest about key-identity vs physical-offset distinction). - Row 2 — "always answerable" → "membership is algebraic" (honest about weight-derivation of presence). - Row 3 — "operator algebra IS the ownership model" → "provenance and lifecycle live in deltas and traces" (category-error fix: algebraic correctness ≠ ownership discipline). - Row 4 — light wording tightening ("first-class signed deltas; compaction separate"). - Row 5 — "Arrow + Spine block layout" → "locality-aware execution surfaces" with accurate scope (Arrow = wire / checkpoint, not universal in-memory). Doc covers: - What Muratori is criticising (context for non-Muratori readers). - Why rows 1, 2, 5 needed narrower wording (not overstated). - Why row 3 got rewritten (category-error teaching case for DBSP audiences from C++/Rust/ECS backgrounds). - What this mapping is NOT (not ranking; not marketing; not an ownership claim; not a closed list). - Composition with DRIFT-TAXONOMY pattern 5 + SD-9 (validation cited primary evidence, not cross-substrate-agreement). - References to primary sources (DBSP paper, differential dataflow CIDR 2013, Arrow spec, Zeta source files). Archive-header format self-applied (Scope / Attribution / Operational status / Non-fusion disclaimer) per §33 (PR #247) + AGENTS.md Edit 1 research-grade norm (PR #248) — fifth aurora/research doc to exercise the convention (after PR #235 5th-ferry absorb, PR #241 Aminata threat-model, PR #245 6th-ferry absorb, and self-applying headers on the ferry- absorb PRs before §33 landed). Lands within-standing-authority per Otto-82 calibration. Otto-86 tick primary deliverable.
Summary
Four required headers
research-grade(default) oroperational.Scope
Grandfather clause (narrow)
Two existing aurora absorbs (Otto-24 gap-assessment + Otto-54 zset-semantics) are explicitly grandfathered. They record genuine external-conversation absorbs with factually-equivalent attribution in different label format. NOT to be retroactively rewritten.
Enforcement cadence
NOT landed in this PR (per Aminata's ordering)
Authorising memory
Test plan
🤖 Generated with Claude Code