From agentflow
Quick 5-minute demo of AgentFlow. Creates a tiny 3-task project and runs one task end-to-end in the current session.
npx claudepluginhub urrhb/agentflowThis skill uses the workspace's default tool permissions.
Experience AgentFlow in 5 minutes. This command creates a minimal demo project, decomposes it into 3 tasks on your Asana board, and builds one task end-to-end -- all within the current session.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Experience AgentFlow in 5 minutes. This command creates a minimal demo project, decomposes it into 3 tasks on your Asana board, and builds one task end-to-end -- all within the current session.
Before running this demo, verify:
/sdlc-health to check. The demo needs to create an Asana project.package.json works. If you do not have one, create a minimal project first:
mkdir demo-project && cd demo-project
git init && npm init -y
git checkout -b agentflow-demo
If any prerequisite is missing, stop and tell the user exactly what to fix before proceeding.
Create a temporary DEMO-SPEC.md in the current directory with this content:
# AgentFlow Demo Project
## Overview
A minimal hello-world project to demonstrate the AgentFlow pipeline.
## Tasks
### Task 1: Create greeting utility
Create `src/utils/hello.ts` that exports a `greet(name: string): string` function.
- Returns `"Hello, <name>! Welcome to AgentFlow."`
- Handle edge case: empty string returns `"Hello, World! Welcome to AgentFlow."`
### Task 2: Add unit tests (depends on Task 1)
Create `src/utils/__tests__/hello.test.ts` with test cases:
- greet("Alice") returns correct string
- greet("") returns default greeting
- greet with special characters works
### Task 3: Add npm script (depends on Task 1)
Add a `"greet"` script to `package.json` that runs: `npx ts-node -e "import {greet} from './src/utils/hello'; console.log(greet('Developer'))"`
Tell the user: "Created DEMO-SPEC.md with 3 tasks. Here is what will happen:"
Create an Asana project named [SDLC] AgentFlow Demo with the standard 8 sections:
Create 3 tasks in the Backlog section with proper metadata headers:
DEMO-001: Create greeting utility
[SLOT:--] [STAGE:Backlog] [RETRY:0] [COST:~$0]
## Summary
Create a greeting utility function in TypeScript.
## Input State
Empty project with package.json.
## Output State
src/utils/hello.ts exists and exports greet(name: string): string.
## Acceptance Criteria
- [ ] greet("Alice") returns "Hello, Alice! Welcome to AgentFlow."
- [ ] greet("") returns "Hello, World! Welcome to AgentFlow."
- [ ] File exports are correct
## Verification Command
npx ts-node -e "import {greet} from './src/utils/hello'; console.log(greet('Test'))"
## Predicted Files
- src/utils/hello.ts (create)
## Dependencies
None
## Research Triggers
(none)
## Complexity
Simple
Estimated: 10 minutes
DEMO-002: Add unit tests (depends on DEMO-001)
[SLOT:--] [STAGE:Backlog] [RETRY:0] [COST:~$0]
## Summary
Add unit tests for the greeting utility.
## Input State
src/utils/hello.ts exists with greet function.
## Output State
src/utils/__tests__/hello.test.ts exists with passing tests.
## Acceptance Criteria
- [ ] 3 test cases covering normal, empty, and special character inputs
- [ ] All tests pass with npm test
## Verification Command
npm test -- --grep "hello"
## Predicted Files
- src/utils/__tests__/hello.test.ts (create)
## Dependencies
- DEMO-001 Create greeting utility -- function must exist before tests
## Research Triggers
(none)
## Complexity
Simple
Estimated: 10 minutes
DEMO-003: Add npm greet script (depends on DEMO-001)
[SLOT:--] [STAGE:Backlog] [RETRY:0] [COST:~$0]
## Summary
Add a "greet" npm script to package.json.
## Input State
src/utils/hello.ts exists. package.json exists.
## Output State
Running "npm run greet" prints a greeting to the console.
## Acceptance Criteria
- [ ] npm run greet executes without errors
- [ ] Output contains "Welcome to AgentFlow"
## Verification Command
npm run greet
## Predicted Files
- package.json (modify)
## Dependencies
- DEMO-001 Create greeting utility -- function must exist before script can call it
## Research Triggers
(none)
## Complexity
Simple
Estimated: 5 minutes
Also create a pinned Status task with the initial dashboard.
Tell the user:
Act as Worker T2 executing the Build stage for DEMO-001.
Assign the task: Update DEMO-001 metadata to [SLOT:T2] [STAGE:Build]. Move it to the Build section.
Post start comment: Add an Asana comment: [BUILD:STARTED] Worker T2 beginning build for DEMO-001.
Create the file: Write src/utils/hello.ts:
/**
* Returns a greeting string for the given name.
* Falls back to "World" if name is empty.
*/
export function greet(name: string): string {
const displayName = name.trim() || "World";
return `Hello, ${displayName}! Welcome to AgentFlow.`;
}
Run lint gate (if TypeScript is configured):
npx tsc --noEmit -- if tsconfig.json existsnpx eslint src/ -- if eslint is configured[LINT:PASS] or [LINT:SKIP] No TypeScript/ESLint config found (demo project).Post heartbeat: [HEARTBEAT] T2 working on DEMO-001
Create a commit on the current branch:
git add src/utils/hello.ts
git commit -m "feat(DEMO-001): add greeting utility"
Post completion: Add Asana comment: [BUILD:COMPLETE] Created src/utils/hello.ts. Commit: <hash>.
Update metadata: [SLOT:T2] [STAGE:Build-Complete] [RETRY:0] [COST:~$0.50]
Print a summary to the user:
=== Demo Complete ===
What just happened:
1. DEMO-001 moved: Backlog -> Build -> Build-Complete
2. File created: src/utils/hello.ts
3. Asana comment thread shows the full audit trail:
- [BUILD:STARTED]
- [HEARTBEAT]
- [LINT:PASS] (or SKIP)
- [BUILD:COMPLETE]
In a full pipeline, here is what happens next:
- Orchestrator (crontab) detects Build-Complete
- DEMO-001 moves to Review (assigned to Worker T4)
- T4 runs adversarial review: "list 3 things wrong before deciding to pass"
- If approved: moves to Test (Worker T5)
- T5 runs full test suite + coverage check
- If passed: merges PR to main, runs integration check
- Meanwhile, DEMO-002 and DEMO-003 unblock and get dispatched to T2/T3
Open Asana on your phone to see the board and comment thread.
Show the Asana project URL again.
Ask the user:
Keep the demo project?
[keep] Leave everything as-is (you can continue building DEMO-002 and DEMO-003)
[delete] Remove the Asana project and demo files
If keep: Leave everything. Tell the user they can continue with:
claude -p '/sdlc-worker --slot T2' to build remaining tasks./setup.sh --with-cronIf delete:
rm -f src/utils/hello.ts
rm -f DEMO-SPEC.md
git reset HEAD~1 # Undo the demo commit
Always end with:
You just saw one task go through the Build stage with full observability.
In a full pipeline, 4 workers handle Build/Review/Test/Integrate in parallel
across all tasks -- visible from your Kanban board.
Set up the full pipeline: ./setup.sh --with-cron
Full docs: https://github.com/UrRhb/agentflow