jdi-cli 0.1.0 → 0.1.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/core/agents/jdi-bootstrap.md +46 -7
- package/package.json +1 -1
- package/runtimes/antigravity/skills/clean-code/SKILL.md +1 -1
- package/runtimes/antigravity/skills/dry/SKILL.md +1 -1
- package/runtimes/antigravity/skills/frontend-rules/SKILL.md +1 -1
- package/runtimes/antigravity/skills/frontend-validator/SKILL.md +1 -1
- package/runtimes/antigravity/skills/jdi-adopter/SKILL.md +1 -1
- package/runtimes/antigravity/skills/jdi-architect/SKILL.md +1 -1
- package/runtimes/antigravity/skills/jdi-asker/SKILL.md +1 -1
- package/runtimes/antigravity/skills/jdi-planner/SKILL.md +1 -1
- package/runtimes/antigravity/skills/jdi-researcher/SKILL.md +1 -1
- package/runtimes/antigravity/skills/kiss/SKILL.md +1 -1
- package/runtimes/antigravity/skills/solid/SKILL.md +1 -1
- package/runtimes/antigravity/skills/yagni/SKILL.md +1 -1
- package/runtimes/claude/agents/jdi-adopter.md +1 -1
- package/runtimes/claude/agents/jdi-architect.md +1 -1
- package/runtimes/claude/agents/jdi-asker.md +1 -1
- package/runtimes/claude/agents/jdi-bootstrap.md +47 -8
- package/runtimes/claude/agents/jdi-planner.md +1 -1
- package/runtimes/claude/agents/jdi-researcher.md +1 -1
- package/runtimes/claude/skills/clean-code/SKILL.md +1 -1
- package/runtimes/claude/skills/dry/SKILL.md +1 -1
- package/runtimes/claude/skills/frontend-rules/SKILL.md +1 -1
- package/runtimes/claude/skills/frontend-validator/SKILL.md +1 -1
- package/runtimes/claude/skills/kiss/SKILL.md +1 -1
- package/runtimes/claude/skills/solid/SKILL.md +1 -1
- package/runtimes/claude/skills/yagni/SKILL.md +1 -1
- package/runtimes/copilot/agents/jdi-adopter.agent.md +1 -1
- package/runtimes/copilot/agents/jdi-architect.agent.md +1 -1
- package/runtimes/copilot/agents/jdi-asker.agent.md +1 -1
- package/runtimes/copilot/agents/jdi-bootstrap.agent.md +47 -8
- package/runtimes/copilot/agents/jdi-planner.agent.md +1 -1
- package/runtimes/copilot/agents/jdi-researcher.agent.md +1 -1
- package/runtimes/opencode/agents/jdi-adopter.md +1 -1
- package/runtimes/opencode/agents/jdi-architect.md +1 -1
- package/runtimes/opencode/agents/jdi-asker.md +1 -1
- package/runtimes/opencode/agents/jdi-bootstrap.md +47 -8
- package/runtimes/opencode/agents/jdi-planner.md +1 -1
- package/runtimes/opencode/agents/jdi-researcher.md +1 -1
- package/runtimes/opencode/skills/clean-code/SKILL.md +1 -1
- package/runtimes/opencode/skills/dry/SKILL.md +1 -1
- package/runtimes/opencode/skills/frontend-rules/SKILL.md +1 -1
- package/runtimes/opencode/skills/frontend-validator/SKILL.md +1 -1
- package/runtimes/opencode/skills/kiss/SKILL.md +1 -1
- package/runtimes/opencode/skills/solid/SKILL.md +1 -1
- package/runtimes/opencode/skills/yagni/SKILL.md +1 -1
|
@@ -110,20 +110,59 @@ Pass `adopted=$ADOPTED` and `boundary_commit=$BOUNDARY` to the architect in Step
|
|
|
110
110
|
|
|
111
111
|
### Step 2.7: Multi-stack? (multi-specialist support)
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
**MANDATORY step. Never skip — even if PROJECT.md only mentions 1 language, ASK the user.**
|
|
114
|
+
|
|
115
|
+
#### Step 2.7a: Auto-detect fullstack from PROJECT.md
|
|
116
|
+
|
|
117
|
+
Before asking, parse `.jdi/PROJECT.md` Stack/Frameworks/Vision sections. Detect dual-stack patterns:
|
|
118
|
+
|
|
119
|
+
**Backend keywords (case-insensitive):**
|
|
120
|
+
`C#|.NET|dotnet|ASP\.NET|Java|Spring|Kotlin|Go|Rust|Python|Django|Flask|FastAPI|Node|Express|NestJS|Ruby|Rails|PHP|Laravel|Elixir|Phoenix`
|
|
121
|
+
|
|
122
|
+
**Frontend keywords (case-insensitive):**
|
|
123
|
+
`React|Vue|Svelte|Angular|Next\.?js|Nuxt|Remix|SvelteKit|Astro|Solid|Qwik|Preact|Blazor`
|
|
124
|
+
|
|
125
|
+
**Mobile keywords:**
|
|
126
|
+
`iOS|Swift|Android|Kotlin Mobile|React Native|Flutter|Dart|Xamarin|MAUI`
|
|
127
|
+
|
|
128
|
+
**Infra keywords:**
|
|
129
|
+
`Terraform|Pulumi|CloudFormation|Kubernetes|Helm|Ansible`
|
|
130
|
+
|
|
131
|
+
If ≥2 categories match (e.g. backend + frontend), set `SUGGESTED_COUNT=2` and `SUGGESTED_PAIRS` accordingly.
|
|
132
|
+
|
|
133
|
+
Examples of detection result from `Stack: "C# 10 + React 19"`:
|
|
134
|
+
- Match: `C#` (backend) + `React` (frontend) → SUGGESTED_COUNT=2
|
|
135
|
+
- Suggested pairs:
|
|
136
|
+
- `{stack_label: "Backend C#", file_glob: "**/*.{cs,csproj,sln}"}`
|
|
137
|
+
- `{stack_label: "Frontend React", file_glob: "**/*.{ts,tsx,jsx,css,scss}"}`
|
|
138
|
+
|
|
139
|
+
#### Step 2.7b: AskUserQuestion (always run)
|
|
140
|
+
|
|
141
|
+
If `SUGGESTED_COUNT >= 2`, the FIRST option (default-selected by AskUserQuestion) MUST be the suggested multi-stack option. Format:
|
|
142
|
+
|
|
143
|
+
> "Detected fullstack project: **{detected_categories}** (e.g. {match_keywords}).
|
|
144
|
+
> Stack count?"
|
|
145
|
+
>
|
|
146
|
+
> Options (when SUGGESTED_COUNT=2):
|
|
147
|
+
> - [Multi (2 pairs — backend + frontend) **(Recommended)**]
|
|
148
|
+
> - [Single (1 specialist pair)]
|
|
149
|
+
> - [Multi (3 pairs)]
|
|
150
|
+
> - [Multi (custom count)]
|
|
151
|
+
|
|
152
|
+
If `SUGGESTED_COUNT=1` (single language detected, e.g. just Python or just Go):
|
|
114
153
|
|
|
115
154
|
> "Project stack count?
|
|
116
155
|
> - **Single-stack:** 1 doer + 1 reviewer (90% of projects)
|
|
117
|
-
> - **Multi-stack:** multiple
|
|
156
|
+
> - **Multi-stack:** multiple pairs (fullstack, mobile iOS+Android, infra+app, etc.)"
|
|
118
157
|
>
|
|
119
158
|
> Options:
|
|
120
|
-
> - [Single (1 specialist pair)]
|
|
121
|
-
> - [Multi (2 pairs
|
|
122
|
-
> - [Multi (3 pairs
|
|
159
|
+
> - [Single (1 specialist pair) **(Recommended)**]
|
|
160
|
+
> - [Multi (2 pairs)]
|
|
161
|
+
> - [Multi (3 pairs)]
|
|
123
162
|
> - [Multi (custom count)]
|
|
124
163
|
|
|
125
164
|
If single: `SPECIALIST_COUNT=1`. Standard flow.
|
|
126
|
-
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times.
|
|
165
|
+
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times. Pre-fill `stack_label` + `file_glob` from `SUGGESTED_PAIRS` when available (user can edit each).
|
|
127
166
|
|
|
128
167
|
For multi-stack, ask glob+label per specialist BEFORE architect S1:
|
|
129
168
|
|
|
@@ -226,7 +265,7 @@ Bootstrap ok. Next: /jdi-discuss 1
|
|
|
226
265
|
- Never create specialist without PROJECT.md present
|
|
227
266
|
- Never skip architect — bootstrap is wrapper, not generator
|
|
228
267
|
- Never commit if architect returned cancelled/failed
|
|
229
|
-
- 1 doer + 1 reviewer
|
|
268
|
+
- Single-stack (1 doer + 1 reviewer) is the default. Multi-stack (N pairs with file-glob routing) is opt-in via S2.7 — ALWAYS execute S2.7 (do not skip the question)
|
|
230
269
|
</rules>
|
|
231
270
|
|
|
232
271
|
<fallbacks>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jdi-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "JDI (Just Do It) — lean workflow toolkit for Claude Code, GitHub Copilot, Antigravity, and OpenCode. 10 commands (7 loop + ralph + adopt + meta), 6 core agents + N per-project specialists with file-glob routing. Optional Playwright MCP + Caveman plugin install.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"jdi": "bin/jdi.js"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-rules
|
|
3
3
|
description: Universal UI/UX and accessibility rules for any web interface. Framework-agnostic - works for React, Vue, Svelte, Solid, Angular, Blazor, Razor, Twig, Jinja, ERB, Blade, and any template engine. Based on WCAG 2.2 AA, Nielsen heuristics, Material/Apple HIG.
|
|
4
4
|
triggers:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-validator
|
|
3
3
|
description: Validates live UI via Playwright + axe-core. Detects Playwright; installs if missing (with user consent). Spawns dev server, navigates critical routes on mobile+desktop, captures console errors, network failures, a11y violations, screenshots, layout shifts. Structured JSON output for the reviewer to parse.
|
|
4
4
|
triggers:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: jdi-adopter
|
|
3
3
|
description: Adopt mode for brownfield projects. Scans existing repo (manifests, layout, git, docs), infers stack/code-design, confirms with user, generates PROJECT.md + ROADMAP.md with adopted=true flag. Replaces /jdi-new for projects with code already written.
|
|
4
4
|
triggers:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: solid
|
|
3
3
|
description: SOLID. Robert C. Martin's 5 OO design principles - SRP, OCP, LSP, ISP, DIP. Applicable in any language with types/classes/interfaces (C#, Java, TS, Python, Go, Rust, Kotlin, Swift, etc). Direct summary + anti-patterns + detection heuristics.
|
|
4
4
|
triggers:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: yagni
|
|
3
3
|
description: YAGNI (You Aren't Gonna Need It). Build only what the current requirement asks for. Generalize after the 3rd real case, never before. Code not written is code with no bug, no maintenance cost, no pending test. Applies in any language.
|
|
4
4
|
triggers:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: jdi-adopter
|
|
3
3
|
description: Adopt mode for brownfield projects. Scans existing repo (manifests, layout, git, docs), infers stack/code-design, confirms with user, generates PROJECT.md + ROADMAP.md with adopted=true flag. Replaces /jdi-new for projects with code already written.
|
|
4
4
|
model: opus
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: jdi-bootstrap
|
|
3
3
|
description: Fires jdi-architect in specialist mode to generate doer + reviewer per-project. Reads PROJECT.md, drives architect, validates outputs, updates routing.
|
|
4
4
|
model: sonnet
|
|
@@ -76,20 +76,59 @@ Pass `adopted=$ADOPTED` and `boundary_commit=$BOUNDARY` to the architect in Step
|
|
|
76
76
|
|
|
77
77
|
### Step 2.7: Multi-stack? (multi-specialist support)
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
**MANDATORY step. Never skip — even if PROJECT.md only mentions 1 language, ASK the user.**
|
|
80
|
+
|
|
81
|
+
#### Step 2.7a: Auto-detect fullstack from PROJECT.md
|
|
82
|
+
|
|
83
|
+
Before asking, parse `.jdi/PROJECT.md` Stack/Frameworks/Vision sections. Detect dual-stack patterns:
|
|
84
|
+
|
|
85
|
+
**Backend keywords (case-insensitive):**
|
|
86
|
+
`C#|.NET|dotnet|ASP\.NET|Java|Spring|Kotlin|Go|Rust|Python|Django|Flask|FastAPI|Node|Express|NestJS|Ruby|Rails|PHP|Laravel|Elixir|Phoenix`
|
|
87
|
+
|
|
88
|
+
**Frontend keywords (case-insensitive):**
|
|
89
|
+
`React|Vue|Svelte|Angular|Next\.?js|Nuxt|Remix|SvelteKit|Astro|Solid|Qwik|Preact|Blazor`
|
|
90
|
+
|
|
91
|
+
**Mobile keywords:**
|
|
92
|
+
`iOS|Swift|Android|Kotlin Mobile|React Native|Flutter|Dart|Xamarin|MAUI`
|
|
93
|
+
|
|
94
|
+
**Infra keywords:**
|
|
95
|
+
`Terraform|Pulumi|CloudFormation|Kubernetes|Helm|Ansible`
|
|
96
|
+
|
|
97
|
+
If ≥2 categories match (e.g. backend + frontend), set `SUGGESTED_COUNT=2` and `SUGGESTED_PAIRS` accordingly.
|
|
98
|
+
|
|
99
|
+
Examples of detection result from `Stack: "C# 10 + React 19"`:
|
|
100
|
+
- Match: `C#` (backend) + `React` (frontend) → SUGGESTED_COUNT=2
|
|
101
|
+
- Suggested pairs:
|
|
102
|
+
- `{stack_label: "Backend C#", file_glob: "**/*.{cs,csproj,sln}"}`
|
|
103
|
+
- `{stack_label: "Frontend React", file_glob: "**/*.{ts,tsx,jsx,css,scss}"}`
|
|
104
|
+
|
|
105
|
+
#### Step 2.7b: AskUserQuestion (always run)
|
|
106
|
+
|
|
107
|
+
If `SUGGESTED_COUNT >= 2`, the FIRST option (default-selected by AskUserQuestion) MUST be the suggested multi-stack option. Format:
|
|
108
|
+
|
|
109
|
+
> "Detected fullstack project: **{detected_categories}** (e.g. {match_keywords}).
|
|
110
|
+
> Stack count?"
|
|
111
|
+
>
|
|
112
|
+
> Options (when SUGGESTED_COUNT=2):
|
|
113
|
+
> - [Multi (2 pairs — backend + frontend) **(Recommended)**]
|
|
114
|
+
> - [Single (1 specialist pair)]
|
|
115
|
+
> - [Multi (3 pairs)]
|
|
116
|
+
> - [Multi (custom count)]
|
|
117
|
+
|
|
118
|
+
If `SUGGESTED_COUNT=1` (single language detected, e.g. just Python or just Go):
|
|
80
119
|
|
|
81
120
|
> "Project stack count?
|
|
82
121
|
> - **Single-stack:** 1 doer + 1 reviewer (90% of projects)
|
|
83
|
-
> - **Multi-stack:** multiple
|
|
122
|
+
> - **Multi-stack:** multiple pairs (fullstack, mobile iOS+Android, infra+app, etc.)"
|
|
84
123
|
>
|
|
85
124
|
> Options:
|
|
86
|
-
> - [Single (1 specialist pair)]
|
|
87
|
-
> - [Multi (2 pairs
|
|
88
|
-
> - [Multi (3 pairs
|
|
125
|
+
> - [Single (1 specialist pair) **(Recommended)**]
|
|
126
|
+
> - [Multi (2 pairs)]
|
|
127
|
+
> - [Multi (3 pairs)]
|
|
89
128
|
> - [Multi (custom count)]
|
|
90
129
|
|
|
91
130
|
If single: `SPECIALIST_COUNT=1`. Standard flow.
|
|
92
|
-
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times.
|
|
131
|
+
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times. Pre-fill `stack_label` + `file_glob` from `SUGGESTED_PAIRS` when available (user can edit each).
|
|
93
132
|
|
|
94
133
|
For multi-stack, ask glob+label per specialist BEFORE architect S1:
|
|
95
134
|
|
|
@@ -192,7 +231,7 @@ Bootstrap ok. Next: /jdi-discuss 1
|
|
|
192
231
|
- Never create specialist without PROJECT.md present
|
|
193
232
|
- Never skip architect — bootstrap is wrapper, not generator
|
|
194
233
|
- Never commit if architect returned cancelled/failed
|
|
195
|
-
- 1 doer + 1 reviewer
|
|
234
|
+
- Single-stack (1 doer + 1 reviewer) is the default. Multi-stack (N pairs with file-glob routing) is opt-in via S2.7 — ALWAYS execute S2.7 (do not skip the question)
|
|
196
235
|
</rules>
|
|
197
236
|
|
|
198
237
|
<fallbacks>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-rules
|
|
3
3
|
description: Universal UI/UX and accessibility rules for any web interface. Framework-agnostic - works for React, Vue, Svelte, Solid, Angular, Blazor, Razor, Twig, Jinja, ERB, Blade, and any template engine. Based on WCAG 2.2 AA, Nielsen heuristics, Material/Apple HIG.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-validator
|
|
3
3
|
description: Validates live UI via Playwright + axe-core. Detects Playwright; installs if missing (with user consent). Spawns dev server, navigates critical routes on mobile+desktop, captures console errors, network failures, a11y violations, screenshots, layout shifts. Structured JSON output for the reviewer to parse.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: solid
|
|
3
3
|
description: SOLID. Robert C. Martin's 5 OO design principles - SRP, OCP, LSP, ISP, DIP. Applicable in any language with types/classes/interfaces (C#, Java, TS, Python, Go, Rust, Kotlin, Swift, etc). Direct summary + anti-patterns + detection heuristics.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: yagni
|
|
3
3
|
description: YAGNI (You Aren't Gonna Need It). Build only what the current requirement asks for. Generalize after the 3rd real case, never before. Code not written is code with no bug, no maintenance cost, no pending test. Applies in any language.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: jdi-adopter
|
|
3
3
|
description: Adopt mode for brownfield projects. Scans existing repo (manifests, layout, git, docs), infers stack/code-design, confirms with user, generates PROJECT.md + ROADMAP.md with adopted=true flag. Replaces /jdi-new for projects with code already written.
|
|
4
4
|
model: gpt-5
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: jdi-bootstrap
|
|
3
3
|
description: Fires jdi-architect in specialist mode to generate doer + reviewer per-project. Reads PROJECT.md, drives architect, validates outputs, updates routing.
|
|
4
4
|
model: gpt-5
|
|
@@ -76,20 +76,59 @@ Pass `adopted=$ADOPTED` and `boundary_commit=$BOUNDARY` to the architect in Step
|
|
|
76
76
|
|
|
77
77
|
### Step 2.7: Multi-stack? (multi-specialist support)
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
**MANDATORY step. Never skip — even if PROJECT.md only mentions 1 language, ASK the user.**
|
|
80
|
+
|
|
81
|
+
#### Step 2.7a: Auto-detect fullstack from PROJECT.md
|
|
82
|
+
|
|
83
|
+
Before asking, parse `.jdi/PROJECT.md` Stack/Frameworks/Vision sections. Detect dual-stack patterns:
|
|
84
|
+
|
|
85
|
+
**Backend keywords (case-insensitive):**
|
|
86
|
+
`C#|.NET|dotnet|ASP\.NET|Java|Spring|Kotlin|Go|Rust|Python|Django|Flask|FastAPI|Node|Express|NestJS|Ruby|Rails|PHP|Laravel|Elixir|Phoenix`
|
|
87
|
+
|
|
88
|
+
**Frontend keywords (case-insensitive):**
|
|
89
|
+
`React|Vue|Svelte|Angular|Next\.?js|Nuxt|Remix|SvelteKit|Astro|Solid|Qwik|Preact|Blazor`
|
|
90
|
+
|
|
91
|
+
**Mobile keywords:**
|
|
92
|
+
`iOS|Swift|Android|Kotlin Mobile|React Native|Flutter|Dart|Xamarin|MAUI`
|
|
93
|
+
|
|
94
|
+
**Infra keywords:**
|
|
95
|
+
`Terraform|Pulumi|CloudFormation|Kubernetes|Helm|Ansible`
|
|
96
|
+
|
|
97
|
+
If ≥2 categories match (e.g. backend + frontend), set `SUGGESTED_COUNT=2` and `SUGGESTED_PAIRS` accordingly.
|
|
98
|
+
|
|
99
|
+
Examples of detection result from `Stack: "C# 10 + React 19"`:
|
|
100
|
+
- Match: `C#` (backend) + `React` (frontend) → SUGGESTED_COUNT=2
|
|
101
|
+
- Suggested pairs:
|
|
102
|
+
- `{stack_label: "Backend C#", file_glob: "**/*.{cs,csproj,sln}"}`
|
|
103
|
+
- `{stack_label: "Frontend React", file_glob: "**/*.{ts,tsx,jsx,css,scss}"}`
|
|
104
|
+
|
|
105
|
+
#### Step 2.7b: AskUserQuestion (always run)
|
|
106
|
+
|
|
107
|
+
If `SUGGESTED_COUNT >= 2`, the FIRST option (default-selected by AskUserQuestion) MUST be the suggested multi-stack option. Format:
|
|
108
|
+
|
|
109
|
+
> "Detected fullstack project: **{detected_categories}** (e.g. {match_keywords}).
|
|
110
|
+
> Stack count?"
|
|
111
|
+
>
|
|
112
|
+
> Options (when SUGGESTED_COUNT=2):
|
|
113
|
+
> - [Multi (2 pairs — backend + frontend) **(Recommended)**]
|
|
114
|
+
> - [Single (1 specialist pair)]
|
|
115
|
+
> - [Multi (3 pairs)]
|
|
116
|
+
> - [Multi (custom count)]
|
|
117
|
+
|
|
118
|
+
If `SUGGESTED_COUNT=1` (single language detected, e.g. just Python or just Go):
|
|
80
119
|
|
|
81
120
|
> "Project stack count?
|
|
82
121
|
> - **Single-stack:** 1 doer + 1 reviewer (90% of projects)
|
|
83
|
-
> - **Multi-stack:** multiple
|
|
122
|
+
> - **Multi-stack:** multiple pairs (fullstack, mobile iOS+Android, infra+app, etc.)"
|
|
84
123
|
>
|
|
85
124
|
> Options:
|
|
86
|
-
> - [Single (1 specialist pair)]
|
|
87
|
-
> - [Multi (2 pairs
|
|
88
|
-
> - [Multi (3 pairs
|
|
125
|
+
> - [Single (1 specialist pair) **(Recommended)**]
|
|
126
|
+
> - [Multi (2 pairs)]
|
|
127
|
+
> - [Multi (3 pairs)]
|
|
89
128
|
> - [Multi (custom count)]
|
|
90
129
|
|
|
91
130
|
If single: `SPECIALIST_COUNT=1`. Standard flow.
|
|
92
|
-
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times.
|
|
131
|
+
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times. Pre-fill `stack_label` + `file_glob` from `SUGGESTED_PAIRS` when available (user can edit each).
|
|
93
132
|
|
|
94
133
|
For multi-stack, ask glob+label per specialist BEFORE architect S1:
|
|
95
134
|
|
|
@@ -192,7 +231,7 @@ Bootstrap ok. Next: /jdi-discuss 1
|
|
|
192
231
|
- Never create specialist without PROJECT.md present
|
|
193
232
|
- Never skip architect — bootstrap is wrapper, not generator
|
|
194
233
|
- Never commit if architect returned cancelled/failed
|
|
195
|
-
- 1 doer + 1 reviewer
|
|
234
|
+
- Single-stack (1 doer + 1 reviewer) is the default. Multi-stack (N pairs with file-glob routing) is opt-in via S2.7 — ALWAYS execute S2.7 (do not skip the question)
|
|
196
235
|
</rules>
|
|
197
236
|
|
|
198
237
|
<fallbacks>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
description: Adopt mode for brownfield projects. Scans existing repo (manifests, layout, git, docs), infers stack/code-design, confirms with user, generates PROJECT.md + ROADMAP.md with adopted=true flag. Replaces /jdi-new for projects with code already written.
|
|
3
3
|
mode: subagent
|
|
4
4
|
model: anthropic/claude-sonnet-4-20250514
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
description: Fires jdi-architect in specialist mode to generate doer + reviewer per-project. Reads PROJECT.md, drives architect, validates outputs, updates routing.
|
|
3
3
|
mode: subagent
|
|
4
4
|
model: anthropic/claude-sonnet-4-20250514
|
|
@@ -80,20 +80,59 @@ Pass `adopted=$ADOPTED` and `boundary_commit=$BOUNDARY` to the architect in Step
|
|
|
80
80
|
|
|
81
81
|
### Step 2.7: Multi-stack? (multi-specialist support)
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
**MANDATORY step. Never skip — even if PROJECT.md only mentions 1 language, ASK the user.**
|
|
84
|
+
|
|
85
|
+
#### Step 2.7a: Auto-detect fullstack from PROJECT.md
|
|
86
|
+
|
|
87
|
+
Before asking, parse `.jdi/PROJECT.md` Stack/Frameworks/Vision sections. Detect dual-stack patterns:
|
|
88
|
+
|
|
89
|
+
**Backend keywords (case-insensitive):**
|
|
90
|
+
`C#|.NET|dotnet|ASP\.NET|Java|Spring|Kotlin|Go|Rust|Python|Django|Flask|FastAPI|Node|Express|NestJS|Ruby|Rails|PHP|Laravel|Elixir|Phoenix`
|
|
91
|
+
|
|
92
|
+
**Frontend keywords (case-insensitive):**
|
|
93
|
+
`React|Vue|Svelte|Angular|Next\.?js|Nuxt|Remix|SvelteKit|Astro|Solid|Qwik|Preact|Blazor`
|
|
94
|
+
|
|
95
|
+
**Mobile keywords:**
|
|
96
|
+
`iOS|Swift|Android|Kotlin Mobile|React Native|Flutter|Dart|Xamarin|MAUI`
|
|
97
|
+
|
|
98
|
+
**Infra keywords:**
|
|
99
|
+
`Terraform|Pulumi|CloudFormation|Kubernetes|Helm|Ansible`
|
|
100
|
+
|
|
101
|
+
If ≥2 categories match (e.g. backend + frontend), set `SUGGESTED_COUNT=2` and `SUGGESTED_PAIRS` accordingly.
|
|
102
|
+
|
|
103
|
+
Examples of detection result from `Stack: "C# 10 + React 19"`:
|
|
104
|
+
- Match: `C#` (backend) + `React` (frontend) → SUGGESTED_COUNT=2
|
|
105
|
+
- Suggested pairs:
|
|
106
|
+
- `{stack_label: "Backend C#", file_glob: "**/*.{cs,csproj,sln}"}`
|
|
107
|
+
- `{stack_label: "Frontend React", file_glob: "**/*.{ts,tsx,jsx,css,scss}"}`
|
|
108
|
+
|
|
109
|
+
#### Step 2.7b: AskUserQuestion (always run)
|
|
110
|
+
|
|
111
|
+
If `SUGGESTED_COUNT >= 2`, the FIRST option (default-selected by AskUserQuestion) MUST be the suggested multi-stack option. Format:
|
|
112
|
+
|
|
113
|
+
> "Detected fullstack project: **{detected_categories}** (e.g. {match_keywords}).
|
|
114
|
+
> Stack count?"
|
|
115
|
+
>
|
|
116
|
+
> Options (when SUGGESTED_COUNT=2):
|
|
117
|
+
> - [Multi (2 pairs — backend + frontend) **(Recommended)**]
|
|
118
|
+
> - [Single (1 specialist pair)]
|
|
119
|
+
> - [Multi (3 pairs)]
|
|
120
|
+
> - [Multi (custom count)]
|
|
121
|
+
|
|
122
|
+
If `SUGGESTED_COUNT=1` (single language detected, e.g. just Python or just Go):
|
|
84
123
|
|
|
85
124
|
> "Project stack count?
|
|
86
125
|
> - **Single-stack:** 1 doer + 1 reviewer (90% of projects)
|
|
87
|
-
> - **Multi-stack:** multiple
|
|
126
|
+
> - **Multi-stack:** multiple pairs (fullstack, mobile iOS+Android, infra+app, etc.)"
|
|
88
127
|
>
|
|
89
128
|
> Options:
|
|
90
|
-
> - [Single (1 specialist pair)]
|
|
91
|
-
> - [Multi (2 pairs
|
|
92
|
-
> - [Multi (3 pairs
|
|
129
|
+
> - [Single (1 specialist pair) **(Recommended)**]
|
|
130
|
+
> - [Multi (2 pairs)]
|
|
131
|
+
> - [Multi (3 pairs)]
|
|
93
132
|
> - [Multi (custom count)]
|
|
94
133
|
|
|
95
134
|
If single: `SPECIALIST_COUNT=1`. Standard flow.
|
|
96
|
-
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times.
|
|
135
|
+
If multi: `SPECIALIST_COUNT=N`. Architect loops S1-S8 N times. Pre-fill `stack_label` + `file_glob` from `SUGGESTED_PAIRS` when available (user can edit each).
|
|
97
136
|
|
|
98
137
|
For multi-stack, ask glob+label per specialist BEFORE architect S1:
|
|
99
138
|
|
|
@@ -196,7 +235,7 @@ Bootstrap ok. Next: /jdi-discuss 1
|
|
|
196
235
|
- Never create specialist without PROJECT.md present
|
|
197
236
|
- Never skip architect — bootstrap is wrapper, not generator
|
|
198
237
|
- Never commit if architect returned cancelled/failed
|
|
199
|
-
- 1 doer + 1 reviewer
|
|
238
|
+
- Single-stack (1 doer + 1 reviewer) is the default. Multi-stack (N pairs with file-glob routing) is opt-in via S2.7 — ALWAYS execute S2.7 (do not skip the question)
|
|
200
239
|
</rules>
|
|
201
240
|
|
|
202
241
|
<fallbacks>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
description: Upfront pre-roadmap research. Reads user idea, asks key questions, researches stack/domain, generates initial PROJECT.md + ROADMAP.md. Single agent instead of multiple parallel researchers to save tokens.
|
|
3
3
|
mode: subagent
|
|
4
4
|
model: anthropic/claude-sonnet-4-20250514
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-rules
|
|
3
3
|
description: Universal UI/UX and accessibility rules for any web interface. Framework-agnostic - works for React, Vue, Svelte, Solid, Angular, Blazor, Razor, Twig, Jinja, ERB, Blade, and any template engine. Based on WCAG 2.2 AA, Nielsen heuristics, Material/Apple HIG.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: frontend-validator
|
|
3
3
|
description: Validates live UI via Playwright + axe-core. Detects Playwright; installs if missing (with user consent). Spawns dev server, navigates critical routes on mobile+desktop, captures console errors, network failures, a11y violations, screenshots, layout shifts. Structured JSON output for the reviewer to parse.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: solid
|
|
3
3
|
description: SOLID. Robert C. Martin's 5 OO design principles - SRP, OCP, LSP, ISP, DIP. Applicable in any language with types/classes/interfaces (C#, Java, TS, Python, Go, Rust, Kotlin, Swift, etc). Direct summary + anti-patterns + detection heuristics.
|
|
4
4
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
name: yagni
|
|
3
3
|
description: YAGNI (You Aren't Gonna Need It). Build only what the current requirement asks for. Generalize after the 3rd real case, never before. Code not written is code with no bug, no maintenance cost, no pending test. Applies in any language.
|
|
4
4
|
---
|