SD-229

[zombie-cross-reference] Cross-model zombie review — 4 independent reviewers cross-referenced against live codebase. Three actions bundled: (1) AnotherPair audit response.claude/agents/ symlinks created (14 symlinks → .opencode/agents/, git-tracked mode 120000, single source of truth preserved). Dead reckoning Step 2b updated to explicitly require reading the Lexicon (SO-PERM-002 enforced as numbered step). AnotherPair load-order discrepancies documented (inverted CLAUDE.md/AGENTS.md order, missed conditional rules loading, missed .opencode.json). (2) pitkeel state-update — new pitkeel state-update subcommand auto-derives head (git rev-parse) and sd (grep last SD-NNN). Preserves semantic fields (bearing, tempo, etc). Staleness detection: tracks _bearing_snapshot and bearing_set_at, warns after 5 unchanged-bearing commits. Post-commit hook at scripts/post-commit installed via symlink to .git/hooks/post-commit. Verified working on first commit. (3) Cross-model zombie review — all 60 findings from Architect, Sentinel, Artisan, Watchdog inventoried and de-duplicated. Cross-referenced against live codebase state. Key results: 2 false positives caught (ARC claimed agent-links.ts and agent-lineage.ts were test-only — both have 2-4 production importers, deletion would have broken build). 8 dead exports in credits.ts confirmed and internalized (kept microToCredits — live consumer in credit-catalog.ts). DarwinCountdownCopy orphan removed from schema + 4 JSON files. Stale Hugo XML deleted. slopodar.yaml annotated as oceanheart build source of truth per Captain’s order. lib/eval/ confirmed NOT empty (5 active files remain post-cleanup). Placeholder API keys confirmed already fixed in PR #384. Anonymization salt fallback still present (dev-only, documented as intentional). Holding deck updated: zombie-code-audit → done, 6 new hold items added (agent-prompts-refactor, bare-toHaveBeenCalled-assertions, skipped-integration-tests, env-test-drift, unsafe-pattern-xss-gaps, anonymization-salt-hardening). Captain’s ruling on ~/.claude/rules/ language-specific files: parked (generic patterns, no conflicts). Gate green throughout (1,115 tests).

Complete

← all decisions