diff --git a/docs/hygiene-history/ticks/2026/05/16/0334Z.md b/docs/hygiene-history/ticks/2026/05/16/0334Z.md new file mode 100644 index 0000000000..cdb90dd9b3 --- /dev/null +++ b/docs/hygiene-history/ticks/2026/05/16/0334Z.md @@ -0,0 +1,56 @@ +# Tick 2026-05-16T03:34Z — Otto-CLI + +**Surface**: Otto-CLI (Claude Code, Opus 4.7 1M context, autonomous-loop tick) +**Parent tick**: 2026-05-16T03:28Z (parent shard PR pending; see PR #3709) + +## What landed this tick + +[PR #3710](https://github.com/Lucent-Financial-Group/Zeta/pull/3710) — `docs(hygiene): land tools/hygiene/AUDIT-LIFECYCLE.md — reusable template` + +Promotes the audit-lifecycle pattern (next-tick candidate #4 from 0328Z) to a canonical doc co-located with the hygiene-audit tooling. The pattern is now codified as a reusable 7-step template with two worked examples. + +## What the doc captures + +| Section | Content | +|---------|---------| +| 7-step pattern | Discovery → Narrow fix → Scanner → Quality iterations → Baseline → CI enforce gate → Maintenance | +| Why-the-order | Step 2 before 3 (confirm bug class); 4 before 5 (baseline includes false positives forever if not iterated); 5 before 6 (gate fails on residue without baseline) | +| §33 worked example | PR #3513 → #3552 → enforce; ~4 weeks | +| Tick-shard worked example | PR #3676 → #3708; ~80 min single session | +| Mutable-vs-immutable surfaces | Cleanup-to-zero for mutable; baseline for immutable (Event-Sourcing-style tick shards) | +| Pre-emptive scanner-author findings | 7 common quality-iteration findings to pre-empt in step 3: sonarjs disable, main+import.meta.main guard, generic URI scheme regex, --files validation, PATH_SEP portability, JSON schema discipline, baseline type-guard | +| Baseline schema validation | Code snippet for `isBaselineEntry` type guard | + +## State at tick end + +| PR | State | +|----|-------| +| [#3707](https://github.com/Lucent-Financial-Group/Zeta/pull/3707) (0322Z shard) | OPEN, armed | +| [#3708](https://github.com/Lucent-Financial-Group/Zeta/pull/3708) (CI enforce gate) | OPEN, armed | +| [#3709](https://github.com/Lucent-Financial-Group/Zeta/pull/3709) (0328Z shard) | OPEN, armed | +| [#3710](https://github.com/Lucent-Financial-Group/Zeta/pull/3710) (this audit-lifecycle doc) | OPEN, armed | +| (this shard) | shard PR pending | + +## Operational notes + +### Why this doc now and not later + +The audit-lifecycle pattern was a session-discovery: by the time I finished writing #3708's gate-wire PR (closing the tick-shard relative-path audit's lifecycle), the structural similarity with the §33 audit was directly visible. Capturing it WHILE the empirical evidence was fresh produces a denser doc than reconstructing it weeks later. + +A future audit (e.g. for a new bug class — say "memory file orphans" or "skill router dead-pointers") gets a structured 7-step template instead of an ad-hoc retrospective. Cost: 30 min authoring time. Value: future audits skip the "what's the right shape?" overhead. + +### What's NOT in the doc (deliberate scope-bound) + +- **Specific Bun/TS coding conventions** — those live in the audit script headers / repo-wide style. The doc cites them but doesn't replicate them. +- **CI workflow YAML syntax** — captured in `gate.yml` job comments already. +- **Mechanism for promoting non-required → required** — branch-protection rules, separate decision per audit; not the audit author's responsibility at scanner-authoring time. + +### Holding-discipline state + +Concrete substrate landed (the doc). Counter resets per "actually picking real decomposition work" clause. + +## Next-tick candidates + +1. **Monitor 4 armed PRs** to merge (#3707, #3708, #3709, #3710) +2. **B-0545 renumber-sweep** (claim still active until 2026-05-17T01:44Z; defer to a coordinated tick) +3. **MD038/MD032 pre-commit script** — bundle the self-check `awk` scans + `bun x markdownlint-cli2` into a single `tools/hygiene/check-shard-before-push.ts` helper for the author workflow (the empirical self-bite this session showed this would have caught the 0322Z violation pre-push)