@c0x12c/spartan-ai-toolkit 1.0.1
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 +300 -0
- package/VERSION +1 -0
- package/agents/idea-killer.md +72 -0
- package/agents/micronaut-backend-expert.md +45 -0
- package/agents/research-planner.md +70 -0
- package/agents/solution-architect-cto.md +49 -0
- package/bin/cli.js +589 -0
- package/claude-md/00-header.md +39 -0
- package/claude-md/01-core.md +94 -0
- package/claude-md/05-database.md +20 -0
- package/claude-md/11-backend-micronaut.md +36 -0
- package/claude-md/20-frontend-react.md +23 -0
- package/claude-md/30-project-mgmt.md +91 -0
- package/claude-md/40-product.md +36 -0
- package/claude-md/50-ops.md +34 -0
- package/claude-md/60-research.md +75 -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/careful.md +94 -0
- package/commands/spartan/content.md +17 -0
- package/commands/spartan/context-save.md +161 -0
- package/commands/spartan/daily.md +42 -0
- package/commands/spartan/debug.md +156 -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/fe-review.md +134 -0
- package/commands/spartan/figma-to-code.md +244 -0
- package/commands/spartan/forensics.md +46 -0
- package/commands/spartan/freeze.md +84 -0
- package/commands/spartan/full-run.md +78 -0
- package/commands/spartan/fundraise.md +53 -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/interview.md +154 -0
- package/commands/spartan/kickoff.md +52 -0
- package/commands/spartan/kotlin-service.md +109 -0
- package/commands/spartan/lean-canvas.md +222 -0
- package/commands/spartan/map-codebase.md +72 -0
- package/commands/spartan/migration.md +82 -0
- package/commands/spartan/next-app.md +317 -0
- package/commands/spartan/next-feature.md +197 -0
- package/commands/spartan/outreach.md +16 -0
- package/commands/spartan/phase.md +119 -0
- package/commands/spartan/pitch.md +18 -0
- package/commands/spartan/pr-ready.md +200 -0
- package/commands/spartan/project.md +106 -0
- package/commands/spartan/quickplan.md +122 -0
- package/commands/spartan/research.md +19 -0
- package/commands/spartan/review.md +102 -0
- package/commands/spartan/teardown.md +161 -0
- package/commands/spartan/testcontainer.md +97 -0
- package/commands/spartan/think.md +221 -0
- package/commands/spartan/unfreeze.md +13 -0
- package/commands/spartan/update.md +81 -0
- package/commands/spartan/validate.md +193 -0
- package/commands/spartan/workstreams.md +109 -0
- package/commands/spartan/write.md +16 -0
- package/commands/spartan.md +222 -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 +52 -0
- package/lib/packs.js +16 -0
- package/lib/resolver.js +144 -0
- package/lib/resolver.test.js +140 -0
- package/package.json +48 -0
- package/packs/backend-micronaut.yaml +34 -0
- package/packs/backend-nodejs.yaml +15 -0
- package/packs/backend-python.yaml +15 -0
- package/packs/core.yaml +25 -0
- package/packs/database.yaml +21 -0
- package/packs/frontend-react.yaml +23 -0
- package/packs/ops.yaml +16 -0
- package/packs/packs.compiled.json +281 -0
- package/packs/product.yaml +20 -0
- package/packs/project-mgmt.yaml +21 -0
- package/packs/research.yaml +39 -0
- package/packs/shared-backend.yaml +14 -0
- package/rules/backend-micronaut/API_DESIGN.md +250 -0
- package/rules/backend-micronaut/CONTROLLERS.md +755 -0
- package/rules/backend-micronaut/KOTLIN.md +483 -0
- package/rules/backend-micronaut/RETROFIT_PLACEMENT.md +258 -0
- package/rules/backend-micronaut/SERVICES_AND_BEANS.md +673 -0
- package/rules/core/NAMING_CONVENTIONS.md +208 -0
- package/rules/database/ORM_AND_REPO.md +393 -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/shared-backend/ARCHITECTURE.md +46 -0
- package/skills/api-endpoint-creator/SKILL.md +560 -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 +95 -0
- package/skills/backend-api-design/SKILL.md +187 -0
- package/skills/brainstorm/SKILL.md +85 -0
- package/skills/competitive-teardown/SKILL.md +105 -0
- package/skills/content-engine/SKILL.md +101 -0
- package/skills/database-patterns/SKILL.md +145 -0
- package/skills/database-table-creator/SKILL.md +588 -0
- package/skills/database-table-creator/examples.md +552 -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 +94 -0
- package/skills/idea-validation/SKILL.md +115 -0
- package/skills/investor-materials/SKILL.md +115 -0
- package/skills/investor-outreach/SKILL.md +98 -0
- package/skills/kotlin-best-practices/SKILL.md +145 -0
- package/skills/market-research/SKILL.md +113 -0
- package/skills/security-checklist/SKILL.md +150 -0
- package/skills/startup-pipeline/SKILL.md +125 -0
- package/skills/testing-strategies/SKILL.md +156 -0
- package/skills/ui-ux-pro-max/SKILL.md +377 -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/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/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/idea-canvas.md +47 -0
- package/templates/prd-template.md +84 -0
- package/templates/project-readme.md +35 -0
- package/templates/user-interview.md +69 -0
- package/templates/validation-checklist.md +108 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:pr-ready
|
|
3
|
+
description: Full pre-PR workflow — rebase onto main, run all checks (tests, conventions, security), generate PR description, and create the GitHub PR. Run when a feature/fix is complete.
|
|
4
|
+
argument-hint: "[optional: PR title]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PR Ready: {{ args[0] | default: "current branch" }}
|
|
8
|
+
|
|
9
|
+
Full workflow: rebase → checks → push → create PR.
|
|
10
|
+
Fix ALL blockers before proceeding to the next step.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Step 1: Current State
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
git branch --show-current
|
|
18
|
+
git status
|
|
19
|
+
git log main...HEAD --oneline
|
|
20
|
+
git diff main...HEAD --shortstat
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If uncommitted changes exist → commit or stash before continuing.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step 2: Rebase onto Main
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Fetch latest
|
|
31
|
+
git fetch origin
|
|
32
|
+
|
|
33
|
+
# See what's new on main
|
|
34
|
+
git log HEAD..origin/main --oneline
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If main has new commits:
|
|
38
|
+
```bash
|
|
39
|
+
git rebase origin/main
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Conflict resolution:**
|
|
43
|
+
1. Find conflict markers `<<<<<<<` / `=======` / `>>>>>>>`
|
|
44
|
+
2. Resolve each file — keep the correct version
|
|
45
|
+
3. `git add [file]` → `git rebase --continue`
|
|
46
|
+
4. Repeat until done
|
|
47
|
+
|
|
48
|
+
Abort if needed: `git rebase --abort`
|
|
49
|
+
|
|
50
|
+
Verify after rebase:
|
|
51
|
+
```bash
|
|
52
|
+
git log main...HEAD --oneline # commits look correct?
|
|
53
|
+
git diff main...HEAD --stat # changes still intact?
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Step 3: Tests (hard blocker)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Kotlin BE
|
|
62
|
+
./gradlew clean test
|
|
63
|
+
./gradlew integrationTest 2>/dev/null
|
|
64
|
+
|
|
65
|
+
# Next.js FE
|
|
66
|
+
npm run test:run 2>/dev/null
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Any failure = stop. Fix tests before continuing.**
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 4: Code Quality
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
./gradlew ktlintCheck 2>/dev/null
|
|
77
|
+
./gradlew detekt 2>/dev/null
|
|
78
|
+
./gradlew compileKotlin 2>&1 | grep -i "warning"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Check the diff for:
|
|
82
|
+
- [ ] No `!!` operator (null safety violation)
|
|
83
|
+
- [ ] No `println` — use SLF4J
|
|
84
|
+
- [ ] No hardcoded values (URLs, secrets, magic numbers)
|
|
85
|
+
- [ ] No commented-out code
|
|
86
|
+
- [ ] No TODOs without ticket reference
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Step 5: Architecture Check
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Verify layered architecture (Controller → Manager → Repository)
|
|
94
|
+
# Controllers should only call Managers
|
|
95
|
+
grep -r "Repository\|Service" src/main/kotlin/*/controller/ --include="*.kt" | grep -v "import"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- [ ] Controllers are thin — delegate to Manager only
|
|
99
|
+
- [ ] `@Secured` annotation on all controllers
|
|
100
|
+
- [ ] `@ExecuteOn(TaskExecutors.BLOCKING)` on blocking endpoints
|
|
101
|
+
- [ ] Manager returns `Either<ClientException, T>`, not raw types
|
|
102
|
+
- [ ] No business logic in controllers or repositories
|
|
103
|
+
- [ ] Query parameters only — no path parameters (API_RULES)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Step 6: DB & Security
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Migration order correct?
|
|
111
|
+
ls src/main/resources/db/migration/ | sort | tail -5
|
|
112
|
+
./gradlew flywayValidate 2>/dev/null
|
|
113
|
+
|
|
114
|
+
# Accidental secrets?
|
|
115
|
+
git diff main...HEAD | grep -iE "(password|secret|api_key|token)\s*=" \
|
|
116
|
+
| grep -v "test\|mock\|example\|placeholder\|your-"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- [ ] Flyway migration version number is next in sequence
|
|
120
|
+
- [ ] Migration is backward-compatible
|
|
121
|
+
- [ ] No secrets committed
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Step 7: Generate PR Description
|
|
126
|
+
|
|
127
|
+
From `git log main...HEAD` and `git diff`, write:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
## Summary
|
|
131
|
+
[2-3 sentences: what and why]
|
|
132
|
+
|
|
133
|
+
## Changes
|
|
134
|
+
- [change 1]
|
|
135
|
+
- [change 2]
|
|
136
|
+
- [change 3]
|
|
137
|
+
|
|
138
|
+
## Testing
|
|
139
|
+
- [ ] Unit tests added/updated
|
|
140
|
+
- [ ] Integration tests pass
|
|
141
|
+
- [ ] Manual testing: [describe if any]
|
|
142
|
+
|
|
143
|
+
## DB Changes
|
|
144
|
+
[None / Migration V{N}__desc — backward compatible]
|
|
145
|
+
|
|
146
|
+
## Breaking Changes
|
|
147
|
+
[None / describe]
|
|
148
|
+
|
|
149
|
+
## Related
|
|
150
|
+
- Ticket: [if applicable]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Step 8: Push & Create PR
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Push (force-with-lease is safe after rebase — won't overwrite others' work)
|
|
159
|
+
git push origin HEAD --force-with-lease
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Create PR with GitHub CLI (if installed):**
|
|
163
|
+
```bash
|
|
164
|
+
gh pr create \
|
|
165
|
+
--title "{{ args[0] | default: "type(scope): description" }}" \
|
|
166
|
+
--body "[PR description from Step 7]" \
|
|
167
|
+
--base main \
|
|
168
|
+
--draft
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Creates as **draft** — review on GitHub, then mark "Ready for review" when satisfied.
|
|
172
|
+
|
|
173
|
+
**If `gh` not installed:**
|
|
174
|
+
```bash
|
|
175
|
+
# Get remote URL to open in browser
|
|
176
|
+
git remote get-url origin
|
|
177
|
+
```
|
|
178
|
+
Go to GitHub → compare & pull request → paste description from Step 7.
|
|
179
|
+
|
|
180
|
+
Install `gh` CLI for next time: `brew install gh && gh auth login`
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Final Verdict
|
|
185
|
+
|
|
186
|
+
**✅ PR CREATED** — link above. Review on GitHub and mark ready when satisfied.
|
|
187
|
+
|
|
188
|
+
**❌ BLOCKERS:**
|
|
189
|
+
```
|
|
190
|
+
[file:line — what to fix]
|
|
191
|
+
```
|
|
192
|
+
Fix → re-run `/spartan:pr-ready`.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Rebase Rules (Spartan Convention)
|
|
197
|
+
|
|
198
|
+
- Always rebase **feature/fix branches** onto `main` before PR
|
|
199
|
+
- Never rebase `main`, `develop`, or any shared branch
|
|
200
|
+
- `--force-with-lease` instead of `--force` — safer, won't overwrite teammates' pushes
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:project
|
|
3
|
+
description: Manage large multi-session projects (> 3 days). Handles full lifecycle — create, check status, start new milestones, complete milestones. This is the Spartan wrapper for GSD project commands.
|
|
4
|
+
argument-hint: "[new | status | milestone-new | milestone-complete | milestone-summary | manager]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project Management: {{ args[0] | default: "status" }}
|
|
8
|
+
|
|
9
|
+
You are managing a large project using the GSD lifecycle under the hood.
|
|
10
|
+
The user does NOT need to know about `/gsd:*` commands — everything runs through `/spartan:*`.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Route by argument
|
|
15
|
+
|
|
16
|
+
{% if args[0] == "new" %}
|
|
17
|
+
## New Project
|
|
18
|
+
|
|
19
|
+
Starting a full project lifecycle. This is for work spanning multiple days/weeks.
|
|
20
|
+
|
|
21
|
+
**Run:** `/gsd:new-project`
|
|
22
|
+
|
|
23
|
+
Claude will interview the user about:
|
|
24
|
+
- What is the project?
|
|
25
|
+
- Tech stack and constraints?
|
|
26
|
+
- Milestones and goals?
|
|
27
|
+
|
|
28
|
+
Then generate:
|
|
29
|
+
- `PROJECT.md` — full project brief
|
|
30
|
+
- `ROADMAP.md` — all milestones + phases
|
|
31
|
+
- `.planning/config.json` — GSD settings
|
|
32
|
+
|
|
33
|
+
After creation, tell the user:
|
|
34
|
+
"Project created. Next step: `/spartan:phase discuss 1` to start Phase 1."
|
|
35
|
+
|
|
36
|
+
{% elif args[0] == "status" or args[0] == nil %}
|
|
37
|
+
## Project Status
|
|
38
|
+
|
|
39
|
+
**Run:** `/gsd:status`
|
|
40
|
+
|
|
41
|
+
Show current state:
|
|
42
|
+
- Which project is active
|
|
43
|
+
- Current milestone and phase
|
|
44
|
+
- What was completed, what's next
|
|
45
|
+
|
|
46
|
+
Then suggest the next action using `/spartan:` commands:
|
|
47
|
+
- Need to discuss next phase? → "Run `/spartan:phase discuss N`"
|
|
48
|
+
- Need to plan? → "Run `/spartan:phase plan N`"
|
|
49
|
+
- Need to execute? → "Run `/spartan:phase execute N`"
|
|
50
|
+
- Need to verify? → "Run `/spartan:phase verify N`"
|
|
51
|
+
- Milestone done? → "Run `/spartan:project milestone-complete`"
|
|
52
|
+
|
|
53
|
+
**Never suggest `/gsd:*` commands to the user.** Always translate to `/spartan:*`.
|
|
54
|
+
|
|
55
|
+
{% elif args[0] == "milestone-new" %}
|
|
56
|
+
## New Milestone
|
|
57
|
+
|
|
58
|
+
Starting the next milestone on an existing project.
|
|
59
|
+
|
|
60
|
+
**Run:** `/gsd:new-milestone`
|
|
61
|
+
|
|
62
|
+
After creation, tell the user:
|
|
63
|
+
"Milestone created. Next step: `/spartan:phase discuss 1` to start Phase 1 of this milestone."
|
|
64
|
+
|
|
65
|
+
{% elif args[0] == "milestone-complete" %}
|
|
66
|
+
## Complete Milestone
|
|
67
|
+
|
|
68
|
+
Archiving current milestone and tagging the release.
|
|
69
|
+
|
|
70
|
+
**Run:** `/gsd:complete-milestone`
|
|
71
|
+
|
|
72
|
+
After completion, tell the user:
|
|
73
|
+
"Milestone archived and tagged. Next step: `/spartan:project milestone-new` if there's more work, or you're done!"
|
|
74
|
+
|
|
75
|
+
{% elif args[0] == "milestone-summary" %}
|
|
76
|
+
## Milestone Summary
|
|
77
|
+
|
|
78
|
+
Generate a comprehensive summary document from completed milestone artifacts. Useful for team onboarding, stakeholder updates, or reviewing what was accomplished.
|
|
79
|
+
|
|
80
|
+
**Run:** `/gsd:milestone-summary`
|
|
81
|
+
|
|
82
|
+
After generation, tell the user:
|
|
83
|
+
"Milestone summary generated. Share it with your team for onboarding or review."
|
|
84
|
+
|
|
85
|
+
{% elif args[0] == "manager" %}
|
|
86
|
+
## Project Manager (Interactive Command Center)
|
|
87
|
+
|
|
88
|
+
Launch an interactive command center for managing multiple phases from one terminal. Power user tool for overseeing complex projects.
|
|
89
|
+
|
|
90
|
+
**Run:** `/gsd:manager`
|
|
91
|
+
|
|
92
|
+
This provides a dashboard view of all phases, their status, and quick actions — all through `/spartan:*` commands.
|
|
93
|
+
|
|
94
|
+
**Never suggest `/gsd:*` commands to the user.** Always translate to `/spartan:*`.
|
|
95
|
+
|
|
96
|
+
{% else %}
|
|
97
|
+
## Unknown argument: {{ args[0] }}
|
|
98
|
+
|
|
99
|
+
Available options:
|
|
100
|
+
- `/spartan:project new` — Start a new multi-day project
|
|
101
|
+
- `/spartan:project status` — Check where you are
|
|
102
|
+
- `/spartan:project milestone-new` — Start next milestone
|
|
103
|
+
- `/spartan:project milestone-complete` — Archive current milestone
|
|
104
|
+
- `/spartan:project milestone-summary` — Generate onboarding doc from milestone
|
|
105
|
+
- `/spartan:project manager` — Interactive command center for power users
|
|
106
|
+
{% endif %}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:quickplan
|
|
3
|
+
description: Fast-forward planning — scaffold spec + plan + branch in one shot for tasks too small for full GSD lifecycle but too important to skip planning.
|
|
4
|
+
argument-hint: "[task description]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Quick Plan: {{ args[0] }}
|
|
8
|
+
|
|
9
|
+
You are running a **fast-forward planning session** — inspired by OpenSpec's `/opsx:ff`.
|
|
10
|
+
Goal: go from idea → actionable plan in one pass, without multi-step ceremony.
|
|
11
|
+
|
|
12
|
+
This command is for tasks that are:
|
|
13
|
+
- Too small for a full GSD milestone (< 1 day of work)
|
|
14
|
+
- Too important to just "vibe code" without a plan
|
|
15
|
+
- Self-contained with clear scope
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Step 1: Research (parallel, 2 min)
|
|
20
|
+
|
|
21
|
+
Run these two investigations simultaneously using subagents:
|
|
22
|
+
|
|
23
|
+
**Subagent A — Codebase scan:**
|
|
24
|
+
- Find all files relevant to: {{ args[0] }}
|
|
25
|
+
- Identify existing patterns, conventions already in use
|
|
26
|
+
- Note any tests that might be affected
|
|
27
|
+
|
|
28
|
+
**Subagent B — Impact analysis:**
|
|
29
|
+
- What could break?
|
|
30
|
+
- Any DB migrations needed?
|
|
31
|
+
- API contract changes?
|
|
32
|
+
- Dependencies between services?
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Step 2: Generate Spec (inline, no file needed)
|
|
37
|
+
|
|
38
|
+
Present a concise spec in this format. Keep it under 30 lines:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## Spec: [task name]
|
|
42
|
+
|
|
43
|
+
**Goal:** [one sentence — what success looks like]
|
|
44
|
+
|
|
45
|
+
**Scope:**
|
|
46
|
+
- IN: [what will be built]
|
|
47
|
+
- OUT: [what is explicitly NOT in scope]
|
|
48
|
+
|
|
49
|
+
**Acceptance criteria:**
|
|
50
|
+
1. [testable criterion]
|
|
51
|
+
2. [testable criterion]
|
|
52
|
+
3. [testable criterion]
|
|
53
|
+
|
|
54
|
+
**Approach:** [2-3 sentences on implementation approach]
|
|
55
|
+
|
|
56
|
+
**Risks / unknowns:** [any?]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Ask: "Does this spec match your intent? Any changes before we plan?"
|
|
60
|
+
**Auto mode on?** → Skip this question, continue immediately. Show spec but don't wait.
|
|
61
|
+
**Auto mode off (default)?** → Wait for approval. If the user says "yes" / "go" / "lgtm" → continue.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Step 3: Generate Plan (immediately after spec approval)
|
|
66
|
+
|
|
67
|
+
Break into **max 4 atomic tasks**. Each task must:
|
|
68
|
+
- Be completable in one commit
|
|
69
|
+
- Have a clear verification step
|
|
70
|
+
- Follow TDD (test first)
|
|
71
|
+
|
|
72
|
+
Format:
|
|
73
|
+
```markdown
|
|
74
|
+
## Plan: [task name]
|
|
75
|
+
Branch: feature/[ticket-or-slug]
|
|
76
|
+
|
|
77
|
+
### Task 1: [name]
|
|
78
|
+
Files: [exact file paths]
|
|
79
|
+
Test first: [what test to write]
|
|
80
|
+
Implementation: [what to change]
|
|
81
|
+
Commit: feat([scope]): [message]
|
|
82
|
+
Verify: [how to confirm it works]
|
|
83
|
+
|
|
84
|
+
### Task 2: ...
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Step 4: Create branch + first test
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git checkout -b feature/[slug]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Then immediately write the first failing test for Task 1.
|
|
96
|
+
Do NOT write any production code yet.
|
|
97
|
+
|
|
98
|
+
Show the red test output, then:
|
|
99
|
+
**Auto mode on?** → Immediately start executing task by task. Don't wait.
|
|
100
|
+
**Auto mode off?** → Say "Plan is ready. Say **'go'** to start executing task by task, or **'adjust'** to modify the plan."
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Execution mode (after "go")
|
|
105
|
+
|
|
106
|
+
Execute each task in sequence:
|
|
107
|
+
1. Write test → confirm it fails (red)
|
|
108
|
+
2. Write minimal implementation → confirm test passes (green)
|
|
109
|
+
3. Refactor if needed
|
|
110
|
+
4. Commit with atomic message
|
|
111
|
+
5. Show summary, move to next task
|
|
112
|
+
|
|
113
|
+
After all tasks: run full test suite, then say:
|
|
114
|
+
"All tasks complete. Ready for `/spartan:pr-ready` to prep the PR."
|
|
115
|
+
|
|
116
|
+
## Rules
|
|
117
|
+
|
|
118
|
+
- Max 4 tasks — if you need more, the scope is too big for quickplan
|
|
119
|
+
- Every task must be one commit
|
|
120
|
+
- Test first (TDD) — write the failing test before the implementation
|
|
121
|
+
- Don't skip the spec approval step unless auto mode is on
|
|
122
|
+
- Keep the spec under 30 lines — if it's longer, use `/spartan:phase` instead
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:research
|
|
3
|
+
description: Run a deep research session with web search, source checking, and structured report
|
|
4
|
+
argument-hint: "[topic to research]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Research: {{ args[0] | default: "your topic" }}
|
|
8
|
+
|
|
9
|
+
Run a deep research session.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. Use the `deep-research` skill
|
|
14
|
+
2. Use web search to find real data
|
|
15
|
+
3. Cross-check sources
|
|
16
|
+
4. Write a structured report
|
|
17
|
+
5. Save output to the project's `02-research/` folder
|
|
18
|
+
|
|
19
|
+
If no project folder exists yet, ask which project this is for.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:review
|
|
3
|
+
description: Perform a thorough PR review following Spartan Kotlin + Micronaut conventions and company rules
|
|
4
|
+
argument-hint: "[optional: branch name or PR description]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Code Review: {{ args[0] | default: "current changes" }}
|
|
8
|
+
|
|
9
|
+
Perform a comprehensive code review of the current changes. Use the `git diff` tool to inspect
|
|
10
|
+
all modified files. Analyze the changes systematically.
|
|
11
|
+
|
|
12
|
+
**Before reviewing, reference these company rules:**
|
|
13
|
+
- `rules/backend-micronaut/KOTLIN.md` — Null safety, Either, coroutines
|
|
14
|
+
- `rules/backend-micronaut/CONTROLLERS.md` — Controller → Manager → Service/Repository
|
|
15
|
+
- `rules/backend-micronaut/API_DESIGN.md` — Query params only, RPC-style URLs
|
|
16
|
+
- `rules/database/SCHEMA.md` — No FK, TEXT not VARCHAR, soft deletes
|
|
17
|
+
|
|
18
|
+
## Review Checklist
|
|
19
|
+
|
|
20
|
+
### Stage 1: Correctness & Business Logic
|
|
21
|
+
- [ ] Does the implementation match the stated requirements/ticket?
|
|
22
|
+
- [ ] Are all edge cases handled?
|
|
23
|
+
- [ ] Is error handling using `Either<ClientException, T>` (not exceptions)?
|
|
24
|
+
- [ ] Are there any `!!` operators? (BANNED — see CORE_RULES)
|
|
25
|
+
- [ ] Are all coroutine scopes properly managed?
|
|
26
|
+
|
|
27
|
+
### Stage 2: Kotlin & Micronaut Conventions
|
|
28
|
+
- [ ] Controllers are thin — delegate to Manager immediately
|
|
29
|
+
- [ ] `@ExecuteOn(TaskExecutors.BLOCKING)` on controller methods that call blocking code
|
|
30
|
+
- [ ] `@Secured` annotation present on all controllers
|
|
31
|
+
- [ ] Manager returns `Either<ClientException, T>`, not raw types or exceptions
|
|
32
|
+
- [ ] Query parameters used (no path parameters like `/{id}`)
|
|
33
|
+
- [ ] Null safety: safe call + elvis, no `!!`
|
|
34
|
+
- [ ] Extension functions preferred over utility classes
|
|
35
|
+
|
|
36
|
+
### Stage 3: Test Coverage
|
|
37
|
+
- [ ] New endpoints have `@MicronautTest` integration tests
|
|
38
|
+
- [ ] Tests follow the pattern from `/testing-strategies` skill
|
|
39
|
+
- [ ] Tests are independent (no test order dependencies)
|
|
40
|
+
- [ ] Edge cases are tested
|
|
41
|
+
- [ ] Test uses proper test data builders
|
|
42
|
+
|
|
43
|
+
### Stage 4: Clean Code & Architecture
|
|
44
|
+
- [ ] Layered architecture: Controller → Manager → Service/Repository
|
|
45
|
+
- [ ] No business logic in controllers or repositories
|
|
46
|
+
- [ ] Package structure follows controller/manager/service/repository/model
|
|
47
|
+
- [ ] No cyclic dependencies between packages
|
|
48
|
+
- [ ] Functions are small and single-purpose
|
|
49
|
+
|
|
50
|
+
### Stage 5: Database & API
|
|
51
|
+
- [ ] Migrations use TEXT not VARCHAR (DATABASE_RULES)
|
|
52
|
+
- [ ] No foreign key constraints (DATABASE_RULES)
|
|
53
|
+
- [ ] Soft delete with `deleted_at` (no hard deletes)
|
|
54
|
+
- [ ] Standard columns present: `id`, `created_at`, `updated_at`, `deleted_at`
|
|
55
|
+
- [ ] UUID primary keys
|
|
56
|
+
- [ ] API URLs follow RPC style (API_RULES)
|
|
57
|
+
- [ ] No sensitive data logged
|
|
58
|
+
- [ ] Input validation on all public API endpoints
|
|
59
|
+
|
|
60
|
+
## Output Format
|
|
61
|
+
|
|
62
|
+
Provide review results as:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
## PR Review Summary
|
|
66
|
+
|
|
67
|
+
### ✅ Approved / ⚠️ Needs Changes / ❌ Blocked
|
|
68
|
+
|
|
69
|
+
### Critical Issues (must fix)
|
|
70
|
+
- [issue with file:line reference]
|
|
71
|
+
|
|
72
|
+
### Suggestions (nice to have)
|
|
73
|
+
- [suggestion]
|
|
74
|
+
|
|
75
|
+
### Praise (what was done well)
|
|
76
|
+
- [positive note]
|
|
77
|
+
|
|
78
|
+
### Verdict
|
|
79
|
+
[Final recommendation]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Stage 6: Documentation Gap Analysis (from pr-reviewer agent)
|
|
83
|
+
After reviewing code, check if any patterns found should be documented:
|
|
84
|
+
- [ ] New architectural pattern used? → Update `rules/shared-backend/ARCHITECTURE.md`
|
|
85
|
+
- [ ] New error handling pattern? → Update `rules/backend-micronaut/KOTLIN.md`
|
|
86
|
+
- [ ] New database pattern? → Update `rules/database/SCHEMA.md`
|
|
87
|
+
- [ ] Recurring PR feedback theme? → Create new rule or update existing
|
|
88
|
+
- [ ] New convention established? → Update CLAUDE.md or `.memory/patterns/`
|
|
89
|
+
|
|
90
|
+
If documentation updates needed, list them at the end of the review:
|
|
91
|
+
```
|
|
92
|
+
### Documentation Updates Needed
|
|
93
|
+
- [file]: [what to add/update and why]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Rules
|
|
97
|
+
|
|
98
|
+
- Always use `git diff` to inspect actual changes — don't guess from filenames
|
|
99
|
+
- Reference the company rules files before checking code
|
|
100
|
+
- Every finding must include file:line reference
|
|
101
|
+
- Separate "must fix" from "nice to have" — don't block PRs on style nits
|
|
102
|
+
- Praise good code — reviews aren't just for finding problems
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:teardown
|
|
3
|
+
description: Deep competitor analysis — pricing, features, strengths, weaknesses, and where they leave gaps
|
|
4
|
+
argument-hint: "[competitor name or URL]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Competitor Teardown: {{ args[0] | default: "competitor" }}
|
|
8
|
+
|
|
9
|
+
You are running a deep competitor analysis. Be brutally honest — don't downplay their strengths or inflate their weaknesses. The goal is to understand them clearly so we can find real gaps.
|
|
10
|
+
|
|
11
|
+
If the user gives a URL, use web search to find real data about the company. If they give just a name, search for it.
|
|
12
|
+
|
|
13
|
+
**Use web search** to find pricing pages, G2/Capterra reviews, traffic data, and social media mentions. Real data beats guessing.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Section 1: Overview
|
|
18
|
+
|
|
19
|
+
Write one paragraph: What do they do? Who do they serve? When were they founded? How big are they?
|
|
20
|
+
|
|
21
|
+
Keep it factual. No opinions yet.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Section 2: Pricing
|
|
26
|
+
|
|
27
|
+
| Plan | Price | Key Features |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| Free / Trial | | |
|
|
30
|
+
| Starter / Basic | | |
|
|
31
|
+
| Pro / Growth | | |
|
|
32
|
+
| Enterprise | | |
|
|
33
|
+
|
|
34
|
+
Note: Do they have a free tier? Free trial length? Annual vs monthly pricing difference?
|
|
35
|
+
What's the cheapest way to get started?
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Section 3: Feature Breakdown
|
|
40
|
+
|
|
41
|
+
| Feature | Have It? | How Good? (1-5) | Notes |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| [core feature 1] | Yes/No | | |
|
|
44
|
+
| [core feature 2] | Yes/No | | |
|
|
45
|
+
| [core feature 3] | Yes/No | | |
|
|
46
|
+
| ... | | | |
|
|
47
|
+
|
|
48
|
+
List 10-15 features that matter for this market. Score quality honestly.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Section 4: What They Do Well (Top 3)
|
|
53
|
+
|
|
54
|
+
List their top 3 strengths. For each one:
|
|
55
|
+
- What is it?
|
|
56
|
+
- Evidence (user reviews, market position, product quality)
|
|
57
|
+
- How hard would it be to match this?
|
|
58
|
+
|
|
59
|
+
Don't skip this. If they're winning, there's a reason.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Section 5: What They Do Poorly (Top 3)
|
|
64
|
+
|
|
65
|
+
List their top 3 weaknesses. For each one:
|
|
66
|
+
- What is it?
|
|
67
|
+
- Evidence (user complaints, missing features, bad UX)
|
|
68
|
+
- Is this a real gap or just nitpicking?
|
|
69
|
+
|
|
70
|
+
Only list real problems. "Their logo is ugly" doesn't count.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Section 6: User Reviews
|
|
75
|
+
|
|
76
|
+
Search G2, Capterra, Reddit, Twitter/X, Product Hunt for real user feedback.
|
|
77
|
+
|
|
78
|
+
**What users love:**
|
|
79
|
+
- [quote or paraphrase + source]
|
|
80
|
+
- [quote or paraphrase + source]
|
|
81
|
+
- [quote or paraphrase + source]
|
|
82
|
+
|
|
83
|
+
**What users hate:**
|
|
84
|
+
- [quote or paraphrase + source]
|
|
85
|
+
- [quote or paraphrase + source]
|
|
86
|
+
- [quote or paraphrase + source]
|
|
87
|
+
|
|
88
|
+
**Common themes:** What shows up over and over in reviews?
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Section 7: Traffic & Traction
|
|
93
|
+
|
|
94
|
+
| Metric | Value | Source |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| Monthly visitors (estimate) | | SimilarWeb / search |
|
|
97
|
+
| Growth trend | Growing / Flat / Declining | |
|
|
98
|
+
| Team size (estimate) | | LinkedIn / Crunchbase |
|
|
99
|
+
| Total funding | | Crunchbase |
|
|
100
|
+
| Last funding round | | |
|
|
101
|
+
| Notable customers | | |
|
|
102
|
+
|
|
103
|
+
If data isn't available, say so. Don't make up numbers.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Section 8: How They Get Users
|
|
108
|
+
|
|
109
|
+
Check which channels they use:
|
|
110
|
+
|
|
111
|
+
| Channel | Active? | Evidence |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| SEO / Content marketing | | Blog posts? Ranking for key terms? |
|
|
114
|
+
| Paid ads (Google/Meta) | | Found ads? Sponsorships? |
|
|
115
|
+
| Social media | | Active accounts? Engagement? |
|
|
116
|
+
| Community / Forums | | Discord? Slack? Reddit presence? |
|
|
117
|
+
| Partnerships / Integrations | | App stores? Partner pages? |
|
|
118
|
+
| Word of mouth / Referrals | | Referral program? Organic mentions? |
|
|
119
|
+
| Product Hunt / Launch sites | | Past launches? |
|
|
120
|
+
|
|
121
|
+
What's their main growth channel? Where do most users come from?
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Section 9: Positioning
|
|
126
|
+
|
|
127
|
+
- **How they describe themselves:** [their tagline / hero text]
|
|
128
|
+
- **Target persona:** Who are they really building for?
|
|
129
|
+
- **Positioning:** Are they the cheap option? The premium option? The easy option? The powerful option?
|
|
130
|
+
- **Brand voice:** Corporate / Casual / Technical / Friendly?
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Section 10: Our Opportunity
|
|
135
|
+
|
|
136
|
+
This is the "so what?" section. Based on everything above:
|
|
137
|
+
|
|
138
|
+
**Gaps they leave open:**
|
|
139
|
+
- [gap 1 — who's underserved?]
|
|
140
|
+
- [gap 2 — what feature is missing or weak?]
|
|
141
|
+
- [gap 3 — what segment do they ignore?]
|
|
142
|
+
|
|
143
|
+
**What we'd do differently:**
|
|
144
|
+
- [difference 1]
|
|
145
|
+
- [difference 2]
|
|
146
|
+
- [difference 3]
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## So What?
|
|
151
|
+
|
|
152
|
+
Write one paragraph: What does this teardown mean for our strategy? Where should we compete, and where should we avoid competing?
|
|
153
|
+
|
|
154
|
+
Be specific. "We should differentiate" is useless. Say HOW and WHERE.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
**Next steps:**
|
|
159
|
+
- Want to analyze another competitor? Run `/spartan:teardown [name]` again
|
|
160
|
+
- Ready to compare multiple competitors side by side? Ask me to build a comparison matrix
|
|
161
|
+
- Want to validate your positioning? Run `/spartan:validate` with your idea
|