From bmad-cowork
This skill activates when the user asks about "story creation", "sprint planning", "story development cycle", "story validation", "code review workflow", "dev story", "create next story", "story template", or needs guidance on BMAD's implementation workflow patterns.
npx claudepluginhub vamfi/vamfi-plugins --plugin bmad-coworkThis skill uses the workspace's default tool permissions.
Every BMAD story lives in `docs/stories/` and follows a standard template with these sections:
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Every BMAD story lives in docs/stories/ and follows a standard template with these sections:
Stories are numbered by epic and sequence: story-E1.S1.md, story-E1.S2.md, etc.
The implementation phase runs a repeating cycle for each story:
Bob reads the PRD and architecture docs, then:
James picks up the next Ready story, then:
Quinn picks up In Review stories, then:
If QA Fail:
Before implementation begins, bob-sm plans the sprint:
docs/prd.mdEach agent can only edit specific sections of a story file:
| Agent | Can Edit |
|---|---|
| bob-sm | Story, Acceptance Criteria, Tasks, Dev Notes, Status (to Ready) |
| james-dev | Tasks (checkboxes), Dev Agent Record, Status (to In Review) |
| quinn-qa | QA Results, Status (to QA Pass or QA Fail) |
No agent should modify sections owned by another agent except through the defined handoff (status change).
Before a story is marked Ready, bob-sm validates:
James-dev should NOT begin a story if:
When blocked, james-dev should message bob-sm via SendMessage to resolve the blocker.