create-bashi-starter 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bin/create-bashi-starter.js +198 -0
  2. package/package.json +26 -0
  3. package/template/.claude/CLAUDE.md +70 -0
  4. package/template/.claude/REFERENCE.md +68 -0
  5. package/template/.claude/agents/builder.md +48 -0
  6. package/template/.claude/agents/orchestrator.md +220 -0
  7. package/template/.claude/agents/reviewer.md +58 -0
  8. package/template/.claude/commands/capture-idea.md +73 -0
  9. package/template/.claude/commands/run-project.md +109 -0
  10. package/template/.claude/commands/save.md +78 -0
  11. package/template/.claude/commands/setup.md +73 -0
  12. package/template/.claude/commands/start.md +55 -0
  13. package/template/.claude/commands/status.md +40 -0
  14. package/template/.claude/hooks/lib/detect-python.sh +12 -0
  15. package/template/.claude/hooks/pre-bash-firewall.sh +48 -0
  16. package/template/.claude/hooks/pre-write-secrets-scan.sh +56 -0
  17. package/template/.claude/hooks/session-start.sh +54 -0
  18. package/template/.claude/project/EVENTS.md +29 -0
  19. package/template/.claude/project/IDENTITY.md +12 -0
  20. package/template/.claude/project/RUN_POLICY.md +59 -0
  21. package/template/.claude/project/STATE.md +57 -0
  22. package/template/.claude/project/knowledge/DECISIONS.md +21 -0
  23. package/template/.claude/project/knowledge/GLOSSARY.md +21 -0
  24. package/template/.claude/project/knowledge/OPEN_QUESTIONS.md +21 -0
  25. package/template/.claude/rules/context-policy.md +47 -0
  26. package/template/.claude/rules/orchestration-routing.md +39 -0
  27. package/template/.claude/rules/user-consent.md +12 -0
  28. package/template/.claude/settings.json +51 -0
  29. package/template/.claude/skills/REGISTRY.md +23 -0
  30. package/template/.claude/skills/code-review/SKILL.md +251 -0
  31. package/template/.claude/skills/deployment/SKILL.md +301 -0
  32. package/template/.claude/skills/frontend-dev/SKILL.md +192 -0
  33. package/template/.claude/skills/plan-from-idea/SKILL.md +85 -0
  34. package/template/.claude/skills/prd-to-tasks/SKILL.md +207 -0
  35. package/template/.claude/skills/prd-writing/SKILL.md +226 -0
  36. package/template/.claudeignore +14 -0
  37. package/template/FRAMEWORK_VERSION +1 -0
  38. package/template/README.md +95 -0
