docs: Pillar 3 Phase A — script & menu audit inventory

bin/utils/nomarchy-docs-scripts walks features/scripts/utils,
core/system/scripts, and themes/engine/scripts; emits a populated
SCRIPTS.md with three tables:

- Scripts (136): location, top callers, status (kept / unused?).
- Missing references: tokens grepped from code with no script file
  (75 rows tagged missing).
- Menu items: every case arm in nomarchy-menu's show_*_menu
  functions, mapped to its target command and tagged.

Status histogram: 158 kept, 75 missing, 45 unused?. Phase B opens
per-batch PRs that refine missing → port-from-omarchy /
delete-dead / stub-with-notify, and unused? → kept / delete-dead.

Roadmap and AGENT.md updated to point at the generator and
explain the Phase B workflow. Now-column row replaced with the
Phase B handoff.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-04-25 21:59:06 +01:00
parent bf30cd07d8
commit 86bc0e570b
4 changed files with 536 additions and 76 deletions

View File

@@ -102,15 +102,13 @@ If the user asks "what's next?", reply with the Now column items in 23 senten
This is the **largest single open work item**. Phase A (inventory) hasn't run yet; `docs/SCRIPTS.md` is just scaffolding. The user explicitly flagged this pillar as important.
To pick it up:
Phase A shipped. The inventory lives at [`docs/SCRIPTS.md`](SCRIPTS.md) and is regenerated by:
1. Run the three generator commands at the top of `docs/SCRIPTS.md`.
2. Populate the **Scripts** table with one row per `nomarchy-*` file (location, callers, status `unknown` for now).
3. Populate the **Menu items** table by walking each `show_*_menu` function in `features/scripts/utils/nomarchy-menu`.
4. Tag every row with one of: `kept` / `port-from-omarchy` / `delete-dead` / `stub-with-notify` / `unknown`. Triage live, but leave anything ambiguous as `unknown`.
5. Land it as **one PR** (the inventory PR). Don't start porting in the same change.
```bash
./bin/utils/nomarchy-docs-scripts --out docs/SCRIPTS.md
```
Then Phase B is per-script: one PR per ~10 scripts, branch named `wave/audit-<batch>`. Each PR closes specific rows in `docs/SCRIPTS.md`.
It tags every row with one of `kept` / `unused?` / `missing`. Phase B is the per-batch porting/removal: pick ~10 rows tagged `missing` or `unused?`, decide one of `port-from-omarchy` / `delete-dead` / `stub-with-notify`, and ship as one PR per batch on a `wave/audit-<batch>` branch. Each PR description should reference the rows it closes; reviewers spot-check that every caller of a removed/renamed script is updated.
---