config-audit/commands
Kjell Tore Guttormsen b85919f2ec fix(commands): close the promises the command templates could not keep
DEL B chunk `interview` (+ discover/status/cleanup/help). Fasit written before
the run predicted 8 defects and refuted 4 candidates; all 8 confirmed, all 4
refutations held, and three predictions turned out too narrow.

- M-BUG-36: `drift --list` reached the command as 0 bytes. drift-cli accepted
  --output-file but list mode ignored it, and the listing goes to stderr, which
  the command discards per ux-rules rule 2. Fixing the caller alone would not
  have helped.
- M-BUG-37: feature-gap's "Create backup" step ran fix-cli without --apply.
  Dry-run is the default, so no backup existed (backupId: null) while the
  command went on to edit config believing it could roll back.
- M-BUG-38: fix-cli told users to recover with scanners/rollback-cli.mjs, which
  does not exist. Dead reference in the one message read after a bad fix.
- M-BUG-21 fourth arm: five templates carried literal [--global]/[--full-machine]
  inside executable bash blocks. A bracketed placeholder does not start with a
  dash, so every scanner's arg loop takes it as the scan target.
- interview and analyze never said which session they act on; interview could
  rewind a finished session; cleanup interpolated an unvalidated id into rm -rf
  (an empty id deletes every session); status advertised a `resume` command that
  does not exist and documented an `all` argument it never parsed.

TDD: 9 red tests first, including a machine sweep for dead /config-audit
references and for bracketed flags in bash blocks. Suite 1432 -> 1441/0.
Frozen v5.0.0 snapshots untouched; --raw/--json contracts unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UGvA1uUQn2hPBPMaCKK6x3
2026-07-31 21:27:07 +02:00
..
analyze.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
campaign.md docs(campaign): render machine-wide token bill + refresh-tokens surface (v5.9 B2b-3) 2026-06-23 17:28:05 +02:00
cleanup.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
config-audit.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
discover.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
drift.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
feature-gap.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
fix.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
help.md fix(commands): wire knowledge-refresh into router + help 2026-06-23 10:31:05 +02:00
implement.md fix(rollback): restore the backup path contract the engine and the commands disagreed on 2026-07-31 17:23:30 +02:00
interview.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
knowledge-refresh.md feat(knowledge): knowledge-refresh — living register, deterministic stale core + web poll (v5.7 Chunk 3) 2026-06-21 19:22:57 +02:00
manifest.md feat(mft): v5.6 B1 — load-pattern accounting in manifest 2026-06-20 17:48:55 +02:00
optimize.md feat(optimize): add --subtract, the subtraction axis, behind a deterministic floor 2026-07-31 16:24:51 +02:00
plan.md feat(humanizer): update action command templates [skip-docs] 2026-05-01 19:50:47 +02:00
plugin-health.md fix(plugin-health): make the command able to read what the scanner found 2026-07-31 21:08:32 +02:00
posture.md fix(plugin-health): make the command able to read what the scanner found 2026-07-31 21:08:32 +02:00
rollback.md fix(rollback): restore the backup path contract the engine and the commands disagreed on 2026-07-31 17:23:30 +02:00
status.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
tokens.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00
whats-active.md fix(commands): close the promises the command templates could not keep 2026-07-31 21:27:07 +02:00