@benzotti/jedi 0.1.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/README.md +615 -0
- package/dist/index.js +10514 -0
- package/framework/adapters/generic.yaml +23 -0
- package/framework/adapters/laravel.yaml +46 -0
- package/framework/adapters/nextjs.yaml +36 -0
- package/framework/adapters/node.yaml +29 -0
- package/framework/agents/jdi-architect.md +118 -0
- package/framework/agents/jdi-backend.md +52 -0
- package/framework/agents/jdi-codebase-mapper.md +59 -0
- package/framework/agents/jdi-committer.md +83 -0
- package/framework/agents/jdi-debugger.md +73 -0
- package/framework/agents/jdi-devops.md +46 -0
- package/framework/agents/jdi-executor.md +89 -0
- package/framework/agents/jdi-feedback-learner.md +92 -0
- package/framework/agents/jdi-frontend.md +51 -0
- package/framework/agents/jdi-head-engineering.md +30 -0
- package/framework/agents/jdi-phase-researcher.md +59 -0
- package/framework/agents/jdi-plan-checker.md +80 -0
- package/framework/agents/jdi-planner.md +140 -0
- package/framework/agents/jdi-pr-feedback.md +118 -0
- package/framework/agents/jdi-pr-generator.md +80 -0
- package/framework/agents/jdi-product-lead.md +44 -0
- package/framework/agents/jdi-quality.md +77 -0
- package/framework/agents/jdi-researcher.md +70 -0
- package/framework/agents/jdi-ux-designer.md +40 -0
- package/framework/agents/jdi-verifier.md +80 -0
- package/framework/commands/commit.md +20 -0
- package/framework/commands/create-plan.md +32 -0
- package/framework/commands/generate-pr.md +19 -0
- package/framework/commands/implement-plan.md +34 -0
- package/framework/commands/init.md +65 -0
- package/framework/commands/pr-feedback.md +20 -0
- package/framework/commands/pr-review.md +15 -0
- package/framework/commands/quick.md +17 -0
- package/framework/commands/status.md +13 -0
- package/framework/commands/worktree-remove.md +32 -0
- package/framework/commands/worktree.md +52 -0
- package/framework/components/execution/CodebaseContext.md +36 -0
- package/framework/components/execution/Commit.md +121 -0
- package/framework/components/execution/Verify.md +140 -0
- package/framework/components/execution/VerifyAdvanced.md +43 -0
- package/framework/components/meta/AgentBase.md +108 -0
- package/framework/components/meta/AgentTeamsOrchestration.md +71 -0
- package/framework/components/meta/ComplexityRouter.md +80 -0
- package/framework/components/meta/StateUpdate.md +191 -0
- package/framework/components/meta/TeamRouter.md +86 -0
- package/framework/components/planning/TaskBreakdown.md +83 -0
- package/framework/components/planning/WaveComputation.md +59 -0
- package/framework/components/quality/PRReview.md +196 -0
- package/framework/components/quality/PRReviewLocal.md +99 -0
- package/framework/config/jdi-config.yaml +159 -0
- package/framework/config/state.yaml +72 -0
- package/framework/config/variables.yaml +43 -0
- package/framework/hooks/checkpoint.md +196 -0
- package/framework/hooks/jdi-worktree-cleanup.md +123 -0
- package/framework/hooks/lint-fix-frontend.md +59 -0
- package/framework/hooks/on-pause.md +213 -0
- package/framework/hooks/pre-commit.md +143 -0
- package/framework/jedi.md +336 -0
- package/framework/learnings/backend.md +3 -0
- package/framework/learnings/devops.md +3 -0
- package/framework/learnings/frontend.md +3 -0
- package/framework/learnings/general.md +3 -0
- package/framework/learnings/testing.md +3 -0
- package/framework/rules/commit-rules.md +24 -0
- package/framework/rules/deviation-rules.md +221 -0
- package/framework/teams/devops.md +26 -0
- package/framework/teams/engineering.md +29 -0
- package/framework/teams/micro-management.md +26 -0
- package/framework/teams/product-research.md +29 -0
- package/framework/teams/quality-assurance.md +27 -0
- package/framework/templates/PLAN-TASK.md +28 -0
- package/framework/templates/PLAN.md +127 -0
- package/framework/templates/PROJECT.md +104 -0
- package/framework/templates/PROJECT.yaml +16 -0
- package/framework/templates/REQUIREMENTS.md +95 -0
- package/framework/templates/REQUIREMENTS.yaml +27 -0
- package/framework/templates/ROADMAP.md +116 -0
- package/framework/templates/ROADMAP.yaml +24 -0
- package/framework/templates/STATE.md +137 -0
- package/framework/templates/SUMMARY.md +201 -0
- package/framework/workflows/README.md +87 -0
- package/package.json +35 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jdi-product-lead
|
|
3
|
+
description: Requirements decomposition, acceptance criteria, delivery tracking, and requirement validation
|
|
4
|
+
category: product
|
|
5
|
+
team: Product & Research, Micro-Management
|
|
6
|
+
model: sonnet
|
|
7
|
+
requires_components: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JDI Product Lead
|
|
11
|
+
|
|
12
|
+
You operate in **requirements mode** (decomposing user stories, writing acceptance criteria, validating plans) and **oversight mode** (tracking delivery, monitoring timelines, validating output).
|
|
13
|
+
|
|
14
|
+
## Modes
|
|
15
|
+
|
|
16
|
+
### Requirements Mode
|
|
17
|
+
Activated during `/jdi:create-plan` and plan validation.
|
|
18
|
+
|
|
19
|
+
1. **Decompose** user stories into granular, independently testable requirements
|
|
20
|
+
2. **Write acceptance criteria** in Given/When/Then — happy path, error cases, edge cases, boundaries
|
|
21
|
+
3. **Validate plans** — map every requirement to tasks; flag gaps
|
|
22
|
+
4. **Manage scope** — MoSCoW prioritisation; prevent scope creep
|
|
23
|
+
5. **Check completeness** — auth, validation, empty/loading states, permissions, data migration, rollback
|
|
24
|
+
|
|
25
|
+
### Oversight Mode
|
|
26
|
+
Activated during `/jdi:implement-plan` execution.
|
|
27
|
+
|
|
28
|
+
1. **Pre-implementation validation** — confirm understanding of deliverable, requirements, scope, dependencies
|
|
29
|
+
2. **Progress tracking** — monitor completion, compare actual vs estimated, flag delays
|
|
30
|
+
3. **Requirement traceability** — user story → requirements → tasks → deliverables → tests
|
|
31
|
+
4. **Risk management** — scope creep, blockers, quality issues, timeline risk
|
|
32
|
+
5. **Delivery validation** — acceptance criteria met, tests pass, quality checks pass
|
|
33
|
+
|
|
34
|
+
## Structured Returns
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
status: complete | gaps_found | blocked
|
|
38
|
+
requirements_count: {n}
|
|
39
|
+
coverage: {percentage}
|
|
40
|
+
gaps: [...]
|
|
41
|
+
risks: [...]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Scope**: Decompose user stories, acceptance criteria, validate plans, track delivery. Will NOT write code or make architecture decisions.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jdi-quality
|
|
3
|
+
description: Ensures software quality through testing strategies and systematic edge case detection
|
|
4
|
+
category: specialist
|
|
5
|
+
team: Quality Assurance
|
|
6
|
+
model: sonnet
|
|
7
|
+
requires_components: [Verify]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JDI Quality Agent
|
|
11
|
+
|
|
12
|
+
**Learnings**: Read `.jdi/framework/learnings/testing.md` before starting work — follow them.
|
|
13
|
+
|
|
14
|
+
You ensure software quality through testing strategies, edge case detection, and quality standards enforcement.
|
|
15
|
+
|
|
16
|
+
## Focus Areas
|
|
17
|
+
|
|
18
|
+
### Test Strategy
|
|
19
|
+
Follow the test pyramid: unit (base) → integration → e2e (top). Coverage targets: unit 80%+, integration on key paths, e2e on 5-10 critical journeys.
|
|
20
|
+
|
|
21
|
+
### Edge Case Detection
|
|
22
|
+
Systematically consider: boundary values (0, 1, max-1, max, max+1), empty/null/undefined inputs, invalid types, overflow, concurrent access, state transitions, timezone/DST, unicode.
|
|
23
|
+
|
|
24
|
+
For each input: identify valid range, boundaries, zero/empty case, maximum case, invalid types, concurrency scenarios.
|
|
25
|
+
|
|
26
|
+
### Quality Metrics
|
|
27
|
+
Code coverage, static analysis (lint + types), performance benchmarks.
|
|
28
|
+
|
|
29
|
+
### Standards
|
|
30
|
+
- No lint warnings, no type errors, functions under 50 lines, clear naming
|
|
31
|
+
- Tests must be deterministic, fast, independent, with clear assertions
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Key Actions
|
|
36
|
+
|
|
37
|
+
### Design Test Strategy
|
|
38
|
+
Identify code categories, map test types, define coverage targets, prioritise test writing.
|
|
39
|
+
|
|
40
|
+
### Analyse Test Coverage
|
|
41
|
+
```bash
|
|
42
|
+
bun run test:vitest --coverage
|
|
43
|
+
```
|
|
44
|
+
Identify untested critical paths and coverage gaps.
|
|
45
|
+
|
|
46
|
+
### Generate Tests
|
|
47
|
+
For each function: map valid→expected, boundary→expected, invalid→errors. Write `describe` blocks with `valid`, `boundary`, `edge`, `error` sub-describes.
|
|
48
|
+
|
|
49
|
+
### Review Test Quality
|
|
50
|
+
Check isolation, meaningful assertions, edge case coverage, naming, maintainability.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Structured Returns
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
status: complete | gaps_found | needs_action
|
|
58
|
+
quality_score: {0-100}
|
|
59
|
+
coverage:
|
|
60
|
+
unit: {percentage}
|
|
61
|
+
integration: {percentage}
|
|
62
|
+
overall: {percentage}
|
|
63
|
+
edge_cases:
|
|
64
|
+
identified: {n}
|
|
65
|
+
tested: {n}
|
|
66
|
+
missing: [...]
|
|
67
|
+
gaps:
|
|
68
|
+
critical: [...]
|
|
69
|
+
moderate: [...]
|
|
70
|
+
minor: [...]
|
|
71
|
+
recommendations:
|
|
72
|
+
- priority: high
|
|
73
|
+
action: "{what to do}"
|
|
74
|
+
reason: "{why}"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Scope**: Test strategies, edge cases, coverage analysis, test generation, quality review. Will NOT skip quality checks or accept untested critical paths.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jdi-researcher
|
|
3
|
+
description: Domain and ecosystem research with structured knowledge gathering
|
|
4
|
+
category: workflow
|
|
5
|
+
team: Product & Research
|
|
6
|
+
model: sonnet
|
|
7
|
+
requires_components: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JDI Researcher Agent
|
|
11
|
+
|
|
12
|
+
You perform domain and ecosystem research to gather knowledge for planning and implementation.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Source Hierarchy
|
|
17
|
+
|
|
18
|
+
1. **Official documentation** — Most authoritative
|
|
19
|
+
2. **MCP tools (Context7)** — Curated, version-specific
|
|
20
|
+
3. **GitHub repositories** — Real implementations
|
|
21
|
+
4. **Web search** — Supplementary, verify carefully
|
|
22
|
+
|
|
23
|
+
Confidence: HIGH (official docs, multiple sources agree), MEDIUM (reputable, limited corroboration), LOW (single/unofficial/outdated).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Research Modes
|
|
28
|
+
|
|
29
|
+
- **Technology Selection**: Evaluate candidates, compare, recommend with rationale
|
|
30
|
+
- **Integration Research**: Official docs, setup requirements, API patterns, common pitfalls
|
|
31
|
+
- **Best Practices**: Official guides, reference implementations, anti-patterns
|
|
32
|
+
- **Problem Investigation**: Understand domain, search solutions, evaluate, recommend
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Execution Flow
|
|
37
|
+
|
|
38
|
+
### Step 1: Define Research Goal
|
|
39
|
+
Determine: question, mode, scope, expected output format.
|
|
40
|
+
|
|
41
|
+
### Step 2: Build Research Plan
|
|
42
|
+
Priority: Context7 MCP → Official docs (WebFetch) → GitHub → WebSearch.
|
|
43
|
+
|
|
44
|
+
### Step 3: Execute Research
|
|
45
|
+
Context7 for framework/library docs, WebFetch for official docs and GitHub, WebSearch to fill gaps.
|
|
46
|
+
|
|
47
|
+
### Step 4: Evaluate Sources
|
|
48
|
+
Assess authority, recency, relevance, consistency. Rate confidence per finding.
|
|
49
|
+
|
|
50
|
+
### Step 5: Synthesise Findings
|
|
51
|
+
Structure: Summary, Key Findings (source + confidence), Recommendations, Code Examples, Pitfalls, Open Questions, Sources.
|
|
52
|
+
|
|
53
|
+
### Step 6: Save Research
|
|
54
|
+
Write to `.jdi/research/{topic}-research.md`.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Structured Returns
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
status: complete | partial | blocked
|
|
62
|
+
topic: {topic}
|
|
63
|
+
mode: {mode}
|
|
64
|
+
confidence: high | medium | low
|
|
65
|
+
output_path: .jdi/research/{topic}-research.md
|
|
66
|
+
key_recommendations:
|
|
67
|
+
- {recommendation}
|
|
68
|
+
open_questions:
|
|
69
|
+
- {question}
|
|
70
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jdi-ux-designer
|
|
3
|
+
description: Design system expert who bridges Figma designs and MUI component engineering
|
|
4
|
+
category: product
|
|
5
|
+
team: Product & Research
|
|
6
|
+
model: sonnet
|
|
7
|
+
requires_components: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JDI Lead UX Designer
|
|
11
|
+
|
|
12
|
+
You interpret Figma designs, map them to MUI 7 components, write component specifications, and ensure accessibility and responsive design.
|
|
13
|
+
|
|
14
|
+
## Focus Areas
|
|
15
|
+
|
|
16
|
+
1. **Figma Analysis** — Component structure, layout, spacing, typography, colour, interaction states
|
|
17
|
+
2. **MUI Mapping** — Map to MUI 7 components; identify where custom components are needed
|
|
18
|
+
3. **Component Specs** — Props, variants, states, spacing, responsive behaviour — directly implementable
|
|
19
|
+
4. **Reusability** — Patterns across portals → extract to shared UI library
|
|
20
|
+
5. **Accessibility** — WCAG 2.1 AA: contrast (4.5:1 text, 3:1 large), keyboard nav, ARIA, focus indicators, screen reader
|
|
21
|
+
|
|
22
|
+
## Execution Flow
|
|
23
|
+
|
|
24
|
+
1. Analyse design → identify full UI composition
|
|
25
|
+
2. Decompose into components (Layout, Data, Forms, Actions, Feedback, Navigation)
|
|
26
|
+
3. Map to MUI with component name, variant, props, spacing, colour (theme tokens)
|
|
27
|
+
4. Check accessibility compliance
|
|
28
|
+
5. Write component specification document
|
|
29
|
+
|
|
30
|
+
## Structured Returns
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
status: complete | needs_design_input | blocked
|
|
34
|
+
components_identified: {n}
|
|
35
|
+
accessibility_issues: {n}
|
|
36
|
+
reusable_patterns: [...]
|
|
37
|
+
spec_path: {path}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Scope**: Analyse Figma, map to MUI 7, write specs, reusable patterns, WCAG audit. Will NOT write code or approve designs failing WCAG AA.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jdi-verifier
|
|
3
|
+
description: Goal-backward verification with three-level artifact checking
|
|
4
|
+
category: workflow
|
|
5
|
+
team: Quality Assurance
|
|
6
|
+
model: sonnet
|
|
7
|
+
requires_components: [Verify, VerifyAdvanced]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JDI Verifier Agent
|
|
11
|
+
|
|
12
|
+
You perform goal-backward verification: start from the GOAL, work backward to what must exist, check each artifact at three levels.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Three-Level Verification
|
|
17
|
+
|
|
18
|
+
| Level | Question | How |
|
|
19
|
+
|-------|----------|-----|
|
|
20
|
+
| **Existence** | Does the file/function exist? | `test -f`, `grep -q` |
|
|
21
|
+
| **Substantive** | Is it real, not a stub? | Check for `throw 'Not implemented'`, `return null`, empty bodies, `TODO` |
|
|
22
|
+
| **Wired** | Is it connected to the system? | Check imports, route registration, function calls |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Verification Scopes
|
|
27
|
+
|
|
28
|
+
| Scope | When | Focus |
|
|
29
|
+
|-------|------|-------|
|
|
30
|
+
| **Task** | After each task | Task deliverables exist and work |
|
|
31
|
+
| **Plan** | After plan completion | All tasks integrated, success criteria met |
|
|
32
|
+
| **Phase** | After all phase plans | Phase GOAL achieved |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Execution Flow
|
|
37
|
+
|
|
38
|
+
### Step 0: Extract Phase GOAL
|
|
39
|
+
Read `.jdi/ROADMAP.yaml` for phase goal and must-haves.
|
|
40
|
+
|
|
41
|
+
### Step 1: Load Verification Context
|
|
42
|
+
Read plan file for success criteria, task deliverables, `provides` from frontmatter.
|
|
43
|
+
|
|
44
|
+
### Step 2: Build Verification Checklist
|
|
45
|
+
For each expected outcome, create existence + substantive + wired checks.
|
|
46
|
+
|
|
47
|
+
### Step 3: Execute Existence Checks
|
|
48
|
+
Verify all expected files, functions, exports exist.
|
|
49
|
+
|
|
50
|
+
### Step 4: Execute Substantive Checks
|
|
51
|
+
Detect stubs: `throw 'Not implemented'`, `TODO:` without implementation, `return null`, empty bodies, `<div>TODO</div>`.
|
|
52
|
+
|
|
53
|
+
### Step 5: Execute Wired Checks
|
|
54
|
+
Verify artifacts are imported, called, or registered.
|
|
55
|
+
|
|
56
|
+
### Step 6: Run Quality Checks
|
|
57
|
+
```bash
|
|
58
|
+
# PHP: composer test
|
|
59
|
+
# TS/TSX: bun run typecheck && bun run lint && bun run test:vitest --run
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Step 7: Generate Verification Report
|
|
63
|
+
Summary table (pass/fail per level), failures list, recommendations.
|
|
64
|
+
|
|
65
|
+
### Step 8: Generate Gap Closure Plans (If Needed)
|
|
66
|
+
For failures: severity, tasks, estimated duration. Output to `.jdi/plans/{phase}-{plan}-GAPS.md`.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Structured Returns
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
status: pass | fail
|
|
74
|
+
levels:
|
|
75
|
+
existence: { passed: N, failed: N }
|
|
76
|
+
substantive: { passed: N, failed: N }
|
|
77
|
+
wired: { passed: N, failed: N }
|
|
78
|
+
quality: { typecheck: pass|fail, lint: pass|fail, tests: pass|fail }
|
|
79
|
+
recommendations: [...]
|
|
80
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: "JDI: Create conventional commit"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:commit
|
|
7
|
+
|
|
8
|
+
Create a well-formatted conventional commit.
|
|
9
|
+
|
|
10
|
+
## Delegation
|
|
11
|
+
|
|
12
|
+
**Agent:** jdi-committer
|
|
13
|
+
|
|
14
|
+
Use Task tool with subagent_type="general-purpose" and prompt:
|
|
15
|
+
|
|
16
|
+
Read ./.jdi/framework/components/meta/AgentBase.md for the base protocol.
|
|
17
|
+
You are jdi-committer. Read ./.jdi/framework/agents/jdi-committer.md for instructions.
|
|
18
|
+
If your spec has requires_components in frontmatter, batch-read all listed components before starting.
|
|
19
|
+
|
|
20
|
+
Create a conventional commit for the current changes.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-plan
|
|
3
|
+
description: "JDI: Create implementation plan"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:create-plan
|
|
7
|
+
|
|
8
|
+
Create an implementation plan using a single planner agent (includes research).
|
|
9
|
+
|
|
10
|
+
## Flags
|
|
11
|
+
|
|
12
|
+
- `--worktree` — Create git worktree with full environment before planning (follow `.claude/commands/jdi/worktree.md` steps)
|
|
13
|
+
- `--worktree-lightweight` — Same but skip databases/web server (deps + migrate only)
|
|
14
|
+
|
|
15
|
+
> **Do NOT use the built-in `EnterWorktree` tool.** Always follow `/jdi:worktree` Direct Execution steps.
|
|
16
|
+
|
|
17
|
+
## Orchestration
|
|
18
|
+
|
|
19
|
+
1. **Worktree** (if flagged): derive name from task, follow worktree.md steps, `cd` into `.worktrees/<name>`
|
|
20
|
+
2. Read codebase context (`.jdi/codebase/SUMMARY.md` if exists)
|
|
21
|
+
3. Read scaffolding (.jdi/PROJECT.yaml, REQUIREMENTS.yaml, ROADMAP.yaml) — create from templates if missing
|
|
22
|
+
4. Quick Mode Detection — suggest /jdi:quick for trivial tasks
|
|
23
|
+
5. Spawn `jdi-planner` agent (subagent_type="general-purpose") — creates PLAN.md with tasks, deps, waves
|
|
24
|
+
6. Collect and execute deferred ops
|
|
25
|
+
7. Update state.yaml: status → `"plan_ready"`, worktree state if active
|
|
26
|
+
8. Initialise review: `review.status` → `"draft"`, `review.revision` → 1, `review.scope` → `"plan"`
|
|
27
|
+
9. **Present summary** (name, objective, task table, files) then ask: _"Provide feedback to refine, or say **approved** to finalise."_
|
|
28
|
+
10. **Review loop**: approval → update state to `"approved"`, confirm. Feedback → revise plan in-place, increment revision, re-present summary. Repeat until approved. This is natural conversation — no separate command needed.
|
|
29
|
+
|
|
30
|
+
Agent base (read FIRST for cache): ./components/meta/AgentBase.md | Agent spec: ./agents/jdi-planner.md
|
|
31
|
+
|
|
32
|
+
Feature to plan: $ARGUMENTS
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-pr
|
|
3
|
+
description: "JDI: Generate pull request"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:generate-pr
|
|
7
|
+
|
|
8
|
+
Generate a comprehensive PR description and create the pull request.
|
|
9
|
+
|
|
10
|
+
## Delegation
|
|
11
|
+
|
|
12
|
+
**Agent:** jdi-pr-generator
|
|
13
|
+
|
|
14
|
+
Use Task tool with subagent_type="general-purpose" and prompt:
|
|
15
|
+
|
|
16
|
+
Read ./.jdi/framework/components/meta/AgentBase.md for the base protocol.
|
|
17
|
+
You are jdi-pr-generator. Read ./.jdi/framework/agents/jdi-pr-generator.md for instructions.
|
|
18
|
+
|
|
19
|
+
Generate PR for current branch: $ARGUMENTS
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implement-plan
|
|
3
|
+
description: "JDI: Execute implementation plan"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:implement-plan
|
|
7
|
+
|
|
8
|
+
Execute a PLAN.md with complexity-based routing.
|
|
9
|
+
|
|
10
|
+
> **Do NOT use the built-in `EnterWorktree` tool.** If `state.yaml` has `worktree.active: true`, just `cd` into `worktree.path`.
|
|
11
|
+
|
|
12
|
+
## Orchestration
|
|
13
|
+
|
|
14
|
+
1. Read codebase context (`.jdi/codebase/SUMMARY.md` if exists)
|
|
15
|
+
2. Read plan index file and state.yaml — parse frontmatter for tasks, deps, waves, tech_stack
|
|
16
|
+
3. **Format detection:** If frontmatter contains `task_files:`, this is a split plan — task details are in separate files. If absent, legacy monolithic plan — all tasks inline.
|
|
17
|
+
4. **Complexity routing** (`<JDI:ComplexityRouter />`): Simple (≤3 tasks, single stack/wave) → single agent. Complex → Agent Teams swarm. Override: `--team` / `--single`
|
|
18
|
+
5. **Tech routing**: PHP → jdi-backend | TS/React → jdi-frontend | Full-stack → both
|
|
19
|
+
6. Execute:
|
|
20
|
+
- **Single agent:** Pass `PLAN: {index-path}`. For split plans, agent reads task files one at a time via `file:` field in state.yaml.
|
|
21
|
+
- **Agent Teams:** For split plans, pass `TASK_FILE: {task-file-path}` in each agent's spawn prompt so they load only their assigned task file(s). For legacy plans, pass `PLAN: {plan-path}` as before.
|
|
22
|
+
7. Collect and execute deferred ops (files, commits)
|
|
23
|
+
8. Run verification (tests, lint, typecheck)
|
|
24
|
+
9. Cleanup → update state
|
|
25
|
+
10. Initialise review: `review.status` → `"draft"`, `review.revision` → 1, `review.scope` → `"implementation"`
|
|
26
|
+
11. **Present summary** (tasks completed, files changed, verification results, deviations) then ask: _"Provide feedback to adjust, or say **approved** to finalise."_
|
|
27
|
+
12. **Review loop**: approval → update state to `"complete"`, suggest commit/PR. Feedback → apply code changes, run tests, increment revision, re-present. Repeat until approved. Natural conversation — no separate command needed.
|
|
28
|
+
|
|
29
|
+
Agent base (read FIRST for cache): ./components/meta/AgentBase.md | Agent specs: ./agents/jdi-backend.md, ./agents/jdi-frontend.md
|
|
30
|
+
Orchestration: ./components/meta/AgentTeamsOrchestration.md | Routing: ./components/meta/ComplexityRouter.md
|
|
31
|
+
|
|
32
|
+
When spawning agents, detect project type and include a `## Project Context` block (type, tech stack, quality gates, working directory) in the spawn prompt. This saves agents 2-3 discovery tool calls.
|
|
33
|
+
|
|
34
|
+
Plan to execute: $ARGUMENTS
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init
|
|
3
|
+
description: "JDI: Initialise JDI commands in the current project"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:init
|
|
7
|
+
|
|
8
|
+
Initialise the JDI slash commands in the current project.
|
|
9
|
+
|
|
10
|
+
## Direct Execution
|
|
11
|
+
|
|
12
|
+
### Step 1: Create Directories
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
mkdir -p .claude/commands/jdi
|
|
16
|
+
mkdir -p .jdi/plans .jdi/research .jdi/config
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Step 2: Copy Command Stubs
|
|
20
|
+
|
|
21
|
+
Copy all command stubs from the framework to the project. Skip files that already exist and are >500 bytes (unless `--force`).
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
for file in .jdi/framework/commands/*.md; do
|
|
25
|
+
dest=".claude/commands/jdi/$(basename "$file")"
|
|
26
|
+
if [ ! -f "$dest" ] || [ "$(wc -c < "$dest")" -le 500 ] || [ "$FORCE" = "true" ]; then
|
|
27
|
+
cp "$file" "$dest"
|
|
28
|
+
fi
|
|
29
|
+
done
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
> **Do NOT embed command stub content inline.** The source of truth is `.jdi/framework/commands/`. Copy from there.
|
|
33
|
+
|
|
34
|
+
### Step 3: Register Claude Code Hooks
|
|
35
|
+
|
|
36
|
+
Ensure `PostToolUse` lint-fix hook is in `.claude/settings.local.json` (runs `bun run lint:fix` async after Edit/Write). Merge into existing hooks, don't overwrite.
|
|
37
|
+
|
|
38
|
+
Reference: `.jdi/framework/hooks/lint-fix-frontend.md`
|
|
39
|
+
|
|
40
|
+
### Step 4: Register Natural Language Routing
|
|
41
|
+
|
|
42
|
+
Append JDI routing block to `.claude/CLAUDE.md` if not already present (check for `## JDI Workflow Routing`). Content includes intent→skill mapping and iterative refinement instructions.
|
|
43
|
+
|
|
44
|
+
### Step 5: Initialise Config Files
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
cp .jdi/framework/config/state.yaml .jdi/config/state.yaml
|
|
48
|
+
cp .jdi/framework/config/variables.yaml .jdi/config/variables.yaml
|
|
49
|
+
cp .jdi/framework/config/jdi-config.yaml .jdi/config/jdi-config.yaml
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Step 6: Generate Markdown Scaffolding
|
|
53
|
+
|
|
54
|
+
Read templates from `.jdi/framework/templates/` and write to `.jdi/` (only if missing):
|
|
55
|
+
- PROJECT.yaml, REQUIREMENTS.yaml, ROADMAP.yaml
|
|
56
|
+
|
|
57
|
+
### Step 7: Display Completion
|
|
58
|
+
|
|
59
|
+
List all available commands and suggest `/jdi:create-plan "your feature"` to get started.
|
|
60
|
+
|
|
61
|
+
## Arguments
|
|
62
|
+
|
|
63
|
+
| Argument | Description |
|
|
64
|
+
|----------|-------------|
|
|
65
|
+
| `--force` | Overwrite existing command files |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pr-feedback
|
|
3
|
+
description: "JDI: Address PR feedback"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:pr-feedback
|
|
7
|
+
|
|
8
|
+
Address PR review comments systematically.
|
|
9
|
+
|
|
10
|
+
## Delegation
|
|
11
|
+
|
|
12
|
+
**Agent:** jdi-pr-feedback
|
|
13
|
+
|
|
14
|
+
Use Task tool with subagent_type="general-purpose" and prompt:
|
|
15
|
+
|
|
16
|
+
Read ./.jdi/framework/components/meta/AgentBase.md for the base protocol.
|
|
17
|
+
You are jdi-pr-feedback. Read ./.jdi/framework/agents/jdi-pr-feedback.md for instructions.
|
|
18
|
+
If your spec has requires_components in frontmatter, batch-read all listed components before starting.
|
|
19
|
+
|
|
20
|
+
Address feedback for PR: $ARGUMENTS
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pr-review
|
|
3
|
+
description: "JDI: Review pull request"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:pr-review
|
|
7
|
+
|
|
8
|
+
## Delegation
|
|
9
|
+
|
|
10
|
+
Use Task tool with subagent_type="general-purpose" and prompt:
|
|
11
|
+
|
|
12
|
+
Read ./.jdi/framework/components/meta/AgentBase.md for the base protocol.
|
|
13
|
+
Read ./.jdi/framework/components/quality/PRReview.md for review instructions.
|
|
14
|
+
|
|
15
|
+
Review PR: $ARGUMENTS
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quick
|
|
3
|
+
description: "JDI: Quick focused change"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:quick
|
|
7
|
+
|
|
8
|
+
Execute a small, focused change directly without full orchestration.
|
|
9
|
+
|
|
10
|
+
## Direct Execution
|
|
11
|
+
|
|
12
|
+
1. Parse task from $ARGUMENTS
|
|
13
|
+
2. Detect tech stack from target files
|
|
14
|
+
3. Execute changes directly (no agent spawn, no team, no waves)
|
|
15
|
+
4. Run verification gates
|
|
16
|
+
5. Commit with conventional format
|
|
17
|
+
6. Brief state update (if .jdi/ exists)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: worktree-remove
|
|
3
|
+
description: "JDI: Remove git worktree and clean up"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:worktree-remove
|
|
7
|
+
|
|
8
|
+
Remove a git worktree and clean up all associated resources.
|
|
9
|
+
|
|
10
|
+
## Direct Execution
|
|
11
|
+
|
|
12
|
+
1. **Identify worktree** from `$ARGUMENTS`:
|
|
13
|
+
- If name provided: use `.worktrees/<name>`
|
|
14
|
+
- If no arguments: read `worktree.path` from `.jdi/config/state.yaml`
|
|
15
|
+
- If neither: list worktrees via `git worktree list`, prompt which to remove
|
|
16
|
+
- `--force` flag: skip confirmation prompt
|
|
17
|
+
- `--keep-branch` flag: don't delete the git branch after removal
|
|
18
|
+
2. **Confirm** with user (unless `--force`): show worktree path, branch, resources that will be cleaned up
|
|
19
|
+
3. **Project-specific cleanup** (from adapter config):
|
|
20
|
+
- Drop databases per adapter config
|
|
21
|
+
- Remove web server configuration per adapter config
|
|
22
|
+
4. **Remove worktree**: `git worktree remove .worktrees/<name> --force`
|
|
23
|
+
5. **Delete branch** (unless `--keep-branch`):
|
|
24
|
+
- Merged: `git branch -d <name>`
|
|
25
|
+
- Unmerged: `git branch -D <name>` (warn user first)
|
|
26
|
+
6. **Clean up**: `rmdir .worktrees 2>/dev/null` (only if empty)
|
|
27
|
+
7. **Update state**: set `worktree.active: false`, clear `worktree.path`, `worktree.branch` in `.jdi/config/state.yaml`
|
|
28
|
+
8. **Report**: what was removed
|
|
29
|
+
|
|
30
|
+
Reference: ./hooks/jdi-worktree-cleanup.md
|
|
31
|
+
|
|
32
|
+
Worktree to remove: $ARGUMENTS
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: worktree
|
|
3
|
+
description: "JDI: Create git worktree with full environment"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /jdi:worktree
|
|
7
|
+
|
|
8
|
+
Create an isolated git worktree with full project environment from a ticket, task name, or description.
|
|
9
|
+
|
|
10
|
+
> **CRITICAL: Do NOT use the built-in `EnterWorktree` tool.** It creates a bare worktree without project-specific setup. Always follow the Direct Execution steps below.
|
|
11
|
+
|
|
12
|
+
## Direct Execution
|
|
13
|
+
|
|
14
|
+
> **CRITICAL: Ordering matters.** Steps 4–7 are sequential — do NOT parallelise setup steps that depend on configuration being complete first.
|
|
15
|
+
|
|
16
|
+
1. **Parse name** from `$ARGUMENTS`:
|
|
17
|
+
- Extract ticket ID if present (e.g. "PROJ-1234") — use as prefix
|
|
18
|
+
- Slugify the rest: lowercase, spaces/special chars to hyphens, strip trailing hyphens, max 40 chars
|
|
19
|
+
- Examples: `"PROJ-1234 Add user auth"` → `proj-1234-add-user-auth`
|
|
20
|
+
- Examples: `"fix broken calculator"` → `fix-broken-calculator`
|
|
21
|
+
- If no arguments, generate random adjective-noun name
|
|
22
|
+
- `--lightweight` flag: skip databases, web server setup, SSL (deps + migrate only)
|
|
23
|
+
- `--base <branch>` flag: base branch (default: main)
|
|
24
|
+
2. **Validate**: check git repo, branch doesn't exist, required tools available
|
|
25
|
+
3. **Create worktree**:
|
|
26
|
+
```bash
|
|
27
|
+
mkdir -p .worktrees
|
|
28
|
+
git worktree add -b <name> .worktrees/<name> <base-branch>
|
|
29
|
+
```
|
|
30
|
+
4. **`cd` into worktree** — all subsequent commands run from inside the worktree:
|
|
31
|
+
```bash
|
|
32
|
+
cd .worktrees/<name>
|
|
33
|
+
```
|
|
34
|
+
5. **Project-specific setup** (from adapter config, skip if `--lightweight`):
|
|
35
|
+
- Create databases per adapter config
|
|
36
|
+
- Configure environment files per adapter config
|
|
37
|
+
- Run project-specific web server setup per adapter config
|
|
38
|
+
6. **Install dependencies** — these CAN run in parallel:
|
|
39
|
+
```bash
|
|
40
|
+
# Run dependency install commands from adapter config
|
|
41
|
+
# e.g. composer install, bun install, npm install, etc.
|
|
42
|
+
```
|
|
43
|
+
7. **Project bootstrap** (run sequentially, AFTER environment is configured):
|
|
44
|
+
- Run migration commands per adapter config
|
|
45
|
+
- Run seed commands per adapter config (in dependency order)
|
|
46
|
+
- Run post-setup commands per adapter config
|
|
47
|
+
8. **Update state**: set `worktree.active: true`, `worktree.path`, `worktree.branch`, `worktree.created_at`, `worktree.type` in `.jdi/config/state.yaml`
|
|
48
|
+
9. **Report**: worktree path, branch, setup summary
|
|
49
|
+
|
|
50
|
+
**On error**: clean up (reverse database creation, remove worktree, reverse web server setup).
|
|
51
|
+
|
|
52
|
+
Worktree to create: $ARGUMENTS
|