Skip to content

[Bug]: /aidlc park and /aidlc team-board are misread as freeform work and offer to create a second intent #1109

Description

@mahezsh

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

  1. Copy a generated dist/claude/ into an empty project.
  2. bun .claude/tools/aidlc-orchestrate.ts next park
  3. bun .claude/tools/aidlc-utility.ts intent-create --scope poc --label probe
  4. bun .claude/tools/aidlc-orchestrate.ts next park
  5. 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

  • OS: macOS 15
  • bun 1.3.14

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions