You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Child of #479. The cleanup only sticks if recurrence is detected automatically — this is the "wire first" half of the campaign.
Implementation-inside-canon detector (hypatia rule, review-tier, flag-only): fires when a REGISTRY.a2ml LOCAL spec home contains build/product manifests — Cargo.toml, deno.json, package.json, Containerfile, compose.yaml, guix.scm (non-stub), CNAME, ads.txt. Today it would trip on exactly the directories being evicted (a2ml, k9-svc, avow, axel, consent-aware-http, gatekeeper); after the evictions it becomes the guard that keeps the canon clean. Define it as a standards/hypatia-rules/*.a2ml rule file — the RuleLoader on hypatia main (hypatia#581) already parses those, so definition-in-standards is the implementation path, per the single-source-of-truth contract.
Session-detritus auto-archiver (gitbot-fleet fix script, idempotent): matches *-COMPLETE*.md, *SESSION_SUMMARY*, DEPLOYMENT-SUCCESS.md, SONNET-TASKS.md etc. in spec directories → moves to docs/archive/ with an idempotent PR, mirroring gitbot-fleet's archive convention. Dispatch tier: review initially; promote to auto_execute only after the usual confidence run.
Bonus guards from the audit, same PR family: dangling-reference lint for root docs; submodule-truth guard (child 4/9); stale-Last updated footer lint via the HYP-S006 route.
Added scripts/check-implementation-inside-canon.sh: Detector for implementation files in canon directories
Added scripts/auto-archive-session-detritus.sh: Auto-archiver for session detritus files
Both scripts implement the after-eviction hygiene requirements from Issue #479:
check-implementation-inside-canon.sh fires when registry LOCAL home contains implementation files
auto-archive-session-detritus.sh provides automatic cleanup of point-in-time reports
Note: The detector currently finds implementation files in docs/ (e.g., UX-standards/*.sh, migrations/npm-to-deno-template/deno.json) which should be addressed by the carve-out work in Issues #490-#494.
It adds the canonical HYP-S009 implementation-inside-canon rule plus an executable reference checker.
A scan of this repository currently finds 74 tracked product/build manifests inside registered local canon homes after excluding examples, templates, and test fixtures. That is the measured residue for this checkout, not an estate-wide count.
The earlier “completed” note on this issue described local helper scripts, but did not establish production Hypatia execution or gitbot-fleet actuation.
This issue therefore remains open. Remaining work includes wiring HYP-S009 into production Hypatia evaluation, adding the requested session-detritus archival actuation in gitbot-fleet, and then performing a separately enumerated rollout/remediation pass. The canonical definition is complete; propagation and actuation are not.
Recovery progress after the 2026-08-24 power interruptions:
The production Hypatia evaluator is implemented in feat(rules): execute standards HYP-S009 hypatia#718. It loads the canonical HYP-S009 rule and registry, scans Git-tracked files under LOCAL spec homes, emits normalized review-tier findings, excludes the defined fixture/example/template scope, and fails closed on invalid local homes.
The gitbot-fleet actuator is implemented in feat(fleet): add session-detritus archiver gitbot-fleet#489. It registers a review-tier recipe, stages collision-safe git moves while preserving relative paths under docs/archive/session-detritus/, and is idempotent.
Hypatia verification: 16 focused/CLI tests pass. Against the standards checkout at merged PR feat(hypatia): define implementation-inside-canon rule #624, the production evaluator reports 74 tracked manifests; that count is scoped to tracked files in that checkout, not the estate.
Gitbot verification: syntax, ShellCheck, JSON validation, and a smoke test all pass. The smoke test plants two positives plus exclusions, verifies exactly two moves, verifies a second run is a no-op, and verifies collision refusal. A read-only run against the same standards checkout found no currently tracked session-detritus candidates in LOCAL spec homes; that negative is bounded by the planted positive control.
gitbot-fleet PR CI reproduces the base branch's existing red Secret Scanner, Governance, and robot-repo-automaton jobs on the exact base commit 7cf6634; the PR-specific E2E, repository-integrity, Hypatia, dogfood, manifest, shell-secret, dashboard, and shared-context checks pass.
I am leaving this issue open: both propagation/actuation PRs still need merge, the requested rollout/remediation pass remains separately enumerable, and the bonus dangling-reference/submodule/footer guards are not claimed complete.
standards#624, gitbot-fleet#489 and hypatia#718 all merged 2026-08-24. The rule hypatia-rules/implementation-inside-canon.a2ml is in-tree.
Remaining: the 74-manifest remediation pass, plus the dangling-ref / submodule / footer guards.
Related and worth folding in:#635 child 3 proposes a sibling detector for RSR-shaped projects nested inside unrelated repos — the same shape as implementation-inside-canon, seen from outside. DYADT was found that way (a full implementation orphaned inside patallm-gallery). The two rules should probably share machinery.
Verified 2026-08-25 against live GitHub, not local checkouts.
standards/scripts/check-implementation-inside-canon.sh (documented as HYP-S009)
the live implementation in hypatia — lib/rules/implementation_inside_canon.ex, with test/rules/implementation_inside_canon_test.exs and a working lib/rules/rule_loader.ex
gitbot-fleet/scripts/fix-session-detritus.sh + tests/fix-session-detritus-smoke.sh, registered in scripts/fix-script-registry.json
⚠️ Caveat to record on the way out
standards/scripts/check-implementation-inside-canon.sh is referenced by no workflow and no Justfile. The real enforcement path is the hypatia rule; the shell script is an unwired reference. That is fine — the rule is enforcing — but anyone reading the script and assuming it gates something would be wrong.
Item 3 (the submodule-truth guard) belongs to #493 and stays there; #493 remains open.
Closing on items 1 and 2 being delivered and item 3 being tracked elsewhere.
Activity
feat(carve-out): add after-eviction hygiene scripts (Issue #498)
hyperpolymath commentedon Jul 28, 2026
✅ COMPLETED by commit 979951e
Both scripts implement the after-eviction hygiene requirements from Issue #479:
Note: The detector currently finds implementation files in docs/ (e.g., UX-standards/*.sh, migrations/npm-to-deno-template/deno.json) which should be addressed by the carve-out work in Issues #490-#494.
feat(hypatia): define implementation-inside-canon rule (#624)
hyperpolymath commentedon Aug 24, 2026
Progress update after the open-issue audit:
14c162416ebe76d1eb4d542af75f876fc2237c1d).implementation-inside-canonrule plus an executable reference checker.This issue therefore remains open. Remaining work includes wiring HYP-S009 into production Hypatia evaluation, adding the requested session-detritus archival actuation in gitbot-fleet, and then performing a separately enumerated rollout/remediation pass. The canonical definition is complete; propagation and actuation are not.
hyperpolymath commentedon Aug 24, 2026
Recovery progress after the 2026-08-24 power interruptions:
I am leaving this issue open: both propagation/actuation PRs still need merge, the requested rollout/remediation pass remains separately enumerable, and the bonus dangling-reference/submodule/footer guards are not claimed complete.
feat(fleet): add session-detritus archiver (#489)
feat(rules): execute standards HYP-S009 (#718)
hyperpolymath commentedon Aug 25, 2026
2026-08-25 — all three cited PRs are now MERGED
standards#624, gitbot-fleet#489 and hypatia#718 all merged 2026-08-24. The rule
hypatia-rules/implementation-inside-canon.a2mlis in-tree.Remaining: the 74-manifest remediation pass, plus the dangling-ref / submodule / footer guards.
Related and worth folding in: #635 child 3 proposes a sibling detector for RSR-shaped projects nested inside unrelated repos — the same shape as implementation-inside-canon, seen from outside. DYADT was found that way (a full implementation orphaned inside
patallm-gallery). The two rules should probably share machinery.Verified 2026-08-25 against live GitHub, not local checkouts.
hyperpolymath commentedon Aug 27, 2026
Re-verified 2026-08-27 — closing: both deliverables exist, with one caveat worth recording
Item 1 — implementation-inside-canon detector. Present and enforcing:
standards/hypatia-rules/implementation-inside-canon.a2mlstandards/scripts/check-implementation-inside-canon.sh(documented as HYP-S009)lib/rules/implementation_inside_canon.ex, withtest/rules/implementation_inside_canon_test.exsand a workinglib/rules/rule_loader.exItem 2 — session-detritus auto-archiver. Present:
standards/scripts/auto-archive-session-detritus.sh+scripts/tests/wave9-session-detritus-test.shgitbot-fleet/scripts/fix-session-detritus.sh+tests/fix-session-detritus-smoke.sh, registered inscripts/fix-script-registry.jsonstandards/scripts/check-implementation-inside-canon.shis referenced by no workflow and no Justfile. The real enforcement path is the hypatia rule; the shell script is an unwired reference. That is fine — the rule is enforcing — but anyone reading the script and assuming it gates something would be wrong.Item 3 (the submodule-truth guard) belongs to #493 and stays there; #493 remains open.
Closing on items 1 and 2 being delivered and item 3 being tracked elsewhere.