Skip to content

artifact-c: tools/alignment/audit_archive_headers.sh — archive-header lint v0 (detect-only)#243

Merged
AceHack merged 4 commits intomainfrom
artifact-c/tools-alignment-archive-header-lint
Apr 25, 2026
Merged

artifact-c: tools/alignment/audit_archive_headers.sh — archive-header lint v0 (detect-only)#243
AceHack merged 4 commits intomainfrom
artifact-c/tools-alignment-archive-header-lint

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 24, 2026

Summary

  • Amara's 5th-ferry Artifact C — archive-header lint v0 (detect-only).
  • Checks `docs/aurora/*.md` for the four headers proposed in §33: Scope / Attribution / Operational status / Non-fusion disclaimer.
  • Default detect-only; `--enforce` flips exit 2 (CI does not currently call `--enforce`).
  • FACTORY-HYGIENE row <P0> Grandfather O-claims discharge — 35-claim inventory, one per round #60 added; ships to project-under-construction.

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

  • Same `--json` / `--out DIR` / exit-code shape as existing `audit_commit.sh` / `audit_personas.sh` / `audit_skills.sh`.
  • Bash 3.2 compatible (while-read loop, not `mapfile`) for macOS default shell.

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, by design).

Harden in a follow-up after §33 lands.

Composes with

Test plan

Otto-81 tick deliverable.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings April 24, 2026 01:57
@AceHack AceHack enabled auto-merge (squash) April 24, 2026 01:57
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread tools/alignment/audit_archive_headers.sh Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md to 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.sh to 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 / --out in the same shape, but audit_archive_headers.sh doesn’t currently support --md and 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.

Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread docs/FACTORY-HYGIENE.md Outdated
Comment thread docs/FACTORY-HYGIENE.md Outdated
Comment thread tools/alignment/audit_archive_headers.sh
AceHack added a commit that referenced this pull request Apr 24, 2026
…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.
AceHack added a commit that referenced this pull request Apr 24, 2026
)

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.
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 24, 2026
… 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.
AceHack added a commit that referenced this pull request Apr 24, 2026
…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).
AceHack added a commit that referenced this pull request Apr 25, 2026
…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.
AceHack added a commit that referenced this pull request Apr 25, 2026
…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.
@AceHack AceHack force-pushed the artifact-c/tools-alignment-archive-header-lint branch from 2d4911a to 048ef2a Compare April 25, 2026 00:37
AceHack added a commit that referenced this pull request Apr 25, 2026
…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.
AceHack added a commit that referenced this pull request Apr 25, 2026
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.
Copilot AI review requested due to automatic review settings April 25, 2026 00:39
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh Outdated
Comment thread tools/alignment/audit_archive_headers.sh Outdated
AceHack and others added 4 commits April 24, 2026 20:45
… 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>
@AceHack AceHack force-pushed the artifact-c/tools-alignment-archive-header-lint branch from 3a7b62a to c986d6c Compare April 25, 2026 00:49
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack merged commit 8791751 into main Apr 25, 2026
13 checks passed
@AceHack AceHack deleted the artifact-c/tools-alignment-archive-header-lint branch April 25, 2026 00:52
AceHack added a commit that referenced this pull request Apr 25, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants