bdd-orchestrating
BDD orchestrator for feature-level work. Use when user says 'add', 'implement', 'build', 'feature', 'iteration', 'story', 'phase', 'resume', 'continue', or references a ticket/iteration/story. Also use when work touches 3+ files with new state/flows, or when user runs /bdd. Do NOT use for bug fixes, typos, config changes, or 1-2 file tasks.
$ Installer
git clone https://github.com/TheMostlyGreat/safeword /tmp/safeword && cp -r /tmp/safeword/.claude/skills/safeword-bdd-orchestrating ~/.claude/skills/safeword// tip: Run this command in your terminal to install the skill
name: bdd-orchestrating description: BDD orchestrator for feature-level work. Use when user says 'add', 'implement', 'build', 'feature', 'iteration', 'story', 'phase', 'resume', 'continue', or references a ticket/iteration/story. Also use when work touches 3+ files with new state/flows, or when user runs /bdd. Do NOT use for bug fixes, typos, config changes, or 1-2 file tasks. allowed-tools: '*'
BDD Orchestrator
Behavior-first development for features. Discovery → Scenarios → Implementation.
Iron Law: DEFINE BEHAVIOR BEFORE IMPLEMENTATION
Phase Tracking
Features progress through phases. Track in ticket frontmatter:
---
type: feature
phase: implement # intake | define-behavior | scenario-gate | decomposition | implement | done
---
Phase meanings:
| Phase | What happens | Details |
|---|---|---|
intake | Context check, discovery (Phase 0-2) | DISCOVERY.md |
define-behavior | Writing Given/When/Then (Phase 3) | SCENARIOS.md |
scenario-gate | Validating scenarios (Phase 4) | SCENARIOS.md |
decomposition | Task breakdown (Phase 5) | DECOMPOSITION.md |
implement | Outside-in TDD (Phase 6) | TDD.md |
done | Cleanup, verification (Phase 7) | DONE.md |
Update phase when:
- Completing a BDD phase → set next phase
- Handing off to TDD → set
implement - All scenarios pass → set
done
Resume Logic
When user references a ticket, resume work:
- Read ticket → get current
phase: - Find progress → first unchecked
[ ]in test-definitions - Check context → read last work log entry
- Announce resume → "Resuming at [phase]. Last: [log entry]."
Resume by phase:
| Phase | Resume action |
|---|---|
intake | Start context check (Phase 0-2) |
define-behavior | Continue drafting scenarios |
scenario-gate | Continue validating scenarios |
decomposition | Continue task breakdown |
implement | Find first unchecked scenario, run TDD |
done | Run /done and /audit checks |
Current Behavior
- Detect work level (see SAFEWORD.md "Work Level Detection")
- If user references iteration/story/phase from a spec:
- Check if child ticket exists for that iteration
- If not → create ticket, run full BDD
- If yes → resume at current phase
- Announce with override hint
- If ticket exists: Read phase, resume at appropriate point
- Artifact-first rule: Before doing work, create/verify the phase artifact:
- Phase 0-2 → ticket at
.safeword-project/tickets/{id}-{slug}/ticket.md - Phase 3 → test-definitions at
.safeword-project/tickets/{id}-{slug}/test-definitions.md - Phase 5 → task breakdown in ticket
- Phase 0-2 → ticket at
- Execute phase using the appropriate phase file
- Update phase in ticket when transitioning
Phase Files
Load the appropriate file based on current phase:
| Phase | File |
|---|---|
intake | DISCOVERY.md |
define-behavior | SCENARIOS.md |
scenario-gate | SCENARIOS.md |
decomposition | DECOMPOSITION.md |
implement | TDD.md |
done | DONE.md |
For splitting large features, see SPLITTING.md.
Key Takeaways
- patch/task → TDD directly (RED → GREEN → REFACTOR)
- feature → full BDD flow (Phases 0-7), track in ticket
phase:field - Resume → read ticket, find first unchecked scenario, continue
- Split → check thresholds at Entry, Phase 3, Phase 5; user decides (see SPLITTING.md)
- Done gate → run /done before marking ticket complete
- When unsure → default to task, user can
/bddto override
Repository
