learn-bdd-scenarios
Interactive guidance on writing complete, effective BDD scenarios for story-flow.
Interactive guidance on creating technical design PRs to align with your team before coding.
Claude Code
$ npx -y skills add Intai/story-flow --skill learn-technical-design --agent claude-code
Codex
$ npx skills add Intai/story-flow --skill learn-technical-design -a codex -y
Cursor
$ npx skills add Intai/story-flow --skill learn-technical-design -a cursor -y
Gemini CLI
$ npx skills add Intai/story-flow --skill learn-technical-design -a gemini-cli -y
GitHub Copilot
$ npx skills add Intai/story-flow --skill learn-technical-design -a github-copilot -y
OpenCode
$ npx skills add Intai/story-flow --skill learn-technical-design -a opencode -y
Windsurf
$ npx skills add Intai/story-flow --skill learn-technical-design -a windsurf -y
name: Learn why to discuss technical design before implementation description: Interactive guidance on creating technical design PRs to align with your team before coding. user-invocable: false
This learning module helps junior developers understand why creating a technical design PR before implementation leads to better outcomes, faster delivery, and reduced rework.
Present the following content interactively. After each section, use `AskUserQuestion` to offer 3 options:
---
Explain that in story-flow, before writing implementation code, developers create a pull request containing their technical design:
**A technical design PR serves three purposes:**
1. **Early feedback on approach** - Get team input before investing time in implementation 2. **Alignment before coding** - Ensure everyone agrees on the direction 3. **Living documentation** - The merged design becomes part of the repo history
**The key insight:**
> A technical design PR is not about seeking permission. It's about leveraging collective expertise to find the best solution before committing to an approach.
**What gets included:**
---
Explain the "shift-left" principle:
**Shift-left** means moving quality activities earlier in the development lifecycle.
Traditional approach (problems found late):
Design → Code → Code Review → QA → Production
↑
Problems found here
(expensive to fix)Shift-left approach (problems found early):
Design Review → Code → Code Review → QA → Production
↑
Problems found here
(cheap to fix)**Why "left"?**
If you imagine the development timeline flowing left-to-right, shifting activities to the left means doing them earlier.
**The cost curve:**
| Stage Where Issue Found | Relative Cost to Fix | |------------------------|---------------------| | Design review | 1x | | Code review | 5x | | QA testing | 10x | | Production | 100x |
Issues found later require:
---
Present the concrete benefits:
Without design review:
Developer spends 3 days implementing Feature X → Code review reveals a simpler approach exists → 3 days of work discarded → Rework begins
With design review:
Developer spends 2 hours writing design PR → Team suggests simpler approach → 2 hours adjusted → Implementation proceeds correctly
| Approach | Typical Iterations | |----------|-------------------| | Code first, discuss later | 3-5 review cycles | | Design first, code second | 1-2 review cycles |
**Paradox:** Adding a "planning step" actually speeds up delivery.
Without planning: [3 days coding] + [2 days rework] = 5 days With planning: [2 hours design] + [2 days coding] = 2.25 days
Design PRs help the team:
---
Present the recommended structure:
**1. Story Requirements**
**2. Planned Tasks**
// Example task with embedded technical approach:
// Task: Add user authentication endpoint @src/api/auth.ts
// - Use JWT tokens with 24h expiry
// - Store refresh tokens in httpOnly cookies
//
// Expected API response:
interface LoginResponse {
accessToken: string;
expiresIn: number;
user: {
id: string;
email: string;
};
}**3. Alternatives Considered** *(include in PR description or comments)*
| Approach | Pros | Cons | Decision | |----------|------|------|----------| | Option A | Fast to implement | Hard to extend | | | Option B | Flexible | More complex | Chosen |
**4. Questions for Reviewers** *(include in PR description or comments)*
---
Present each mistake with correction:
"This is just a small feature, I'll skip the design PR" → Feature has hidden complexity → Major rework needed after code review
**Better approach:** Start with a lightweight design. If it's truly simple, the design takes 15 minutes and confirms that.
# BAD - Too vague ## Tasks - Add authentication - Update UI
# GOOD - Actionable detail ## Tasks 1. Create AuthService class with login/logout methods 2. Add JWT token storage in localStorage 3. Create ProtectedRoute component wrapper 4. Update Header to show user email when logged in
"The design is approved, I can't change anything now"
**Reality:** Designs evolve during implementation. When you discover something that changes the approach: 1.
Interactive guidance on writing complete, effective BDD scenarios for story-flow.
Interactive guidance on why human code review is essential for readability and maintainability.
Parse story markdown to identify task dependencies and parallel execution opportunities.
Generate a draft story markdown by analyzing a story tracker or feature description, Figma designs, and the codebase.
Execute BDD test scenarios from .feature files using browser automation.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.