@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.
Files changed (255) hide show
  1. package/.claude-plugin/marketplace.json +16 -0
  2. package/.claude-plugin/plugin.json +12 -0
  3. package/README.md +439 -0
  4. package/VERSION +1 -0
  5. package/agents/design-critic.md +127 -0
  6. package/agents/idea-killer.md +72 -0
  7. package/agents/infrastructure-expert.md +49 -0
  8. package/agents/micronaut-backend-expert.md +45 -0
  9. package/agents/phase-reviewer.md +150 -0
  10. package/agents/research-planner.md +70 -0
  11. package/agents/solution-architect-cto.md +49 -0
  12. package/agents/sre-architect.md +49 -0
  13. package/agents/team-coordinator.md +111 -0
  14. package/bin/cli.js +780 -0
  15. package/claude-md/00-header.md +39 -0
  16. package/claude-md/01-core.md +105 -0
  17. package/claude-md/05-database.md +20 -0
  18. package/claude-md/11-backend-micronaut.md +19 -0
  19. package/claude-md/20-frontend-react.md +44 -0
  20. package/claude-md/25-ux-design.md +56 -0
  21. package/claude-md/30-infrastructure.md +24 -0
  22. package/claude-md/30-project-mgmt.md +119 -0
  23. package/claude-md/40-product.md +39 -0
  24. package/claude-md/50-ops.md +34 -0
  25. package/claude-md/60-research.md +27 -0
  26. package/claude-md/90-footer.md +21 -0
  27. package/commands/spartan/brainstorm.md +134 -0
  28. package/commands/spartan/brownfield.md +157 -0
  29. package/commands/spartan/build.md +435 -0
  30. package/commands/spartan/careful.md +94 -0
  31. package/commands/spartan/commit-message.md +112 -0
  32. package/commands/spartan/content.md +17 -0
  33. package/commands/spartan/context-save.md +161 -0
  34. package/commands/spartan/contribute.md +140 -0
  35. package/commands/spartan/daily.md +42 -0
  36. package/commands/spartan/debug.md +308 -0
  37. package/commands/spartan/deep-dive.md +55 -0
  38. package/commands/spartan/deploy.md +207 -0
  39. package/commands/spartan/e2e.md +264 -0
  40. package/commands/spartan/env-setup.md +166 -0
  41. package/commands/spartan/epic.md +199 -0
  42. package/commands/spartan/fe-review.md +181 -0
  43. package/commands/spartan/figma-to-code.md +260 -0
  44. package/commands/spartan/forensics.md +46 -0
  45. package/commands/spartan/freeze.md +84 -0
  46. package/commands/spartan/fundraise.md +53 -0
  47. package/commands/spartan/gate-review.md +229 -0
  48. package/commands/spartan/gsd-upgrade.md +376 -0
  49. package/commands/spartan/guard.md +42 -0
  50. package/commands/spartan/init-project.md +178 -0
  51. package/commands/spartan/init-rules.md +298 -0
  52. package/commands/spartan/interview.md +154 -0
  53. package/commands/spartan/kickoff.md +73 -0
  54. package/commands/spartan/kotlin-service.md +109 -0
  55. package/commands/spartan/lean-canvas.md +222 -0
  56. package/commands/spartan/lint-rules.md +122 -0
  57. package/commands/spartan/map-codebase.md +124 -0
  58. package/commands/spartan/migration.md +82 -0
  59. package/commands/spartan/next-app.md +317 -0
  60. package/commands/spartan/next-feature.md +212 -0
  61. package/commands/spartan/onboard.md +326 -0
  62. package/commands/spartan/outreach.md +16 -0
  63. package/commands/spartan/phase.md +142 -0
  64. package/commands/spartan/pitch.md +18 -0
  65. package/commands/spartan/plan.md +210 -0
  66. package/commands/spartan/pr-ready.md +202 -0
  67. package/commands/spartan/project.md +106 -0
  68. package/commands/spartan/qa.md +222 -0
  69. package/commands/spartan/research.md +254 -0
  70. package/commands/spartan/review.md +132 -0
  71. package/commands/spartan/scan-rules.md +173 -0
  72. package/commands/spartan/sessions.md +143 -0
  73. package/commands/spartan/spec.md +131 -0
  74. package/commands/spartan/startup.md +257 -0
  75. package/commands/spartan/team.md +570 -0
  76. package/commands/spartan/teardown.md +161 -0
  77. package/commands/spartan/testcontainer.md +97 -0
  78. package/commands/spartan/tf-cost.md +123 -0
  79. package/commands/spartan/tf-deploy.md +116 -0
  80. package/commands/spartan/tf-drift.md +100 -0
  81. package/commands/spartan/tf-import.md +107 -0
  82. package/commands/spartan/tf-module.md +121 -0
  83. package/commands/spartan/tf-plan.md +100 -0
  84. package/commands/spartan/tf-review.md +106 -0
  85. package/commands/spartan/tf-scaffold.md +109 -0
  86. package/commands/spartan/tf-security.md +147 -0
  87. package/commands/spartan/think.md +221 -0
  88. package/commands/spartan/unfreeze.md +13 -0
  89. package/commands/spartan/update.md +134 -0
  90. package/commands/spartan/ux.md +1233 -0
  91. package/commands/spartan/validate.md +193 -0
  92. package/commands/spartan/web-to-prd.md +706 -0
  93. package/commands/spartan/workstreams.md +109 -0
  94. package/commands/spartan/write.md +16 -0
  95. package/commands/spartan.md +386 -0
  96. package/frameworks/00-framework-comparison-guide.md +317 -0
  97. package/frameworks/01-lean-canvas.md +196 -0
  98. package/frameworks/02-design-sprint.md +304 -0
  99. package/frameworks/03-foundation-sprint.md +337 -0
  100. package/frameworks/04-business-model-canvas.md +391 -0
  101. package/frameworks/05-customer-development.md +426 -0
  102. package/frameworks/06-jobs-to-be-done.md +358 -0
  103. package/frameworks/07-mom-test.md +392 -0
  104. package/frameworks/08-value-proposition-canvas.md +488 -0
  105. package/frameworks/09-javelin-board.md +428 -0
  106. package/frameworks/10-build-measure-learn.md +467 -0
  107. package/frameworks/11-mvp-approaches.md +533 -0
  108. package/frameworks/think-before-build.md +593 -0
  109. package/lib/assembler.js +197 -0
  110. package/lib/assembler.test.js +159 -0
  111. package/lib/detector.js +166 -0
  112. package/lib/detector.test.js +221 -0
  113. package/lib/packs.js +16 -0
  114. package/lib/resolver.js +272 -0
  115. package/lib/resolver.test.js +298 -0
  116. package/lib/worktree.sh +104 -0
  117. package/package.json +50 -0
  118. package/packs/backend-micronaut.yaml +35 -0
  119. package/packs/backend-nodejs.yaml +15 -0
  120. package/packs/backend-python.yaml +15 -0
  121. package/packs/core.yaml +37 -0
  122. package/packs/database.yaml +21 -0
  123. package/packs/frontend-react.yaml +24 -0
  124. package/packs/infrastructure.yaml +40 -0
  125. package/packs/ops.yaml +16 -0
  126. package/packs/packs.compiled.json +371 -0
  127. package/packs/product.yaml +22 -0
  128. package/packs/project-mgmt.yaml +24 -0
  129. package/packs/research.yaml +39 -0
  130. package/packs/shared-backend.yaml +14 -0
  131. package/packs/ux-design.yaml +21 -0
  132. package/rules/backend-micronaut/API_DESIGN.md +313 -0
  133. package/rules/backend-micronaut/BATCH_PROCESSING.md +92 -0
  134. package/rules/backend-micronaut/CONTROLLERS.md +388 -0
  135. package/rules/backend-micronaut/KOTLIN.md +414 -0
  136. package/rules/backend-micronaut/RETROFIT_PLACEMENT.md +290 -0
  137. package/rules/backend-micronaut/SERVICES_AND_BEANS.md +325 -0
  138. package/rules/core/NAMING_CONVENTIONS.md +208 -0
  139. package/rules/core/SKILL_AUTHORING.md +174 -0
  140. package/rules/core/TIMEZONE.md +316 -0
  141. package/rules/database/ORM_AND_REPO.md +289 -0
  142. package/rules/database/SCHEMA.md +146 -0
  143. package/rules/database/TRANSACTIONS.md +311 -0
  144. package/rules/frontend-react/FRONTEND.md +344 -0
  145. package/rules/infrastructure/MODULES.md +260 -0
  146. package/rules/infrastructure/NAMING.md +196 -0
  147. package/rules/infrastructure/PROVIDERS.md +309 -0
  148. package/rules/infrastructure/SECURITY.md +310 -0
  149. package/rules/infrastructure/STATE_AND_BACKEND.md +237 -0
  150. package/rules/infrastructure/STRUCTURE.md +234 -0
  151. package/rules/infrastructure/VARIABLES.md +285 -0
  152. package/rules/shared-backend/ARCHITECTURE.md +46 -0
  153. package/rules/ux-design/DESIGN_PROCESS.md +176 -0
  154. package/skills/api-endpoint-creator/SKILL.md +455 -0
  155. package/skills/api-endpoint-creator/error-handling-guide.md +244 -0
  156. package/skills/api-endpoint-creator/examples.md +522 -0
  157. package/skills/api-endpoint-creator/testing-patterns.md +302 -0
  158. package/skills/article-writing/SKILL.md +109 -0
  159. package/skills/article-writing/examples.md +59 -0
  160. package/skills/backend-api-design/SKILL.md +84 -0
  161. package/skills/backend-api-design/code-patterns.md +138 -0
  162. package/skills/brainstorm/SKILL.md +95 -0
  163. package/skills/browser-qa/SKILL.md +87 -0
  164. package/skills/browser-qa/playwright-snippets.md +110 -0
  165. package/skills/ci-cd-patterns/SKILL.md +108 -0
  166. package/skills/ci-cd-patterns/workflows.md +149 -0
  167. package/skills/competitive-teardown/SKILL.md +93 -0
  168. package/skills/competitive-teardown/example-analysis.md +50 -0
  169. package/skills/content-engine/SKILL.md +131 -0
  170. package/skills/content-engine/examples.md +72 -0
  171. package/skills/database-patterns/SKILL.md +72 -0
  172. package/skills/database-patterns/code-templates.md +114 -0
  173. package/skills/database-table-creator/SKILL.md +141 -0
  174. package/skills/database-table-creator/examples.md +552 -0
  175. package/skills/database-table-creator/kotlin-templates.md +400 -0
  176. package/skills/database-table-creator/migration-template.sql +68 -0
  177. package/skills/database-table-creator/validation-checklist.md +337 -0
  178. package/skills/deep-research/SKILL.md +80 -0
  179. package/skills/design-intelligence/SKILL.md +268 -0
  180. package/skills/design-workflow/SKILL.md +127 -0
  181. package/skills/design-workflow/checklists.md +45 -0
  182. package/skills/idea-validation/SKILL.md +129 -0
  183. package/skills/idea-validation/example-report.md +50 -0
  184. package/skills/investor-materials/SKILL.md +122 -0
  185. package/skills/investor-materials/example-outline.md +70 -0
  186. package/skills/investor-outreach/SKILL.md +112 -0
  187. package/skills/investor-outreach/examples.md +76 -0
  188. package/skills/kotlin-best-practices/SKILL.md +58 -0
  189. package/skills/kotlin-best-practices/code-patterns.md +132 -0
  190. package/skills/market-research/SKILL.md +99 -0
  191. package/skills/security-checklist/SKILL.md +65 -0
  192. package/skills/security-checklist/audit-reference.md +95 -0
  193. package/skills/service-debugging/SKILL.md +116 -0
  194. package/skills/service-debugging/common-issues.md +65 -0
  195. package/skills/startup-pipeline/SKILL.md +152 -0
  196. package/skills/terraform-best-practices/SKILL.md +244 -0
  197. package/skills/terraform-module-creator/SKILL.md +284 -0
  198. package/skills/terraform-review/SKILL.md +222 -0
  199. package/skills/terraform-security-audit/SKILL.md +280 -0
  200. package/skills/terraform-service-scaffold/SKILL.md +574 -0
  201. package/skills/testing-strategies/SKILL.md +116 -0
  202. package/skills/testing-strategies/examples.md +103 -0
  203. package/skills/testing-strategies/integration-test-setup.md +71 -0
  204. package/skills/ui-ux-pro-max/SKILL.md +238 -0
  205. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  206. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  207. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  208. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  209. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  210. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  211. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  212. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  213. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  214. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  215. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  216. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  217. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  218. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  219. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  220. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  221. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  222. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  223. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  224. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  225. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  226. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  227. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  228. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  229. package/skills/ui-ux-pro-max/python-setup.md +146 -0
  230. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  231. package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  232. package/skills/ui-ux-pro-max/scripts/search.py +114 -0
  233. package/skills/web-to-prd/SKILL.md +478 -0
  234. package/templates/build-config.yaml +44 -0
  235. package/templates/commands-config.yaml +55 -0
  236. package/templates/competitor-analysis.md +60 -0
  237. package/templates/content/AGENT_TEMPLATE.md +47 -0
  238. package/templates/content/COMMAND_TEMPLATE.md +27 -0
  239. package/templates/content/RULE_TEMPLATE.md +40 -0
  240. package/templates/content/SKILL_TEMPLATE.md +41 -0
  241. package/templates/design-config.md +105 -0
  242. package/templates/design-doc.md +207 -0
  243. package/templates/epic.md +100 -0
  244. package/templates/feature-spec.md +181 -0
  245. package/templates/idea-canvas.md +47 -0
  246. package/templates/implementation-plan.md +159 -0
  247. package/templates/prd-template.md +86 -0
  248. package/templates/preamble.md +89 -0
  249. package/templates/project-readme.md +35 -0
  250. package/templates/quality-gates.md +230 -0
  251. package/templates/spartan-config.yaml +164 -0
  252. package/templates/user-interview.md +69 -0
  253. package/templates/validation-checklist.md +108 -0
  254. package/templates/workflow-backend-micronaut.md +409 -0
  255. 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.