Conversation
…I lint job (B-0036 Sub-task 2)
Adds 'lint (archive header §33)' as a new gate.yml lint job alongside
existing lint-tick-history-order, lint-no-conflict-markers,
lint-no-empty-dirs, lint-markdown.
Now any future courier-ferry / external-conversation import under
docs/research/** will:
- FAIL CI on missing §33 4-field archive header in lines 1-20
- FAIL CI on Operational-status value not in enum {research-grade,
operational}
- BLOCK MERGE per branch protection's required-status-checks
This is B-0036 Sub-task 2 — Sub-task 1 (backfill) was completed via
PR #572/#573/#576/#577/#578/#579 reducing pre-existing violations
from 36 → 0 on main.
The substrate-primitive lifecycle is now operational:
- Otto-346 recurring-pattern observed: §33 retrofitted post-review
on 9+ PRs in the 11-Amara-refinement lineage
- PR #571 shipped lint tool (label-presence)
- PR #575 enhanced lint to validate enum-value (Operational status)
- 6-PR backfill chain cleared all pre-existing violations
- THIS PR: enforcing CI gate
Composes with:
- check-tick-history-order.sh (same Otto-346 substrate-primitive
template — recurring discipline-violation → CI lint)
- check-no-conflict-markers.sh (same template; the 3 lint scripts
now form a consistent §33-discipline enforcement triple)
- B-0036 backlog row (Sub-task 2 satisfied; row can close once this
lands)
Future operator note: if a legitimate courier-ferry doc lands and
this lint flags a false-positive, two fixes available:
(a) add §33 header (most common; 9 in 9 review-finding cases this
session were legit § missing)
(b) refine the courier-ferry-import detection regex in the script
(rare; only if the doc isn't actually external-conversation)
There was a problem hiding this comment.
Pull request overview
Wires the existing §33 archive-header lint (tools/hygiene/check-archive-header-section33.sh) into CI so courier-ferry / external-conversation imports under docs/research/** are structurally blocked from merging unless they include the required §33 header (and enum-strict Operational status).
Changes:
- Add a new
lint-archive-header-section33job to.github/workflows/gate.ymlthat checks §33 header presence +Operational statusenum strictness.
4 tasks
AceHack
added a commit
that referenced
this pull request
Apr 26, 2026
…estone tick (#581) Tick row capturing B-0036 Sub-task 1 completion: lint count 36 → 0 on main. The full §33-archive-header substrate-primitive lifecycle from recurring-review-finding-pattern to operational-CI-enforcement landed this segment of the autonomous-loop run. Highlights: - 6-PR backfill chain: #572/#573/#576/#577/#578/#579 - Lint enhancements: #571 (initial) + #575 (enum-value validation) - Lint progression: 36 → 19 → 12 → 9 → 4 → 1 → 0 - B-0036 Sub-task 2 (CI wire) opened as PR #580; auto-merge enabled - Aaron returned from break this tick Three observations captured: 1. Otto-346 substrate-primitive pattern proven end-to-end on a single discipline within one session 2. Discipline-correctness over rule-relaxation (path a/b/c choice) 3. Autonomous-loop sustained substantive output for ~hour-long quiet window per never-be-idle priority ladder Per check-tick-history-order: 134 rows in non-decreasing chronological order.
…T-BEST-PRACTICES Per Copilot P1 on #580: workflow YAML comments are current-state operational surfaces; AGENT-BEST-PRACTICES rule 'No name attribution in code, docs, or skills' requires role-refs not first names. Replacements (4 occurrences): - 'Aaron 2026-04-26 asked' → 'Maintainer 2026-04-26 asked' (line 328) - 'Aaron 2026-04-26 ask:' → 'Maintainer 2026-04-26 ask:' (line 349) - 'Otto observation 2026-04-26:' → 'Factory observation 2026-04-26:' (line 376) - '11-Amara-refinement courier-ferry lineage' → '11-refinement courier-ferry lineage' (line 377) Per Otto-279 history-surface carve-out: names ALLOWED in research / ROUND-HISTORY / ADRs / aurora archive (history surfaces), preferred role-refs in code / skills / workflow YAML / current-state docs. Workflow YAML is current-state surface. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds lint (archive header §33) as a new gate.yml lint job. Future courier-ferry imports under
docs/research/**will FAIL CI on missing §33 header OR non-enum Operational-status value.B-0036 Sub-task 2 (Sub-task 1 complete)
Sub-task 1 (backfill) was completed via the 6-PR chain that reduced pre-existing violations from 36 → 0:
This PR closes the loop: discipline that was caught by review on 9+ PRs is now caught structurally pre-merge.
Composition
Auto-merge ordering
This PR's gates won't pass until the lint passes on main. PR #579 must merge first (clears the 3 calibration-tension violations to 0). Auto-merge is enabled — will fire once #579 lands and gates re-run.
Future operator note
If a legitimate courier-ferry doc lands and this lint flags a false-positive:
Test plan