Skip to content

feat: add /swarm-builder:design interview command (#30) - #36

Merged
fdaviddpt merged 3 commits into
mainfrom
fix/30
Sep 20, 2026
Merged

fdaviddpt merged 3 commits into
mainfrom
fix/30

Conversation

@fdaviddpt

Copy link
Copy Markdown
Contributor

Adds /swarm-builder:design -- a prose-only interview command that walks a user from nothing to a swarm.json proposal, per issue #30's shape. Ordered after #28 and #29, both already shipped (changelog.d/28.added.md, changelog.d/29.added.md).

What it does

  1. Interview. One question at a time, in the user's own domain -- never in agent names -- until the graph is decidable: what runs, what triggers it, which actions are irreversible and who may take them, where a human must stay in the loop, what a run may cost.
  2. Restatement. "Here is what I think you need," in the user's own words. They correct it -- the cheapest place to catch wrong-but-plausible, before anything is written.
  3. Proposal. The fewest agents that satisfy the need, as swarm.json -- structure only. Never starts from examples/claude-oss.swarm.json or any preset. cost_tokens is the one schema-optional catalogue field and is never guessed, left absent instead; every other required field (summary, model, tools, authority, lifetime, inherits, budget_bytes, context, scripts) has to be settled by the interview.
  4. Picture. Renders via /swarm-builder:read, loops step 3-4 until the user confirms the picture is right.
  5. Hand off. /swarm-builder:compile creates the MD skeletons once the picture is confirmed.

Review

Two self-review rounds (concurrent Explore + oss:auditor spawns each), seven findings total, all fixed:

  • schema-invalid "leave any field absent" guidance narrowed to cost_tokens only
  • a stale (planned, #30) marker in an unrelated already-merged changelog fragment
  • a gameable substring-only test replaced with regex assertions pinned to the actual prohibition sentences
  • a code-fence guard test that only caught the literal ```bash spelling, generalized twice (once for other language tags, once for indented fences inside numbered-list continuation lines)
  • this issue's own changelog fragment carrying the same imprecise wording the command file itself was already fixed to avoid
  • a test that didn't actually pin the sentence its own fix commit added

Closes #30.

[AI-generated]

Florian DAVID added 3 commits September 20, 2026 16:44
…r, weak test coverage (#30)

Co-Authored-By: Max <noreply>
… indented fence gap, pin the required-fields sentence (#30)

Co-Authored-By: Max <noreply>
@fdaviddpt
fdaviddpt merged commit 9de0277 into main Sep 20, 2026
10 checks passed
@fdaviddpt
fdaviddpt deleted the fix/30 branch September 20, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

design: interview the user and propose swarm.json, validated on the picture

1 participant