Description
The orchestrator's own public verbs are unreachable from the /aidlc command surface. The skill forwards $ARGUMENTS verbatim to next, and parseNextFlags has terminal branches for read-only flags (Branch 1), --config (1a), and workspace nouns (1b), but none for park or team-board. Both fall through scope detection into the freeform funnel, so a typed /aidlc park is treated as a description of work.
The dispatcher advertises both as top-level routes (aidlc --help lists park [args] and team-board [--snapshot]), and there is no flag spelling to fall back on. The comment above Branch 1 records that it exists because a conductor once mis-routed a read-only command into a bare next and rolled into the active stage; Branch 1b was added to mirror it, and the sole-token help rule was added because help "offered to create an intent literally named help". This is the same class for the remaining two public verbs.
Steps to Reproduce
- Copy a generated
dist/claude/ into an empty project.
bun .claude/tools/aidlc-orchestrate.ts next park
bun .claude/tools/aidlc-utility.ts intent-create --scope poc --label probe
bun .claude/tools/aidlc-orchestrate.ts next park
- Same two runs with
team-board in place of park.
Expected Behavior
Step 2 and 4 return a print directive naming aidlc park (or its bun .claude/tools/aidlc.ts park form) with the same terminal contract Branch 1 uses, so the conductor runs park and acts on the parked directive. team-board returns a read-only print naming the board command. Neither ever reaches scope detection or the new-work offer.
Actual Behavior
Step 2 (empty workspace):
{"kind":"ask","question":"None of the ready-made plans is an obvious fit for: \"park\". I can work out a plan tailored to this task (recommended: reply \"compose\"), ..."}
Step 4 (active workflow):
{"kind":"ask","ask_type":"new-work-routing","response_route":"next","question":"Work is already in progress on: \"[Project description]\". You said: \"park\". Is this (1) part of that work - continue it; (2) a separate new piece of work - Yes, set it up alongside the current one as \"classic\" work without changing it; or (3) a change to how the remaining plan is shaped?", ...}
A user who typed the documented verb is offered a second intent, and choosing option 2 creates one. team-board behaves identically. unpark does too, although its public spelling is /aidlc --resume, so a pointer there would be enough.
AI-DLC Version
v2 (current on main)
Release / Commit
2.8.2, aadc8323
AI-DLC Phase
Not phase-specific
Harness
All. Reproduced by invoking the engine directly, so every harness that forwards $ARGUMENTS to next is affected. Observed on Claude Code.
Environment
Additional Context
Proposed fix, which I am happy to open: a Branch 1c beside 1b that recognises a sole leading park (sole-token, mirroring the help rule, because park mutates) and a leading team-board with its allowlisted --space, --intent, --snapshot args, emitting the same shape of print directive; unpark gets an error directive pointing at --resume. The verb set lives in aidlc-lib.ts next to READ_ONLY_FLAGS so classifyTerminalCommand and the Kiro verb-intercept seam keep parity (both stay null, on the engine path, the way compose and create-intent do). Tests in t114 and t178, plus CLI guide entries for both commands.
Description
The orchestrator's own public verbs are unreachable from the
/aidlccommand surface. The skill forwards$ARGUMENTSverbatim tonext, andparseNextFlagshas terminal branches for read-only flags (Branch 1),--config(1a), and workspace nouns (1b), but none forparkorteam-board. Both fall through scope detection into the freeform funnel, so a typed/aidlc parkis treated as a description of work.The dispatcher advertises both as top-level routes (
aidlc --helplistspark [args]andteam-board [--snapshot]), and there is no flag spelling to fall back on. The comment above Branch 1 records that it exists because a conductor once mis-routed a read-only command into a barenextand rolled into the active stage; Branch 1b was added to mirror it, and the sole-tokenhelprule was added becausehelp"offered to create an intent literally named help". This is the same class for the remaining two public verbs.Steps to Reproduce
dist/claude/into an empty project.bun .claude/tools/aidlc-orchestrate.ts next parkbun .claude/tools/aidlc-utility.ts intent-create --scope poc --label probebun .claude/tools/aidlc-orchestrate.ts next parkteam-boardin place ofpark.Expected Behavior
Step 2 and 4 return a
printdirective namingaidlc park(or itsbun .claude/tools/aidlc.ts parkform) with the same terminal contract Branch 1 uses, so the conductor runs park and acts on theparkeddirective.team-boardreturns a read-onlyprintnaming the board command. Neither ever reaches scope detection or the new-work offer.Actual Behavior
Step 2 (empty workspace):
Step 4 (active workflow):
A user who typed the documented verb is offered a second intent, and choosing option 2 creates one.
team-boardbehaves identically.unparkdoes too, although its public spelling is/aidlc --resume, so a pointer there would be enough.AI-DLC Version
v2 (current on main)
Release / Commit
2.8.2,
aadc8323AI-DLC Phase
Not phase-specific
Harness
All. Reproduced by invoking the engine directly, so every harness that forwards
$ARGUMENTStonextis affected. Observed on Claude Code.Environment
Additional Context
Proposed fix, which I am happy to open: a Branch 1c beside 1b that recognises a sole leading
park(sole-token, mirroring thehelprule, because park mutates) and a leadingteam-boardwith its allowlisted--space,--intent,--snapshotargs, emitting the same shape ofprintdirective;unparkgets an error directive pointing at--resume. The verb set lives inaidlc-lib.tsnext toREAD_ONLY_FLAGSsoclassifyTerminalCommandand the Kiro verb-intercept seam keep parity (both staynull, on the engine path, the waycomposeandcreate-intentdo). Tests in t114 and t178, plus CLI guide entries for both commands.