docs(rules): Rule 0 — mark the 3 legacy hygiene .sh violations as cleared#3048
Merged
AceHack merged 2 commits intoMay 13, 2026
Merged
Conversation
…ared The "Legacy violations" callout in `.claude/rules/rule-0-no-sh-files.md` listed three `tools/hygiene/audit-*.sh` files as outstanding TS-port debt. All three have since been ported to `.ts` and the corresponding `.sh` files removed from the tree: tools/hygiene/audit-lost-files.sh → audit-lost-files.ts tools/hygiene/audit-trajectories.sh → audit-trajectories.ts tools/hygiene/audit-backlog-items.sh → audit-backlog-items.ts Update the rule to reflect the cleared state. Also surface the one remaining design question that an `.sh` audit raises: the Lior agent's `.gemini/service/install-lior-service.sh` + `lior-loop.sh` are install- graph by intent but live outside `tools/setup/`. Note that as a separate design question (out-of-scope for Rule 0 itself) rather than silently leaving the rule's "only tools/setup/" phrasing ambiguous. Substrate-hygiene continuation of the 9 → 0 dangling-ref sweep started this session. Co-Authored-By: Claude <noreply@anthropic.com>
…inues Records: PR #3046 (Otto-Desktop's B-0449 design) merged since previous tick. Speculative pickup audited `.claude/rules/` for staleness adjacent to the session's hygiene sweep; found `rule-0-no-sh-files.md` still naming three already-ported `tools/hygiene/audit-*.sh` files as outstanding TS-port debt. PR #3048 updates the rule + surfaces the `.gemini/service/*.sh` design question separately. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates Rule 0 documentation to reflect that the previously listed tools/hygiene/audit-*.sh scripts have been ported to TypeScript and are no longer outstanding debt, while also recording an open question about .gemini/service/*.sh scripts that appear “install-graph by intent” but sit outside the currently allowed path.
Changes:
- Replace the “Legacy violations” callout with a “cleared 2026-05-13” statement for the three
tools/hygiene/audit-*.shports. - Add a note documenting the remaining
.gemini/service/*.shambiguity relative to the “onlytools/setup/” rule wording.
Comment on lines
+27
to
+35
| **Remaining audit question (out of scope for Rule 0 itself)**: the Lior | ||
| agent's `.gemini/service/install-lior-service.sh` + | ||
| `.gemini/service/lior-loop.sh` live outside `tools/setup/`. They are | ||
| install-graph by intent (Lior's launchd-equivalent service bootstrap) | ||
| but the rule's "only `tools/setup/`" phrasing technically excludes | ||
| them. Resolution is a separate design question — either expand the | ||
| rule's allowed-path list to include agent-specific install-graph | ||
| locations or port / relocate them under `tools/setup/`. Either way, | ||
| NOT a "legacy violation" in the same sense as the cleared three. |
Comment on lines
+27
to
+35
| **Remaining audit question (out of scope for Rule 0 itself)**: the Lior | ||
| agent's `.gemini/service/install-lior-service.sh` + | ||
| `.gemini/service/lior-loop.sh` live outside `tools/setup/`. They are | ||
| install-graph by intent (Lior's launchd-equivalent service bootstrap) | ||
| but the rule's "only `tools/setup/`" phrasing technically excludes | ||
| them. Resolution is a separate design question — either expand the | ||
| rule's allowed-path list to include agent-specific install-graph | ||
| locations or port / relocate them under `tools/setup/`. Either way, | ||
| NOT a "legacy violation" in the same sense as the cleared three. |
AceHack
added a commit
that referenced
this pull request
May 13, 2026
…ap" framing (#3050) * docs(rules): otto-channels card — B-0444 shipped, retire "follow-up gap" framing The Otto inter-surface communication channels reference card listed B-0444 (bus claim envelope worktree field) as a "follow-up gap" in its Composes-with section. PR #3043 shipped that feature 2026-05-13 (merged as 5db892d). Updated the entry to reference the merged PR rather than the row's open-state framing. Sibling staleness cleanup to PR #3048 (Rule 0 legacy-violations update); together they close the rule-callout staleness surfaced by this session's substrate-hygiene sweep. Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 2257Z — dangling refs 9 → 0 on main; otto-channels staleness cleared Records: PR #3047 merged. Verified dangling-dep refs on main went 9 → 0 (the notifier output's `(warning: N dangling dep ref(s))` suffix is now gone entirely). Speculative pickup audited `.claude/rules/` for adjacent stale callouts; found `otto-channels-reference-card.md:82` listing B-0444 as a "follow-up gap" when PR #3043 shipped it. PR #3050 replaces the framing with the merged-PR reference. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <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
The "Legacy violations" callout in
.claude/rules/rule-0-no-sh-files.mdlisted threetools/hygiene/audit-*.shfiles as outstanding TS-port debt. All three have since been ported to.tsand the corresponding.shfiles removed from the tree:.sh).ts)tools/hygiene/audit-lost-files.shaudit-lost-files.tstools/hygiene/audit-trajectories.shaudit-trajectories.tstools/hygiene/audit-backlog-items.shaudit-backlog-items.tstools/hygiene/is now entirely Rule-0-compliant.Surfaced as a side observation
While verifying, I noticed
.gemini/service/install-lior-service.sh+.gemini/service/lior-loop.shlive outsidetools/setup/but are install-graph by intent. The rule's "onlytools/setup/" phrasing technically excludes them. Resolution is a separate design question (expand allowed-path list vs port/relocate). Captured as a NOTE in the rule body rather than silently leaving the ambiguity.Test plan
find . -name "*.sh" -not -path "./tools/setup/*"produces only:references/upstreams/*(vendored upstreams, not ours).gemini/service/*.sh(surfaced in PR body as the remaining design question)/tmp/zeta-rule0-update) per the multi-Otto split-brain patternComposes with
Continuation of this session's substrate-hygiene sweep — alongside #3043, #3044, #3045, #3047, this PR closes the staleness in the rule that flagged outstanding hygiene work that's already done.
🤖 Generated with Claude Code