@dv.nghiem/flowdeck 0.2.3 → 0.3.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 +24 -41
- package/dist/hooks/memory-hook.d.ts +21 -0
- package/dist/hooks/memory-hook.d.ts.map +1 -0
- package/dist/hooks/orchestrator-guard-hook.d.ts +2 -1
- package/dist/hooks/orchestrator-guard-hook.d.ts.map +1 -1
- package/dist/hooks/todo-hook.d.ts +1 -7
- package/dist/hooks/todo-hook.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +649 -310
- package/dist/services/memory-store.d.ts +40 -0
- package/dist/services/memory-store.d.ts.map +1 -0
- package/dist/services/telemetry.d.ts +1 -1
- package/dist/services/telemetry.d.ts.map +1 -1
- package/dist/tools/memory-search.d.ts +3 -0
- package/dist/tools/memory-search.d.ts.map +1 -0
- package/docs/commands/fd-doctor.md +21 -0
- package/docs/commands/fd-quick.md +33 -0
- package/docs/commands/fd-reflect.md +23 -0
- package/docs/commands/fd-status.md +31 -0
- package/docs/commands/fd-translate-intent.md +17 -0
- package/docs/commands.md +209 -271
- package/docs/configuration.md +2 -1
- package/docs/index.md +22 -28
- package/docs/memory.md +69 -0
- package/docs/quick-start.md +1 -1
- package/docs/workflows.md +72 -320
- package/package.json +1 -2
- package/src/commands/fd-deploy-check.md +189 -34
- package/src/commands/fd-discuss.md +44 -6
- package/src/commands/fd-fix-bug.md +47 -20
- package/src/commands/fd-map-codebase.md +66 -18
- package/src/commands/fd-multi-repo.md +130 -6
- package/src/commands/fd-new-feature.md +164 -21
- package/src/commands/fd-new-project.md +14 -1
- package/src/commands/fd-plan.md +66 -44
- package/src/commands/fd-quick.md +60 -0
- package/src/commands/fd-reflect.md +41 -2
- package/src/commands/fd-status.md +84 -0
- package/src/commands/fd-write-docs.md +55 -23
- package/src/rules/README.md +8 -7
- package/src/skills/agent-harness-construction/SKILL.md +227 -0
- package/src/skills/api-design/SKILL.md +5 -0
- package/src/skills/backend-patterns/SKILL.md +105 -0
- package/src/skills/clean-architecture/SKILL.md +85 -0
- package/src/skills/cqrs/SKILL.md +230 -0
- package/src/skills/ddd-architecture/SKILL.md +104 -0
- package/src/skills/django-patterns/SKILL.md +304 -0
- package/src/skills/django-tdd/SKILL.md +297 -0
- package/src/skills/event-driven-architecture/SKILL.md +152 -0
- package/src/skills/frontend-pattern/SKILL.md +159 -0
- package/src/skills/hexagonal-architecture/SKILL.md +80 -0
- package/src/skills/layered-architecture/SKILL.md +64 -0
- package/src/skills/postgres-patterns/SKILL.md +74 -0
- package/src/skills/python-patterns/SKILL.md +5 -0
- package/src/skills/saga-architecture/SKILL.md +113 -0
- package/dist/tools/run-parallel.d.ts +0 -4
- package/dist/tools/run-parallel.d.ts.map +0 -1
- package/docs/command-migration.md +0 -175
- package/docs/commands/fd-analyze-change.md +0 -107
- package/docs/commands/fd-dashboard.md +0 -11
- package/docs/commands/fd-evaluate-risk.md +0 -134
- package/docs/commands/fd-guarded-edit.md +0 -105
- package/docs/commands/fd-progress.md +0 -11
- package/docs/commands/fd-review-code.md +0 -29
- package/docs/commands/fd-roadmap.md +0 -10
- package/docs/commands/fd-settings.md +0 -10
- package/docs/parallel-execution.md +0 -227
- package/src/commands/fd-analyze-change.md +0 -57
- package/src/commands/fd-approve.md +0 -64
- package/src/commands/fd-blast-radius.md +0 -49
- package/src/commands/fd-dashboard.md +0 -57
- package/src/commands/fd-evaluate-risk.md +0 -62
- package/src/commands/fd-guarded-edit.md +0 -69
- package/src/commands/fd-impact-radar.md +0 -51
- package/src/commands/fd-learn.md +0 -36
- package/src/commands/fd-progress.md +0 -50
- package/src/commands/fd-regression-predict.md +0 -57
- package/src/commands/fd-review-code.md +0 -62
- package/src/commands/fd-review-route.md +0 -54
- package/src/commands/fd-roadmap.md +0 -46
- package/src/commands/fd-settings.md +0 -57
- package/src/commands/fd-test-gap.md +0 -54
- package/src/commands/fd-volatility-map.md +0 -64
- package/src/commands/fd-workspace-status.md +0 -34
- package/src/skills/parallel-execute/SKILL.md +0 -92
- package/src/workflows/debug-flow.md +0 -119
- package/src/workflows/deploy-check-flow.md +0 -98
- package/src/workflows/discuss-flow.md +0 -97
- package/src/workflows/execute-flow.md +0 -233
- package/src/workflows/execute-phase.md +0 -145
- package/src/workflows/fix-bug-flow.md +0 -210
- package/src/workflows/map-codebase-flow.md +0 -92
- package/src/workflows/multi-repo-flow.md +0 -226
- package/src/workflows/parallel-execution-flow.md +0 -236
- package/src/workflows/plan-flow.md +0 -126
- package/src/workflows/plan-phase.md +0 -101
- package/src/workflows/refactor-flow.md +0 -122
- package/src/workflows/review-code-flow.md +0 -105
- package/src/workflows/spec-driven-flow.md +0 -43
- package/src/workflows/write-docs-flow.md +0 -95
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Blast Radius Preview — show downstream consequences of a proposed change including hidden dependencies and fragile integration points
|
|
3
|
-
argument-hint: [change description] [--depth=N]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Blast Radius
|
|
7
|
-
|
|
8
|
-
Map the full downstream blast radius of a proposed change.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — description or file path of the proposed change. Optional `--depth=N` (default: 3).
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
Run two agents in parallel:
|
|
15
|
-
|
|
16
|
-
- **@architect**: Trace dependency graph to depth `--depth` (default 3 levels); flag integration points, event listeners, shared state, and service-to-service calls that would be affected
|
|
17
|
-
|
|
18
|
-
- **@researcher**: Identify hidden couplings — shared config values, environment variables, database tables, message queue topics, and implicit conventions that the changed code relies on
|
|
19
|
-
|
|
20
|
-
## Report
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
════════════════════════════════════════════
|
|
24
|
-
BLAST RADIUS PREVIEW
|
|
25
|
-
════════════════════════════════════════════
|
|
26
|
-
Change: <summary>
|
|
27
|
-
Depth: <N> levels
|
|
28
|
-
|
|
29
|
-
Direct Impact (depth 1):
|
|
30
|
-
- <file/module> — <relationship>
|
|
31
|
-
|
|
32
|
-
Indirect Impact (depth 2-3):
|
|
33
|
-
- <file/module> — <chain>
|
|
34
|
-
|
|
35
|
-
Hidden Couplings:
|
|
36
|
-
- <coupling type>: <description>
|
|
37
|
-
|
|
38
|
-
Fragile Integration Points:
|
|
39
|
-
- <point> — <why fragile>
|
|
40
|
-
|
|
41
|
-
Risk Assessment:
|
|
42
|
-
Score: <0-10>
|
|
43
|
-
Level: <low|medium|high|critical>
|
|
44
|
-
|
|
45
|
-
<1-2 sentence summary of the biggest risks>
|
|
46
|
-
|
|
47
|
-
Recommended: <proceed | add tests | get review | redesign>
|
|
48
|
-
════════════════════════════════════════════
|
|
49
|
-
```
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Open project dashboard in browser — displays phase progress, milestones, and blockers
|
|
3
|
-
argument-hint: [--port=N]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Dashboard
|
|
7
|
-
|
|
8
|
-
Open the FlowDeck project dashboard.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — optional `--port=N` (default: 3847)
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. Check `.planning/STATE.md` exists — if not, error: "No active project. Run /fd-new-project first."
|
|
15
|
-
|
|
16
|
-
2. Read project state from:
|
|
17
|
-
- `.planning/STATE.md` — current phase, status, progress
|
|
18
|
-
- `.planning/ROADMAP.md` — all phases and completion status
|
|
19
|
-
- `.planning/phases/phase-*/PLAN.md` — step completion per phase
|
|
20
|
-
|
|
21
|
-
3. Try to start the dashboard server if not running:
|
|
22
|
-
```bash
|
|
23
|
-
npx @dv.nghiem/flowdeck-dashboard --port <port> &
|
|
24
|
-
```
|
|
25
|
-
Or if the package is installed, run:
|
|
26
|
-
```bash
|
|
27
|
-
flowdeck-dashboard --port <port> &
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
4. If server cannot start, display a text-based dashboard instead:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
════════════════════════════════════════════
|
|
34
|
-
FLOWDECK DASHBOARD
|
|
35
|
-
════════════════════════════════════════════
|
|
36
|
-
Project: <name from PROJECT.md>
|
|
37
|
-
Updated: <last_updated>
|
|
38
|
-
|
|
39
|
-
ROADMAP
|
|
40
|
-
✅ Phase 1: Setup — completed
|
|
41
|
-
🔄 Phase 2: Core Feature — in progress (3/7 steps)
|
|
42
|
-
⏳ Phase 3: Polish — planned
|
|
43
|
-
|
|
44
|
-
CURRENT PHASE (2): Core Feature
|
|
45
|
-
✅ Step 1: Set up database schema
|
|
46
|
-
✅ Step 2: Create API endpoints
|
|
47
|
-
✅ Step 3: Add authentication
|
|
48
|
-
⬜ Step 4: Write tests
|
|
49
|
-
⬜ Step 5: Write documentation
|
|
50
|
-
|
|
51
|
-
BLOCKERS
|
|
52
|
-
- (none)
|
|
53
|
-
════════════════════════════════════════════
|
|
54
|
-
Run /fd-progress for detailed state view.
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
5. If server starts: report the URL: "Dashboard running at http://localhost:<port>"
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Risk assessment — estimates change risk, confidence, likely regressions, and whether approval is needed before proceeding
|
|
3
|
-
argument-hint: [change description]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Evaluate Risk
|
|
7
|
-
|
|
8
|
-
Produce a risk assessment for a proposed change.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — description of the proposed change
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
Run two agents in parallel:
|
|
15
|
-
|
|
16
|
-
- **@researcher**: Map `$ARGUMENTS` to affected paths and modules; check `.codebase/VOLATILITY.json` for hotspot scores; check `.codebase/FAILURES.json` for prior failures; identify external dependencies touched
|
|
17
|
-
|
|
18
|
-
- **@reviewer**: Validate the risk assessment — verify risk level is calibrated correctly given the scope; flag any under-estimated risks; check if approval is warranted by active policies in `.planning/config.json`
|
|
19
|
-
|
|
20
|
-
## Risk Dimensions
|
|
21
|
-
|
|
22
|
-
| Dimension | Weight | Assessment |
|
|
23
|
-
|-----------|--------|------------|
|
|
24
|
-
| Volatility | 30% | hotspot score of affected files |
|
|
25
|
-
| Blast radius | 25% | number of downstream dependents |
|
|
26
|
-
| Prior failures | 25% | recurrences in FAILURES.json |
|
|
27
|
-
| External deps | 20% | third-party APIs or services involved |
|
|
28
|
-
|
|
29
|
-
## Approval Logic
|
|
30
|
-
|
|
31
|
-
Approval required if:
|
|
32
|
-
- `approval_required: true` in config
|
|
33
|
-
- Overall risk score ≥ `volatility_threshold` (default 0.7)
|
|
34
|
-
- Any touched file has 3+ prior failures
|
|
35
|
-
|
|
36
|
-
## Report
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
════════════════════════════════════════════
|
|
40
|
-
RISK ASSESSMENT
|
|
41
|
-
════════════════════════════════════════════
|
|
42
|
-
Change: <summary>
|
|
43
|
-
|
|
44
|
-
Risk Score: <0.0–1.0> (<low|medium|high|critical>)
|
|
45
|
-
Confidence: <high|medium|low>
|
|
46
|
-
|
|
47
|
-
Breakdown:
|
|
48
|
-
Volatility: <score> (<rationale>)
|
|
49
|
-
Blast radius: <score> (<N downstream>)
|
|
50
|
-
Prior failures: <score> (<N failures>)
|
|
51
|
-
External deps: <score> (<list or none>)
|
|
52
|
-
|
|
53
|
-
Likely Regressions:
|
|
54
|
-
- <category>: <reason>
|
|
55
|
-
|
|
56
|
-
Approval Required: <yes|no>
|
|
57
|
-
<if yes: reason and who should approve>
|
|
58
|
-
|
|
59
|
-
Recommendation:
|
|
60
|
-
<proceed | add tests | get review | redesign>
|
|
61
|
-
════════════════════════════════════════════
|
|
62
|
-
```
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Edit gate — decides auto-approve / require-confirmation / require-review / block based on policy, trust score, volatility, and arch constraints
|
|
3
|
-
argument-hint: [change description or file path]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Guarded Edit
|
|
7
|
-
|
|
8
|
-
Evaluate a proposed edit against all safety gates before allowing it to proceed.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — description or file path of the proposed edit
|
|
11
|
-
|
|
12
|
-
## Gates (evaluated in order)
|
|
13
|
-
|
|
14
|
-
### Gate 1 — Policy Check
|
|
15
|
-
|
|
16
|
-
Read `.planning/config.json` for active policies:
|
|
17
|
-
- `approval_required`: if true, all edits need explicit approval
|
|
18
|
-
- `volatility_threshold`: edits touching files above this score need confirmation
|
|
19
|
-
|
|
20
|
-
### Gate 2 — Volatility Check
|
|
21
|
-
|
|
22
|
-
Check `.codebase/VOLATILITY.json` for the files in `$ARGUMENTS`.
|
|
23
|
-
- Score ≥ 0.8 → REQUIRE REVIEW
|
|
24
|
-
- Score ≥ 0.6 → REQUIRE CONFIRMATION
|
|
25
|
-
- Score < 0.6 → proceed
|
|
26
|
-
|
|
27
|
-
### Gate 3 — Architecture Constraints
|
|
28
|
-
|
|
29
|
-
Read `.codebase/ARCHITECTURE.md` and check if the edit:
|
|
30
|
-
- Crosses defined service boundaries
|
|
31
|
-
- Modifies public API contracts
|
|
32
|
-
- Touches security-critical paths (auth, payments, PII)
|
|
33
|
-
|
|
34
|
-
### Gate 4 — Trust Score
|
|
35
|
-
|
|
36
|
-
Check `.codebase/FAILURES.json` for prior failures in the same path.
|
|
37
|
-
- 3+ prior failures in this area → REQUIRE REVIEW
|
|
38
|
-
- 1-2 prior failures → REQUIRE CONFIRMATION
|
|
39
|
-
|
|
40
|
-
## Decision Matrix
|
|
41
|
-
|
|
42
|
-
| Condition | Decision |
|
|
43
|
-
|-----------|----------|
|
|
44
|
-
| Any BLOCK signal | ❌ BLOCK |
|
|
45
|
-
| REQUIRE REVIEW signal | 👁️ REQUIRE REVIEW |
|
|
46
|
-
| REQUIRE CONFIRMATION signal | ⚠️ REQUIRE CONFIRMATION |
|
|
47
|
-
| All gates pass | ✅ AUTO-APPROVE |
|
|
48
|
-
|
|
49
|
-
## Report
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
════════════════════════════════════
|
|
53
|
-
GUARDED EDIT GATE
|
|
54
|
-
════════════════════════════════════
|
|
55
|
-
Edit: <summary>
|
|
56
|
-
|
|
57
|
-
Gate 1 — Policy: <pass|flag>
|
|
58
|
-
Gate 2 — Volatility: <score> → <pass|confirm|review>
|
|
59
|
-
Gate 3 — Arch: <pass|flag>
|
|
60
|
-
Gate 4 — Trust: <failures count> → <pass|confirm|review>
|
|
61
|
-
|
|
62
|
-
DECISION: AUTO-APPROVE / CONFIRM / REVIEW / BLOCK
|
|
63
|
-
|
|
64
|
-
<if BLOCK or REVIEW: explain what needs to happen first>
|
|
65
|
-
════════════════════════════════════
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
If BLOCK: do not proceed with the edit. Explain what must change first.
|
|
69
|
-
If CONFIRM: present to user and wait for explicit "yes" before proceeding.
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Change Impact Radar — predict which files, modules, APIs, tests, and DB paths are affected before editing anything
|
|
3
|
-
argument-hint: [change description]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Impact Radar
|
|
7
|
-
|
|
8
|
-
Predict the blast area of a proposed change before any code is written.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — description of the proposed change
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
Run three agents in parallel:
|
|
15
|
-
|
|
16
|
-
- **@researcher**: Trace dependency graph from the paths mentioned in `$ARGUMENTS`; find all files that import or are imported by those modules; map 2 levels deep
|
|
17
|
-
|
|
18
|
-
- **@architect**: Identify API contracts and service boundaries at risk; flag any public interfaces that would change; check for DB schema impacts
|
|
19
|
-
|
|
20
|
-
- **@tester**: Find test files that cover the affected paths; identify which tests would need updating; spot gaps (changed files with no tests)
|
|
21
|
-
|
|
22
|
-
## Report
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
════════════════════════════════════════════
|
|
26
|
-
CHANGE IMPACT RADAR
|
|
27
|
-
════════════════════════════════════════════
|
|
28
|
-
Change: <summary of $ARGUMENTS>
|
|
29
|
-
Risk score: <low|medium|high>
|
|
30
|
-
|
|
31
|
-
Affected Files (<N>):
|
|
32
|
-
- <file> (<reason>)
|
|
33
|
-
|
|
34
|
-
API Contracts at Risk:
|
|
35
|
-
- <interface/endpoint> — <risk>
|
|
36
|
-
|
|
37
|
-
Tests to Update (<N>):
|
|
38
|
-
- <test file>
|
|
39
|
-
|
|
40
|
-
Test Gaps (<N> files with no tests):
|
|
41
|
-
- <file>
|
|
42
|
-
|
|
43
|
-
DB / Schema Impact:
|
|
44
|
-
- <none | description>
|
|
45
|
-
|
|
46
|
-
Recommendation:
|
|
47
|
-
<proceed with caution | review required | block>
|
|
48
|
-
════════════════════════════════════════════
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
If no impact found: "No significant impact detected. Proceed with standard review."
|
package/src/commands/fd-learn.md
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Capture a repeatable pattern from this session and save it as a reusable FlowDeck skill
|
|
3
|
-
argument-hint: [skill-name]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Learn: Capture Session Knowledge
|
|
7
|
-
|
|
8
|
-
Review what happened in this session and create a reusable skill from the most significant learning.
|
|
9
|
-
|
|
10
|
-
**Input:** `$ARGUMENTS` — optional kebab-case name for the skill (the agent will choose one if omitted)
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. **Identify what is worth capturing.** Look for:
|
|
15
|
-
- A novel problem that required figuring out a non-obvious solution
|
|
16
|
-
- A pattern that required human guidance or clarification to resolve
|
|
17
|
-
- A workflow or sequence that would save significant time if remembered
|
|
18
|
-
- A pitfall that was hit and corrected
|
|
19
|
-
|
|
20
|
-
If nothing significant was discovered, reply: "No new patterns to capture from this session." and stop.
|
|
21
|
-
|
|
22
|
-
2. **Draft the skill.** Structure it as:
|
|
23
|
-
- `## When to Activate` — concrete triggers (e.g., "when X file pattern exists", "when the user asks about Y")
|
|
24
|
-
- `## Steps` — ordered, concrete steps to apply the skill
|
|
25
|
-
- `## Examples` — at least one short, concrete example
|
|
26
|
-
- `## Pitfalls` — common mistakes to avoid
|
|
27
|
-
|
|
28
|
-
3. **Choose the skill name.** Use `$ARGUMENTS` if provided, otherwise derive a kebab-case name from the pattern.
|
|
29
|
-
|
|
30
|
-
4. **Write the skill** using the `create-skill` tool with:
|
|
31
|
-
- `name`: kebab-case identifier
|
|
32
|
-
- `description`: one sentence summarising what the skill does
|
|
33
|
-
- `content`: the full Markdown body from step 2
|
|
34
|
-
- `tags`: 2–4 relevant tags
|
|
35
|
-
|
|
36
|
-
5. **Report** what was captured, why it is useful, and remind the user to restart OpenCode to activate it.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Display project progress — STATE.md summary, active PLAN.md steps, and recent results
|
|
3
|
-
argument-hint: [--json]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Progress
|
|
7
|
-
|
|
8
|
-
Display current project progress from planning files.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS (pass `--json` for machine-readable output)
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. Check `.planning/STATE.md` exists — if not, return error: "Initialize project first with /fd-new-project."
|
|
15
|
-
|
|
16
|
-
2. Read STATE.md and parse:
|
|
17
|
-
- Current phase number
|
|
18
|
-
- Status (planned/in_progress/completed)
|
|
19
|
-
- Last updated timestamp
|
|
20
|
-
- `plan_confirmed` flag
|
|
21
|
-
|
|
22
|
-
3. Read `.planning/phases/phase-<N>/PLAN.md` if it exists:
|
|
23
|
-
- Count total steps (lines matching `- [ ]` or `- [x]`)
|
|
24
|
-
- Count completed steps (lines matching `- [x]`)
|
|
25
|
-
|
|
26
|
-
4. Check for recent RESULT.md files in the last 3 phases.
|
|
27
|
-
|
|
28
|
-
5. Display:
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
════════════════════════════════════════════════════════════
|
|
32
|
-
Phase: <N> | Status: <status> | Updated: <timestamp>
|
|
33
|
-
────────────────────────────────────────────────────────────
|
|
34
|
-
Plan: <X> steps (<Y> complete)
|
|
35
|
-
Plan confirmed: <yes/no>
|
|
36
|
-
Recent results: Phase <N-1>, Phase <N>
|
|
37
|
-
════════════════════════════════════════════════════════════
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
If `--json`, output structured JSON instead:
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"phase": N,
|
|
44
|
-
"status": "...",
|
|
45
|
-
"plan_confirmed": true,
|
|
46
|
-
"steps_total": X,
|
|
47
|
-
"steps_complete": Y,
|
|
48
|
-
"last_updated": "..."
|
|
49
|
-
}
|
|
50
|
-
```
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Regression Prediction — estimate the most likely regression categories for a proposed change
|
|
3
|
-
argument-hint: [change description]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Regression Predict
|
|
7
|
-
|
|
8
|
-
Predict the most likely regression categories for a proposed change before implementing it.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — description of the proposed change
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
Run two agents in parallel:
|
|
15
|
-
|
|
16
|
-
- **@researcher**: Map the changed code paths in `$ARGUMENTS` to regression category keywords and patterns; check `.codebase/FAILURES.json` for prior regressions in the same area
|
|
17
|
-
|
|
18
|
-
- **@tester**: Analyze existing test coverage for the affected paths; identify which regression categories are under-tested
|
|
19
|
-
|
|
20
|
-
## Regression Categories
|
|
21
|
-
|
|
22
|
-
| Category | Indicators |
|
|
23
|
-
|----------|-----------|
|
|
24
|
-
| **Performance** | touching caching, DB queries, loops, response serialization |
|
|
25
|
-
| **Auth / Security** | touching middleware, tokens, sessions, permissions |
|
|
26
|
-
| **Schema / Data** | touching DB models, migrations, serializers |
|
|
27
|
-
| **UI States** | touching frontend components, state management, events |
|
|
28
|
-
| **Async Flows** | touching queues, workers, webhooks, timeouts |
|
|
29
|
-
| **API Contracts** | touching public endpoints, request/response shapes |
|
|
30
|
-
| **Integration** | touching external service calls, adapters |
|
|
31
|
-
|
|
32
|
-
## Report
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
════════════════════════════════════════════
|
|
36
|
-
REGRESSION PREDICTION
|
|
37
|
-
════════════════════════════════════════════
|
|
38
|
-
Change: <summary of $ARGUMENTS>
|
|
39
|
-
|
|
40
|
-
Likely Regressions (ranked by probability):
|
|
41
|
-
|
|
42
|
-
🔴 HIGH — Auth/Security
|
|
43
|
-
Reason: change touches middleware X
|
|
44
|
-
Prior: FAILURES.json F-12 (×3 recurrences)
|
|
45
|
-
|
|
46
|
-
🟠 MEDIUM — API Contracts
|
|
47
|
-
Reason: modifies response shape of /api/checkout
|
|
48
|
-
|
|
49
|
-
🟡 LOW — Performance
|
|
50
|
-
Reason: adds DB query in hot path
|
|
51
|
-
|
|
52
|
-
────────────────────────────────────────────
|
|
53
|
-
Recommended Tests to Add:
|
|
54
|
-
1. <specific test scenario>
|
|
55
|
-
2. <specific test scenario>
|
|
56
|
-
════════════════════════════════════════════
|
|
57
|
-
```
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Parallel reviewer + researcher + tester — aggregates findings into critical/major/minor report
|
|
3
|
-
argument-hint: [--scope=path | --focus=security,quality,tdd]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Review Code
|
|
7
|
-
|
|
8
|
-
Run a comprehensive parallel code review.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — optional `--scope=<path>` and `--focus=<areas>`
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. Determine scope: use `--scope` if provided, else review uncommitted changes (`git diff --name-only HEAD`).
|
|
15
|
-
2. If no changes found, report: "Nothing to review."
|
|
16
|
-
|
|
17
|
-
## Parallel Review
|
|
18
|
-
|
|
19
|
-
Run three reviewers in parallel:
|
|
20
|
-
|
|
21
|
-
- **@reviewer**: Quality, security, convention compliance, TDD discipline
|
|
22
|
-
- CRITICAL: hardcoded secrets, SQL injection, XSS, auth gaps
|
|
23
|
-
- HIGH: logic errors, missing error handling, unsafe casts
|
|
24
|
-
- MEDIUM: functions >50 lines, nesting >4 deep, missing tests
|
|
25
|
-
- LOW: naming nits, missing comments on public APIs
|
|
26
|
-
|
|
27
|
-
- **@researcher**: API contracts, edge cases, hidden dependencies, integration risks
|
|
28
|
-
|
|
29
|
-
- **@tester**: Test coverage, missing test cases, test quality, regression risks
|
|
30
|
-
|
|
31
|
-
## Report
|
|
32
|
-
|
|
33
|
-
Aggregate findings into:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
════════════════════════════════════════════
|
|
37
|
-
CODE REVIEW REPORT
|
|
38
|
-
════════════════════════════════════════════
|
|
39
|
-
Files reviewed: <N>
|
|
40
|
-
|
|
41
|
-
CRITICAL (<count>)
|
|
42
|
-
- <file>:<line> — <issue>
|
|
43
|
-
|
|
44
|
-
HIGH (<count>)
|
|
45
|
-
- <file>:<line> — <issue>
|
|
46
|
-
|
|
47
|
-
MEDIUM (<count>)
|
|
48
|
-
- <file>:<line> — <issue>
|
|
49
|
-
|
|
50
|
-
LOW (<count>)
|
|
51
|
-
- <file>:<line> — <issue>
|
|
52
|
-
|
|
53
|
-
Test Coverage: <findings>
|
|
54
|
-
────────────────────────────────────────────
|
|
55
|
-
Verdict: PASS / NEEDS CHANGES / BLOCK
|
|
56
|
-
════════════════════════════════════════════
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Verdict rules:**
|
|
60
|
-
- CRITICAL issues → BLOCK
|
|
61
|
-
- HIGH issues → NEEDS CHANGES
|
|
62
|
-
- Only MEDIUM/LOW → PASS with comments
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Human Review Routing — route risky patches to the right reviewer type based on change nature and risk score
|
|
3
|
-
argument-hint: [change description or PR number]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Review Route
|
|
7
|
-
|
|
8
|
-
Determine the right reviewer type for a proposed change based on its nature and risk.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS — change description or PR number/URL
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. Analyze the change described in `$ARGUMENTS`:
|
|
15
|
-
- Read affected files and their categories
|
|
16
|
-
- Check `.codebase/VOLATILITY.json` for risk scores if available
|
|
17
|
-
- Check `.codebase/FAILURES.json` for prior failures in this area
|
|
18
|
-
|
|
19
|
-
2. Classify change by domain:
|
|
20
|
-
|
|
21
|
-
| Domain Signals | Reviewer Type |
|
|
22
|
-
|---------------|---------------|
|
|
23
|
-
| Auth, tokens, sessions, permissions | **Security reviewer** |
|
|
24
|
-
| DB migrations, schema, models | **Backend/DB reviewer** |
|
|
25
|
-
| Infrastructure, CI/CD, containers | **Infra reviewer** |
|
|
26
|
-
| Public APIs, SDK changes | **API owner** |
|
|
27
|
-
| High-churn or volatile file (score >0.7) | **Domain owner** |
|
|
28
|
-
| New external dependency | **Security + Arch reviewer** |
|
|
29
|
-
| Low risk, no sensitive paths | **Any peer reviewer** |
|
|
30
|
-
|
|
31
|
-
## Report
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
════════════════════════════════════════════
|
|
35
|
-
REVIEW ROUTING
|
|
36
|
-
════════════════════════════════════════════
|
|
37
|
-
Change: <summary>
|
|
38
|
-
Risk score: <0-10>
|
|
39
|
-
|
|
40
|
-
Recommended Reviewers:
|
|
41
|
-
|
|
42
|
-
PRIMARY: <reviewer type> — <reason>
|
|
43
|
-
SECONDARY: <reviewer type> — <reason>
|
|
44
|
-
|
|
45
|
-
Why:
|
|
46
|
-
- <specific signal that triggered routing>
|
|
47
|
-
- <prior failures in this area if any>
|
|
48
|
-
|
|
49
|
-
SLA:
|
|
50
|
-
- <high risk: same-day | medium: 24h | low: 48h>
|
|
51
|
-
════════════════════════════════════════════
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
If risk score < 3: "Low risk — any peer reviewer is sufficient."
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: View or update project roadmap — displays ROADMAP.md, shows phase statuses, add new phase, or mark phase complete
|
|
3
|
-
argument-hint: [--add "Phase Name" | --complete N | --list]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Roadmap
|
|
7
|
-
|
|
8
|
-
View or update the project roadmap.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
## Behavior
|
|
13
|
-
|
|
14
|
-
### View Roadmap (no args or `--list`)
|
|
15
|
-
|
|
16
|
-
1. Read `.planning/ROADMAP.md` — if not found, error: "Run /fd-new-project first."
|
|
17
|
-
2. Read `.planning/STATE.md` for current phase and completed phases.
|
|
18
|
-
3. Display the roadmap with status indicators:
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
═══════════════════════════════════════
|
|
22
|
-
PROJECT ROADMAP
|
|
23
|
-
═══════════════════════════════════════
|
|
24
|
-
✅ Phase 1: <name> — completed
|
|
25
|
-
🔄 Phase 2: <name> — in progress ← current
|
|
26
|
-
⏳ Phase 3: <name> — planned
|
|
27
|
-
═══════════════════════════════════════
|
|
28
|
-
Current: Phase 2 | Status: in_progress
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Add Phase (`--add "Phase Name"`)
|
|
32
|
-
|
|
33
|
-
Append a new phase row to the `ROADMAP.md` overview table with status `planned`.
|
|
34
|
-
|
|
35
|
-
Update STATE.md `total_phases` counter.
|
|
36
|
-
|
|
37
|
-
Report: "Phase <N> '<name>' added."
|
|
38
|
-
|
|
39
|
-
### Mark Complete (`--complete N`)
|
|
40
|
-
|
|
41
|
-
1. Update ROADMAP.md to mark phase N as completed.
|
|
42
|
-
2. Update STATE.md:
|
|
43
|
-
- Increment `completed_phases`
|
|
44
|
-
- Advance `phase` to N+1 if N is current phase
|
|
45
|
-
- Set new phase `status: planned`
|
|
46
|
-
3. Report: "Phase N marked complete. Now on phase N+1."
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: View or update FlowDeck settings — agent models, quality profiles, and workflow toggles
|
|
3
|
-
argument-hint: [key=value | --list]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Settings
|
|
7
|
-
|
|
8
|
-
View or update FlowDeck configuration.
|
|
9
|
-
|
|
10
|
-
**Input:** $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
## Behavior
|
|
13
|
-
|
|
14
|
-
### List Settings (`--list` or no arguments)
|
|
15
|
-
|
|
16
|
-
Read `.planning/config.json` (create with defaults if missing) and display current settings:
|
|
17
|
-
|
|
18
|
-
| Setting | Value | Description |
|
|
19
|
-
|---------|-------|-------------|
|
|
20
|
-
| `model_profile` | balanced | Agent quality profile (quality/balanced/economy) |
|
|
21
|
-
| `tdd_enforced` | true | Require TDD red-green-refactor cycle |
|
|
22
|
-
| `approval_required` | false | Require human approval for risky changes |
|
|
23
|
-
| `volatility_threshold` | 0.7 | Risk score that triggers approval gate |
|
|
24
|
-
| `default_agent` | orchestrator | Default agent for commands |
|
|
25
|
-
|
|
26
|
-
### Set a Value (`key=value`)
|
|
27
|
-
|
|
28
|
-
Parse `$ARGUMENTS` as `key=value` pairs (space-separated for multiple).
|
|
29
|
-
|
|
30
|
-
Valid keys:
|
|
31
|
-
- `model_profile` — `quality`, `balanced`, `economy`
|
|
32
|
-
- `tdd_enforced` — `true`, `false`
|
|
33
|
-
- `approval_required` — `true`, `false`
|
|
34
|
-
- `volatility_threshold` — number between 0.0 and 1.0
|
|
35
|
-
- `default_agent` — agent name string
|
|
36
|
-
|
|
37
|
-
Update `.planning/config.json` with the new values.
|
|
38
|
-
|
|
39
|
-
Report what was changed.
|
|
40
|
-
|
|
41
|
-
### Invalid Key
|
|
42
|
-
|
|
43
|
-
Report error with list of valid keys.
|
|
44
|
-
|
|
45
|
-
## Default Config
|
|
46
|
-
|
|
47
|
-
If `.planning/config.json` does not exist, create it with defaults:
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{
|
|
51
|
-
"model_profile": "balanced",
|
|
52
|
-
"tdd_enforced": true,
|
|
53
|
-
"approval_required": false,
|
|
54
|
-
"volatility_threshold": 0.7,
|
|
55
|
-
"default_agent": "orchestrator"
|
|
56
|
-
}
|
|
57
|
-
```
|