A walkthrough for demonstrating the swarm pack in action.
- A target repo with
.claude/copied from this pack - Claude Code installed and configured
- (Optional)
ghCLI authenticated for GitHub integration
All demos use the same goal:
Add a
demoswarm versionCLI subcommand that prints JSON with tool version info.
This goal is self-referential: you're building a feature for the pack's own CLI tooling. It's deterministic, offline-friendly, and exercises the pack's core primitives (receipts, mechanical derivation, gating) without inventing a separate "product."
# Create or use a sandbox repo
cd my-project-sandbox/
# Copy the pack
cp -r /path/to/demo-swarm/.claude .Open the sandbox repo in Claude Code. It will discover:
.claude/commands/— slash commands.claude/agents/— subagents.claude/skills/— skills
You say: "Let's start a new feature. Flow 1 captures the intent and produces requirements."
You run:
/flow-1-signal "Add a demoswarm version CLI subcommand that prints JSON with tool version info. Constraints: Must work via bash .claude/scripts/demoswarm.sh version. Output is JSON to stdout. No network calls. Include demoswarm_version, pack_version (if available), git_sha (optional/null-safe)."
What happens:
signal-run-prepestablishes the run directorysignal-normalizerparses the inputrequirements-authorwrites requirementsbdd-authorcreates BDD scenariossignal-cleanupcomputes the receiptgh-issue-managercreates/updates the GitHub issuegh-reporterposts a summary
You show:
.runs/<run-id>/signal/directory with artifactssignal_receipt.jsonwith status and counts- GitHub issue (if
ghis authenticated)
You say: "Now we design the solution. Flow 2 produces architecture and contracts."
You run:
/flow-2-plan
What happens:
run-preplocks onto the existing rundesign-optioneerproposes optionsadr-authorwrites the architecture decisioninterface-designerdefines contractsplan-cleanupcomputes the receipt
You show:
.runs/<run-id>/plan/adr.md.runs/<run-id>/plan/api_contracts.yamlplan_receipt.json
You say: "Flow 3 implements via test/code microloops until the critic is satisfied."
You run:
/flow-3-build
What happens:
test-authorwrites teststest-criticreviews and provides a prose handoff with recommendation- Orchestrator reads the handoff and routes accordingly (rerun, bounce to another agent, or proceed)
code-implementerwrites codecode-criticreviews and provides prose recommendationself-reviewerproduces final reviewbuild-cleanupcomputes the receipt (derives routing fields from prose for audit)repo-operatorcommits changes
You show:
- Test and code files
build_receipt.jsonwith microloop counts- Git commit history
Feature verification:
# The implemented feature should now work
bash .claude/scripts/demoswarm.sh version
# Should output JSON with demoswarm_version, pack_version, git_shaYou say: "Flow 4 drains all PR feedback—CodeRabbit, CI, human reviews—until the worklist is empty."
You run:
/flow-4-review
What happens:
pr-feedback-harvestercollects all feedback (full severity range)review-worklist-writercreates actionable worklist- Worklist loop: fix items, push, re-harvest (may run multiple times if
PARTIAL) review-cleanupcomputes the receipt
You show:
.runs/<run-id>/review/review_worklist.mdreview_receipt.jsonwith status (VERIFIED/PARTIAL)
You say: "Flow 5 verifies the build and recommends merge or bounce."
You run:
/flow-5-gate
What happens:
receipt-checkervalidates build receiptcoverage-enforcerchecks coveragesecurity-scannerruns SASTmerge-deciderissues decision (MERGE/BOUNCE with reason)gate-cleanupcomputes the receipt
You show:
merge_decision.mdwith the verdictgate_receipt.json
You say: "Flow 6 merges to mainline and verifies."
You run:
/flow-6-deploy
What happens:
- Verifies gate passed
deploy-deciderconfirms deployment readinessdeploy-monitorwatches CI/deploymentsmoke-verifierruns health checksdeploy-cleanupcomputes the receipt
You say: "Flow 7 extracts learnings and closes feedback loops."
You run:
/flow-7-wisdom
What happens:
regression-analystanalyzes for regressionslearning-synthesizerextracts lessonsfeedback-appliersuggests improvementswisdom-cleanupcomputes the final receipt
You show:
learnings.mdwisdom_receipt.json- Complete run history in
.runs/<run-id>/
After a complete run:
.runs/<run-id>/
├── run_meta.json
├── signal/
│ ├── requirements.md
│ ├── features/*.feature
│ └── signal_receipt.json
├── plan/
│ ├── adr.md
│ ├── api_contracts.yaml
│ └── plan_receipt.json
├── build/
│ ├── test_summary.md
│ ├── self_review.md
│ └── build_receipt.json
├── review/
│ ├── review_worklist.md
│ └── review_receipt.json
├── gate/
│ ├── merge_decision.md
│ └── gate_receipt.json
├── deploy/
│ └── deploy_receipt.json
└── wisdom/
├── learnings.md
└── wisdom_receipt.json
After the full walkthrough:
- Receipts exist for each flow (mechanical, not estimated)
- The feature works:
bash .claude/scripts/demoswarm.sh versionoutputs valid JSON - Artifacts are inspectable:
.runs/<run-id>/contains the audit trail - Index is updated:
.runs/index.jsontracks the run status
This demonstrates the core value: "prompt → structured artifacts → receipt".
See Quickstart troubleshooting for common issues.
Critic keeps bouncing? Read the critic's prose handoff:
- If it recommends another agent or flow, route there
- If it suggests another pass, rerun the critic
- If it says "proceed," continue to the next station
- The handoff explains what needs to happen next in natural language
| Goal | Doc |
|---|---|
| Customize for your stack | customize-pack.md |
| Full reference | CLAUDE.md |
| Validate pack contracts | validation-run.md |