@forgeailab/create-spark 0.1.2 → 0.2.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.
- package/.claude/skills/architecture-cutline/SKILL.md +96 -0
- package/.claude/skills/board-review/SKILL.md +77 -0
- package/.claude/skills/code-review/SKILL.md +76 -0
- package/.claude/skills/execute-task/SKILL.md +80 -0
- package/.claude/skills/idea-sharpen/SKILL.md +65 -0
- package/.claude/skills/implementation-brief/SKILL.md +87 -0
- package/.claude/skills/mvp-board/SKILL.md +95 -0
- package/.claude/skills/mvp-grill/SKILL.md +60 -0
- package/.claude/skills/mvp-spec/SKILL.md +78 -0
- package/.claude/skills/new-pack/SKILL.md +156 -0
- package/.claude/skills/next-task/SKILL.md +65 -0
- package/.claude/skills/pack-add/SKILL.md +64 -0
- package/.claude/skills/pack-resolve/SKILL.md +67 -0
- package/.claude/skills/parallel-execution/SKILL.md +68 -0
- package/.claude/skills/qa-verify/SKILL.md +77 -0
- package/.claude/skills/risk-check/SKILL.md +88 -0
- package/.claude/skills/sync-board/SKILL.md +76 -0
- package/.claude/skills/ux-theme/SKILL.md +93 -0
- package/.codex/skills/architecture-cutline/SKILL.md +94 -0
- package/.codex/skills/board-review/SKILL.md +75 -0
- package/.codex/skills/code-review/SKILL.md +73 -0
- package/.codex/skills/execute-task/SKILL.md +76 -0
- package/.codex/skills/idea-sharpen/SKILL.md +63 -0
- package/.codex/skills/implementation-brief/SKILL.md +85 -0
- package/.codex/skills/mvp-board/SKILL.md +93 -0
- package/.codex/skills/mvp-grill/SKILL.md +58 -0
- package/.codex/skills/mvp-spec/SKILL.md +76 -0
- package/.codex/skills/new-pack/SKILL.md +153 -0
- package/.codex/skills/next-task/SKILL.md +64 -0
- package/.codex/skills/pack-add/SKILL.md +62 -0
- package/.codex/skills/pack-resolve/SKILL.md +65 -0
- package/.codex/skills/parallel-execution/SKILL.md +66 -0
- package/.codex/skills/qa-verify/SKILL.md +74 -0
- package/.codex/skills/risk-check/SKILL.md +86 -0
- package/.codex/skills/sync-board/SKILL.md +72 -0
- package/.codex/skills/ux-theme/SKILL.md +91 -0
- package/package.json +8 -5
- package/packs/README.md +22 -24
- package/packs/ai-anthropic/files/lib/anthropic.ts +46 -3
- package/packs/ai-anthropic/pack.toml +2 -3
- package/packs/auth-better-auth/files/app/api/auth/[...all]/route.ts +2 -2
- package/packs/auth-better-auth/files/lib/auth.ts +40 -1
- package/packs/auth-better-auth/pack.toml +1 -5
- package/packs/auth-better-auth-pg/files/app/api/auth/[...all]/route.ts +2 -2
- package/packs/auth-better-auth-pg/files/lib/auth.ts +40 -1
- package/packs/auth-better-auth-pg/pack.toml +1 -5
- package/packs/payments-stripe/files/lib/stripe.ts +104 -6
- package/packs/payments-stripe/pack.toml +1 -5
- package/packs/sync-zero/files/components/ZeroProvider.tsx +11 -1
- package/packs/sync-zero/files/lib/zero/client.ts +3 -3
- package/packs/sync-zero/files/lib/zero/schema.ts +15 -2
- package/packs/sync-zero/pack.toml +0 -4
- package/scripts/sync-skills.ts +223 -0
- /package/templates/nextjs/{anvil.config.json → spark.config.json} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sync-board
|
|
3
|
+
description: Update `.ai/board.md` to reflect actual code progress — apply status changes from execution reports, add discovered tasks, and recommend the next batch. Use after `/execute-task`, at the end of a working session, or when the user says "update the board", "sync progress", "what's next?". Do NOT use to create the initial board — that is `/mvp-board`.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Edit
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Skill: sync-board
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Keep `.ai/board.md` in sync with reality. The board is the source of truth — if it drifts from what is actually built, the whole system breaks.
|
|
16
|
+
|
|
17
|
+
## Recommended model
|
|
18
|
+
|
|
19
|
+
Sonnet 4.6. This is mechanical reconciliation, not planning.
|
|
20
|
+
|
|
21
|
+
## Inputs
|
|
22
|
+
|
|
23
|
+
Read these (required):
|
|
24
|
+
|
|
25
|
+
- `.ai/board.md`
|
|
26
|
+
|
|
27
|
+
Read if available:
|
|
28
|
+
|
|
29
|
+
- the most recent `/execute-task` report in the conversation
|
|
30
|
+
- `git status` and `git log` (one screenful) to confirm what actually changed
|
|
31
|
+
- `.ai/execution-log.md` if it exists
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- **Trust git, not claims.** If a report says a file changed but git disagrees, flag it and do not advance the task.
|
|
36
|
+
- Never set status to `Validated` directly from execution. `Validated` requires a `/code-review` pass and, for user-facing changes, a `/qa-verify` pass. Update `Validation state` accordingly: `code-reviewed`, `qa-verified`, or `both`.
|
|
37
|
+
- Status flow is: `In progress` → `Needs review` → `Validated`. `Blocked` can come from any state.
|
|
38
|
+
- Never move a task to `Approved for execution`. That is `/board-review`'s job.
|
|
39
|
+
- New work discovered during execution becomes a new task in `Clarifying`, at the bottom of the relevant epic — not a silent edit to an existing task.
|
|
40
|
+
- Tasks the user explicitly cut go in the `Cut from MVP` section with a reason — never delete them.
|
|
41
|
+
- If a task is `Blocked`, record the specific blocker in a `Blocked by:` line.
|
|
42
|
+
- When a PR is opened, update `Linked PR:`. When a preview deploy exists, update `Demo URL:`.
|
|
43
|
+
- Append a one-line entry per state change to `.ai/execution-log.md` (create it if missing).
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
|
|
47
|
+
1. Read the board and the latest execution report.
|
|
48
|
+
2. Run `git status` and a short `git log` to confirm actual changes.
|
|
49
|
+
3. For each affected task: update status, append changed-files and verification result.
|
|
50
|
+
4. Add any follow-up tasks discovered.
|
|
51
|
+
5. Identify the next recommended task (or batch) based on dependencies.
|
|
52
|
+
6. Write the updated board and append to the execution log.
|
|
53
|
+
|
|
54
|
+
## Output format
|
|
55
|
+
|
|
56
|
+
After writing, return:
|
|
57
|
+
|
|
58
|
+
```md
|
|
59
|
+
## Board synced
|
|
60
|
+
|
|
61
|
+
### Status changes
|
|
62
|
+
- <TASK-ID>: <old> → <new>
|
|
63
|
+
|
|
64
|
+
### Tasks added
|
|
65
|
+
- <NEW-TASK-ID>: <title> (in <EPIC>)
|
|
66
|
+
|
|
67
|
+
### Blockers
|
|
68
|
+
- <TASK-ID>: <reason>
|
|
69
|
+
|
|
70
|
+
### Next recommended
|
|
71
|
+
- <TASK-ID> (or batch from `/parallel-execution`)
|
|
72
|
+
- Why now: <one line>
|
|
73
|
+
|
|
74
|
+
### Drift detected
|
|
75
|
+
- <e.g. "claimed edit to foo.ts but git shows no change"> | none
|
|
76
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-theme
|
|
3
|
+
description: Define the visual and product direction (vibe, layout, color, typography, component style) before coding starts. Use when the user says "what should this look like?", "pick a theme", "make it feel like Linear/Notion/Vercel", or right before scaffolding UI. Do NOT use for fine-grained component styling — that belongs in execution.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Skill: ux-theme
|
|
10
|
+
|
|
11
|
+
## Goal
|
|
12
|
+
|
|
13
|
+
Produce `.ai/ux-theme.md` — a concrete visual direction that every executor task can consult. Lovable-style theme control: one clear vibe, one set of patterns, one reference product.
|
|
14
|
+
|
|
15
|
+
## Recommended model
|
|
16
|
+
|
|
17
|
+
Opus 4.7 or GPT-5.5 for the direction. Sonnet 4.6 can implement against it later.
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
Read these if they exist:
|
|
22
|
+
|
|
23
|
+
- `.ai/product-spec.md`
|
|
24
|
+
- `.ai/architecture.md`
|
|
25
|
+
- `.ai/decision-log.md`
|
|
26
|
+
|
|
27
|
+
## Rules
|
|
28
|
+
|
|
29
|
+
- Pick **one** vibe. Not "minimal but playful but also enterprise."
|
|
30
|
+
- Name **one** reference product to imitate. "Linear-style productivity SaaS" beats "clean and modern."
|
|
31
|
+
- Give concrete tokens (color names, type scale, spacing) so executors do not invent their own.
|
|
32
|
+
- Define empty / loading / error patterns up front — these are where MVPs feel broken.
|
|
33
|
+
- Do not generate full design files. This is a brief, not Figma.
|
|
34
|
+
|
|
35
|
+
## Reference directions (pick one or describe a new one)
|
|
36
|
+
|
|
37
|
+
- Linear-style productivity SaaS
|
|
38
|
+
- Notion-like workspace
|
|
39
|
+
- Vercel-like developer tool
|
|
40
|
+
- Stripe-like admin dashboard
|
|
41
|
+
- Arc-like playful consumer app
|
|
42
|
+
|
|
43
|
+
## Output format
|
|
44
|
+
|
|
45
|
+
Write `.ai/ux-theme.md`:
|
|
46
|
+
|
|
47
|
+
```md
|
|
48
|
+
# UX Theme — <name>
|
|
49
|
+
|
|
50
|
+
## Vibe
|
|
51
|
+
<one sentence>
|
|
52
|
+
|
|
53
|
+
## Reference product
|
|
54
|
+
<one product, with a link or short description of what to copy>
|
|
55
|
+
|
|
56
|
+
## Layout style
|
|
57
|
+
<sidebar + content / centered single column / dashboard grid / etc.>
|
|
58
|
+
|
|
59
|
+
## Color direction
|
|
60
|
+
- Background:
|
|
61
|
+
- Surface:
|
|
62
|
+
- Text primary:
|
|
63
|
+
- Text muted:
|
|
64
|
+
- Accent:
|
|
65
|
+
- Danger:
|
|
66
|
+
(prefer Tailwind palette names or hex)
|
|
67
|
+
|
|
68
|
+
## Typography
|
|
69
|
+
- Display:
|
|
70
|
+
- Body:
|
|
71
|
+
- Mono:
|
|
72
|
+
- Scale: <e.g. 12 / 14 / 16 / 20 / 24 / 32>
|
|
73
|
+
|
|
74
|
+
## Component style
|
|
75
|
+
- Corners: <radius>
|
|
76
|
+
- Borders: <weight, color>
|
|
77
|
+
- Shadows: <none / soft / layered>
|
|
78
|
+
- Buttons: <filled / outlined / ghost variants>
|
|
79
|
+
- Inputs: <style>
|
|
80
|
+
|
|
81
|
+
## Patterns
|
|
82
|
+
- Empty state:
|
|
83
|
+
- Loading state:
|
|
84
|
+
- Error state:
|
|
85
|
+
- Table:
|
|
86
|
+
- Card:
|
|
87
|
+
- Dialog / modal:
|
|
88
|
+
|
|
89
|
+
## Constraints
|
|
90
|
+
- <hard "no" rules, e.g. "no gradients", "no emoji in UI">
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
After writing, recommend `/mvp-board` next.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-cutline
|
|
3
|
+
description: Pick the simplest architecture that can ship the MVP. Use after `.ai/product-spec.md` exists, when the user says "what stack?", "design the architecture", or before scaffolding code. Do NOT use for greenfield exploration without a spec — run `/mvp-spec` first.
|
|
4
|
+
# Generated from .claude/skills/architecture-cutline/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: architecture-cutline
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Produce `.ai/architecture.md` — the smallest viable technical plan that can ship the spec. Your job is to **aggressively cut**, not to design a beautiful system.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Opus 4.7 or GPT-5.5.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these (required):
|
|
20
|
+
|
|
21
|
+
- `.ai/product-spec.md`
|
|
22
|
+
- `.ai/decision-log.md`
|
|
23
|
+
|
|
24
|
+
Read these if present:
|
|
25
|
+
|
|
26
|
+
- `templates/*/template.toml`
|
|
27
|
+
- `packs/*/pack.toml`
|
|
28
|
+
- `presets/*.toml`
|
|
29
|
+
|
|
30
|
+
If `product-spec.md` is missing, stop and tell the user to run `/mvp-spec` first.
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
|
|
34
|
+
- **Default to boring.** Pick the stack the user already knows over the one that scores higher on Twitter.
|
|
35
|
+
- **One database.** No microservices. No event bus. No queues unless the spec literally requires async work.
|
|
36
|
+
- For every decision, also write what you are **NOT building yet**. This is the cutline.
|
|
37
|
+
- If the spec implies something exotic (realtime collab, ML inference, search, multi-tenancy), call it out and propose a faked version for v1.
|
|
38
|
+
- Respect prior choices in `.ai/decision-log.md` unless they conflict with the spec.
|
|
39
|
+
- Choose a scaffold template before choosing packs. Prefer `nextjs` for v1 unless the spec clearly fits a registered planned template; if a planned template is the right destination, name it as planned and give the `nextjs` interim path.
|
|
40
|
+
- Recommend only packs that exist in `packs/*/pack.toml`. Do not recommend a capability if no v1 pack provides it.
|
|
41
|
+
- If the spec implies a capability with no v1 pack, name the gap explicitly in the pack plan and suggest `/new-pack` to author one.
|
|
42
|
+
|
|
43
|
+
## Output format
|
|
44
|
+
|
|
45
|
+
Write `.ai/architecture.md` with these sections:
|
|
46
|
+
|
|
47
|
+
````md
|
|
48
|
+
# Architecture — <name>
|
|
49
|
+
|
|
50
|
+
## Decision summary
|
|
51
|
+
<one paragraph: the shape of the system in plain English>
|
|
52
|
+
|
|
53
|
+
## Stack
|
|
54
|
+
- Frontend:
|
|
55
|
+
- Backend / API:
|
|
56
|
+
- Database:
|
|
57
|
+
- Auth:
|
|
58
|
+
- Storage:
|
|
59
|
+
- Payments:
|
|
60
|
+
- Deployment:
|
|
61
|
+
- Testing:
|
|
62
|
+
|
|
63
|
+
For each, one line on WHY this choice over the obvious alternative.
|
|
64
|
+
|
|
65
|
+
## Pack plan
|
|
66
|
+
- Chosen scaffold: <template name> (<stable | planned, not yet implemented; use nextjs as interim>)
|
|
67
|
+
- Recommended packs:
|
|
68
|
+
- <pack-name>: provides <capability tag(s)>; satisfies <spec need>
|
|
69
|
+
- Gaps:
|
|
70
|
+
- <capability tag>: no v1 pack exists — run `/new-pack` to author one
|
|
71
|
+
- none
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
spark add <pack-1> <pack-2>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Repo structure
|
|
78
|
+
<tree of top-level folders only>
|
|
79
|
+
|
|
80
|
+
## Data model (concrete)
|
|
81
|
+
<tables/collections with columns and types — short>
|
|
82
|
+
|
|
83
|
+
## API surface (concrete)
|
|
84
|
+
<routes or actions, grouped by feature>
|
|
85
|
+
|
|
86
|
+
## What we are NOT building yet
|
|
87
|
+
- <thing>: <reason — "fake with X for MVP" or "v2">
|
|
88
|
+
(at least 5 entries; this is the cutline)
|
|
89
|
+
|
|
90
|
+
## Risks and rollback
|
|
91
|
+
<2–4 risks with a simpler fallback for each>
|
|
92
|
+
````
|
|
93
|
+
|
|
94
|
+
After writing, append the key choices to `.ai/decision-log.md` and recommend `/ux-theme` or `/mvp-board` next.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: board-review
|
|
3
|
+
description: Sanity-check `.ai/board.md` before any task moves to `Approved for execution`. The approval gate between planning and execution. Use after `/mvp-board`, when the user says "is the board good?", "review the plan", or before kicking off coding. Do NOT skip this gate — it is the plan/review/approve boundary the whole system depends on.
|
|
4
|
+
# Generated from .claude/skills/board-review/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: board-review
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
This is the **technical-founder review** that turns a draft board into one approved for execution. Catch the mistakes that compound: missing tasks, oversized tasks, wrong dependencies, risky parallel batches, and overbuilt scope.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Opus 4.7 or GPT-5.5.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these (required):
|
|
20
|
+
|
|
21
|
+
- `.ai/board.md`
|
|
22
|
+
- `.ai/product-spec.md`
|
|
23
|
+
- `.ai/architecture.md`
|
|
24
|
+
|
|
25
|
+
Read if available:
|
|
26
|
+
|
|
27
|
+
- `.ai/ux-theme.md`
|
|
28
|
+
- `.ai/decision-log.md`
|
|
29
|
+
|
|
30
|
+
## Rules
|
|
31
|
+
|
|
32
|
+
- The whole board does not have to pass at once. You may approve some epics while sending others back.
|
|
33
|
+
- After review, set the status on approved tasks to `Approved for execution`. Tasks needing changes go to `Clarifying` with a note.
|
|
34
|
+
- Verdict per task is binary: **Approved** or **Needs changes**.
|
|
35
|
+
- The reviewer is read-only on code, but **may edit `.ai/board.md`** to flip statuses, split oversized tasks, or add missing tasks.
|
|
36
|
+
|
|
37
|
+
## Checklist
|
|
38
|
+
|
|
39
|
+
Walk the board and flag:
|
|
40
|
+
|
|
41
|
+
- **Missing tasks** — anything in the spec's acceptance criteria with no task covering it.
|
|
42
|
+
- **Oversized tasks** — touches > 5 files, > 3 acceptance criteria, or > one focused session.
|
|
43
|
+
- **Wrong dependencies** — task B depends on A but A does not produce what B needs; or hidden dependency not declared.
|
|
44
|
+
- **Risky parallel batches** — tasks marked parallel-safe that actually share files, schema, routes, or shared components.
|
|
45
|
+
- **Overbuilt parts** — tasks for things the spec's non-goals ruled out.
|
|
46
|
+
- **Vague acceptance criteria** — not observable / testable.
|
|
47
|
+
- **No core-flow-first ordering** — auth or dashboards scheduled before the user's primary action.
|
|
48
|
+
|
|
49
|
+
## Output format
|
|
50
|
+
|
|
51
|
+
```md
|
|
52
|
+
## Board review
|
|
53
|
+
|
|
54
|
+
### Verdict per epic
|
|
55
|
+
- EPIC 1 — <Approved | Needs changes>
|
|
56
|
+
- EPIC 2 — <Approved | Needs changes>
|
|
57
|
+
|
|
58
|
+
### Issues
|
|
59
|
+
- <TASK-ID>: <category> — <what's wrong> — <suggested fix>
|
|
60
|
+
|
|
61
|
+
### Tasks to add
|
|
62
|
+
- <NEW-ID>: <title> — <why missing>
|
|
63
|
+
|
|
64
|
+
### Tasks to split
|
|
65
|
+
- <TASK-ID> → <NEW-ID-a>, <NEW-ID-b>, ...
|
|
66
|
+
|
|
67
|
+
### Status flips applied to board.md
|
|
68
|
+
- <TASK-ID>: <old> → Approved for execution
|
|
69
|
+
- <TASK-ID>: <old> → Clarifying (<reason>)
|
|
70
|
+
|
|
71
|
+
### Recommended next
|
|
72
|
+
Run `/parallel-execution` on approved tasks, then `/implementation-brief <ID>`.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
After writing the review, edit `.ai/board.md` to apply the status flips. Do not invent new fields — only change statuses and (if explicitly approved by the user) split tasks.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: Review a completed task's implementation against its acceptance criteria as an independent evaluator, not the implementer. Use after `/execute-task`, when the user says "review this", "is this done?", or before marking a task `Validated`. Do NOT use to fix code — propose patches; only edit when the user explicitly asks.
|
|
4
|
+
# Generated from .claude/skills/code-review/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: code-review
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Act as the independent reviewer in the planner/implementer/evaluator loop. The implementer is too generous about its own output — your job is to catch what they missed before a task moves to `Validated`.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Opus 4.7 or GPT-5.5 for high-risk tasks (auth, payments, data migrations, schema, security). Sonnet 4.6 is fine for routine UI/CRUD tasks.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these (required):
|
|
20
|
+
|
|
21
|
+
- `.ai/board.md` — locate the task and its acceptance criteria
|
|
22
|
+
- `.ai/product-spec.md`
|
|
23
|
+
- `.ai/architecture.md`
|
|
24
|
+
- the actual diff: `git diff` for unstaged, `git diff --staged`, or `git diff <base>...HEAD`
|
|
25
|
+
|
|
26
|
+
Read if relevant:
|
|
27
|
+
|
|
28
|
+
- `.ai/ux-theme.md` for UI tasks
|
|
29
|
+
- `.ai/decision-log.md`
|
|
30
|
+
|
|
31
|
+
## Rules
|
|
32
|
+
|
|
33
|
+
- **Read-only by default.** Propose patches in prose. Do not edit files unless the user asks.
|
|
34
|
+
- Check acceptance criteria **one by one**, citing the evidence in the diff (file:line). If a criterion is not verifiable from the diff, say so — do not assume.
|
|
35
|
+
- Look beyond the criteria for: security holes, missing error handling at system boundaries, secrets in code, broken types, unused/dead code added by the executor, scope creep (edits outside the task's declared file list).
|
|
36
|
+
- Distinguish **blocking** issues (must-fix before done) from **nits** (optional). Pile of nits is not a failed review.
|
|
37
|
+
- The verdict is binary: **Pass** or **Needs changes**. No "pass with reservations."
|
|
38
|
+
|
|
39
|
+
## Workflow
|
|
40
|
+
|
|
41
|
+
1. Read the task, criteria, and the diff.
|
|
42
|
+
2. Walk through each acceptance criterion against the code.
|
|
43
|
+
3. Scan for security / boundary / scope-creep issues.
|
|
44
|
+
4. Write the verdict.
|
|
45
|
+
|
|
46
|
+
## Output format
|
|
47
|
+
|
|
48
|
+
```md
|
|
49
|
+
## Code review — <TASK-ID>: <title>
|
|
50
|
+
|
|
51
|
+
### Verdict
|
|
52
|
+
Pass | Needs changes
|
|
53
|
+
|
|
54
|
+
### Acceptance criteria
|
|
55
|
+
- [x|✗] <criterion>
|
|
56
|
+
Evidence: <file:line> — <one line>
|
|
57
|
+
|
|
58
|
+
### Blocking issues
|
|
59
|
+
- <file:line> — <problem> — <suggested fix>
|
|
60
|
+
|
|
61
|
+
### Nits
|
|
62
|
+
- <file:line> — <minor>
|
|
63
|
+
|
|
64
|
+
### Scope check
|
|
65
|
+
- Files edited match task's declared list: yes | no (<list of out-of-scope files>)
|
|
66
|
+
- New dependencies added: <list or none>
|
|
67
|
+
|
|
68
|
+
### Security / boundary check
|
|
69
|
+
- <finding or "no issues found">
|
|
70
|
+
|
|
71
|
+
### Recommended board update
|
|
72
|
+
Status: review → Validated | review → In progress (needs changes)
|
|
73
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: execute-task
|
|
3
|
+
description: Implement exactly one board task end-to-end, then report changes and a suggested board update. Use when the user says "do TASK-X", "execute the next task", "implement AUTH-001", or hands a task ID to the agent. Do NOT use without a task ID — ask which task, or run `/next-task` first.
|
|
4
|
+
# Generated from .claude/skills/execute-task/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: execute-task
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Execute one and only one task from `.ai/board.md`, without touching unrelated areas. The output is code changes plus a clean report the user can paste back into the board.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Sonnet 4.6 (or a comparable cheaper executor). Planning-quality models are overkill here unless the task is marked high-risk.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these (required):
|
|
20
|
+
|
|
21
|
+
- `.ai/board.md` — locate the task by ID
|
|
22
|
+
- `.ai/product-spec.md`
|
|
23
|
+
- `.ai/architecture.md`
|
|
24
|
+
|
|
25
|
+
Read if they exist:
|
|
26
|
+
|
|
27
|
+
- `.ai/ux-theme.md`
|
|
28
|
+
- `.ai/decision-log.md`
|
|
29
|
+
- A prior `/implementation-brief` for this task if the user provided one
|
|
30
|
+
|
|
31
|
+
If the task ID is missing, already `Validated`, or not in status `Approved for execution`, stop and tell the user. Approval comes from `/board-review`, not from this skill.
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- **Do exactly the task in the brief.** No bonus refactors, no "while I'm here" cleanups.
|
|
36
|
+
- If you discover work outside scope, write it down as a follow-up task in the report. Do not silently expand.
|
|
37
|
+
- Stay inside `Files likely to edit` unless a real blocker forces otherwise — then explain why in the report.
|
|
38
|
+
- After editing, run the verification command(s) from the brief. If they fail, fix and re-run. If you cannot fix, mark the task `blocked` with a specific reason.
|
|
39
|
+
- Do not edit `.ai/board.md` directly here — propose the status change in the report and let `/sync-board` apply it.
|
|
40
|
+
- Never mark a task `done` if acceptance criteria are not all checked.
|
|
41
|
+
|
|
42
|
+
## Workflow
|
|
43
|
+
|
|
44
|
+
1. Re-read the task, brief, and any spec/architecture sections it touches.
|
|
45
|
+
2. Plan the edits in your head (or in TodoWrite if non-trivial).
|
|
46
|
+
3. Make the changes.
|
|
47
|
+
4. Run verification (build / typecheck / tests / the specific command from the brief).
|
|
48
|
+
5. Write the report.
|
|
49
|
+
|
|
50
|
+
## Output format
|
|
51
|
+
|
|
52
|
+
```md
|
|
53
|
+
## Task <ID>: <title> — execution report
|
|
54
|
+
|
|
55
|
+
### Changed files
|
|
56
|
+
- <path>: <one-line description>
|
|
57
|
+
|
|
58
|
+
### Acceptance criteria check
|
|
59
|
+
- [x] <criterion> — <how it was verified>
|
|
60
|
+
- [ ] <criterion> — <why not yet>
|
|
61
|
+
|
|
62
|
+
### Verification
|
|
63
|
+
- Command: `<cmd>`
|
|
64
|
+
- Result: passed | failed | not run (with reason)
|
|
65
|
+
|
|
66
|
+
### Suggested board update
|
|
67
|
+
Status: In progress → Needs review | Blocked
|
|
68
|
+
(if Blocked) Reason: <specific>
|
|
69
|
+
Validation state: not started
|
|
70
|
+
|
|
71
|
+
### Follow-up tasks discovered
|
|
72
|
+
- <short title>: <one-line scope>
|
|
73
|
+
|
|
74
|
+
### Next
|
|
75
|
+
Run `/code-review <ID>` (independent evaluator), then `/qa-verify` for user-facing changes, then `/sync-board` to apply state.
|
|
76
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-sharpen
|
|
3
|
+
description: Turn a weak or broad product idea into 2–3 sharper MVP angles and recommend one. Use when the user has an idea but is unsure of the angle, says "is this a good idea?", "what's the best version of this?", or "should I do X or Y?". Do NOT use after the angle is already chosen — switch to `/mvp-grill` or `/mvp-spec`.
|
|
4
|
+
# Generated from .claude/skills/idea-sharpen/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: idea-sharpen
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Act as a product strategist. Take a vague idea and produce three concrete MVP angles with real tradeoffs, then recommend one. Challenge the idea — do not validate it.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Opus 4.7 or GPT-5.5.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these if they exist:
|
|
20
|
+
|
|
21
|
+
- `.ai/product-spec.md`
|
|
22
|
+
- `.ai/decision-log.md`
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
- Produce exactly **three angles**, not more. More options means less commitment.
|
|
27
|
+
- Each angle must be genuinely different — not three flavors of the same idea.
|
|
28
|
+
- Each angle must name a specific target user and the core user action.
|
|
29
|
+
- Pick a winner. "It depends" is not an output.
|
|
30
|
+
- Call out what is weak about the original idea. Do not soften.
|
|
31
|
+
- Do not write code, scaffold files, or commit to a stack here.
|
|
32
|
+
|
|
33
|
+
## Output format
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
## Original idea
|
|
37
|
+
<one-sentence restatement, sharper than the user's>
|
|
38
|
+
|
|
39
|
+
## What is weak about it
|
|
40
|
+
<2–4 bullets: vague user, crowded space, no clear pull, etc.>
|
|
41
|
+
|
|
42
|
+
## Angle A — Fastest MVP
|
|
43
|
+
- Target user:
|
|
44
|
+
- Core action:
|
|
45
|
+
- What it does NOT do:
|
|
46
|
+
- Time to first usable version:
|
|
47
|
+
- Why this could win:
|
|
48
|
+
- Why this could fail:
|
|
49
|
+
|
|
50
|
+
## Angle B — Most differentiated
|
|
51
|
+
<same shape>
|
|
52
|
+
|
|
53
|
+
## Angle C — Most monetizable
|
|
54
|
+
<same shape>
|
|
55
|
+
|
|
56
|
+
## Recommendation
|
|
57
|
+
<one of A/B/C, with the single reason that decides it>
|
|
58
|
+
|
|
59
|
+
## Next
|
|
60
|
+
Run `/mvp-grill` on the chosen angle.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Append the chosen angle to `.ai/decision-log.md` with the reasoning.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implementation-brief
|
|
3
|
+
description: Generate the exact prompt an executor (Sonnet / Claude Code) should receive to implement one board task without wandering. Use when the user says "give Claude Code the prompt for TASK-X", "prep this task for execution", or right before handing a task to an executor. Do NOT use to actually run the task — that is `/execute-task`.
|
|
4
|
+
# Generated from .claude/skills/implementation-brief/SKILL.md — DO NOT EDIT directly
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill: implementation-brief
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Produce a tight, executor-ready brief for one specific board task. The brief is the contract that stops the executor from inventing scope.
|
|
12
|
+
|
|
13
|
+
## Recommended model
|
|
14
|
+
|
|
15
|
+
Opus 4.7 or GPT-5.5 (planning-quality model writes the brief; cheaper model executes it).
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
Read these (required):
|
|
20
|
+
|
|
21
|
+
- `.ai/board.md` — find the task by ID
|
|
22
|
+
- `.ai/product-spec.md`
|
|
23
|
+
- `.ai/architecture.md`
|
|
24
|
+
|
|
25
|
+
Read if they exist:
|
|
26
|
+
|
|
27
|
+
- `.ai/ux-theme.md`
|
|
28
|
+
- `.ai/decision-log.md`
|
|
29
|
+
|
|
30
|
+
If the task ID is not in `board.md`, stop and ask the user.
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
|
|
34
|
+
- One task per brief. Never bundle.
|
|
35
|
+
- The brief must be **self-contained** — an executor should not need to re-read the spec to do the work.
|
|
36
|
+
- Quote the acceptance criteria from the board verbatim. Do not paraphrase.
|
|
37
|
+
- List files **to inspect first** separately from files **likely to edit**. Reading comes before writing.
|
|
38
|
+
- Include the exact verification command(s) the executor must run before declaring done.
|
|
39
|
+
- Forbid anything not in scope by name.
|
|
40
|
+
|
|
41
|
+
## Output format
|
|
42
|
+
|
|
43
|
+
Return a single fenced block the user can copy into the executor:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
# Task brief — <ID>: <title>
|
|
47
|
+
|
|
48
|
+
## Context
|
|
49
|
+
<2–4 sentences pulled from spec and architecture>
|
|
50
|
+
|
|
51
|
+
## Goal
|
|
52
|
+
<single sentence>
|
|
53
|
+
|
|
54
|
+
## Non-goals
|
|
55
|
+
- <thing not to do>
|
|
56
|
+
- <thing not to refactor>
|
|
57
|
+
|
|
58
|
+
## Acceptance criteria (verbatim from board)
|
|
59
|
+
- [ ] ...
|
|
60
|
+
- [ ] ...
|
|
61
|
+
|
|
62
|
+
## Files to inspect first
|
|
63
|
+
- <path> — <why>
|
|
64
|
+
|
|
65
|
+
## Files likely to edit
|
|
66
|
+
- <path>
|
|
67
|
+
|
|
68
|
+
## UX / theme constraints (if relevant)
|
|
69
|
+
<short reference to `.ai/ux-theme.md` patterns>
|
|
70
|
+
|
|
71
|
+
## Commands to run
|
|
72
|
+
- <install / build / test>
|
|
73
|
+
|
|
74
|
+
## Definition of done
|
|
75
|
+
1. Acceptance criteria check, item by item.
|
|
76
|
+
2. Verification command exits 0.
|
|
77
|
+
3. List changed files and one-line per change.
|
|
78
|
+
4. Suggest board status update.
|
|
79
|
+
5. List any follow-up tasks discovered.
|
|
80
|
+
|
|
81
|
+
## Out of scope (do not touch)
|
|
82
|
+
- <area / file / feature>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
After returning the brief, recommend `/execute-task <ID>` as the next step.
|