Files
reliquary/docs/workpad/reports/2026-10-17-00-gremlins-mvp-cuts.md
T

2.3 KiB

Gremlins MVP: unrequested-surface calls

  • Author model: claude-sonnet-5-5 · Date: 2026-10-17 · Branch gremlins-mvp @ cfeb1bf
  • Source: phase review §2. The user ruled on the rows below: keep the useful ones, cut the rest, one-line reason each. This commit records the calls; the cuts follow in the next commit.
# Item Call Reason
2 briefs/<J>.md: full prompt per job keep Debugging aid.
3 Ledger torn-last-line repair keep Protects the ledger after a hard stop.
4 In-process threading.Lock around ledger append cut Each spawn is its own process, so it guards nothing; the spec says "without locks".
5 MODEL_RE, aliases refused at init keep An alias would change the fingerprint and break cache hits; B1 asks for a full id.
6 EFFORTS choices, default high keep Trivial argparse guard.
7 Tool deny list (Bash(claude:*), git push/rebase/reset --hard) keep Headless unattended gremlins must not recurse or rewrite history.
8 SPIRE_GREMLIN_CHILD=1 in the child env cut Rider: the refusal it served was dropped, so it is leftover.
11 refused / model_refused status case cut Not in the spec's classify; the harness substitutes unlisted models silently, so error covers it.
12 Stream fields tracked and never read (init, msg_ids, _ids, events, turns) cut Never read.
13 mismatch in usage_from_result cut Rider: computed and never read.
14 wrote_only_5m cut Rider: never called.
16 NAME_RE on base/job names keep Names become file paths.
17 Note detection by mtime with 2 s slack cut Replace with a plain existence check of notes/<J>.md, since spawn refuses an existing job name (#20).
22 base_state in spawn output cut status reports warmth and cache reports the outcome.
23 init defaults cwd to the git toplevel keep cwd is in the fingerprint; a stable default avoids cache misses.
25 stderr to raw/<J>.err keep Cheap debugging aid.
26 Reader join timeout 10 s keep Without it an orphan holding stdout hangs the helper (spec §7 leftover).
28 Unused ss=None injection parameter in call.py cut Used by no caller.