@c0x12c/ai-toolkit 1.15.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-plugin/marketplace.json +16 -0
- package/.claude-plugin/plugin.json +12 -0
- package/README.md +439 -0
- package/VERSION +1 -0
- package/agents/design-critic.md +127 -0
- package/agents/idea-killer.md +72 -0
- package/agents/infrastructure-expert.md +49 -0
- package/agents/micronaut-backend-expert.md +45 -0
- package/agents/phase-reviewer.md +150 -0
- package/agents/research-planner.md +70 -0
- package/agents/solution-architect-cto.md +49 -0
- package/agents/sre-architect.md +49 -0
- package/agents/team-coordinator.md +111 -0
- package/bin/cli.js +780 -0
- package/claude-md/00-header.md +39 -0
- package/claude-md/01-core.md +105 -0
- package/claude-md/05-database.md +20 -0
- package/claude-md/11-backend-micronaut.md +19 -0
- package/claude-md/20-frontend-react.md +44 -0
- package/claude-md/25-ux-design.md +56 -0
- package/claude-md/30-infrastructure.md +24 -0
- package/claude-md/30-project-mgmt.md +119 -0
- package/claude-md/40-product.md +39 -0
- package/claude-md/50-ops.md +34 -0
- package/claude-md/60-research.md +27 -0
- package/claude-md/90-footer.md +21 -0
- package/commands/spartan/brainstorm.md +134 -0
- package/commands/spartan/brownfield.md +157 -0
- package/commands/spartan/build.md +435 -0
- package/commands/spartan/careful.md +94 -0
- package/commands/spartan/commit-message.md +112 -0
- package/commands/spartan/content.md +17 -0
- package/commands/spartan/context-save.md +161 -0
- package/commands/spartan/contribute.md +140 -0
- package/commands/spartan/daily.md +42 -0
- package/commands/spartan/debug.md +308 -0
- package/commands/spartan/deep-dive.md +55 -0
- package/commands/spartan/deploy.md +207 -0
- package/commands/spartan/e2e.md +264 -0
- package/commands/spartan/env-setup.md +166 -0
- package/commands/spartan/epic.md +199 -0
- package/commands/spartan/fe-review.md +181 -0
- package/commands/spartan/figma-to-code.md +260 -0
- package/commands/spartan/forensics.md +46 -0
- package/commands/spartan/freeze.md +84 -0
- package/commands/spartan/fundraise.md +53 -0
- package/commands/spartan/gate-review.md +229 -0
- package/commands/spartan/gsd-upgrade.md +376 -0
- package/commands/spartan/guard.md +42 -0
- package/commands/spartan/init-project.md +178 -0
- package/commands/spartan/init-rules.md +298 -0
- package/commands/spartan/interview.md +154 -0
- package/commands/spartan/kickoff.md +73 -0
- package/commands/spartan/kotlin-service.md +109 -0
- package/commands/spartan/lean-canvas.md +222 -0
- package/commands/spartan/lint-rules.md +122 -0
- package/commands/spartan/map-codebase.md +124 -0
- package/commands/spartan/migration.md +82 -0
- package/commands/spartan/next-app.md +317 -0
- package/commands/spartan/next-feature.md +212 -0
- package/commands/spartan/onboard.md +326 -0
- package/commands/spartan/outreach.md +16 -0
- package/commands/spartan/phase.md +142 -0
- package/commands/spartan/pitch.md +18 -0
- package/commands/spartan/plan.md +210 -0
- package/commands/spartan/pr-ready.md +202 -0
- package/commands/spartan/project.md +106 -0
- package/commands/spartan/qa.md +222 -0
- package/commands/spartan/research.md +254 -0
- package/commands/spartan/review.md +132 -0
- package/commands/spartan/scan-rules.md +173 -0
- package/commands/spartan/sessions.md +143 -0
- package/commands/spartan/spec.md +131 -0
- package/commands/spartan/startup.md +257 -0
- package/commands/spartan/team.md +570 -0
- package/commands/spartan/teardown.md +161 -0
- package/commands/spartan/testcontainer.md +97 -0
- package/commands/spartan/tf-cost.md +123 -0
- package/commands/spartan/tf-deploy.md +116 -0
- package/commands/spartan/tf-drift.md +100 -0
- package/commands/spartan/tf-import.md +107 -0
- package/commands/spartan/tf-module.md +121 -0
- package/commands/spartan/tf-plan.md +100 -0
- package/commands/spartan/tf-review.md +106 -0
- package/commands/spartan/tf-scaffold.md +109 -0
- package/commands/spartan/tf-security.md +147 -0
- package/commands/spartan/think.md +221 -0
- package/commands/spartan/unfreeze.md +13 -0
- package/commands/spartan/update.md +134 -0
- package/commands/spartan/ux.md +1233 -0
- package/commands/spartan/validate.md +193 -0
- package/commands/spartan/web-to-prd.md +706 -0
- package/commands/spartan/workstreams.md +109 -0
- package/commands/spartan/write.md +16 -0
- package/commands/spartan.md +386 -0
- package/frameworks/00-framework-comparison-guide.md +317 -0
- package/frameworks/01-lean-canvas.md +196 -0
- package/frameworks/02-design-sprint.md +304 -0
- package/frameworks/03-foundation-sprint.md +337 -0
- package/frameworks/04-business-model-canvas.md +391 -0
- package/frameworks/05-customer-development.md +426 -0
- package/frameworks/06-jobs-to-be-done.md +358 -0
- package/frameworks/07-mom-test.md +392 -0
- package/frameworks/08-value-proposition-canvas.md +488 -0
- package/frameworks/09-javelin-board.md +428 -0
- package/frameworks/10-build-measure-learn.md +467 -0
- package/frameworks/11-mvp-approaches.md +533 -0
- package/frameworks/think-before-build.md +593 -0
- package/lib/assembler.js +197 -0
- package/lib/assembler.test.js +159 -0
- package/lib/detector.js +166 -0
- package/lib/detector.test.js +221 -0
- package/lib/packs.js +16 -0
- package/lib/resolver.js +272 -0
- package/lib/resolver.test.js +298 -0
- package/lib/worktree.sh +104 -0
- package/package.json +50 -0
- package/packs/backend-micronaut.yaml +35 -0
- package/packs/backend-nodejs.yaml +15 -0
- package/packs/backend-python.yaml +15 -0
- package/packs/core.yaml +37 -0
- package/packs/database.yaml +21 -0
- package/packs/frontend-react.yaml +24 -0
- package/packs/infrastructure.yaml +40 -0
- package/packs/ops.yaml +16 -0
- package/packs/packs.compiled.json +371 -0
- package/packs/product.yaml +22 -0
- package/packs/project-mgmt.yaml +24 -0
- package/packs/research.yaml +39 -0
- package/packs/shared-backend.yaml +14 -0
- package/packs/ux-design.yaml +21 -0
- package/rules/backend-micronaut/API_DESIGN.md +313 -0
- package/rules/backend-micronaut/BATCH_PROCESSING.md +92 -0
- package/rules/backend-micronaut/CONTROLLERS.md +388 -0
- package/rules/backend-micronaut/KOTLIN.md +414 -0
- package/rules/backend-micronaut/RETROFIT_PLACEMENT.md +290 -0
- package/rules/backend-micronaut/SERVICES_AND_BEANS.md +325 -0
- package/rules/core/NAMING_CONVENTIONS.md +208 -0
- package/rules/core/SKILL_AUTHORING.md +174 -0
- package/rules/core/TIMEZONE.md +316 -0
- package/rules/database/ORM_AND_REPO.md +289 -0
- package/rules/database/SCHEMA.md +146 -0
- package/rules/database/TRANSACTIONS.md +311 -0
- package/rules/frontend-react/FRONTEND.md +344 -0
- package/rules/infrastructure/MODULES.md +260 -0
- package/rules/infrastructure/NAMING.md +196 -0
- package/rules/infrastructure/PROVIDERS.md +309 -0
- package/rules/infrastructure/SECURITY.md +310 -0
- package/rules/infrastructure/STATE_AND_BACKEND.md +237 -0
- package/rules/infrastructure/STRUCTURE.md +234 -0
- package/rules/infrastructure/VARIABLES.md +285 -0
- package/rules/shared-backend/ARCHITECTURE.md +46 -0
- package/rules/ux-design/DESIGN_PROCESS.md +176 -0
- package/skills/api-endpoint-creator/SKILL.md +455 -0
- package/skills/api-endpoint-creator/error-handling-guide.md +244 -0
- package/skills/api-endpoint-creator/examples.md +522 -0
- package/skills/api-endpoint-creator/testing-patterns.md +302 -0
- package/skills/article-writing/SKILL.md +109 -0
- package/skills/article-writing/examples.md +59 -0
- package/skills/backend-api-design/SKILL.md +84 -0
- package/skills/backend-api-design/code-patterns.md +138 -0
- package/skills/brainstorm/SKILL.md +95 -0
- package/skills/browser-qa/SKILL.md +87 -0
- package/skills/browser-qa/playwright-snippets.md +110 -0
- package/skills/ci-cd-patterns/SKILL.md +108 -0
- package/skills/ci-cd-patterns/workflows.md +149 -0
- package/skills/competitive-teardown/SKILL.md +93 -0
- package/skills/competitive-teardown/example-analysis.md +50 -0
- package/skills/content-engine/SKILL.md +131 -0
- package/skills/content-engine/examples.md +72 -0
- package/skills/database-patterns/SKILL.md +72 -0
- package/skills/database-patterns/code-templates.md +114 -0
- package/skills/database-table-creator/SKILL.md +141 -0
- package/skills/database-table-creator/examples.md +552 -0
- package/skills/database-table-creator/kotlin-templates.md +400 -0
- package/skills/database-table-creator/migration-template.sql +68 -0
- package/skills/database-table-creator/validation-checklist.md +337 -0
- package/skills/deep-research/SKILL.md +80 -0
- package/skills/design-intelligence/SKILL.md +268 -0
- package/skills/design-workflow/SKILL.md +127 -0
- package/skills/design-workflow/checklists.md +45 -0
- package/skills/idea-validation/SKILL.md +129 -0
- package/skills/idea-validation/example-report.md +50 -0
- package/skills/investor-materials/SKILL.md +122 -0
- package/skills/investor-materials/example-outline.md +70 -0
- package/skills/investor-outreach/SKILL.md +112 -0
- package/skills/investor-outreach/examples.md +76 -0
- package/skills/kotlin-best-practices/SKILL.md +58 -0
- package/skills/kotlin-best-practices/code-patterns.md +132 -0
- package/skills/market-research/SKILL.md +99 -0
- package/skills/security-checklist/SKILL.md +65 -0
- package/skills/security-checklist/audit-reference.md +95 -0
- package/skills/service-debugging/SKILL.md +116 -0
- package/skills/service-debugging/common-issues.md +65 -0
- package/skills/startup-pipeline/SKILL.md +152 -0
- package/skills/terraform-best-practices/SKILL.md +244 -0
- package/skills/terraform-module-creator/SKILL.md +284 -0
- package/skills/terraform-review/SKILL.md +222 -0
- package/skills/terraform-security-audit/SKILL.md +280 -0
- package/skills/terraform-service-scaffold/SKILL.md +574 -0
- package/skills/testing-strategies/SKILL.md +116 -0
- package/skills/testing-strategies/examples.md +103 -0
- package/skills/testing-strategies/integration-test-setup.md +71 -0
- package/skills/ui-ux-pro-max/SKILL.md +238 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/python-setup.md +146 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/web-to-prd/SKILL.md +478 -0
- package/templates/build-config.yaml +44 -0
- package/templates/commands-config.yaml +55 -0
- package/templates/competitor-analysis.md +60 -0
- package/templates/content/AGENT_TEMPLATE.md +47 -0
- package/templates/content/COMMAND_TEMPLATE.md +27 -0
- package/templates/content/RULE_TEMPLATE.md +40 -0
- package/templates/content/SKILL_TEMPLATE.md +41 -0
- package/templates/design-config.md +105 -0
- package/templates/design-doc.md +207 -0
- package/templates/epic.md +100 -0
- package/templates/feature-spec.md +181 -0
- package/templates/idea-canvas.md +47 -0
- package/templates/implementation-plan.md +159 -0
- package/templates/prd-template.md +86 -0
- package/templates/preamble.md +89 -0
- package/templates/project-readme.md +35 -0
- package/templates/quality-gates.md +230 -0
- package/templates/spartan-config.yaml +164 -0
- package/templates/user-interview.md +69 -0
- package/templates/validation-checklist.md +108 -0
- package/templates/workflow-backend-micronaut.md +409 -0
- package/templates/workflow-frontend-react.md +233 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:context-save
|
|
3
|
+
description: Manage context window — first tries /compact to free space, then saves full handoff if needed. Auto-triggered when Claude detects context pressure, or run manually anytime.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Context Save — Smart Context Management
|
|
7
|
+
|
|
8
|
+
## Step 0: Triage — Compact or Full Save?
|
|
9
|
+
|
|
10
|
+
Assess the situation before doing a full handoff:
|
|
11
|
+
|
|
12
|
+
**Option A: Compact (stay in same session)**
|
|
13
|
+
If the session has useful remaining capacity and user wants to keep working:
|
|
14
|
+
1. Summarize the conversation so far into key decisions + current state
|
|
15
|
+
2. Run `/compact` to free context space
|
|
16
|
+
3. Continue working in the same session
|
|
17
|
+
|
|
18
|
+
Use compact when: mid-task, still productive, just need to free space.
|
|
19
|
+
|
|
20
|
+
**Option B: Full Save (end session, resume in new one)**
|
|
21
|
+
If the session is too deep to recover, or user is done for now:
|
|
22
|
+
1. Save everything to `.handoff/` file
|
|
23
|
+
2. Update `.memory/` with new knowledge
|
|
24
|
+
3. User starts fresh session and reads the handoff file
|
|
25
|
+
|
|
26
|
+
Use full save when: session > 60%, quality visibly degrading, end of work day, switching to different task.
|
|
27
|
+
|
|
28
|
+
**Auto-triggered?** When Claude detects its own context pressure (forgetting earlier context, slow responses, repeating itself), it should:
|
|
29
|
+
1. First try compact (Option A)
|
|
30
|
+
2. If already compacted once this session → go to full save (Option B)
|
|
31
|
+
3. Tell the user what's happening: "Context getting heavy — compacting to stay productive."
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Full Save Process (Option B)
|
|
36
|
+
|
|
37
|
+
## Step 1: Capture Current State
|
|
38
|
+
|
|
39
|
+
Answer these by reviewing the conversation and codebase:
|
|
40
|
+
|
|
41
|
+
**1. What was being worked on?**
|
|
42
|
+
(Feature name, ticket, GSD phase, etc.)
|
|
43
|
+
|
|
44
|
+
**2. What was completed in this session?**
|
|
45
|
+
(List commits made, tasks finished)
|
|
46
|
+
|
|
47
|
+
**3. What is the current status?**
|
|
48
|
+
(In-progress task, where exactly we stopped)
|
|
49
|
+
|
|
50
|
+
**4. What are the immediate next steps?**
|
|
51
|
+
(Exactly what to do next — be specific enough that a fresh agent can start without asking)
|
|
52
|
+
|
|
53
|
+
**5. What context is critical to carry forward?**
|
|
54
|
+
(Key decisions made, tradeoffs chosen, things tried that didn't work)
|
|
55
|
+
|
|
56
|
+
**6. What are the known risks / things to watch out for?**
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Step 2: Check Git State
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Uncommitted changes?
|
|
64
|
+
git status
|
|
65
|
+
git diff --stat
|
|
66
|
+
|
|
67
|
+
# Last commits this session
|
|
68
|
+
git log --oneline -5
|
|
69
|
+
|
|
70
|
+
# Current branch
|
|
71
|
+
git branch --show-current
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If there are uncommitted changes:
|
|
75
|
+
- Stash them: `git stash save "wip: [description]"`
|
|
76
|
+
- Or commit as WIP: `git commit -m "chore: wip - [what's in progress]"`
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 3: Write Handoff File
|
|
81
|
+
|
|
82
|
+
Save as `.handoff/[YYYY-MM-DD-HH]-[feature-slug].md`:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# Session Handoff: [feature/task name]
|
|
86
|
+
Created: [timestamp]
|
|
87
|
+
Branch: [current branch]
|
|
88
|
+
Author: [git user.name]
|
|
89
|
+
|
|
90
|
+
## What We Were Building
|
|
91
|
+
[1-2 sentences on the feature/task]
|
|
92
|
+
|
|
93
|
+
## Session Progress
|
|
94
|
+
### Completed ✅
|
|
95
|
+
- [task 1 — commit hash if available]
|
|
96
|
+
- [task 2]
|
|
97
|
+
|
|
98
|
+
### In Progress 🔨
|
|
99
|
+
- [exactly what was being done when session ended]
|
|
100
|
+
- Current file being edited: [path]
|
|
101
|
+
- Stopped at: [line/function/what was next]
|
|
102
|
+
|
|
103
|
+
## Resume Instructions
|
|
104
|
+
To pick up immediately:
|
|
105
|
+
1. `git checkout [branch]`
|
|
106
|
+
2. [specific command or action to run first]
|
|
107
|
+
3. [next step]
|
|
108
|
+
4. Goal: [what "done" looks like for the next session]
|
|
109
|
+
|
|
110
|
+
## Key Decisions Made This Session
|
|
111
|
+
- [decision 1 and why]
|
|
112
|
+
- [decision 2 and why]
|
|
113
|
+
|
|
114
|
+
## Things Tried That Didn't Work
|
|
115
|
+
- [approach X] — didn't work because [reason], don't try again
|
|
116
|
+
- [approach Y] — causes [problem]
|
|
117
|
+
|
|
118
|
+
## Critical Context
|
|
119
|
+
[Any important information that isn't obvious from the code:
|
|
120
|
+
- Business rules that affected implementation
|
|
121
|
+
- Gotchas discovered
|
|
122
|
+
- Dependencies or constraints to be aware of]
|
|
123
|
+
|
|
124
|
+
## Blockers / Risks
|
|
125
|
+
- [any outstanding questions or blockers]
|
|
126
|
+
|
|
127
|
+
## GSD State (if using GSD)
|
|
128
|
+
- Project: [PROJECT.md location]
|
|
129
|
+
- Milestone: [current milestone]
|
|
130
|
+
- Phase: [current phase N of M]
|
|
131
|
+
- Resume with: `/gsd:status` then `/gsd:execute-phase [N]`
|
|
132
|
+
|
|
133
|
+
## Files Modified This Session
|
|
134
|
+
[list of key files changed]
|
|
135
|
+
|
|
136
|
+
## Tests Status
|
|
137
|
+
- All tests passing: [yes/no]
|
|
138
|
+
- Tests added: [list]
|
|
139
|
+
- Known failing tests: [list if any, why]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Step 4: Verify Handoff is Complete
|
|
145
|
+
|
|
146
|
+
Read back the handoff file you just wrote and confirm:
|
|
147
|
+
- [ ] Someone could resume without asking any questions
|
|
148
|
+
- [ ] The "Resume Instructions" are specific enough to act on immediately
|
|
149
|
+
- [ ] Git state is clean (committed or stashed)
|
|
150
|
+
- [ ] No context is locked in this conversation that isn't in the file
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## How to Resume in Next Session
|
|
155
|
+
|
|
156
|
+
Start the new session with:
|
|
157
|
+
```
|
|
158
|
+
Read .handoff/[filename].md and resume where we left off.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
The fresh Claude session will have full 200k context and all the state from this file.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:contribute
|
|
3
|
+
description: Toggle contributor mode — Claude rates its own skill experience (0-10) after each command and files improvement reports to ~/.spartan/contributor-logs/. Opt-in only.
|
|
4
|
+
argument-hint: "[on | off | reports]"
|
|
5
|
+
preamble-tier: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Contributor Mode: {{ args[0] | default: "on" }}
|
|
9
|
+
|
|
10
|
+
You are managing **contributor mode** — a self-improvement loop for Spartan.
|
|
11
|
+
|
|
12
|
+
When active, after every `/spartan:*` command finishes, Claude writes a short field report rating how well the skill worked.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
{% if args[0] == "on" or args[0] == nil %}
|
|
17
|
+
## Activate Contributor Mode
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
mkdir -p ~/.spartan/contributor-logs
|
|
21
|
+
echo "enabled" > ~/.spartan/contributor-mode
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Say: "Contributor mode ON. I'll file a quick report after each command — you won't notice unless something scored low."
|
|
25
|
+
|
|
26
|
+
### What Happens Now
|
|
27
|
+
|
|
28
|
+
After every `/spartan:*` command completes, **silently** evaluate and write a report:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
mkdir -p ~/.spartan/contributor-logs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Write a file to `~/.spartan/contributor-logs/YYYY-MM-DD-HH-MM-command-name.md`:
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
## Field Report: /spartan:[command]
|
|
38
|
+
Date: [ISO timestamp]
|
|
39
|
+
Score: [0-10]
|
|
40
|
+
Branch: [current branch]
|
|
41
|
+
Directory: [project directory]
|
|
42
|
+
|
|
43
|
+
### What worked
|
|
44
|
+
- [1-2 bullets on what the skill did well]
|
|
45
|
+
|
|
46
|
+
### What didn't work
|
|
47
|
+
- [1-2 bullets on friction, confusion, or missing features]
|
|
48
|
+
- [skip this section if score >= 8]
|
|
49
|
+
|
|
50
|
+
### Suggestion
|
|
51
|
+
[One concrete improvement — a specific change to the command/skill, not vague feedback]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Scoring Guide
|
|
55
|
+
|
|
56
|
+
| Score | Meaning |
|
|
57
|
+
|-------|---------|
|
|
58
|
+
| 9-10 | Nailed it. No friction. Would use again without changes. |
|
|
59
|
+
| 7-8 | Good. Minor friction but got the job done. |
|
|
60
|
+
| 5-6 | OK. Needed manual intervention or workarounds. |
|
|
61
|
+
| 3-4 | Poor. Missed the point or gave bad guidance. |
|
|
62
|
+
| 0-2 | Broken. Actively wasted time or caused errors. |
|
|
63
|
+
|
|
64
|
+
### Rules for Reporting
|
|
65
|
+
|
|
66
|
+
1. **Be honest.** Don't inflate scores. A 6 is a 6.
|
|
67
|
+
2. **Be specific.** "The migration template assumed Flyway but we use Liquibase" is useful. "Could be better" is not.
|
|
68
|
+
3. **One suggestion per report.** The best improvement, not a wish list.
|
|
69
|
+
4. **Don't slow down the user.** Write the report silently after the command finishes. Never ask the user to rate anything.
|
|
70
|
+
5. **Score relative to the skill's promise.** If `/spartan:qa` says it'll find bugs but only checked if the page loads, that's a 4.
|
|
71
|
+
|
|
72
|
+
{% elif args[0] == "off" %}
|
|
73
|
+
## Deactivate Contributor Mode
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
rm -f ~/.spartan/contributor-mode
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Say: "Contributor mode OFF. No more field reports. Your existing reports are still in `~/.spartan/contributor-logs/`."
|
|
80
|
+
|
|
81
|
+
{% elif args[0] == "reports" %}
|
|
82
|
+
## View Reports
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
echo "=== Contributor Reports ==="
|
|
86
|
+
echo ""
|
|
87
|
+
|
|
88
|
+
if [ ! -d ~/.spartan/contributor-logs ] || [ -z "$(ls ~/.spartan/contributor-logs/ 2>/dev/null)" ]; then
|
|
89
|
+
echo "No reports yet. Enable contributor mode with /spartan:contribute"
|
|
90
|
+
exit 0
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
# Summary stats
|
|
94
|
+
TOTAL=$(ls ~/.spartan/contributor-logs/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
95
|
+
echo "Total reports: $TOTAL"
|
|
96
|
+
echo ""
|
|
97
|
+
|
|
98
|
+
# Show last 10 reports with scores
|
|
99
|
+
echo "Recent reports:"
|
|
100
|
+
for f in $(ls -t ~/.spartan/contributor-logs/*.md 2>/dev/null | head -10); do
|
|
101
|
+
FNAME=$(basename "$f" .md)
|
|
102
|
+
SCORE=$(grep "^Score:" "$f" 2>/dev/null | head -1 | awk '{print $2}')
|
|
103
|
+
echo " [$SCORE/10] $FNAME"
|
|
104
|
+
done
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Show the results in a clean table. Then:
|
|
108
|
+
|
|
109
|
+
- If any score < 5: "Some skills scored low. Want me to read those reports and suggest fixes?"
|
|
110
|
+
- If average > 7: "Skills are working well overall."
|
|
111
|
+
- Always: "Reports are in `~/.spartan/contributor-logs/`. You can share them as GitHub issues to help improve Spartan."
|
|
112
|
+
|
|
113
|
+
### Aggregate Analysis
|
|
114
|
+
|
|
115
|
+
If the user asks for deeper analysis, group reports by command and show:
|
|
116
|
+
|
|
117
|
+
| Command | Reports | Avg Score | Lowest | Top Issue |
|
|
118
|
+
|---------|---------|-----------|--------|-----------|
|
|
119
|
+
| /spartan:build | N | X.X | X | [most common complaint] |
|
|
120
|
+
| /spartan:debug | N | X.X | X | [most common complaint] |
|
|
121
|
+
|
|
122
|
+
{% else %}
|
|
123
|
+
## Unknown argument: {{ args[0] }}
|
|
124
|
+
|
|
125
|
+
Available options:
|
|
126
|
+
- `/spartan:contribute` — Turn on contributor mode (default)
|
|
127
|
+
- `/spartan:contribute off` — Turn it off
|
|
128
|
+
- `/spartan:contribute reports` — View and analyze filed reports
|
|
129
|
+
{% endif %}
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## How to Check if Active
|
|
134
|
+
|
|
135
|
+
Any skill can check:
|
|
136
|
+
```bash
|
|
137
|
+
[ -f ~/.spartan/contributor-mode ] && echo "CONTRIBUTOR_MODE=on"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
If the file exists and contains "enabled", file a report after the skill finishes.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:daily
|
|
3
|
+
description: Generate a daily standup summary based on recent git history and GSD status
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Generate a daily engineering standup summary for the current project.
|
|
7
|
+
|
|
8
|
+
## Steps
|
|
9
|
+
|
|
10
|
+
1. **Check recent git history** (last 24-48h):
|
|
11
|
+
```bash
|
|
12
|
+
git log --since="2 days ago" --oneline --author="$(git config user.name)"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. **Check GSD status** (if GSD project exists):
|
|
16
|
+
Read `.planning/` directory for current milestone and phase status.
|
|
17
|
+
|
|
18
|
+
3. **Check for any failing tests or CI notes** (if available):
|
|
19
|
+
Look for recent test output files or CI logs.
|
|
20
|
+
|
|
21
|
+
## Output Format
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
## Daily Standup — [DATE]
|
|
25
|
+
|
|
26
|
+
### Yesterday / Done
|
|
27
|
+
- [completed items from git log / GSD progress]
|
|
28
|
+
|
|
29
|
+
### Today / In Progress
|
|
30
|
+
- [current phase or active task]
|
|
31
|
+
- [next planned task]
|
|
32
|
+
|
|
33
|
+
### Blockers
|
|
34
|
+
- [any blockers found, or "None"]
|
|
35
|
+
|
|
36
|
+
### Progress on Current Milestone
|
|
37
|
+
- Phase X of Y complete
|
|
38
|
+
- Est. completion: [if determinable from roadmap]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Keep it concise — each section max 3-4 bullet points.
|
|
42
|
+
This is for a 15-minute standup, not a status report.
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:debug
|
|
3
|
+
description: "Find and fix a bug end-to-end — structured investigation, root cause, test-first fix, and PR"
|
|
4
|
+
argument-hint: "[describe the symptom or error]"
|
|
5
|
+
preamble-tier: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Debug: {{ args[0] | default: "a bug" }}
|
|
9
|
+
|
|
10
|
+
You are the **Debug workflow leader** — structured debugging from symptom to merged PR.
|
|
11
|
+
|
|
12
|
+
You decide when to investigate deeper, when to check memory for known issues, and when to ship. Don't guess. Don't try random fixes. Follow the pipeline.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
PIPELINE:
|
|
16
|
+
|
|
17
|
+
Check Context → Reproduce → Investigate → Fix → Review Agent → Fix Loop → Ship
|
|
18
|
+
│ │ │ │ │ │ │
|
|
19
|
+
.memory/ Gate 1 Gate 2 Gate 3 Spawn agent Loop Gate 4
|
|
20
|
+
known issues fix until OK
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 0: Check Context (silent — no questions)
|
|
26
|
+
|
|
27
|
+
Before touching anything, check if this is a known issue.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Check memory for known blockers and gotchas
|
|
31
|
+
ls .memory/blockers/ .memory/knowledge/ 2>/dev/null
|
|
32
|
+
|
|
33
|
+
# Check for handoff from a previous debug session
|
|
34
|
+
ls .handoff/*.md 2>/dev/null
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**If `.memory/blockers/` has files**, scan them for anything matching the symptom. If you find a match:
|
|
38
|
+
> "This might be a known issue. Found in `.memory/blockers/[file]`: [summary]. Let me verify if this is the same problem."
|
|
39
|
+
|
|
40
|
+
**If `.memory/knowledge/` has files**, scan for related gotchas or patterns that might explain the bug.
|
|
41
|
+
|
|
42
|
+
**If a handoff exists**, check if someone was already debugging this:
|
|
43
|
+
> "Found a previous debug session for this. Resuming from: [last stage]."
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Stage 1: Reproduce
|
|
48
|
+
|
|
49
|
+
**Goal:** Make the bug deterministic. Understand it fully before touching anything.
|
|
50
|
+
|
|
51
|
+
### Gather info
|
|
52
|
+
1. Get the exact error message, stack trace, or symptom
|
|
53
|
+
2. Ask if not clear:
|
|
54
|
+
- What inputs trigger it?
|
|
55
|
+
- What inputs do NOT trigger it?
|
|
56
|
+
- Consistent or flaky?
|
|
57
|
+
- Which environment? (local / CI / prod)
|
|
58
|
+
|
|
59
|
+
### Check recent changes
|
|
60
|
+
```bash
|
|
61
|
+
# What changed recently?
|
|
62
|
+
git log --oneline -15
|
|
63
|
+
git diff HEAD~5 --stat
|
|
64
|
+
|
|
65
|
+
# Are tests already failing?
|
|
66
|
+
./gradlew test --info 2>&1 | tail -40
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Find minimal reproduction
|
|
70
|
+
- Trace the code path from the symptom
|
|
71
|
+
- Identify the smallest input that triggers the bug
|
|
72
|
+
- Confirm you can make it happen on demand
|
|
73
|
+
|
|
74
|
+
**If you can't reproduce it:**
|
|
75
|
+
> Stop. Ask for more context — logs, steps, environment details. Don't move forward until you can see the bug happen.
|
|
76
|
+
|
|
77
|
+
**GATE 1 — STOP and ask:**
|
|
78
|
+
> "I can reproduce the bug. Here's what happens: [symptoms]. Here's how to trigger it: [steps]. Moving to investigation?"
|
|
79
|
+
>
|
|
80
|
+
> **Auto mode on?** → Show findings, continue immediately.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Stage 2: Investigate
|
|
85
|
+
|
|
86
|
+
**Goal:** Find the exact line, value, or decision that causes the failure.
|
|
87
|
+
|
|
88
|
+
### Binary isolation
|
|
89
|
+
Start from the failure point. Trace backwards:
|
|
90
|
+
|
|
91
|
+
1. At the crash/error point — what's the value?
|
|
92
|
+
2. One layer up — is the data correct here?
|
|
93
|
+
3. Keep going back until you find where correct data becomes wrong data
|
|
94
|
+
|
|
95
|
+
### Common patterns to check
|
|
96
|
+
|
|
97
|
+
**Kotlin/Micronaut:**
|
|
98
|
+
- `!!` operators (banned — null safety violation)
|
|
99
|
+
- Either handling — is `.left()` / `.right()` correct? Missing error branch?
|
|
100
|
+
- Coroutine scope — is a job cancelled before it finishes?
|
|
101
|
+
- `newSuspendedTransaction {}` — is it wrapping the right calls?
|
|
102
|
+
- Soft delete — is `deleted_at IS NULL` in the query?
|
|
103
|
+
|
|
104
|
+
**React/Next.js:**
|
|
105
|
+
- Missing dependency in `useEffect` array
|
|
106
|
+
- State update after unmount
|
|
107
|
+
- Server/client hydration mismatch
|
|
108
|
+
- Missing error boundary
|
|
109
|
+
- Wrong key prop in list rendering
|
|
110
|
+
|
|
111
|
+
**General:**
|
|
112
|
+
- Race condition — does order of execution matter?
|
|
113
|
+
- Stale cache — is old data being served?
|
|
114
|
+
- Config mismatch — different values between environments?
|
|
115
|
+
|
|
116
|
+
### Form a hypothesis
|
|
117
|
+
Write it down: "The root cause is [X] because [evidence]."
|
|
118
|
+
|
|
119
|
+
If your first hypothesis is wrong, try the next one. **Max 3 hypotheses** before stopping and asking for help. Don't go in circles.
|
|
120
|
+
|
|
121
|
+
**GATE 2 — STOP and ask:**
|
|
122
|
+
> "Root cause: [one sentence]. Evidence: [what proves it]. Here's my fix plan: [approach]. Sound right?"
|
|
123
|
+
>
|
|
124
|
+
> **Auto mode on?** → Show root cause, continue to fix.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Stage 3: Fix
|
|
129
|
+
|
|
130
|
+
**Goal:** Fix correctly. Make sure it can't come back.
|
|
131
|
+
|
|
132
|
+
### Step 1: Write failing test
|
|
133
|
+
```
|
|
134
|
+
Write a test that captures the exact bug scenario.
|
|
135
|
+
This test MUST FAIL right now — if it passes, you haven't reproduced the bug in the test.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Run it. Confirm red.
|
|
139
|
+
|
|
140
|
+
### Step 2: Write the minimal fix
|
|
141
|
+
Change as little as possible. This is a fix, not a refactor. Don't clean up nearby code. Don't "improve" things while you're here.
|
|
142
|
+
|
|
143
|
+
Run the test. Confirm green.
|
|
144
|
+
|
|
145
|
+
### Step 3: Check for similar patterns
|
|
146
|
+
The same mistake might exist elsewhere:
|
|
147
|
+
```bash
|
|
148
|
+
# Find code with the same pattern as the bug
|
|
149
|
+
grep -rn "[pattern from the bug]" --include="*.kt" --include="*.tsx" src/
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
If you find similar issues, fix them too. Each gets its own test.
|
|
153
|
+
|
|
154
|
+
### Step 4: Run full test suite
|
|
155
|
+
```bash
|
|
156
|
+
# Make sure nothing else broke
|
|
157
|
+
./gradlew test
|
|
158
|
+
# or
|
|
159
|
+
npm test
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Commit
|
|
163
|
+
```
|
|
164
|
+
fix([scope]): [root cause description]
|
|
165
|
+
|
|
166
|
+
- Root cause: [one line]
|
|
167
|
+
- Add regression test: [test name]
|
|
168
|
+
- Checked [N] similar patterns
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**GATE 3 — Implementation complete.**
|
|
172
|
+
> "Fixed. [X] tests passing, including the new regression test. Found [N] similar patterns — [fixed/clean]. Starting review."
|
|
173
|
+
>
|
|
174
|
+
> **Auto mode on?** → Go straight to review.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Stage 4: Review (agent-based — mandatory)
|
|
179
|
+
|
|
180
|
+
**Don't self-review bug fixes.** Spawn a separate review agent to catch things you missed.
|
|
181
|
+
|
|
182
|
+
### Spawn the review agent
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
echo "${CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS:-not_set}"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Use the `Agent` tool to spawn a reviewer:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Agent:
|
|
192
|
+
name: "reviewer"
|
|
193
|
+
subagent_type: "phase-reviewer" (or "general-purpose" if not available)
|
|
194
|
+
prompt: |
|
|
195
|
+
You are reviewing a bug fix for: {symptom description}.
|
|
196
|
+
|
|
197
|
+
Root cause: {root cause}
|
|
198
|
+
Fix: {what was changed}
|
|
199
|
+
|
|
200
|
+
Run `git diff main...HEAD` to see all changes.
|
|
201
|
+
|
|
202
|
+
Review checklist:
|
|
203
|
+
**Root cause:** Does the fix address the root cause, not just the symptom?
|
|
204
|
+
**Regression test:** Does the test cover the exact scenario that failed?
|
|
205
|
+
**Side effects:** Could this fix break anything else?
|
|
206
|
+
**Similar patterns:** Were similar patterns in the codebase checked?
|
|
207
|
+
**No extras:** Is the change minimal? No unrelated cleanup?
|
|
208
|
+
|
|
209
|
+
Verdict: **PASS** or **NEEDS CHANGES** (with the list of issues).
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**If Agent Teams is enabled**, also spawn a test-reviewer in parallel:
|
|
213
|
+
```
|
|
214
|
+
Agent 2: "test-reviewer" — checks test quality, edge cases, coverage gaps
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Fix loop
|
|
218
|
+
|
|
219
|
+
**If PASS** → continue to Ship.
|
|
220
|
+
|
|
221
|
+
**If NEEDS CHANGES:**
|
|
222
|
+
1. Fix the issues
|
|
223
|
+
2. Commit: `fix([scope]): address review feedback`
|
|
224
|
+
3. Run tests
|
|
225
|
+
4. Spawn reviewer AGAIN with updated diff
|
|
226
|
+
5. Repeat until PASS
|
|
227
|
+
|
|
228
|
+
**Max 3 rounds.** If stuck, ask the user.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Stage 5: Ship
|
|
233
|
+
|
|
234
|
+
### Create PR
|
|
235
|
+
Clear description matters more for bug fixes than features:
|
|
236
|
+
|
|
237
|
+
```markdown
|
|
238
|
+
## What was broken
|
|
239
|
+
[User-visible symptom]
|
|
240
|
+
|
|
241
|
+
## Root cause
|
|
242
|
+
[One paragraph — what went wrong and why]
|
|
243
|
+
|
|
244
|
+
## Fix
|
|
245
|
+
[What was changed and why it fixes the root cause]
|
|
246
|
+
|
|
247
|
+
## How to verify
|
|
248
|
+
[Steps to confirm the bug is gone]
|
|
249
|
+
|
|
250
|
+
## Regression test
|
|
251
|
+
[Name of the test that guards against this]
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Save to memory (if this bug reveals a pattern)
|
|
255
|
+
|
|
256
|
+
After the PR, check if this bug is worth remembering:
|
|
257
|
+
|
|
258
|
+
- **Recurring pattern?** (same type of bug seen before) → Save to `.memory/knowledge/`
|
|
259
|
+
- **Known blocker for other work?** → Save to `.memory/blockers/`
|
|
260
|
+
- **One-off typo or simple mistake?** → Don't save. Not worth remembering.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
mkdir -p .memory/knowledge .memory/blockers
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Update `.memory/index.md` if you saved anything.
|
|
267
|
+
|
|
268
|
+
**GATE 4 — Done.**
|
|
269
|
+
> "PR created: [link]. Bug: [symptom]. Root cause: [one line]. Fix: [one line]."
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Debug Report
|
|
274
|
+
|
|
275
|
+
After the PR is created, produce this summary:
|
|
276
|
+
|
|
277
|
+
```markdown
|
|
278
|
+
## Debug Report: [symptom]
|
|
279
|
+
|
|
280
|
+
**Root Cause:** [exact cause in one sentence]
|
|
281
|
+
|
|
282
|
+
**Why it happened:** [2-3 sentences — the chain of events]
|
|
283
|
+
|
|
284
|
+
**Fix:** [what changed and why]
|
|
285
|
+
|
|
286
|
+
**Test added:** [test name]
|
|
287
|
+
|
|
288
|
+
**Similar patterns checked:** [files checked / changes made]
|
|
289
|
+
|
|
290
|
+
**Prevention:** [what could stop this class of bug — lint rule, convention, type change, etc.]
|
|
291
|
+
|
|
292
|
+
**Saved to memory:** [yes/no — what was saved and why]
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Rules
|
|
298
|
+
|
|
299
|
+
- **You are the leader.** Check memory, investigate, fix, review, ship — all in one flow. Don't tell the user to run separate commands.
|
|
300
|
+
- **Follow the pipeline in order.** Don't skip to fixing. Understanding comes first.
|
|
301
|
+
- **Never guess.** Every hypothesis needs evidence. "I think it might be..." is not enough.
|
|
302
|
+
- **Write a failing test before writing the fix.** Always.
|
|
303
|
+
- **Minimal fix.** Change as little as possible. Don't refactor while fixing.
|
|
304
|
+
- **Check for siblings.** The same bug pattern might exist nearby. Always look.
|
|
305
|
+
- **Max 3 hypotheses in Stage 2.** If none pan out, stop and ask for help. Don't spiral.
|
|
306
|
+
- **Review is always an agent.** Never self-review. Spawn a reviewer, fix until PASS.
|
|
307
|
+
- **Save patterns to memory.** If this bug type could happen again, save it so future sessions know.
|
|
308
|
+
- **Small bugs don't need this workflow.** If you can see the typo, just fix it. This is for bugs that aren't obvious.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:deep-dive
|
|
3
|
+
description: "Go deep on a validated idea: market research + competitor teardowns (Stage 3)"
|
|
4
|
+
argument-hint: "[project name or idea]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deep Dive: {{ args[0] | default: "your idea" }}
|
|
8
|
+
|
|
9
|
+
Runs Stage 3: deep market research and competitor teardowns.
|
|
10
|
+
Only do this AFTER validation says GO or TEST MORE.
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
|
|
14
|
+
### Check Prior Work
|
|
15
|
+
1. Find the project folder in `projects/`
|
|
16
|
+
2. Read everything in `01-brainstorm/` and `03-validation/`
|
|
17
|
+
3. Pull out: the idea, target user, competitors found, market signals
|
|
18
|
+
|
|
19
|
+
### Market Research
|
|
20
|
+
4. Use the `market-research` skill
|
|
21
|
+
5. Run market sizing (TAM/SAM/SOM with math shown)
|
|
22
|
+
6. Find industry data, reports, trends
|
|
23
|
+
7. Check demand signals: search volume, forum posts, review complaints
|
|
24
|
+
8. Look for tailwinds (new regulation, tech shift, behavior change)
|
|
25
|
+
9. Save to `02-research/market-research-{date}.md`
|
|
26
|
+
|
|
27
|
+
### Competitor Teardowns
|
|
28
|
+
10. Use the `competitive-teardown` skill
|
|
29
|
+
11. Identify top 3-5 competitors from validation step
|
|
30
|
+
12. For each competitor:
|
|
31
|
+
- Product teardown (what they do, pricing, strengths, weaknesses)
|
|
32
|
+
- Business teardown (funding, team, traction)
|
|
33
|
+
- User feedback (reviews, Reddit, forums)
|
|
34
|
+
13. Save each to `02-research/teardown-{competitor}-{date}.md`
|
|
35
|
+
|
|
36
|
+
### Synthesis
|
|
37
|
+
14. Create a summary that connects everything:
|
|
38
|
+
- Market size and growth
|
|
39
|
+
- Competitor landscape (table comparison)
|
|
40
|
+
- The gap: what nobody does well
|
|
41
|
+
- Our positioning: where we win
|
|
42
|
+
- Biggest risks
|
|
43
|
+
15. Save to `02-research/synthesis-{date}.md`
|
|
44
|
+
|
|
45
|
+
### Gate 3 Check
|
|
46
|
+
16. Show findings to user
|
|
47
|
+
17. If strong signals: "This looks worth building. Want me to run /spartan:fundraise?"
|
|
48
|
+
18. If weak signals: "Here's what's concerning: [X]. Still want to go forward?"
|
|
49
|
+
19. If dead: "I'd archive this. Here's why: [X]"
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
- Read ALL prior work before starting. Don't re-research what we already know.
|
|
54
|
+
- If validation was TEST MORE, ask what test the user ran and what happened.
|
|
55
|
+
- Be honest if the data kills the idea. Better now than after building.
|