@@ -0,0 +1,301 @@
1
+ ---
2
+ id: SKL-0021
3
+ name: Deployment
4
+ description: |
5
+ Ship workflow: merge main, run tests, review diff, auto-changelog, bisectable
6
+ commits, push, and create PR. Use this skill when deployment is requested,
7
+ a release is ready to ship, or the user says "ship it."
8
+ version: 3.0
9
+ owner: builder
10
+ triggers:
11
+ - DEPLOYMENT_REQUESTED
12
+ - SHIP_REQUESTED
13
+ inputs:
14
+ - Task description (from active task or event)
15
+ - .claude/project/STATE.md
16
+ - .claude/project/knowledge/DECISIONS.md
17
+ - TODOS.md (if exists)
18
+ - CHANGELOG.md (if exists)
19
+ - VERSION (if exists)
20
+ outputs:
21
+ - Code committed, pushed, and PR created
22
+ - CHANGELOG.md updated
23
+ - VERSION bumped
24
+ - TODOS.md updated (completed items marked)
25
+ - .claude/project/STATE.md (updated)
26
+ tags:
27
+ - deployment
28
+ - release
29
+ - ship
30
+ ---
31
+
32
+ # Skill: Deployment & Ship
33
+
34
+ ## Metadata
35
+
36
+ | Field | Value |
37
+ |-------|-------|
38
+ | **Skill ID** | SKL-0021 |
39
+ | **Version** | 3.0 |
40
+ | **Owner** | builder |
41
+ | **Inputs** | Task description, STATE.md, DECISIONS.md, TODOS.md |
42
+ | **Outputs** | Commits, PR, CHANGELOG, VERSION, TODOS.md, STATE.md |
43
+ | **Triggers** | `DEPLOYMENT_REQUESTED`, `SHIP_REQUESTED` |
44
+
45
+ ---
46
+
47
+ ## Purpose
48
+
49
+ Take code from a feature branch and land it: merge main, test, review, version bump, changelog, commit, push, PR.
50
+
51
+ ---
52
+
53
+ ## Cognitive Mode
54
+
55
+ **Release Engineer.** You are methodical, cautious, and thorough. Every step has a reason. Tests must pass. Reviews must clear. Nothing ships without evidence it works.
56
+
57
+ ---
58
+
59
+ ## Ship Mode
60
+
61
+ > The user said "ship it" or triggered `SHIP_REQUESTED`. Run straight through. Only stop for blockers.
62
+
63
+ **Only stop for:**
64
+ - On `main` branch (abort)
65
+ - Merge conflicts that can't be auto-resolved
66
+ - Test failures
67
+ - CRITICAL review findings where user chooses to fix
68
+ - MINOR/MAJOR version bump decisions
69
+
70
+ **Never stop for:**
71
+ - Uncommitted changes (include them)
72
+ - CHANGELOG content (auto-generate)
73
+ - Commit message approval (auto-commit)
74
+
75
+ ---
76
+
77
+ ## Ship Procedure
78
+
79
+ ### Step 1 --- Pre-flight
80
+
81
+ 1. Check the current branch. If on `main`, **abort**: "You're on main. Ship from a feature branch."
82
+ 2. Run `git status` (never use `-uall`). Uncommitted changes are always included.
83
+ 3. Run `git diff main...HEAD --stat` and `git log main..HEAD --oneline` to understand what's being shipped.
84
+
85
+ ---
86
+
87
+ ### Step 2 --- Merge origin/main
88
+
89
+ Fetch and merge so tests run against the merged state:
90
+
91
+ ```bash
92
+ git fetch origin main && git merge origin/main --no-edit
93
+ ```
94
+
95
+ **If merge conflicts:** Try to auto-resolve simple ones (VERSION, CHANGELOG ordering). If complex, **STOP** and show them.
96
+
97
+ **If already up to date:** Continue silently.
98
+
99
+ ---
100
+
101
+ ### Step 3 --- Run Tests
102
+
103
+ Detect and run the project's test suite:
104
+
105
+ ```bash
106
+ # Detect test runner
107
+ if [ -f "package.json" ]; then npm test 2>&1 | tee /tmp/ship_tests.txt; fi
108
+ if [ -f "pytest.ini" ] || [ -f "setup.py" ]; then pytest 2>&1 | tee /tmp/ship_tests.txt; fi
109
+ if [ -f "Gemfile" ]; then bundle exec rspec 2>&1 | tee /tmp/ship_tests.txt; fi
110
+ ```
111
+
112
+ If no test runner is detected, note it and continue (many early projects don't have tests yet).
113
+
114
+ **If any test fails:** Show the failures and **STOP**. Do not proceed.
115
+
116
+ **If all pass:** Note the counts briefly and continue.
117
+
118
+ ---
119
+
120
+ ### Step 4 --- Pre-Landing Review
121
+
122
+ Run a lightweight review of the diff:
123
+
124
+ 1. Run `git diff origin/main` to get the full diff.
125
+ 2. Apply a two-pass review:
126
+ - **Pass 1 (CRITICAL):** Security vulnerabilities, hardcoded secrets, data safety issues, trust boundary violations
127
+ - **Pass 2 (INFORMATIONAL):** Code quality, consistency, test gaps
128
+
129
+ 3. Output: `Pre-Landing Review: N issues (X critical, Y informational)`
130
+
131
+ 4. **If CRITICAL issues found:** For EACH, present individually with:
132
+ - Problem + recommended fix
133
+ - Options: A) Fix it now, B) Acknowledge and ship anyway, C) False positive
134
+ - If user chose A on any: apply fixes, commit them, then **re-run tests** (Step 3) before continuing.
135
+
136
+ 5. **If no critical issues:** Continue.
137
+
138
+ ---
139
+
140
+ ### Step 5 --- Version Bump
141
+
142
+ **If a VERSION file exists:**
143
+
144
+ 1. Read the current version.
145
+ 2. Auto-decide bump level:
146
+ - Count lines changed: `git diff origin/main...HEAD --stat | tail -1`
147
+ - **PATCH** (default): Most changes --- bug fixes, small-medium features
148
+ - **MINOR**: Ask the user --- only for major features or significant changes
149
+ - **MAJOR**: Ask the user --- only for milestones or breaking changes
150
+ 3. Write the new version to VERSION.
151
+
152
+ **If no VERSION file exists:** Skip this step.
153
+
154
+ ---
155
+
156
+ ### Step 6 --- Auto-Generate CHANGELOG
157
+
158
+ 1. Read `CHANGELOG.md` header (if exists) to match format. If no CHANGELOG exists, create one.
159
+ 2. Generate entry from all commits on the branch:
160
+ - `git log main..HEAD --oneline` for commit history
161
+ - `git diff main...HEAD` for the full diff
162
+ 3. Categorize changes:
163
+ - `### Added` --- new features
164
+ - `### Changed` --- changes to existing functionality
165
+ - `### Fixed` --- bug fixes
166
+ - `### Removed` --- removed features
167
+ 4. Write concise, descriptive bullet points.
168
+ 5. Insert after the file header, dated today.
169
+ 6. Format: `## [version] - YYYY-MM-DD` (use version from Step 5, or "Unreleased" if no VERSION file).
170
+
171
+ **Do NOT ask the user to describe changes.** Infer from the diff and commits.
172
+
173
+ ---
174
+
175
+ ### Step 7 --- TODOS.md Cross-Reference
176
+
177
+ If `TODOS.md` exists:
178
+
179
+ 1. Read the file.
180
+ 2. Use the diff and commit history to detect completed TODOs:
181
+ - Match commit messages against TODO descriptions
182
+ - Check if files referenced in TODOs appear in the diff
183
+ - **Be conservative** --- only mark as complete with clear evidence
184
+ 3. Move completed items to the `## Completed` section with: `**Completed:** vX.Y.Z (YYYY-MM-DD)`
185
+ 4. Output: `TODOS.md: N items marked complete. M items remaining.`
186
+
187
+ If `TODOS.md` doesn't exist, skip silently.
188
+
189
+ ---
190
+
191
+ ### Step 8 --- Commit (Bisectable Chunks)
192
+
193
+ **Goal:** Create small, logical commits that work with `git bisect`.
194
+
195
+ 1. Analyze the diff and group changes into logical commits. Each commit = one coherent change (not one file, one logical unit).
196
+
197
+ 2. **Commit ordering** (earlier first):
198
+ - **Infrastructure:** migrations, config, routes
199
+ - **Core logic:** models, services, utilities (with their tests)
200
+ - **UI/presentation:** controllers, views, components (with their tests)
201
+ - **Metadata:** VERSION + CHANGELOG (always the final commit)
202
+
203
+ 3. **Rules:**
204
+ - A module and its test file go in the same commit
205
+ - Each commit must be independently valid --- no broken imports
206
+ - If total diff is small (<50 lines across <4 files), a single commit is fine
207
+ - Order commits so dependencies come first
208
+
209
+ 4. Compose commit messages:
210
+ - First line: `<type>: <summary>` (type = feat/fix/chore/refactor/docs)
211
+ - Only the **final commit** (VERSION + CHANGELOG) gets the co-author trailer:
212
+
213
+ ```bash
214
+ git commit -m "$(cat <<'EOF'
215
+ chore: bump version and changelog (vX.Y.Z)
216
+
217
+ Co-Authored-By: Claude <noreply@anthropic.com>
218
+ EOF
219
+ )"
220
+ ```
221
+
222
+ ---
223
+
224
+ ### Step 9 --- Push
225
+
226
+ ```bash
227
+ git push -u origin <branch-name>
228
+ ```
229
+
230
+ **Never force push.**
231
+
232
+ ---
233
+
234
+ ### Step 10 --- Create PR
235
+
236
+ ```bash
237
+ gh pr create --title "<type>: <summary>" --body "$(cat <<'EOF'
238
+ ## Summary
239
+ <bullet points from CHANGELOG>
240
+
241
+ ## Pre-Landing Review
242
+ <findings from Step 4, or "No issues found.">
243
+
244
+ ## TODOS
245
+ <completed items, or "No TODO items completed in this PR.">
246
+
247
+ ## Test plan
248
+ - [x] All tests pass
249
+
250
+ Generated with [Claude Code](https://claude.com/claude-code)
251
+ EOF
252
+ )"
253
+ ```
254
+
255
+ **Output the PR URL** --- this is the final output.
256
+
257
+ ---
258
+
259
+ ### Step 11 --- Update STATE.md
260
+
261
+ Record: version shipped, PR URL, files changed, TODOS completed.
262
+
263
+ ---
264
+
265
+ ## Constraints
266
+
267
+ - Never force pushes
268
+ - Never commits secrets or real env var values
269
+ - Never ships without running tests
270
+ - Never skips the pre-landing review
271
+ - Ship Mode is non-interactive by default --- only stops for blockers
272
+
273
+ ---
274
+
275
+ ## Primary Agent
276
+
277
+ builder
278
+
279
+ ---
280
+
281
+ ## Definition of Done
282
+
283
+ - [ ] Pre-flight check passed (not on main, diff exists)
284
+ - [ ] origin/main merged
285
+ - [ ] Tests pass
286
+ - [ ] Pre-landing review completed
287
+ - [ ] VERSION bumped (if VERSION file exists)
288
+ - [ ] CHANGELOG generated
289
+ - [ ] TODOS.md cross-referenced
290
+ - [ ] Commits are bisectable and logically grouped
291
+ - [ ] Pushed to remote
292
+ - [ ] PR created with summary
293
+ - [ ] STATE.md updated
294
+
295
+ ## Output Contract
296
+
297
+ | Field | Value |
298
+ |-------|-------|
299
+ | **Artifacts** | Commits pushed, PR created, `CHANGELOG.md` updated, `VERSION` bumped |
300
+ | **State Update** | `.claude/project/STATE.md` --- mark task complete, log files modified |
301
+ | **Handoff Event** | `TASK_COMPLETED` (terminal step in pipeline) |
@@ -0,0 +1,192 @@
1
+ ---
2
+ id: SKL-0005
3
+ name: Frontend Development
4
+ description: |
5
+ Build web UI components, pages, and styling. Includes a mandatory Visual
6
+ Polish pass that adds scroll animations, micro-interactions, typography
7
+ rhythm, and design depth. Use this skill when a frontend task is ready for
8
+ implementation, including React components, CSS, layouts, and responsive design.
9
+ version: 2.0
10
+ owner: builder
11
+ triggers:
12
+ - FRONTEND_TASK_READY
13
+ inputs:
14
+ - Task description (from STATE.md)
15
+ - .claude/project/knowledge/DECISIONS.md
16
+ - Existing frontend files
17
+ - docs/PRD.md (for brand/tone context)
18
+ outputs:
19
+ - Frontend component/page files
20
+ - .claude/project/STATE.md (updated)
21
+ tags:
22
+ - building
23
+ - frontend
24
+ - ui
25
+ ---
26
+
27
+ # Skill: Frontend Development
28
+
29
+ ## Metadata
30
+
31
+ | Field | Value |
32
+ |-------|-------|
33
+ | **Skill ID** | SKL-0005 |
34
+ | **Version** | 2.0 |
35
+ | **Owner** | builder |
36
+ | **Inputs** | Task description, DECISIONS.md, existing frontend files, PRD |
37
+ | **Outputs** | Frontend files, STATE.md updated |
38
+ | **Triggers** | `FRONTEND_TASK_READY` |
39
+
40
+ ---
41
+
42
+ ## Purpose
43
+
44
+ Build user interfaces that work correctly AND look exceptional. Correctness (responsive, accessible, all states handled) is the floor, not the ceiling. Every page and component must pass a Visual Polish check before it's considered done.
45
+
46
+ ---
47
+
48
+ ## Procedure
49
+
50
+ ### Step 1 --- Read Context
51
+
52
+ 1. **Read DECISIONS.md** --- identify framework (React/Next.js, Vue, Astro, vanilla), styling approach (Tailwind, CSS modules), component library (shadcn/ui, Radix, etc.).
53
+ 2. **Read PRD** --- extract brand tone, target audience, and visual expectations.
54
+ 3. **Scan existing code** --- identify conventions, color tokens, font choices, animation patterns already in use.
55
+
56
+ ### Step 2 --- Understand the Task
57
+
58
+ - What does this UI do? Who uses it? What data does it display or collect?
59
+ - What is the emotional tone? (professional, playful, luxurious, minimal, bold)
60
+ - Is this a hero page (high visual impact) or a utility screen (functional first)?
61
+
62
+ ### Step 3 --- Build the Component/Page
63
+
64
+ Core implementation:
65
+ - Match existing file structure and naming conventions
66
+ - Mobile-first responsive design
67
+ - Accessible markup (semantic HTML, ARIA labels, keyboard navigation)
68
+ - No hardcoded data --- use props, state, or labeled placeholders
69
+ - Handle all states: loading, error, empty, populated
70
+
71
+ ### Step 4 --- Visual Polish Pass (Mandatory)
72
+
73
+ After the component works correctly, apply these checks. **This step is not optional.**
74
+
75
+ #### 4A. Typography Rhythm
76
+
77
+ | Check | What to Do |
78
+ |-------|-----------|
79
+ | Font pairing | Use a deliberate serif + sans-serif pairing OR a single family with weight contrast. Never rely on system defaults alone. |
80
+ | Size scale | Headings should have clear hierarchy --- at least 3 distinct sizes with noticeable jumps (not 16px -> 18px -> 20px). |
81
+ | Line height | Body text: 1.5-1.7. Headings: 1.1-1.3. Tight headings + relaxed body creates rhythm. |
82
+ | Letter spacing | Uppercase labels need positive tracking (0.05-0.15em). Large headings can use slight negative tracking. |
83
+ | One "wow" text moment | At least one headline, quote, or stat should be oversized, italic, or styled distinctly to break the grid. |
84
+
85
+ #### 4B. Scroll Animations
86
+
87
+ | Check | What to Do |
88
+ |-------|-----------|
89
+ | Section reveals | Content sections should animate in on scroll --- fade-up, slide-in, or scale. Use Framer Motion, AOS, or CSS `@keyframes` with Intersection Observer. |
90
+ | Staggered children | Lists, grids, and card groups should stagger their entrance (50-100ms delay between items). |
91
+ | Parallax (optional) | Hero images or background elements can scroll at a different rate for depth. Use sparingly --- one parallax element max. |
92
+ | Respect `prefers-reduced-motion` | Wrap all animations in a motion-preference check. Users who disable motion see instant renders. |
93
+
94
+ #### 4C. Micro-Interactions
95
+
96
+ | Check | What to Do |
97
+ |-------|-----------|
98
+ | Button hover | Buttons should have a visible hover state beyond color change --- slight scale (1.02-1.05), shadow lift, or fill animation. |
99
+ | Image hover | Gallery/portfolio images should respond to hover --- zoom, overlay fade, or caption reveal. |
100
+ | Focus indicators | Interactive elements need visible focus rings that match the design language (not default browser blue). |
101
+ | Transitions | All state changes (hover, active, focus, open/close) should use `transition-all duration-200` minimum. No instant snaps. |
102
+ | Cursor | Consider `cursor-pointer` on all clickable non-link elements. |
103
+
104
+ #### 4D. Visual Depth
105
+
106
+ | Check | What to Do |
107
+ |-------|-----------|
108
+ | Layering | At least one section should have overlapping elements --- a card that bleeds over a section boundary, text over an image, or a floating accent. |
109
+ | Shadows | Cards and elevated elements need subtle shadows (`shadow-sm` to `shadow-lg`). Avoid flat designs where everything is on the same plane. |
110
+ | Gradients | Use subtle background gradients to separate sections instead of hard color blocks. Gradient overlays on hero images add depth. |
111
+ | Texture (optional) | Subtle noise/grain overlay, dot patterns, or background shapes can add personality. Don't overdo it --- one texture element per page. |
112
+ | Whitespace | Generous padding between sections (py-16 to py-24). Tight spacing looks cheap; breathing room looks premium. |
113
+
114
+ #### 4E. Color & Contrast
115
+
116
+ | Check | What to Do |
117
+ |-------|-----------|
118
+ | Limited palette | 1 primary, 1 accent, 2-3 neutrals. More than 5 colors looks chaotic. |
119
+ | Contrast ratio | Text on backgrounds must meet WCAG 2.1 AA (4.5:1 normal, 3:1 large). |
120
+ | Dark sections | At least one section should use an inverted color scheme (dark background, light text) for visual variety. |
121
+ | Accent usage | The accent color should appear sparingly --- CTAs, highlights, decorative elements. Not on large surfaces. |
122
+
123
+ #### 4F. Component Library
124
+
125
+ When a project uses shadcn/ui, Radix, or a similar component library:
126
+ - **Use it.** Don't rebuild what exists.
127
+ - Customize through the theme/token layer, not by overriding styles.
128
+ - When no library is specified, **suggest shadcn/ui for React/Next.js projects** --- it provides beautiful defaults with Tailwind customization. Log this to DECISIONS.md.
129
+
130
+ ### Step 5 --- Final Quality Check
131
+
132
+ Before marking done, verify:
133
+ - Does the page look good at 320px, 768px, and 1440px?
134
+ - Does it look polished in both light and dark modes (if applicable)?
135
+ - Is there at least one visual "moment" that makes someone pause? (a hero animation, a beautiful card grid, an unexpected typographic treatment)
136
+ - Would you screenshot this and put it in a portfolio?
137
+
138
+ ### Step 6 --- Update STATE.md
139
+
140
+ Record files created and note the visual approach taken (for consistency across future pages).
141
+
142
+ ---
143
+
144
+ ## Constraints
145
+
146
+ - Never modifies backend, API, or database files
147
+ - Never hardcodes data that should come from an API or prop
148
+ - Always logs new framework/library decisions to DECISIONS.md
149
+ - Visual Polish (Step 4) is mandatory --- never skip it, even for "simple" pages
150
+ - Respect existing design language --- polish should enhance the current direction, not introduce a conflicting aesthetic
151
+ - Animations must respect `prefers-reduced-motion`
152
+
153
+ ---
154
+
155
+ ## Deployment Reference
156
+
157
+ | Target | Tool | Notes |
158
+ |--------|------|-------|
159
+ | Static/SPA | Vercel | Zero config for React/Next.js |
160
+ | Static/SPA | Netlify | Drag and drop or Git deploy |
161
+ | Next.js/SSR | Vercel | Native support |
162
+
163
+ ---
164
+
165
+ ## Primary Agent
166
+
167
+ builder
168
+
169
+ ---
170
+
171
+ ## Definition of Done
172
+
173
+ - [ ] Framework and styling confirmed from DECISIONS.md
174
+ - [ ] Component handles loading, error, empty, populated states
175
+ - [ ] Mobile-first responsive layout (tested at 320px, 768px, 1440px)
176
+ - [ ] Accessible markup (semantic HTML, ARIA, keyboard nav, focus indicators)
177
+ - [ ] Matches existing project conventions
178
+ - [ ] **Typography rhythm applied** (hierarchy, pairing, one "wow" moment)
179
+ - [ ] **Scroll animations added** (section reveals, staggered children, reduced-motion respected)
180
+ - [ ] **Micro-interactions present** (button hover, image hover, transitions on all state changes)
181
+ - [ ] **Visual depth achieved** (shadows, layering, gradients, generous whitespace)
182
+ - [ ] **Color palette limited and contrast-checked**
183
+ - [ ] At least one visual moment that would make someone pause
184
+ - [ ] STATE.md updated
185
+
186
+ ## Output Contract
187
+
188
+ | Field | Value |
189
+ |-------|-------|
190
+ | **Artifacts** | Frontend component/page files (components, pages, styles, assets) |
191
+ | **State Update** | `.claude/project/STATE.md` --- mark task complete, log files modified |
192
+ | **Handoff Event** | `TASK_COMPLETED` (ready for code review) |
@@ -0,0 +1,85 @@
1
+ ---
2
+ id: SKL-0001
3
+ name: Plan From Idea
4
+ description: |
5
+ Transform a captured project idea into an actionable plan with PRD and task
6
+ breakdown. Use this skill when a new idea has been captured and needs to be
7
+ developed into a structured project plan.
8
+ version: 1.0
9
+ owner: Orchestrator
10
+ triggers:
11
+ - IDEA_CAPTURED
12
+ inputs:
13
+ - Idea description (from event or user input)
14
+ outputs:
15
+ - docs/PRD.md
16
+ - .claude/project/STATE.md (Next Task Queue updated)
17
+ tags:
18
+ - planning
19
+ - ideation
20
+ ---
21
+
22
+ # Skill: Plan From Idea
23
+
24
+ ## Metadata
25
+
26
+ | Field | Value |
27
+ |-------|-------|
28
+ | **Skill ID** | SKL-0001 |
29
+ | **Version** | 1.0 |
30
+ | **Owner** | Orchestrator |
31
+ | **Inputs** | Idea description (from event or user input) |
32
+ | **Outputs** | PRD stub (`docs/PRD.md` or equivalent), initial task queue items |
33
+ | **Triggers** | `IDEA_CAPTURED` |
34
+
35
+ ---
36
+
37
+ ## Purpose
38
+
39
+ Turn a rough idea into a structured plan. This skill takes a freeform idea description and produces:
40
+ 1. A short PRD (Product Requirements Document) stub.
41
+ 2. An initial set of tasks added to the Next Task Queue in STATE.md.
42
+
43
+ ---
44
+
45
+ ## Procedure
46
+
47
+ 1. **Read the idea** from the event description or user input.
48
+ 2. **Create a PRD stub** at `docs/PRD.md` (or the project's preferred location) with:
49
+ - Project name
50
+ - One-sentence summary
51
+ - Target audience
52
+ - Core features (3-5 bullet points)
53
+ - Out of scope (2-3 items)
54
+ - Success criteria
55
+ 3. **Generate 3-5 initial tasks** based on the PRD and add them to the Next Task Queue in `STATE.md`. Use the canonical task format from `.claude/project/knowledge/TASK-FORMAT.md`: `| # | Task | Priority | Skill |`. Assign Skill IDs by cross-referencing `REGISTRY.md` (use `---` if no skill clearly applies).
56
+ 4. **Log a decision** in `DECISIONS.md` noting the project direction chosen.
57
+ 5. **Update STATE.md** with outputs produced and files modified.
58
+
59
+ ---
60
+
61
+ ## Primary Agent
62
+
63
+ Orchestrator
64
+
65
+ ## Review
66
+
67
+ None required for v1. The user reviews the PRD and task queue after execution.
68
+
69
+ ---
70
+
71
+ ## Definition of Done
72
+
73
+ - [ ] PRD stub exists at `docs/PRD.md` (or equivalent project brief)
74
+ - [ ] At least 3 tasks are added to the Next Task Queue
75
+ - [ ] STATE.md is updated with outputs and files modified
76
+ - [ ] Decision logged in DECISIONS.md
77
+
78
+ ## Output Contract
79
+
80
+ | Field | Value |
81
+ |-------|-------|
82
+ | **Artifacts** | Actionable plan in `.claude/project/STATE.md` (Next Task Queue seeded), PRD stub at `docs/PRD.md`, event emitted |
83
+ | **State Update** | `.claude/project/STATE.md` --- mark task complete, log files modified |
84
+ | **Decision Log** | `.claude/project/knowledge/DECISIONS.md` --- project direction chosen |
85
+ | **Handoff Event** | `PRD_CREATION_REQUESTED` (triggers PRD writing via SKL-0004) |