@curdx/flow 2.2.4 → 2.2.5
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 +3 -2
- package/.claude-plugin/plugin.json +2 -1
- package/CHANGELOG.md +4 -566
- package/README.md +47 -113
- package/agents/flow-adversary.md +1 -0
- package/agents/flow-architect.md +9 -36
- package/agents/flow-brownfield-analyst.md +7 -18
- package/agents/flow-debugger.md +1 -0
- package/agents/flow-edge-hunter.md +1 -0
- package/agents/flow-executor.md +1 -0
- package/agents/flow-planner.md +11 -37
- package/agents/flow-product-designer.md +9 -41
- package/agents/flow-qa-engineer.md +1 -0
- package/agents/flow-researcher.md +9 -45
- package/agents/flow-reviewer.md +1 -0
- package/agents/flow-security-auditor.md +1 -0
- package/agents/flow-triage-analyst.md +1 -0
- package/agents/flow-ui-researcher.md +1 -0
- package/agents/flow-ux-designer.md +1 -0
- package/agents/flow-verifier.md +1 -0
- package/cli/install-companions.js +8 -8
- package/gates/coverage-audit-gate.md +1 -3
- package/gates/tdd-gate.md +0 -6
- package/gates/verification-gate.md +1 -5
- package/knowledge/artifact-output-discipline.md +24 -0
- package/knowledge/artifact-summary-contracts.md +50 -0
- package/knowledge/execution-strategies.md +6 -4
- package/knowledge/poc-first-workflow.md +2 -6
- package/knowledge/spec-driven-development.md +0 -4
- package/knowledge/systematic-debugging.md +0 -6
- package/knowledge/two-stage-review.md +8 -6
- package/knowledge/wave-execution.md +2 -1
- package/package.json +2 -2
- package/schemas/agent-frontmatter.schema.json +4 -0
- package/skills/brownfield-index/SKILL.md +14 -20
- package/skills/brownfield-index/references/applicability.md +12 -0
- package/skills/brownfield-index/references/handoff.md +8 -0
- package/skills/brownfield-index/references/index-contract.md +10 -0
- package/skills/browser-qa/SKILL.md +15 -35
- package/skills/browser-qa/references/handoff.md +6 -0
- package/skills/browser-qa/references/prerequisites.md +10 -0
- package/skills/browser-qa/references/qa-contract.md +20 -0
- package/skills/cancel/SKILL.md +20 -61
- package/skills/cancel/references/destructive-mode.md +17 -0
- package/skills/cancel/references/reporting.md +18 -0
- package/skills/cancel/references/state-recovery.md +30 -0
- package/skills/cancel/references/target-resolution.md +7 -0
- package/skills/debug/SKILL.md +23 -87
- package/skills/debug/references/context-gathering.md +11 -0
- package/skills/debug/references/failure-guard.md +25 -0
- package/skills/debug/references/intake.md +12 -0
- package/skills/debug/references/phase-workflow.md +34 -0
- package/skills/debug/references/reporting.md +20 -0
- package/skills/epic/SKILL.md +18 -50
- package/skills/epic/references/epic-artifacts.md +20 -0
- package/skills/epic/references/epic-intake.md +9 -0
- package/skills/epic/references/slice-handoff.md +16 -0
- package/skills/fast/SKILL.md +34 -102
- package/skills/fast/references/applicability.md +25 -0
- package/skills/fast/references/clarification.md +20 -0
- package/skills/fast/references/execution-contract.md +56 -0
- package/skills/help/SKILL.md +26 -132
- package/skills/help/references/dispatch.md +20 -0
- package/skills/help/references/overview.md +39 -0
- package/skills/help/references/troubleshoot.md +47 -0
- package/skills/help/references/workflow.md +37 -0
- package/skills/implement/SKILL.md +61 -237
- package/skills/implement/references/error-recovery.md +36 -0
- package/skills/implement/references/linear-execution.md +32 -0
- package/skills/implement/references/preflight.md +43 -0
- package/skills/implement/references/progress-contract.md +32 -0
- package/skills/implement/references/state-init.md +33 -0
- package/skills/implement/references/stop-hook-execution.md +36 -0
- package/skills/implement/references/strategy-router.md +38 -0
- package/skills/implement/references/subagent-execution.md +43 -0
- package/skills/init/SKILL.md +26 -95
- package/skills/init/references/gitignore-and-health.md +26 -0
- package/skills/init/references/next-steps.md +22 -0
- package/skills/init/references/preflight.md +15 -0
- package/skills/init/references/scaffold-contract.md +27 -0
- package/skills/review/SKILL.md +45 -153
- package/skills/review/references/optional-passes.md +48 -0
- package/skills/review/references/preflight.md +38 -0
- package/skills/review/references/report-contract.md +49 -0
- package/skills/review/references/reporting.md +20 -0
- package/skills/review/references/stage-execution.md +32 -0
- package/skills/security-audit/SKILL.md +16 -34
- package/skills/security-audit/references/audit-contract.md +21 -0
- package/skills/security-audit/references/gate-handoff.md +8 -0
- package/skills/security-audit/references/scope-and-depth.md +9 -0
- package/skills/spec/SKILL.md +55 -182
- package/skills/spec/references/artifact-landing.md +31 -0
- package/skills/spec/references/phase-execution.md +50 -0
- package/skills/spec/references/planning-review.md +31 -0
- package/skills/spec/references/preflight-and-routing.md +46 -0
- package/skills/spec/references/reporting.md +21 -0
- package/skills/start/SKILL.md +40 -123
- package/skills/start/references/branch-routing.md +51 -0
- package/skills/start/references/mode-semantics.md +12 -0
- package/skills/start/references/preflight.md +13 -0
- package/skills/start/references/reporting.md +20 -0
- package/skills/start/references/state-seeding.md +44 -0
- package/skills/start/references/workflow-handoff.md +26 -0
- package/skills/status/SKILL.md +17 -61
- package/skills/status/references/gather-contract.md +27 -0
- package/skills/status/references/health-rules.md +27 -0
- package/skills/status/references/output-contract.md +24 -0
- package/skills/status/references/preflight.md +10 -0
- package/skills/status/references/recovery-hints.md +18 -0
- package/skills/ui-sketch/SKILL.md +15 -34
- package/skills/ui-sketch/references/brief-intake.md +10 -0
- package/skills/ui-sketch/references/iteration-handoff.md +5 -0
- package/skills/ui-sketch/references/variant-contract.md +15 -0
- package/skills/verify/SKILL.md +31 -86
- package/skills/verify/references/evidence-workflow.md +39 -0
- package/skills/verify/references/output-contract.md +23 -0
- package/skills/verify/references/preflight.md +11 -0
- package/skills/verify/references/report-handoff.md +35 -0
- package/skills/verify/references/strict-mode.md +12 -0
- package/README.zh.md +0 -160
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Cancel State Recovery — Safe Rollback Without Deletion
|
|
2
|
+
|
|
3
|
+
Default mode preserves all human-readable artifacts.
|
|
4
|
+
|
|
5
|
+
## Recovery Steps
|
|
6
|
+
|
|
7
|
+
1. Read `.flow/specs/<target>/.state.json`
|
|
8
|
+
2. Set `phase` to `tasks`
|
|
9
|
+
3. Set `phase_status.execute` to `cancelled`
|
|
10
|
+
4. Remove `execute_state` and `strategy`
|
|
11
|
+
5. If the state file is missing, print `No execution state for <target>. Nothing to cancel.`
|
|
12
|
+
|
|
13
|
+
Use checkpoint-tracked `Edit` or `Write`, not ad-hoc Bash or Python writers.
|
|
14
|
+
|
|
15
|
+
## Progress Entry
|
|
16
|
+
|
|
17
|
+
Append to `.progress.md`:
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
## Execution Cancelled YYYY-MM-DD
|
|
21
|
+
- Cancelled by: /curdx-flow:cancel
|
|
22
|
+
- Preserved: research.md, requirements.md, design.md, tasks.md, progress, reports
|
|
23
|
+
- Resume: /curdx-flow:implement --strategy=subagent or /curdx-flow:spec --phase=tasks --regenerate
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Safety
|
|
27
|
+
|
|
28
|
+
- never delete project-level `.flow` files
|
|
29
|
+
- if `.state.json` is corrupt, rename it to `.state.json.corrupt.<timestamp>`
|
|
30
|
+
- prefer `/curdx-flow:status` after cancel to confirm recovery state
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Cancel Target Resolution — Positional Spec Name or Active Spec
|
|
2
|
+
|
|
3
|
+
1. If `$ARGUMENTS` includes a positional spec name, target `.flow/specs/<name>`
|
|
4
|
+
2. Otherwise read `.flow/.active-spec`
|
|
5
|
+
3. If no target exists, print `No active spec to cancel` and stop
|
|
6
|
+
|
|
7
|
+
`cancel` uses a positional spec argument, not `--spec=<name>`.
|
package/skills/debug/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debug
|
|
3
|
-
description: Debug
|
|
3
|
+
description: Debug a bug or failing test with the root-cause workflow.
|
|
4
4
|
when_to_use: Use when the user reports a bug, failing test, regression, stack trace, flaky behavior, or wants root-cause analysis instead of trial-and-error edits.
|
|
5
5
|
argument-hint: "\"<bug description>\""
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -10,100 +10,36 @@ agent: flow-debugger
|
|
|
10
10
|
|
|
11
11
|
# Systematic Debug
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
`@${CLAUDE_PLUGIN_ROOT}/knowledge/systematic-debugging.md`.
|
|
15
|
-
|
|
13
|
+
Use the 4-phase root-cause methodology in
|
|
14
|
+
`@${CLAUDE_PLUGIN_ROOT}/knowledge/systematic-debugging.md`. Keep this entrypoint
|
|
15
|
+
focused on bug intake, required context, and the hard-stop contract. Detailed
|
|
16
|
+
debugging rules live in:
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
- `references/intake.md`
|
|
19
|
+
- `references/context-gathering.md`
|
|
20
|
+
- `references/phase-workflow.md`
|
|
21
|
+
- `references/failure-guard.md`
|
|
22
|
+
- `references/reporting.md`
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
## Intake
|
|
20
25
|
|
|
21
|
-
|
|
26
|
+
Use `references/intake.md` to validate `$ARGUMENTS` and anchor the debugging
|
|
27
|
+
target before entering diagnosis.
|
|
22
28
|
|
|
23
|
-
-
|
|
24
|
-
- Uncommitted changes: `git status --short`, `git diff --stat`
|
|
25
|
-
- Active spec (if any): read `.flow/.active-spec`; if set, read
|
|
26
|
-
`.flow/specs/<active>/.progress.md` for related history.
|
|
29
|
+
## Pre-Diagnosis Context
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
Gather the baseline context from `references/context-gathering.md` before
|
|
32
|
+
entering Phase 1.
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
- Build a minimal reproduction.
|
|
32
|
-
- Append `## Reality Check (BEFORE)` to `.flow/specs/<active>/.progress.md` with the exact reproduction command, observed failure output, and timestamp before changing code.
|
|
33
|
-
- Check recent changes that could have introduced the bug.
|
|
34
|
-
- Trace the data flow from cause to symptom.
|
|
35
|
-
- **Exit condition**: state the root cause in **one sentence**.
|
|
36
|
-
"maybe it's..." is not allowed.
|
|
34
|
+
## Four Phases
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
Use `references/phase-workflow.md` as the 4-phase contract.
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
input or neighboring module that behaves correctly).
|
|
42
|
-
- Pinpoint the difference from the failing case.
|
|
43
|
-
- Classify: **isolated case** (one location) vs. **systemic pattern**
|
|
44
|
-
(multiple siblings). If systemic, Phase 4 must sweep for siblings.
|
|
38
|
+
## Three-Failure Guard
|
|
45
39
|
|
|
46
|
-
|
|
40
|
+
Use `references/failure-guard.md` for the stop contract and required failure
|
|
41
|
+
report.
|
|
47
42
|
|
|
48
|
-
|
|
49
|
-
- Write the smallest test that distinguishes confirm vs. disprove.
|
|
50
|
-
- Run the test in-memory (do not commit yet).
|
|
51
|
-
- If disproved, return to Phase 1 with the new signal.
|
|
43
|
+
## Output to User
|
|
52
44
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
1. Write a failing test; confirm it fails. Commit `test(<scope>): red - ...`.
|
|
56
|
-
2. Fix the root cause (not the symptom). Confirm the failing test now
|
|
57
|
-
passes. Commit `fix(<scope>): green - ...`.
|
|
58
|
-
3. Run the full regression suite; no regressions allowed.
|
|
59
|
-
4. Re-run the original reproduction command and append `## Reality Check (AFTER)` to `.progress.md`; write `Verified: Issue resolved` only when BEFORE failed and AFTER passes or no longer shows the original failure.
|
|
60
|
-
5. If Phase 2 classified as systemic, sweep for sibling occurrences and
|
|
61
|
-
fix them in the same stage. Optional third commit
|
|
62
|
-
`fix(<scope>): sweep - N similar cases`.
|
|
63
|
-
|
|
64
|
-
## Three-failure guard (hard stop)
|
|
65
|
-
|
|
66
|
-
If Phase 4 has tried 3 genuinely different approaches and all failed,
|
|
67
|
-
**stop**. Do not try a 4th. Output the structured failure report:
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
⚠ Systematic debug halted after 3 attempts
|
|
71
|
-
|
|
72
|
-
Attempts:
|
|
73
|
-
1. <approach 1>: <why it failed>
|
|
74
|
-
2. <approach 2>: <why it failed>
|
|
75
|
-
3. <approach 3>: <why it failed>
|
|
76
|
-
|
|
77
|
-
Root-issue hypothesis: architecture | dependency | data | unknown
|
|
78
|
-
Recommended next step: <user action — review architecture, ship a
|
|
79
|
-
STATE.md D-NN deferral with @ts-expect-error,
|
|
80
|
-
or request pairing>
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Forbidden
|
|
84
|
-
|
|
85
|
-
- Prayer-driven programming (retry without a new hypothesis each round)
|
|
86
|
-
- "Maybe it's ..." as a Phase 1 conclusion
|
|
87
|
-
- A fix commit without a corresponding failing-test commit
|
|
88
|
-
- A fix claim without BEFORE/AFTER reality verification in `.progress.md`
|
|
89
|
-
- Masking the root cause with null checks / try-catch
|
|
90
|
-
- Fixing multiple unrelated things in one commit (one task = one commit)
|
|
91
|
-
|
|
92
|
-
## Output to user (on success, ≤ 15 lines)
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
✓ Debug complete
|
|
96
|
-
|
|
97
|
-
Root cause: <Phase 1 — one sentence>
|
|
98
|
-
Pattern: <Phase 2 — isolated or systemic>
|
|
99
|
-
|
|
100
|
-
Fix commits:
|
|
101
|
-
- <sha>: test(<scope>): red - failing test
|
|
102
|
-
- <sha>: fix(<scope>): green - root-cause fix
|
|
103
|
-
- <sha>: fix(<scope>): sweep - N sibling cases (if systemic)
|
|
104
|
-
|
|
105
|
-
Verification: failing test now PASS ✓; full suite green ✓
|
|
106
|
-
|
|
107
|
-
Learnings (candidate for .progress.md):
|
|
108
|
-
- <lesson>
|
|
109
|
-
```
|
|
45
|
+
Use `references/reporting.md` for the compact completion summary.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Debug Context Gathering — Baseline Before Diagnosis
|
|
2
|
+
|
|
3
|
+
Gather these before diagnosing:
|
|
4
|
+
|
|
5
|
+
- recent commits: `git log --oneline -20`
|
|
6
|
+
- uncommitted changes: `git status --short`, `git diff --stat`
|
|
7
|
+
- active spec, if any:
|
|
8
|
+
- read `.flow/.active-spec`
|
|
9
|
+
- if set, read `.flow/specs/<active>/.progress.md`
|
|
10
|
+
|
|
11
|
+
The point is to debug against observed repo state, not assumptions.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Debug Failure Guard — Stop After Three Real Attempts
|
|
2
|
+
|
|
3
|
+
If Phase 4 has tried three genuinely different approaches and all failed, stop.
|
|
4
|
+
Do not try a fourth.
|
|
5
|
+
|
|
6
|
+
## Required Failure Report
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
⚠ Systematic debug halted after 3 attempts
|
|
10
|
+
|
|
11
|
+
Attempts:
|
|
12
|
+
1. <approach 1>: <why it failed>
|
|
13
|
+
2. <approach 2>: <why it failed>
|
|
14
|
+
3. <approach 3>: <why it failed>
|
|
15
|
+
|
|
16
|
+
Root-issue hypothesis: architecture | dependency | data | unknown
|
|
17
|
+
Recommended next step: <user action>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Forbidden
|
|
21
|
+
|
|
22
|
+
- prayer-driven retries
|
|
23
|
+
- "maybe it's..." as a Phase 1 conclusion
|
|
24
|
+
- green fix commits without a corresponding red test commit
|
|
25
|
+
- fix claims without BEFORE/AFTER reality evidence
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Debug Intake — Require a Concrete Bug Target
|
|
2
|
+
|
|
3
|
+
The debug target is `$ARGUMENTS`.
|
|
4
|
+
|
|
5
|
+
If `$ARGUMENTS` is empty, print:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Usage: /curdx-flow:debug "<bug description>"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Do not begin diagnosis until the failing behavior, test, or regression target is
|
|
12
|
+
concrete enough to reproduce.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Debug Phases — Root Cause, Pattern, Hypothesis, Fix
|
|
2
|
+
|
|
3
|
+
## Phase 1 — Root-Cause Investigation
|
|
4
|
+
|
|
5
|
+
- read the error carefully
|
|
6
|
+
- build a minimal reproduction
|
|
7
|
+
- append `Reality Check (BEFORE)` to `.progress.md` when a spec is active
|
|
8
|
+
- trace recent changes and data flow
|
|
9
|
+
- exit only when the root cause fits in one sentence
|
|
10
|
+
|
|
11
|
+
## Phase 2 — Pattern Analysis
|
|
12
|
+
|
|
13
|
+
- find a working counter-example nearby
|
|
14
|
+
- identify the difference from the failing case
|
|
15
|
+
- classify the issue as `isolated` or `systemic`
|
|
16
|
+
|
|
17
|
+
If systemic, Phase 4 must sweep sibling cases.
|
|
18
|
+
|
|
19
|
+
## Phase 3 — Hypothesis and Test
|
|
20
|
+
|
|
21
|
+
- state one hypothesis
|
|
22
|
+
- write the smallest distinguishing test
|
|
23
|
+
- run it before committing
|
|
24
|
+
- if disproved, return to Phase 1 with the new signal
|
|
25
|
+
|
|
26
|
+
## Phase 4 — Implement the Fix
|
|
27
|
+
|
|
28
|
+
1. write a failing test and confirm it fails
|
|
29
|
+
2. fix the root cause and confirm the test now passes
|
|
30
|
+
3. run the full regression suite
|
|
31
|
+
4. re-run the original reproduction command and append `Reality Check (AFTER)`
|
|
32
|
+
5. if systemic, sweep sibling occurrences in the same stage
|
|
33
|
+
|
|
34
|
+
Do not mask the issue with defensive noise that leaves the root cause intact.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Debug Reporting — Compact Root-Cause Closeout
|
|
2
|
+
|
|
3
|
+
End with:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
✓ Debug complete
|
|
7
|
+
|
|
8
|
+
Root cause: <Phase 1 — one sentence>
|
|
9
|
+
Pattern: <Phase 2 — isolated or systemic>
|
|
10
|
+
|
|
11
|
+
Fix commits:
|
|
12
|
+
- <sha>: test(<scope>): red - failing test
|
|
13
|
+
- <sha>: fix(<scope>): green - root-cause fix
|
|
14
|
+
- <sha>: fix(<scope>): sweep - N sibling cases (if systemic)
|
|
15
|
+
|
|
16
|
+
Verification: failing test now PASS ✓; full suite green ✓
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Keep the closeout evidence-first. The root cause and verification outcome
|
|
20
|
+
matter more than narrative.
|
package/skills/epic/SKILL.md
CHANGED
|
@@ -9,63 +9,31 @@ agent: flow-triage-analyst
|
|
|
9
9
|
|
|
10
10
|
# Epic Decomposition
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
This is a specialty orchestration skill for multi-spec planning. Keep the
|
|
13
|
+
entrypoint focused on when to use epic decomposition and what artifacts it must
|
|
14
|
+
leave behind. Detailed rules live in:
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
2. The user has stated a feature scope that is too large for a single spec.
|
|
18
|
-
|
|
19
|
-
## Workflow
|
|
20
|
-
|
|
21
|
-
### Step 1: Clarify the epic scope
|
|
22
|
-
|
|
23
|
-
Ask the user (or infer from context) for:
|
|
24
|
-
- **Epic name** (short identifier, kebab-case)
|
|
25
|
-
- **One-sentence goal** of the whole epic
|
|
26
|
-
- **Hard boundary**: what is explicitly out of scope for this epic
|
|
27
|
-
|
|
28
|
-
### Step 2: Run via `flow-triage-analyst`
|
|
16
|
+
- `references/epic-intake.md`
|
|
17
|
+
- `references/epic-artifacts.md`
|
|
18
|
+
- `references/slice-handoff.md`
|
|
29
19
|
|
|
30
|
-
|
|
31
|
-
- A vertical-slice decomposition (not horizontal by layer)
|
|
32
|
-
- Dependency graph between slices
|
|
33
|
-
- Shared interfaces that must be frozen before parallel work begins
|
|
34
|
-
- Suggested slice ordering (MVP → iteration → polish)
|
|
35
|
-
|
|
36
|
-
### Step 3: Write epic manifest
|
|
37
|
-
|
|
38
|
-
Create `.flow/_epics/<epic-name>/epic.md` with:
|
|
39
|
-
|
|
40
|
-
```markdown
|
|
41
|
-
# Epic: <name>
|
|
42
|
-
|
|
43
|
-
## Goal
|
|
44
|
-
<one sentence>
|
|
45
|
-
|
|
46
|
-
## Slices (vertical)
|
|
47
|
-
| ID | Slice | Depends on | Shared interface |
|
|
48
|
-
|----|-------|-----------|------------------|
|
|
49
|
-
| S1 | ... | — | — |
|
|
50
|
-
| S2 | ... | S1 | `types/auth.ts` |
|
|
51
|
-
| S3 | ... | S1 | — |
|
|
20
|
+
## Preconditions
|
|
52
21
|
|
|
53
|
-
|
|
54
|
-
|
|
22
|
+
- a `.flow/` project exists
|
|
23
|
+
- the feature scope is too large for a single spec
|
|
55
24
|
|
|
56
|
-
##
|
|
57
|
-
- ...
|
|
58
|
-
```
|
|
25
|
+
## Intake
|
|
59
26
|
|
|
60
|
-
|
|
27
|
+
Use `references/epic-intake.md` to confirm the epic boundary before dispatching
|
|
28
|
+
`flow-triage-analyst`.
|
|
61
29
|
|
|
62
|
-
|
|
30
|
+
## Artifact Contract
|
|
63
31
|
|
|
64
|
-
|
|
32
|
+
Use `references/epic-artifacts.md` for the required outputs:
|
|
65
33
|
|
|
66
|
-
|
|
34
|
+
- `.flow/_epics/<epic-name>/epic.md`
|
|
35
|
+
- one `.flow/specs/<epic-name>-<slice-id>/` skeleton per slice
|
|
67
36
|
|
|
68
|
-
##
|
|
37
|
+
## Handoff
|
|
69
38
|
|
|
70
|
-
-
|
|
71
|
-
- Spec skeleton: `@${CLAUDE_PLUGIN_ROOT}/templates/`
|
|
39
|
+
User-facing next-step routing lives in `references/slice-handoff.md`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Epic Artifacts — What Must Be Written
|
|
2
|
+
|
|
3
|
+
`flow-triage-analyst` must return:
|
|
4
|
+
|
|
5
|
+
- a vertical-slice decomposition
|
|
6
|
+
- a dependency graph between slices
|
|
7
|
+
- shared interfaces that should freeze before parallel work
|
|
8
|
+
- suggested ordering: MVP -> iteration -> polish
|
|
9
|
+
|
|
10
|
+
## Required Files
|
|
11
|
+
|
|
12
|
+
- `.flow/_epics/<epic-name>/epic.md`
|
|
13
|
+
- `.flow/specs/<epic-name>-<slice-id>/` skeletons with minimal `.state.json`
|
|
14
|
+
|
|
15
|
+
`epic.md` should include:
|
|
16
|
+
|
|
17
|
+
- goal
|
|
18
|
+
- slice table
|
|
19
|
+
- frozen interfaces
|
|
20
|
+
- out-of-scope list
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Epic Handoff — What the User Does Next
|
|
2
|
+
|
|
3
|
+
Report:
|
|
4
|
+
|
|
5
|
+
- epic name
|
|
6
|
+
- slice count
|
|
7
|
+
- suggested slice order
|
|
8
|
+
|
|
9
|
+
Then route the user to a concrete slice:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
/curdx-flow:start <epic-name>-<slice-id>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Do not tell the user to use `/curdx-flow:start --resume <slice-id>`; slice
|
|
16
|
+
selection is by explicit spec name.
|
package/skills/fast/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fast
|
|
3
|
-
description:
|
|
3
|
+
description: Execute a one-shot small task without creating a spec.
|
|
4
4
|
when_to_use: Use when the task is small, surgical, low-ambiguity, and not worth a full spec workflow.
|
|
5
5
|
argument-hint: "\"<task description>\""
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -12,119 +12,51 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent]
|
|
|
12
12
|
@${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md
|
|
13
13
|
@${CLAUDE_PLUGIN_ROOT}/knowledge/atomic-commits.md
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Fast is a bypass workflow, not a replacement for the main spec pipeline. Keep
|
|
16
|
+
this entrypoint focused on scope gating, lightweight clarification, and the
|
|
17
|
+
final execution contract. Detailed fast-mode rules live in:
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
- `references/applicability.md`
|
|
20
|
+
- `references/clarification.md`
|
|
21
|
+
- `references/execution-contract.md`
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
- ✓ Clear small changes (e.g., "swap the deprecated API in foo.ts to bar")
|
|
21
|
-
- ✓ Single-file modifications
|
|
22
|
-
- ✓ Bug fixes (simple types)
|
|
23
|
+
## Arguments
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- ✗ Production feature development (run the full /curdx-flow:start → /curdx-flow:spec → /curdx-flow:implement)
|
|
27
|
-
- ✗ Architecture-level changes spanning multiple files
|
|
28
|
-
- ✗ User-story-driven requirements
|
|
29
|
-
|
|
30
|
-
**Cost of using this command**: no spec files are left behind; nobody will know later why it was changed this way. If that cost is unacceptable, run the full flow.
|
|
31
|
-
|
|
32
|
-
## Step 1: Parse Input
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
TASK_DESC="$ARGUMENTS"
|
|
36
|
-
[ -z "$TASK_DESC" ] && { echo "Usage: /curdx-flow:fast \"task description\""; exit 1; }
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Step 2: 5-Question Quick Clarification (Karpathy Principle 1)
|
|
40
|
-
|
|
41
|
-
Even in fast mode, do not skip thinking. Before executing, explicitly state:
|
|
25
|
+
`$ARGUMENTS` must contain the one-shot task description. If it is empty, stop
|
|
26
|
+
with the direct usage hint:
|
|
42
27
|
|
|
28
|
+
```text
|
|
29
|
+
/curdx-flow:fast "<task description>"
|
|
43
30
|
```
|
|
44
|
-
Quick understanding (please confirm or amend):
|
|
45
31
|
|
|
46
|
-
|
|
47
|
-
2. Files involved: <preliminary assessment>
|
|
48
|
-
3. Expected effect: <success criteria>
|
|
49
|
-
4. Known constraints: <if any>
|
|
50
|
-
5. Assumptions: <list explicitly>
|
|
32
|
+
## Applicability
|
|
51
33
|
|
|
52
|
-
|
|
53
|
-
|
|
34
|
+
Use `references/applicability.md` to decide whether the task qualifies for the
|
|
35
|
+
fast path.
|
|
54
36
|
|
|
55
|
-
|
|
37
|
+
- If the change is feature-sized, architecture-heavy, or requirement-driven,
|
|
38
|
+
route the user back to `/curdx-flow:start` -> `/curdx-flow:spec`
|
|
39
|
+
- If the task stays surgical, continue with the fast contract
|
|
56
40
|
|
|
57
|
-
##
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# Read project's CLAUDE.md (if any) and .flow/CONTEXT.md (if any)
|
|
61
|
-
# but do not require a flow project — fast mode is allowed in any project
|
|
62
|
-
[ -f "CLAUDE.md" ] && cat CLAUDE.md | head -50
|
|
63
|
-
[ -f ".flow/CONTEXT.md" ] && cat .flow/CONTEXT.md | head -30
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Step 4: Explore + Execute
|
|
67
|
-
|
|
68
|
-
**Mandatory tool use** (do not rely on training memory):
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
1. If library/API is involved: mcp__context7__query-docs
|
|
72
|
-
2. Use Grep/Glob to find relevant code
|
|
73
|
-
3. Read files to understand the current state
|
|
74
|
-
4. Apply Karpathy's surgical principles
|
|
75
|
-
5. Run validation commands (tsc/lint/test, per project)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Step 5: Atomic Commit
|
|
79
|
-
|
|
80
|
-
Even in fast mode, commit (do not leave changes scattered):
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
git add <exact files>
|
|
84
|
-
git commit -m "<type>(<scope>): <summary>
|
|
85
|
-
|
|
86
|
-
<body if any>
|
|
87
|
-
"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
The commit message must conform to `atomic-commits.md`.
|
|
91
|
-
|
|
92
|
-
## Step 6: Output
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
✓ Fast execution complete
|
|
96
|
-
|
|
97
|
-
Changes:
|
|
98
|
-
- src/foo.ts (+3 -1)
|
|
99
|
-
- src/foo.test.ts (+15)
|
|
100
|
-
|
|
101
|
-
Verification:
|
|
102
|
-
npm test ✓ 12/12 passed
|
|
103
|
-
tsc --noEmit ✓
|
|
104
|
-
|
|
105
|
-
Commit: abc123f — fix(foo): handle null case
|
|
106
|
-
|
|
107
|
-
Consider the full flow next time?
|
|
108
|
-
/curdx-flow:start <name> "<goal>" — if this type of task will recur
|
|
109
|
-
```
|
|
41
|
+
## Clarification
|
|
110
42
|
|
|
111
|
-
|
|
43
|
+
Run the quick clarification flow from `references/clarification.md` before
|
|
44
|
+
editing. This path still requires explicit assumptions; "obvious" tasks do not
|
|
45
|
+
skip that step.
|
|
112
46
|
|
|
113
|
-
|
|
47
|
+
## Execution Contract
|
|
114
48
|
|
|
115
|
-
|
|
116
|
-
|-----------|------|----------|
|
|
117
|
-
| Time | 5-15 minutes | 1-4 hours |
|
|
118
|
-
| Files | No spec residue | .flow/specs/<name>/*.md |
|
|
119
|
-
| Traceability | git log only | git log + spec docs |
|
|
120
|
-
| Quality | Relies on agent discipline | Multi-Gate enforced |
|
|
121
|
-
| Suited for | Simple & known | Complex / team collaboration |
|
|
49
|
+
Use `references/execution-contract.md` for:
|
|
122
50
|
|
|
123
|
-
|
|
51
|
+
- lightweight context loading
|
|
52
|
+
- mandatory code/doc lookup before edits
|
|
53
|
+
- surgical execution rules
|
|
54
|
+
- verification requirements
|
|
55
|
+
- atomic commit and final output shape
|
|
124
56
|
|
|
125
|
-
##
|
|
57
|
+
## Boundary
|
|
126
58
|
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
|
|
59
|
+
- `fast` leaves no `.flow/specs/<name>/` audit trail
|
|
60
|
+
- use it only when that traceability tradeoff is acceptable
|
|
61
|
+
- if the work starts expanding, stop treating it as `fast` and switch to the
|
|
62
|
+
main workflow
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Fast Applicability — When to Use and When to Abort
|
|
2
|
+
|
|
3
|
+
## Good Fit
|
|
4
|
+
|
|
5
|
+
- one-shot scripts
|
|
6
|
+
- clear small changes
|
|
7
|
+
- single-file or tightly bounded edits
|
|
8
|
+
- simple bug fixes with low ambiguity
|
|
9
|
+
|
|
10
|
+
## Not a Fit
|
|
11
|
+
|
|
12
|
+
- production feature development
|
|
13
|
+
- architecture-level or multi-module changes
|
|
14
|
+
- user-story or acceptance-criteria driven work
|
|
15
|
+
- anything that clearly needs spec artifacts for future traceability
|
|
16
|
+
|
|
17
|
+
## Decision Rule
|
|
18
|
+
|
|
19
|
+
If the task no longer looks surgical after initial exploration, stop calling it
|
|
20
|
+
`fast` and route back to:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
/curdx-flow:start <name> "<goal>"
|
|
24
|
+
/curdx-flow:spec
|
|
25
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Fast Clarification — Five Quick Questions
|
|
2
|
+
|
|
3
|
+
Even in fast mode, do not skip explicit understanding.
|
|
4
|
+
|
|
5
|
+
## Ask Before Editing
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Quick understanding (please confirm or amend):
|
|
9
|
+
|
|
10
|
+
1. Task: <restate in your own words>
|
|
11
|
+
2. Files involved: <preliminary assessment>
|
|
12
|
+
3. Expected effect: <success criteria>
|
|
13
|
+
4. Known constraints: <if any>
|
|
14
|
+
5. Assumptions: <list explicitly>
|
|
15
|
+
|
|
16
|
+
Any ambiguity? (yes: amend then continue / no: proceed directly)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Use `AskUserQuestion`. If the user confirms there is no ambiguity, continue
|
|
20
|
+
directly to execution.
|