@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,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:brainstorm
|
|
3
|
+
description: Structured brainstorming — generate ideas, filter fast, rank the top 3
|
|
4
|
+
argument-hint: "[theme or problem space]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Brainstorm: {{ args[0] | default: "new ideas" }}
|
|
8
|
+
|
|
9
|
+
You are running a structured brainstorming session in 3 steps: Generate, Filter, Rank.
|
|
10
|
+
|
|
11
|
+
The goal: go from a theme to 3 strong ideas in about 15 minutes.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 1: GENERATE (~5 min)
|
|
16
|
+
|
|
17
|
+
Brain dump time. Quantity over quality. No filtering yet.
|
|
18
|
+
|
|
19
|
+
Generate **8-15 ideas** around the theme: {{ args[0] }}
|
|
20
|
+
|
|
21
|
+
Use different lenses to get variety:
|
|
22
|
+
- **Technology lens:** What can new tech (AI, APIs, automation) make possible now that wasn't before?
|
|
23
|
+
- **Market gap lens:** What's missing in this space? What do people complain about?
|
|
24
|
+
- **Pain point lens:** What painful manual process could be fixed?
|
|
25
|
+
- **Trend lens:** What's changing in this space? Where is it heading?
|
|
26
|
+
- **Remix lens:** Take an existing product in another market — what if it existed for THIS market?
|
|
27
|
+
|
|
28
|
+
For each idea, write exactly 3 things:
|
|
29
|
+
|
|
30
|
+
| # | Name | One-Sentence Pitch | Who It's For |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| 1 | [catchy name] | [what it does in one sentence] | [specific person/role] |
|
|
33
|
+
| 2 | | | |
|
|
34
|
+
| ... | | | |
|
|
35
|
+
|
|
36
|
+
**Rules during generation:**
|
|
37
|
+
- No judging yet. Bad ideas are fine. They can spark good ones.
|
|
38
|
+
- Each idea must be different enough from the others — no slight variations
|
|
39
|
+
- "Who it's for" must be a specific person, not "everyone"
|
|
40
|
+
|
|
41
|
+
Show the full list, then ask: **"Want to add any ideas before we filter? Last chance — once we filter, we kill fast."**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 2: FILTER (~5 min)
|
|
46
|
+
|
|
47
|
+
Quick kill round. For each idea, answer 3 questions:
|
|
48
|
+
|
|
49
|
+
| # | Name | Build MVP in 2-4 weeks? | Know someone with this problem? | Would someone pay TODAY? | Grade |
|
|
50
|
+
|---|---|---|---|---|---|
|
|
51
|
+
| 1 | [name] | Yes/No | Yes/No | Yes/No | HOT/WARM/COLD |
|
|
52
|
+
| 2 | | | | | |
|
|
53
|
+
| ... | | | | | |
|
|
54
|
+
|
|
55
|
+
**Grading:**
|
|
56
|
+
- **HOT** = All 3 yes — strong candidate
|
|
57
|
+
- **WARM** = 2 yes — worth a closer look
|
|
58
|
+
- **COLD** = 0-1 yes — kill it (for now)
|
|
59
|
+
|
|
60
|
+
**Kill question details:**
|
|
61
|
+
|
|
62
|
+
**"Can I build an MVP in 2-4 weeks?"**
|
|
63
|
+
If no → park it. Good ideas you can't build fast become idea graveyards. Come back when you can.
|
|
64
|
+
|
|
65
|
+
**"Do I know someone who has this problem?"**
|
|
66
|
+
If no → risky. You can't do user interviews if you don't know the users. You'd be guessing.
|
|
67
|
+
|
|
68
|
+
**"Would someone pay for this TODAY?"**
|
|
69
|
+
If no → might still work as a free/community play, but the path to money is harder. Note it.
|
|
70
|
+
|
|
71
|
+
Show the filtered list. Cross out COLD ideas. Ask: **"Agree with the filtering? Any saves before we rank?"**
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Step 3: RANK (pick top 3, ~5 min)
|
|
76
|
+
|
|
77
|
+
Take all HOT and WARM ideas. If there are more than 5, narrow down.
|
|
78
|
+
|
|
79
|
+
Rank by these 3 factors:
|
|
80
|
+
|
|
81
|
+
| # | Name | Founder-Market Fit | Market Size (gut) | Excitement | Total |
|
|
82
|
+
|---|---|---|---|---|---|
|
|
83
|
+
| | | 1-5 | 1-5 | 1-5 | /15 |
|
|
84
|
+
|
|
85
|
+
**Founder-Market Fit:** Do you understand these users? Have you been one of them? Do you have connections in this space?
|
|
86
|
+
|
|
87
|
+
**Market Size (gut feel):** How many people have this problem? Don't need exact numbers — just S/M/L/XL gut check, mapped to 1-5.
|
|
88
|
+
|
|
89
|
+
**Excitement:** How pumped are you about this idea? Be honest. You'll be working on it for months. Low excitement = you'll quit.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Output: Top 3 Ideas
|
|
94
|
+
|
|
95
|
+
For each of the top 3, write one paragraph:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
## Top 3 Ideas
|
|
99
|
+
|
|
100
|
+
### #1: [Name] (Score: X/15)
|
|
101
|
+
[One paragraph: what it is, who it's for, why it scored high,
|
|
102
|
+
what makes it worth pursuing. Include the biggest risk.]
|
|
103
|
+
|
|
104
|
+
### #2: [Name] (Score: X/15)
|
|
105
|
+
[Same format]
|
|
106
|
+
|
|
107
|
+
### #3: [Name] (Score: X/15)
|
|
108
|
+
[Same format]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Also Considered (WARM ideas for later)
|
|
114
|
+
|
|
115
|
+
List the WARM ideas that didn't make top 3 but could be worth revisiting:
|
|
116
|
+
- [Name] — [one line on why it's parked]
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Next Step
|
|
121
|
+
|
|
122
|
+
> Run `/spartan:validate` on your #1 pick.
|
|
123
|
+
|
|
124
|
+
Validation will score the idea on 7 areas and give you a GO / TEST MORE / KILL decision.
|
|
125
|
+
|
|
126
|
+
If your #1 doesn't pass validation, come back and try #2.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
**Other useful follow-ups:**
|
|
131
|
+
- `/spartan:teardown [competitor]` — Analyze competitors in the space
|
|
132
|
+
- `/spartan:interview [idea]` — Generate user interview questions
|
|
133
|
+
- `/spartan:lean-canvas [idea]` — Map out the full business model
|
|
134
|
+
- `/spartan:think [idea]` — Deep structured thinking before building
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spartan:brownfield
|
|
3
|
+
description: Analyze an existing codebase and generate a structured context map + onboarding spec before making any changes. Use when joining a legacy project or unfamiliar service.
|
|
4
|
+
argument-hint: "[service name or directory] [optional: area of focus]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Brownfield Onboarding: {{ args[0] }}
|
|
8
|
+
Focus area: {{ args[1] | default: "full codebase" }}
|
|
9
|
+
|
|
10
|
+
You are performing a **brownfield analysis** — mapping an existing codebase before touching it.
|
|
11
|
+
This prevents the most common AI coding mistake: making changes without understanding the terrain.
|
|
12
|
+
|
|
13
|
+
Inspired by OpenSpec's change-isolation philosophy: understand first, change second.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Phase 1: Structure Mapping (automated)
|
|
18
|
+
|
|
19
|
+
Run these commands to get a high-level picture:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Project structure
|
|
23
|
+
find . -type f -name "*.kt" | head -60
|
|
24
|
+
find . -type f -name "*.gradle.kts" | head -10
|
|
25
|
+
|
|
26
|
+
# Dependencies
|
|
27
|
+
cat build.gradle.kts 2>/dev/null || cat pom.xml 2>/dev/null
|
|
28
|
+
|
|
29
|
+
# Database migrations (Flyway)
|
|
30
|
+
ls src/main/resources/db/migration/ 2>/dev/null | sort
|
|
31
|
+
|
|
32
|
+
# Test coverage picture
|
|
33
|
+
find . -path "*/test/*" -name "*.kt" | wc -l
|
|
34
|
+
find . -path "*/main/*" -name "*.kt" | wc -l
|
|
35
|
+
|
|
36
|
+
# Recent git activity
|
|
37
|
+
git log --oneline -20
|
|
38
|
+
git log --oneline --since="30 days ago" | wc -l
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Phase 2: Architecture Analysis
|
|
44
|
+
|
|
45
|
+
Read and analyze these files (if they exist):
|
|
46
|
+
- `README.md` / `docs/`
|
|
47
|
+
- `CLAUDE.md` / `AGENTS.md`
|
|
48
|
+
- `src/main/resources/application.yml`
|
|
49
|
+
- Main `@MicronautApplication or Application.kt` class
|
|
50
|
+
- Domain model files in `domain/model/`
|
|
51
|
+
|
|
52
|
+
Then answer:
|
|
53
|
+
1. **What does this service do?** (1-2 sentences)
|
|
54
|
+
2. **What are the main domain entities?**
|
|
55
|
+
3. **What external systems does it talk to?** (DB, Kafka, Redis, HTTP)
|
|
56
|
+
4. **What are the main entry points?** (controllers, consumers)
|
|
57
|
+
5. **What tech debt is visible?** (TODO comments, deprecated APIs, inconsistent patterns)
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phase 3: Hotspot Detection
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Most-changed files (potential complexity hotspots)
|
|
65
|
+
git log --format=format: --name-only | grep "\.kt$" | sort | uniq -c | sort -rn | head -15
|
|
66
|
+
|
|
67
|
+
# Largest files (potential god classes)
|
|
68
|
+
find . -name "*.kt" -exec wc -l {} \; | sort -rn | head -10
|
|
69
|
+
|
|
70
|
+
# TODO/FIXME density
|
|
71
|
+
grep -r "TODO\|FIXME\|HACK\|XXX" --include="*.kt" | wc -l
|
|
72
|
+
grep -r "TODO\|FIXME\|HACK\|XXX" --include="*.kt" | head -10
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Phase 4: Test Health Check
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Test types present
|
|
81
|
+
find . -name "*Test*.kt" -o -name "*Spec*.kt" | head -20
|
|
82
|
+
|
|
83
|
+
# Integration tests (Testcontainers)
|
|
84
|
+
grep -r "Testcontainers\|@Container" --include="*.kt" -l
|
|
85
|
+
|
|
86
|
+
# Test coverage (if JaCoCo configured)
|
|
87
|
+
cat build.gradle.kts | grep -A5 "jacoco"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Assess:
|
|
91
|
+
- Unit test coverage (estimate from file count ratio)
|
|
92
|
+
- Integration test presence
|
|
93
|
+
- Any tests using mocks where Testcontainers would be better
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Phase 5: Generate Context Map
|
|
98
|
+
|
|
99
|
+
Save output as `docs/CONTEXT-MAP.md`:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# Context Map: [service name]
|
|
103
|
+
Generated: [date]
|
|
104
|
+
|
|
105
|
+
## Service Purpose
|
|
106
|
+
[1-2 sentences]
|
|
107
|
+
|
|
108
|
+
## Architecture
|
|
109
|
+
- Pattern: [layered / hexagonal / other]
|
|
110
|
+
- Main layers: [list]
|
|
111
|
+
- External dependencies: [list with protocols]
|
|
112
|
+
|
|
113
|
+
## Domain Model
|
|
114
|
+
[key entities and their relationships]
|
|
115
|
+
|
|
116
|
+
## Entry Points
|
|
117
|
+
[controllers + endpoints, consumers + topics]
|
|
118
|
+
|
|
119
|
+
## Known Tech Debt
|
|
120
|
+
[ordered by severity]
|
|
121
|
+
|
|
122
|
+
## Test Health
|
|
123
|
+
- Unit tests: [count / assessment]
|
|
124
|
+
- Integration tests: [count / assessment]
|
|
125
|
+
- Coverage gaps: [where tests are missing]
|
|
126
|
+
|
|
127
|
+
## Safe Change Zones
|
|
128
|
+
[areas that are well-tested and safe to modify]
|
|
129
|
+
|
|
130
|
+
## Danger Zones
|
|
131
|
+
[areas that are fragile, under-tested, or have unclear behavior]
|
|
132
|
+
|
|
133
|
+
## Recommended First Steps
|
|
134
|
+
1. [what to do before making any changes]
|
|
135
|
+
2. [what tests to add first]
|
|
136
|
+
3. [what to refactor before building new features]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Phase 6: Change Isolation Setup
|
|
142
|
+
|
|
143
|
+
For each planned change to this codebase, create a folder:
|
|
144
|
+
```
|
|
145
|
+
.changes/
|
|
146
|
+
[YYYY-MM-DD]-[change-name]/
|
|
147
|
+
PROPOSAL.md ← what you want to change and why
|
|
148
|
+
DESIGN.md ← how you'll change it
|
|
149
|
+
TASKS.md ← atomic steps (max 4)
|
|
150
|
+
RISKS.md ← what could break
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
This prevents scope creep and keeps each change independently reviewable.
|
|
154
|
+
|
|
155
|
+
After analysis, present the Context Map summary and ask:
|
|
156
|
+
"Analysis complete. What change would you like to make first?
|
|
157
|
+
I'll create a change folder and use `/spartan:spec` → `/spartan:build` for it."
|