Conversation
…ath; Aaron 2026-05-03 'fully converted' directive) Aaron 2026-05-03 directive: "we should clean up oh sh and any oh sh wehre we have the ts i thought we were fully converted" + carve-out "we need install graph sh files don't forget to go to the devloper where they live but after install it's ts was have a common base". This PR removes 13 zero-ref .sh files in tools/hygiene/ where .ts equivalents exist. All are post-install (run by tick discipline, hygiene checks, etc. — bun is available). Install-graph .sh files under tools/setup/ stay (pre-bun chicken-and-egg). Removed (13): - append-tick-history-row.sh - audit-agencysignature-main-tip.sh - audit-cross-platform-parity.sh - audit-git-hotspots.sh - audit-machine-specific-content.sh - audit-md032-plus-linestart.sh - audit-missing-prevention-layers.sh - audit-post-setup-script-stack.sh - audit-tick-history-bounded-growth.sh - capture-tick-snapshot.sh - check-no-op-cadence-pattern.sh (just-merged sibling per #1366) - counterweight-audit.sh - validate-agencysignature-pr-body.sh Deferred (4 referenced .sh): - audit-memory-index-duplicates.sh (4 refs) - audit-memory-references.sh (4 refs) - check-archive-header-section33.sh (1 ref) - check-no-conflict-markers.sh (1 ref) - check-tick-history-order.sh (1 ref) These need reference updates first before the .sh can safely be removed. Also: AUTONOMOUS-LOOP.md Step 0a — removed "Bash sibling .sh" carve-out text since the no-op-cadence-pattern.sh is now removed; Step 0a is .ts-only. Reference: any future scripts/CI/hooks that need to invoke these should call the .ts version directly via bun.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8d8044ea08
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,81 +0,0 @@ | |||
| #!/usr/bin/env bash | |||
There was a problem hiding this comment.
Keep tick-order remediation path executable
Deleting tools/hygiene/append-tick-history-row.sh breaks the remediation path still printed by both tick-order checkers (tools/hygiene/check-tick-history-order.sh:136 and tools/hygiene/check-tick-history-order.ts:144), so when the chronological-order check fails, contributors are directed to a command that now exits with No such file or directory instead of providing a fix path. This turns a recoverable hygiene failure into a dead-end and should be resolved by updating those check messages (or providing a compatibility wrapper) before removing the .sh entrypoint.
Useful? React with 👍 / 👎.
| @@ -1,140 +0,0 @@ | |||
| #!/usr/bin/env bash | |||
There was a problem hiding this comment.
Preserve documented hygiene entrypoint before deletion
Removing tools/hygiene/audit-post-setup-script-stack.sh leaves authoritative operational docs pointing at a non-existent command (for example docs/POST-SETUP-SCRIPT-STACK.md:145 and docs/FACTORY-HYGIENE.md:94), so the documented cadence for script-stack hygiene can no longer be executed as written. Because these are current-state process docs (not archival notes), this introduces immediate documentation/runtime drift; the docs should be migrated to the .ts command (or a shim retained) in the same change.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR continues the hygiene-tooling TypeScript+Bun migration by removing 13 post-setup tools/hygiene/*.sh scripts that now have .ts equivalents, and updates the autonomous-loop docs to describe the tick-start check as TS-only.
Changes:
- Delete 13
tools/hygiene/*.shscripts that are intended to be superseded by.tsimplementations. - Update
docs/AUTONOMOUS-LOOP.mdStep 0a to remove the “bash sibling” carve-out and keep the command TS-only.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tools/hygiene/append-tick-history-row.sh | Removed bash helper (intended TS supersession). |
| tools/hygiene/audit-agencysignature-main-tip.sh | Removed bash auditor (intended TS supersession). |
| tools/hygiene/audit-cross-platform-parity.sh | Removed bash parity audit (intended TS supersession). |
| tools/hygiene/audit-git-hotspots.sh | Removed bash hotspots audit (intended TS supersession). |
| tools/hygiene/audit-machine-specific-content.sh | Removed bash machine-content audit (intended TS supersession). |
| tools/hygiene/audit-md032-plus-linestart.sh | Removed bash MD032 audit (intended TS supersession). |
| tools/hygiene/audit-missing-prevention-layers.sh | Removed bash meta-audit (intended TS supersession). |
| tools/hygiene/audit-post-setup-script-stack.sh | Removed bash post-setup audit (intended TS supersession). |
| tools/hygiene/audit-tick-history-bounded-growth.sh | Removed bash bounded-growth audit (intended TS supersession). |
| tools/hygiene/capture-tick-snapshot.sh | Removed bash snapshot helper (intended TS supersession). |
| tools/hygiene/check-no-op-cadence-pattern.sh | Removed bash no-op cadence check (intended TS supersession). |
| tools/hygiene/counterweight-audit.sh | Removed bash counterweight audit (intended TS supersession). |
| tools/hygiene/validate-agencysignature-pr-body.sh | Removed bash validator (intended TS supersession). |
| docs/AUTONOMOUS-LOOP.md | Removes the “bash sibling” text so Step 0a is TS-only. |
Comments suppressed due to low confidence (7)
tools/hygiene/audit-cross-platform-parity.sh:1
- P1: This script is deleted in this PR, but
docs/FACTORY-HYGIENE.mdstill referencestools/hygiene/audit-cross-platform-parity.shas the implementation of the parity audit. Deleting the file without updating those references will leave a dead/incorrect pointer. Please switch the documentation to the.tsentrypoint (or keep a.shshim) so the row’s “Checks / enforces” column stays accurate.
tools/hygiene/append-tick-history-row.sh:1 - P1: This script is deleted in this PR, but it’s still referenced as an available helper in
tools/hygiene/check-tick-history-order.{sh,ts}output/help text and in multiple docs/backlog/history entries. After deletion, those hints will point to a non-existent command. Either update the callers/docs to reference the.tstool, or keep a.shshim so the referenced helper remains valid.
tools/hygiene/check-no-op-cadence-pattern.sh:1 - P2: With this
.shsibling removed,tools/hygiene/check-no-op-cadence-pattern.tscurrently has header text implying the bash version still exists and is kept in sync. Please update that TS header (and any other docs that claim a.shsibling remains) so the repo doesn’t advertise a non-existent entrypoint.
tools/hygiene/validate-agencysignature-pr-body.sh:1 - P1: This script is deleted in this PR, but there are still in-repo references that expect
tools/hygiene/validate-agencysignature-pr-body.shto exist (e.g.docs/active-trajectory.md,docs/0-0-0-readiness/CLASSIFICATION.md, and others). Either update those references to the.tsentrypoint (and adjust any usage text accordingly) or keep a small.shshim that forwards to the TypeScript/Bun implementation so existing docs/links don’t break.
tools/hygiene/counterweight-audit.sh:1 - P1: This script is deleted in this PR, but
.claude/skills/counterweight-audit/SKILL.md(current-state surface) still instructs runningtools/hygiene/counterweight-audit.sh. That will now fail for anyone invoking the skill as written. Please update the skill text to use the.tstool (or keep a.shshim that forwards to the TS implementation) so the documented entrypoint remains runnable.
tools/hygiene/capture-tick-snapshot.sh:1 - P1: This script is deleted in this PR, but
docs/hygiene-history/loop-tick-history.mdanddocs/hygiene-history/session-snapshots.mdstill link to / referencetools/hygiene/capture-tick-snapshot.sh. Those links become dead and the documented commands won’t work. Update those docs to point atcapture-tick-snapshot.ts(or keep a.shshim) so the snapshot-pinning guidance remains actionable.
tools/hygiene/audit-md032-plus-linestart.sh:1 - P1: This script is deleted in this PR, but
docs/FACTORY-HYGIENE.md(row #56) and other docs still citetools/hygiene/audit-md032-plus-linestart.shas the authoritative audit command. After this deletion those references become incorrect. Please update the cited tool path/usage to the.tsversion (or keep a.shshim) to avoid documentation drift and dead references.
… follow-through on Aaron 'fully converted' directive) (#1373) PR #1371 removed 13 .sh files in tools/hygiene/. Six memory files referenced 5 of them. This PR mechanically replaces .sh with .ts in those memos so future-Otto's grep for the tool name resolves to the file that exists. Files updated: - memory/feedback_skills_as_carved_sentences_knowledge_in_docs_datavault_2_0_pattern_aaron_2026_05_03.md - memory/feedback_cross_platform_parity_hygiene_deferred_enforcement.md - memory/feedback_enforcing_intentional_decisions_not_correctness.md - memory/feedback_otto_342_heartbeat_row_is_existence_marker_aaron_existential_framing_the_system_is_you_is_your_life_worth_the_cost_2026_04_26.md - memory/project_memory_md_over_cap_2_4x_drift_surfaced_by_snapshot_tool_compaction_candidate_2026_04_23.md - memory/feedback_decision_audits_for_everything_that_makes_sense_mini_adr.md Replacements (5 tool names, mechanical sed): - tools/hygiene/audit-cross-platform-parity.sh → .ts - tools/hygiene/audit-missing-prevention-layers.sh → .ts - tools/hygiene/audit-tick-history-bounded-growth.sh → .ts - tools/hygiene/capture-tick-snapshot.sh → .ts - tools/hygiene/check-no-op-cadence-pattern.sh → .ts Decision-graph edge preservation per B-0141 (brittle-pointer rewriter spec): tool-rename creates broken edges in memory; mechanical rewrite restores edges. Cleanup completes Aaron's "fully converted" directive at the cross-reference layer.
…arch-first miss caught) (#1374)
…t tier per #1376) (#1380) The gate.yml workflow ran three lint scripts as .sh: - tools/hygiene/check-tick-history-order.sh - tools/hygiene/check-no-conflict-markers.sh - tools/hygiene/check-archive-header-section33.sh All three have a TS+Bun port in tools/hygiene/<name>.ts with full output / exit-code parity verified locally (179 tick-history rows non-decreasing; 0 conflict-marker violations; 0 §33 archive-header violations). Why this PR closes the .sh→.ts cleanup loop: - #1377 converted memory-index-duplicate-lint.yml (lowest-risk — only fires on memory/MEMORY.md changes) - #1378 converted memory-reference-existence-lint.yml (lowest-risk — only fires on memory/** changes) - This PR converts gate.yml's three lint jobs (highest-risk — fires on every PR via the all-PR gate critical path) - #1379 (rerere ALLOWLIST parity) was a prerequisite — the .ts port of check-no-conflict-markers had to ALLOWLIST the rerere memo to match the .sh version BEFORE running on every PR After this lands and CI verifies green, the 5 deferred .sh files can be removed (audit-memory-index-duplicates.sh, audit-memory-references .sh, check-archive-header-section33.sh, check-no-conflict-markers.sh, check-tick-history-order.sh) — completing the .sh cleanup the maintainer asked for in #1371 ("we should clean up .sh and any .sh where we have the .ts I thought we were fully converted"). Conversion pattern (identical for all three jobs): - Add "Install toolchain via three-way-parity script" step calling ./tools/setup/install.sh — same shape as #1377 + #1378 - Change `run: tools/hygiene/<name>.sh` to `run: bun tools/hygiene/<name>.ts` Three lint jobs run in parallel (one job each), so the bun install cost is bounded by the slowest job's path — does not compound.
…conversion completed (#1382) The maintainer asked in #1371: *"we should clean up .sh and any .sh where we have the .ts I thought we were fully converted."* Initially 13 zero-ref .sh files were removed; 5 were deferred because they were still referenced from CI workflows. Those 3 workflows are now all converted (#1377 + #1378 + #1380), and #1379 fixed the prerequisite allowlist parity bug in check-no-conflict-markers.ts. Removed: - tools/hygiene/audit-memory-index-duplicates.sh (→ memory-index-duplicate-lint.yml via #1377) - tools/hygiene/audit-memory-references.sh (→ memory-reference-existence-lint.yml via #1378) - tools/hygiene/check-archive-header-section33.sh (→ gate.yml via #1380) - tools/hygiene/check-no-conflict-markers.sh (→ gate.yml via #1380) - tools/hygiene/check-tick-history-order.sh (→ gate.yml via #1380) All 5 .ts ports run clean locally post-deletion (exit 0; same output as the .sh equivalents — verified manually before this commit). Surface-update set (active substrate that pointed at the .sh as a current tool): - tools/hygiene/LOST-FILES-LOCATIONS.md — survey command + composes-with pointers updated from .sh to .ts (the only runtime-bound reference) - docs/trajectories/typescript-bun-migration/RESUME.md — Bucket D listing updated; 5 entries removed; new "Removed 2026-05-03" note added explaining why - tools/hygiene/audit-orphan-role-refs.sh — comment composes-with template updated to .ts - tools/hygiene/check-role-ref-on-current-state-surfaces.sh — comment composes-with sibling-pattern updated to .ts - tools/hygiene/sort-tick-history-canonical.ts — comment composes-with detection-check updated to .ts - tools/hygiene/check-tick-history-shard-schema.sh — comment composes-with legacy-monolithic-check updated to .ts - tools/lint/doc-comment-history-audit.baseline — 2 entries for the deleted audit-memory-references.sh removed (else baseline would diff against the next audit run that no longer matches a deleted path) Historical surfaces deliberately NOT updated (pure history record): - docs/hygiene-history/** (tick shards + loop-tick-history.md) - docs/pr-preservation/** (preservation logs) - docs/research/** (research reports) - memory/** (history-surface attribution carve-out) - docs/backlog/** rows (describe past tickets that referenced .sh) - docs/0-0-0-readiness/CLASSIFICATION.md (sync-classification audit of past LFG↔AceHack divergence) Closes the .sh→.ts cleanup loop opened in #1371. Composes with #1373 + #1374 (stale-ref sweeps that caught earlier comprehensive-ref-check misses).
…1382) + math-proofs assessment opened (#1383) (#1384) #1382 merged removing the 5 deferred .sh files (audit-memory-index- duplicates, audit-memory-references, check-archive-header-section33, check-no-conflict-markers, check-tick-history-order). 7 active substrate surfaces updated (LOST-FILES-LOCATIONS.md + RESUME.md + 4 sibling-tool comments + baseline file). Closes the cleanup loop the maintainer opened in #1371. PR #1383 opens the honest math-proofs assessment per the maintainer 2026-05-03 ask: synthesis doc grading every formal-verification artifact A/B/C against peer-review readiness. P0 outstanding work identified: Lean lake-build CI job + Stryker CI + registry rows for in-CI TLA+ specs + peer-review email draft. Discipline lesson: honest-assessment-as-peer-review-prerequisite — external reviewers need a grade map, not a re-verification sweep.
…05-03 (#1385) * hygiene(tick-history): 2026-05-03T11:30Z — .sh cleanup loop closed (#1382) + math-proofs assessment opened (#1383) #1382 merged removing the 5 deferred .sh files (audit-memory-index- duplicates, audit-memory-references, check-archive-header-section33, check-no-conflict-markers, check-tick-history-order). 7 active substrate surfaces updated (LOST-FILES-LOCATIONS.md + RESUME.md + 4 sibling-tool comments + baseline file). Closes the cleanup loop the maintainer opened in #1371. PR #1383 opens the honest math-proofs assessment per the maintainer 2026-05-03 ask: synthesis doc grading every formal-verification artifact A/B/C against peer-review readiness. P0 outstanding work identified: Lean lake-build CI job + Stryker CI + registry rows for in-CI TLA+ specs + peer-review email draft. Discipline lesson: honest-assessment-as-peer-review-prerequisite — external reviewers need a grade map, not a re-verification sweep. * docs(research): substrate-discovery via Zeta-native-AOT scoping 2026-05-03 Architect-within-authority decision (per CLAUDE.md "don't ask permission within authority scope — only two real gates"): yes, Zeta-native-AOT IS the best long-term solution for the custom substrate index the maintainer 2026-05-03 named. Three load-bearing reasons override the classical-PM defer-the- dogfooding default: 1. The workload IS Z-set algebra by definition. file-add / file-remove / file-modify is exactly the delta-stream the IVM primitives consume (IndexedZSet.fs + Incremental.fs + Operators.fs). 2. NativeAOT validates a deployment story we already need (cron / CI / agent-loop ticks all want fast startup). Substrate-discovery is the cheapest first try. 3. Pre-v1 dogfooding is HIGHER leverage than deferring. Per the 2026-05-03 math-proofs assessment, the core algebra is A-grade verified; the API surface needs real-world exercise. Alternatives considered and rejected: TS+sqlite-vec/DuckDB (faster but doesn't dogfood); live-off-the-land via Skill router + grep (punts architecture); hybrid TS+Zeta (two systems, more complexity). Doc covers: substrate types we index (memory + skill + agent + rule + command + BACKLOG + tick shards + research + doc cross-refs + code symbols), 6 query workloads with target latencies, operator mapping per query, NativeAOT deployment shape (CLI + watcher daemon + library), 4-phase migration plan with parallel-run retirement gates, 7-row risk register, composes-with cross-links. Phase 0 next concrete work: PoC validating toolchain end-to-end (2-3 ticks; F# project + NativeAOT publish + smoke test). Header carries §33-style Scope/Attribution/Operational status/ Non-fusion disclaimer; check-archive-header-section33.ts passes. Operational status: research-grade.
Summary
Aaron 2026-05-03 directive: "we should clean up oh sh and any oh sh wehre we have the ts i thought we were fully converted" + carve-out "we need install graph sh files don't forget to go to the devloper where they live but after install it's ts was have a common base".
13 zero-ref .sh files in `tools/hygiene/` removed (post-install — bun available). Install-graph .sh files under `tools/setup/` stay (pre-bun chicken-and-egg).
Removed (13)
`append-tick-history-row`, `audit-agencysignature-main-tip`, `audit-cross-platform-parity`, `audit-git-hotspots`, `audit-machine-specific-content`, `audit-md032-plus-linestart`, `audit-missing-prevention-layers`, `audit-post-setup-script-stack`, `audit-tick-history-bounded-growth`, `capture-tick-snapshot`, `check-no-op-cadence-pattern`, `counterweight-audit`, `validate-agencysignature-pr-body`.
Deferred (4 referenced)
These need reference updates first:
Also
`docs/AUTONOMOUS-LOOP.md` Step 0a: removed "Bash sibling `.sh` for non-bun environments" carve-out text since the no-op-cadence-pattern.sh is gone; Step 0a is .ts-only now.
Test plan