@curdx/flow 2.3.11 → 3.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/CHANGELOG.md +21 -34
- package/LICENSE +1 -1
- package/README.md +28 -79
- package/dist/index.mjs +995 -0
- package/package.json +33 -42
- package/.claude-plugin/marketplace.json +0 -48
- package/.claude-plugin/plugin.json +0 -70
- package/agent-preamble/preamble.md +0 -314
- package/agents/flow-adversary.md +0 -202
- package/agents/flow-architect.md +0 -197
- package/agents/flow-brownfield-analyst.md +0 -142
- package/agents/flow-debugger.md +0 -321
- package/agents/flow-edge-hunter.md +0 -288
- package/agents/flow-executor.md +0 -269
- package/agents/flow-orchestrator.md +0 -145
- package/agents/flow-planner.md +0 -246
- package/agents/flow-product-designer.md +0 -159
- package/agents/flow-qa-engineer.md +0 -282
- package/agents/flow-researcher.md +0 -165
- package/agents/flow-reviewer.md +0 -303
- package/agents/flow-security-auditor.md +0 -401
- package/agents/flow-triage-analyst.md +0 -272
- package/agents/flow-ui-researcher.md +0 -229
- package/agents/flow-ux-designer.md +0 -221
- package/agents/flow-verifier.md +0 -349
- package/bin/curdx-flow +0 -5
- package/bin/curdx-flow.js +0 -54
- package/cli/README.md +0 -104
- package/cli/doctor-workflow.js +0 -483
- package/cli/doctor.js +0 -73
- package/cli/help.js +0 -59
- package/cli/install-bundled-mcps.js +0 -37
- package/cli/install-companions.js +0 -19
- package/cli/install-context7-config.js +0 -80
- package/cli/install-curdx-plugin.js +0 -96
- package/cli/install-language.js +0 -35
- package/cli/install-next-steps.js +0 -29
- package/cli/install-options.js +0 -9
- package/cli/install-paths.js +0 -52
- package/cli/install-recommended-plugins.js +0 -104
- package/cli/install-required-plugins.js +0 -57
- package/cli/install-self-update.js +0 -62
- package/cli/install-workflow.js +0 -209
- package/cli/install.js +0 -101
- package/cli/lib/claude-commands.js +0 -41
- package/cli/lib/claude-ops.js +0 -47
- package/cli/lib/claude.js +0 -183
- package/cli/lib/config.js +0 -24
- package/cli/lib/doctor-claude-settings.js +0 -1186
- package/cli/lib/doctor-report.js +0 -978
- package/cli/lib/doctor-runtime-environment.js +0 -196
- package/cli/lib/frontmatter.js +0 -44
- package/cli/lib/json-schema.js +0 -57
- package/cli/lib/logging.js +0 -25
- package/cli/lib/process.js +0 -60
- package/cli/lib/prompts.js +0 -135
- package/cli/lib/runtime.js +0 -107
- package/cli/lib/semver.js +0 -109
- package/cli/lib/version.js +0 -12
- package/cli/protocols-body.md +0 -22
- package/cli/protocols.js +0 -162
- package/cli/registry.js +0 -123
- package/cli/router.js +0 -49
- package/cli/uninstall-actions.js +0 -360
- package/cli/uninstall-workflow.js +0 -146
- package/cli/uninstall.js +0 -42
- package/cli/upgrade-workflow.js +0 -80
- package/cli/upgrade.js +0 -91
- package/cli/utils.js +0 -40
- package/gates/adversarial-review-gate.md +0 -219
- package/gates/coverage-audit-gate.md +0 -182
- package/gates/devex-gate.md +0 -254
- package/gates/edge-case-gate.md +0 -194
- package/gates/karpathy-gate.md +0 -130
- package/gates/security-gate.md +0 -218
- package/gates/tdd-gate.md +0 -182
- package/gates/test-quality-gate.md +0 -59
- package/gates/verification-gate.md +0 -179
- package/hooks/hooks.json +0 -58
- package/hooks/scripts/common.sh +0 -46
- package/hooks/scripts/inject-karpathy.sh +0 -53
- package/hooks/scripts/quick-mode-guard.sh +0 -68
- package/hooks/scripts/session-start.sh +0 -90
- package/hooks/scripts/stop-watcher.sh +0 -230
- package/hooks/scripts/subagent-artifact-guard.sh +0 -159
- package/hooks/scripts/subagent-statusline.sh +0 -105
- package/knowledge/artifact-output-discipline.md +0 -24
- package/knowledge/artifact-summary-contracts.md +0 -50
- package/knowledge/atomic-commits.md +0 -262
- package/knowledge/claude-code-runtime-contracts.md +0 -219
- package/knowledge/epic-decomposition.md +0 -307
- package/knowledge/execution-strategies.md +0 -303
- package/knowledge/karpathy-guidelines.md +0 -219
- package/knowledge/planning-reviews.md +0 -211
- package/knowledge/poc-first-workflow.md +0 -223
- package/knowledge/review-feedback-intake.md +0 -57
- package/knowledge/spec-driven-development.md +0 -180
- package/knowledge/systematic-debugging.md +0 -378
- package/knowledge/two-stage-review.md +0 -249
- package/knowledge/wave-execution.md +0 -403
- package/monitors/monitors.json +0 -8
- package/monitors/scripts/flow-state-monitor.sh +0 -99
- package/output-styles/curdx-evidence-first.md +0 -34
- package/schemas/agent-frontmatter.schema.json +0 -63
- package/schemas/config.schema.json +0 -134
- package/schemas/gate-frontmatter.schema.json +0 -30
- package/schemas/hooks.schema.json +0 -115
- package/schemas/output-style-frontmatter.schema.json +0 -22
- package/schemas/plugin-manifest.schema.json +0 -436
- package/schemas/plugin-settings.schema.json +0 -29
- package/schemas/skill-frontmatter.schema.json +0 -177
- package/schemas/spec-frontmatter.schema.json +0 -42
- package/schemas/spec-state.schema.json +0 -147
- package/settings.json +0 -7
- package/skills/brownfield-index/SKILL.md +0 -53
- package/skills/brownfield-index/references/applicability.md +0 -12
- package/skills/brownfield-index/references/handoff.md +0 -8
- package/skills/brownfield-index/references/index-contract.md +0 -10
- package/skills/browser-qa/SKILL.md +0 -39
- package/skills/browser-qa/references/handoff.md +0 -6
- package/skills/browser-qa/references/prerequisites.md +0 -10
- package/skills/browser-qa/references/qa-contract.md +0 -20
- package/skills/cancel/SKILL.md +0 -41
- package/skills/cancel/references/destructive-mode.md +0 -17
- package/skills/cancel/references/reporting.md +0 -18
- package/skills/cancel/references/state-recovery.md +0 -30
- package/skills/cancel/references/target-resolution.md +0 -7
- package/skills/debug/SKILL.md +0 -45
- package/skills/debug/references/context-gathering.md +0 -11
- package/skills/debug/references/failure-guard.md +0 -25
- package/skills/debug/references/intake.md +0 -12
- package/skills/debug/references/phase-workflow.md +0 -34
- package/skills/debug/references/reporting.md +0 -20
- package/skills/epic/SKILL.md +0 -39
- package/skills/epic/references/epic-artifacts.md +0 -20
- package/skills/epic/references/epic-intake.md +0 -9
- package/skills/epic/references/slice-handoff.md +0 -16
- package/skills/fast/SKILL.md +0 -62
- package/skills/fast/references/applicability.md +0 -25
- package/skills/fast/references/clarification.md +0 -20
- package/skills/fast/references/execution-contract.md +0 -56
- package/skills/help/SKILL.md +0 -55
- package/skills/help/references/dispatch.md +0 -20
- package/skills/help/references/overview.md +0 -39
- package/skills/help/references/troubleshoot.md +0 -47
- package/skills/help/references/workflow.md +0 -37
- package/skills/implement/SKILL.md +0 -96
- package/skills/implement/references/error-recovery.md +0 -36
- package/skills/implement/references/linear-execution.md +0 -32
- package/skills/implement/references/preflight.md +0 -43
- package/skills/implement/references/progress-contract.md +0 -32
- package/skills/implement/references/state-init.md +0 -33
- package/skills/implement/references/stop-hook-execution.md +0 -36
- package/skills/implement/references/strategy-router.md +0 -38
- package/skills/implement/references/subagent-execution.md +0 -43
- package/skills/implement/references/wave-execution.md +0 -162
- package/skills/init/SKILL.md +0 -49
- package/skills/init/references/gitignore-and-health.md +0 -26
- package/skills/init/references/next-steps.md +0 -22
- package/skills/init/references/preflight.md +0 -15
- package/skills/init/references/scaffold-contract.md +0 -27
- package/skills/review/SKILL.md +0 -82
- package/skills/review/references/optional-passes.md +0 -48
- package/skills/review/references/preflight.md +0 -38
- package/skills/review/references/report-contract.md +0 -49
- package/skills/review/references/reporting.md +0 -20
- package/skills/review/references/stage-execution.md +0 -32
- package/skills/security-audit/SKILL.md +0 -47
- package/skills/security-audit/references/audit-contract.md +0 -21
- package/skills/security-audit/references/gate-handoff.md +0 -8
- package/skills/security-audit/references/scope-and-depth.md +0 -9
- package/skills/spec/SKILL.md +0 -100
- package/skills/spec/references/artifact-landing.md +0 -31
- package/skills/spec/references/phase-execution.md +0 -50
- package/skills/spec/references/planning-review.md +0 -31
- package/skills/spec/references/preflight-and-routing.md +0 -46
- package/skills/spec/references/reporting.md +0 -21
- package/skills/start/SKILL.md +0 -84
- package/skills/start/references/branch-routing.md +0 -51
- package/skills/start/references/mode-semantics.md +0 -12
- package/skills/start/references/preflight.md +0 -13
- package/skills/start/references/reporting.md +0 -20
- package/skills/start/references/state-seeding.md +0 -44
- package/skills/start/references/workflow-handoff.md +0 -26
- package/skills/status/SKILL.md +0 -41
- package/skills/status/references/gather-contract.md +0 -27
- package/skills/status/references/health-rules.md +0 -27
- package/skills/status/references/output-contract.md +0 -24
- package/skills/status/references/preflight.md +0 -10
- package/skills/status/references/recovery-hints.md +0 -18
- package/skills/ui-sketch/SKILL.md +0 -39
- package/skills/ui-sketch/references/brief-intake.md +0 -10
- package/skills/ui-sketch/references/iteration-handoff.md +0 -5
- package/skills/ui-sketch/references/variant-contract.md +0 -15
- package/skills/verify/SKILL.md +0 -56
- package/skills/verify/references/evidence-workflow.md +0 -39
- package/skills/verify/references/output-contract.md +0 -23
- package/skills/verify/references/preflight.md +0 -11
- package/skills/verify/references/report-handoff.md +0 -35
- package/skills/verify/references/strict-mode.md +0 -12
- package/templates/CONTEXT.md.tmpl +0 -53
- package/templates/PROJECT.md.tmpl +0 -59
- package/templates/ROADMAP.md.tmpl +0 -50
- package/templates/STATE.md.tmpl +0 -49
- package/templates/config.json.tmpl +0 -51
- package/templates/design.md.tmpl +0 -83
- package/templates/progress.md.tmpl +0 -77
- package/templates/requirements.md.tmpl +0 -76
- package/templates/research.md.tmpl +0 -83
- package/templates/tasks.md.tmpl +0 -107
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Review Stages — Core Two-Pass Protocol
|
|
2
|
-
|
|
3
|
-
## Stage 1 — Spec Compliance
|
|
4
|
-
|
|
5
|
-
Dispatch `flow-reviewer` in Stage 1 mode. It verifies:
|
|
6
|
-
|
|
7
|
-
- every relevant `US`, `AC`, `FR`, and `NFR` in `requirements.md`
|
|
8
|
-
- architecture decisions in `design.md`
|
|
9
|
-
- `tasks.md` completion claims versus actual code
|
|
10
|
-
- conventional commits versus declared task completion
|
|
11
|
-
|
|
12
|
-
Output: the Stage 1 section of the review report with compliance gaps and
|
|
13
|
-
evidence.
|
|
14
|
-
|
|
15
|
-
## Stage 2 — Code Quality
|
|
16
|
-
|
|
17
|
-
Dispatch `flow-reviewer` in Stage 2 mode. It checks:
|
|
18
|
-
|
|
19
|
-
- naming, comments, and structure
|
|
20
|
-
- error handling completeness
|
|
21
|
-
- test quality and coverage
|
|
22
|
-
- performance and resource concerns
|
|
23
|
-
- security smells
|
|
24
|
-
- Karpathy 4 principles
|
|
25
|
-
|
|
26
|
-
Output: the Stage 2 section of the review report with prioritized findings.
|
|
27
|
-
|
|
28
|
-
## Sequencing
|
|
29
|
-
|
|
30
|
-
- `--stage=1` -> run only Stage 1
|
|
31
|
-
- `--stage=2` -> run only Stage 2
|
|
32
|
-
- `--stage=both` -> Stage 1 first, then Stage 2
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: security-audit
|
|
3
|
-
description: Use when the user needs security review of code, specs, credentials, sensitive data, or dependency risk.
|
|
4
|
-
when_to_use: Triggers on "security", "auth", "authentication", "credential", "password", "secret", "API key", "token", "OWASP", "STRIDE", "CVE", "vulnerability", "injection", "XSS", "CSRF", "SSRF", "SQL injection", "hardcoded secret", "sensitive data", "leak", "will my API key leak", "is this safe".
|
|
5
|
-
argument-hint: "[scope] [--depth=<owasp|stride|full>]"
|
|
6
|
-
context: fork
|
|
7
|
-
agent: flow-security-auditor
|
|
8
|
-
paths:
|
|
9
|
-
- "**/*.{js,jsx,ts,tsx,py,rb,go,java,kt,php,cs,rs,swift,sql,sh}"
|
|
10
|
-
- "**/*.{json,yml,yaml,toml,tf,hcl,conf,ini}"
|
|
11
|
-
- "**/.env*"
|
|
12
|
-
- "**/Dockerfile*"
|
|
13
|
-
- ".github/workflows/**"
|
|
14
|
-
- ".gitlab-ci.yml"
|
|
15
|
-
- "docker-compose*.yml"
|
|
16
|
-
- "k8s/**"
|
|
17
|
-
- "helm/**"
|
|
18
|
-
- "infra/**"
|
|
19
|
-
- "terraform/**"
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# Security Audit
|
|
23
|
-
|
|
24
|
-
This skill orchestrates scoped security review. Keep the entrypoint focused on
|
|
25
|
-
scope/depth selection, required audit outputs, and the blocking gate. Detailed
|
|
26
|
-
rules live in:
|
|
27
|
-
|
|
28
|
-
- `references/scope-and-depth.md`
|
|
29
|
-
- `references/audit-contract.md`
|
|
30
|
-
- `references/gate-handoff.md`
|
|
31
|
-
|
|
32
|
-
## Scope and Depth
|
|
33
|
-
|
|
34
|
-
Use `references/scope-and-depth.md` to confirm:
|
|
35
|
-
|
|
36
|
-
- scope
|
|
37
|
-
- audit depth
|
|
38
|
-
- risk tolerance
|
|
39
|
-
|
|
40
|
-
## Audit Contract
|
|
41
|
-
|
|
42
|
-
`flow-security-auditor` should follow `references/audit-contract.md`.
|
|
43
|
-
|
|
44
|
-
## Gate and Handoff
|
|
45
|
-
|
|
46
|
-
Blocking semantics and next-step routing live in
|
|
47
|
-
`references/gate-handoff.md`.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Security Audit Contract — What the Auditor Must Produce
|
|
2
|
-
|
|
3
|
-
`flow-security-auditor` should:
|
|
4
|
-
|
|
5
|
-
1. scan for secrets, weak crypto, and unsafe inputs
|
|
6
|
-
2. apply OWASP Top 10
|
|
7
|
-
3. apply STRIDE threat modeling when requested
|
|
8
|
-
4. run dependency CVE scanning
|
|
9
|
-
5. label findings by severity
|
|
10
|
-
|
|
11
|
-
## Required Artifact
|
|
12
|
-
|
|
13
|
-
- `.flow/specs/<active>/security-audit.md`
|
|
14
|
-
|
|
15
|
-
The report should include:
|
|
16
|
-
|
|
17
|
-
- SR (blocking)
|
|
18
|
-
- SW (warning)
|
|
19
|
-
- SM (mandatory baseline)
|
|
20
|
-
- CVE hits
|
|
21
|
-
- concrete fixes
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Security Gate Handoff — Blocking Rules and Next Steps
|
|
2
|
-
|
|
3
|
-
Apply `@${CLAUDE_PLUGIN_ROOT}/gates/security-gate.md`.
|
|
4
|
-
|
|
5
|
-
- if any SR findings exist, block completion until remediated or explicitly
|
|
6
|
-
waived with a D-NN decision in `STATE.md`
|
|
7
|
-
- if findings are advisory only, hand off `security-audit.md` as evidence for
|
|
8
|
-
later implementation or review work
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Security Scope and Depth — Confirm the Audit Shape
|
|
2
|
-
|
|
3
|
-
Before dispatching, confirm:
|
|
4
|
-
|
|
5
|
-
- scope: current spec, specific path, or whole repo
|
|
6
|
-
- depth: `owasp`, `stride`, or `full`
|
|
7
|
-
- risk tolerance: blocking vs advisory
|
|
8
|
-
|
|
9
|
-
The positional first argument is the scope. Depth stays in `--depth=...`.
|
package/skills/spec/SKILL.md
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec
|
|
3
|
-
description: Generate or refresh research, requirements, design, and tasks for the active spec.
|
|
4
|
-
when_to_use: Use when the user wants to generate, resume, regenerate, or review a feature spec across research, requirements, design, and task planning.
|
|
5
|
-
argument-hint: "[--phase=<X[,Y,...]>] [--until=<X>] [--review[=<dim[,dim]>]] [--regenerate] [--resume]"
|
|
6
|
-
disable-model-invocation: true
|
|
7
|
-
allowed-tools: [Read, Write, Bash, Agent, AskUserQuestion]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Generate or Refresh the Active Spec
|
|
11
|
-
|
|
12
|
-
This command writes `research.md`, `requirements.md`, `design.md`, and
|
|
13
|
-
`tasks.md` into `.flow/specs/<active-spec>/`.
|
|
14
|
-
|
|
15
|
-
Keep this entrypoint focused on phase selection and orchestration. Detailed
|
|
16
|
-
phase prompts and landing checks live in:
|
|
17
|
-
|
|
18
|
-
- `references/preflight-and-routing.md`
|
|
19
|
-
- `references/phase-execution.md`
|
|
20
|
-
- `references/artifact-landing.md`
|
|
21
|
-
- `references/planning-review.md`
|
|
22
|
-
- `references/reporting.md`
|
|
23
|
-
|
|
24
|
-
## Flags
|
|
25
|
-
|
|
26
|
-
| Flag | Default | Purpose |
|
|
27
|
-
|------|---------|---------|
|
|
28
|
-
| `--phase=<X[,Y]>` | (inferred from `.state.json`) | Run only the listed phase(s). `X ∈ {research, requirements, design, tasks}`. Accepts comma-separated list. |
|
|
29
|
-
| `--until=<X>` | (none) | Run from the current phase forward, stopping after `X`. Mutually exclusive with `--phase`. |
|
|
30
|
-
| `--review[=<dim[,dim]>]` | (not run) | After phases complete, run a planning review. `dim ∈ {ceo, eng, design, dx, all}`. Bare `--review` = `--review=all`. |
|
|
31
|
-
| `--regenerate` | (resume) | Wipe existing phase output for the targeted phases and rebuild from scratch. |
|
|
32
|
-
| `--resume` | (default) | Continue from `.state.json.phase`. This is the default when no flag is given. |
|
|
33
|
-
|
|
34
|
-
## Preflight
|
|
35
|
-
|
|
36
|
-
Use `references/preflight-and-routing.md` for:
|
|
37
|
-
|
|
38
|
-
- `.flow/`, active spec, and `.state.json` checks
|
|
39
|
-
- flag parsing and invalid flag combinations
|
|
40
|
-
- ordered phase routing and `--regenerate` scope resolution
|
|
41
|
-
|
|
42
|
-
## Phase Resolution
|
|
43
|
-
|
|
44
|
-
The ordered pipeline is still `research -> requirements -> design -> tasks`.
|
|
45
|
-
The exact routing rules and stopping points are defined in
|
|
46
|
-
`references/preflight-and-routing.md`.
|
|
47
|
-
|
|
48
|
-
## Phase Dispatch
|
|
49
|
-
|
|
50
|
-
Phase-specific prompts, mandatory output protocols, and post-phase state updates
|
|
51
|
-
live in `references/phase-execution.md`.
|
|
52
|
-
|
|
53
|
-
Use this phase-to-agent mapping:
|
|
54
|
-
|
|
55
|
-
| Phase | Agent | Output |
|
|
56
|
-
|-------|-------|--------|
|
|
57
|
-
| `research` | `flow-researcher` | `research.md` |
|
|
58
|
-
| `requirements` | `flow-product-designer` | `requirements.md` |
|
|
59
|
-
| `design` | `flow-architect` | `design.md` |
|
|
60
|
-
| `tasks` | `flow-planner` | `tasks.md` |
|
|
61
|
-
|
|
62
|
-
After each dispatch, run the landing guard from
|
|
63
|
-
`references/artifact-landing.md`. Never advance phase state based only on the
|
|
64
|
-
agent's narrative response.
|
|
65
|
-
|
|
66
|
-
## Optional Planning Review
|
|
67
|
-
|
|
68
|
-
If `--review` is present, use the dimension-expansion and aggregation protocol
|
|
69
|
-
from `references/planning-review.md`.
|
|
70
|
-
|
|
71
|
-
The review output lands at:
|
|
72
|
-
|
|
73
|
-
- `.flow/specs/<active>/spec-review.md`
|
|
74
|
-
|
|
75
|
-
## Reporting
|
|
76
|
-
|
|
77
|
-
Use `references/reporting.md` for the final user-visible summary and next-step
|
|
78
|
-
handoff.
|
|
79
|
-
|
|
80
|
-
## Common Invocations
|
|
81
|
-
|
|
82
|
-
```text
|
|
83
|
-
/curdx-flow:spec
|
|
84
|
-
/curdx-flow:spec --phase=design
|
|
85
|
-
/curdx-flow:spec --phase=design,tasks
|
|
86
|
-
/curdx-flow:spec --until=design
|
|
87
|
-
/curdx-flow:spec --review
|
|
88
|
-
/curdx-flow:spec --review=eng,dx
|
|
89
|
-
/curdx-flow:spec --regenerate
|
|
90
|
-
/curdx-flow:spec --regenerate --phase=tasks
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## References
|
|
94
|
-
|
|
95
|
-
- Agents: `@${CLAUDE_PLUGIN_ROOT}/agents/flow-researcher.md`,
|
|
96
|
-
`flow-product-designer.md`, `flow-architect.md`, `flow-planner.md`,
|
|
97
|
-
`flow-ux-designer.md`
|
|
98
|
-
- Knowledge: `@${CLAUDE_PLUGIN_ROOT}/knowledge/spec-driven-development.md`,
|
|
99
|
-
`poc-first-workflow.md`
|
|
100
|
-
- Preamble: `@${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md`
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Artifact Landing Check — Mandatory After Every Phase
|
|
2
|
-
|
|
3
|
-
Sub-agent responses can be truncated before the `Write` tool call happens. Do
|
|
4
|
-
not trust the agent response alone.
|
|
5
|
-
|
|
6
|
-
## Landing Guard
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
ARTIFACT=".flow/specs/$SPEC_NAME/<phase>.md"
|
|
10
|
-
if [ ! -f "$ARTIFACT" ]; then
|
|
11
|
-
echo "⚠ $ARTIFACT did not land. Re-dispatching <phase> agent with an explicit 'write the file' prompt."
|
|
12
|
-
fi
|
|
13
|
-
|
|
14
|
-
if [ -f "$ARTIFACT" ] && [ "$(wc -c < "$ARTIFACT" | tr -d ' ')" -lt 500 ]; then
|
|
15
|
-
echo "⚠ $ARTIFACT looks truncated (<500 bytes). Re-dispatching to complete it."
|
|
16
|
-
fi
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Re-dispatch Rule
|
|
20
|
-
|
|
21
|
-
If the artifact is missing or obviously truncated, front-load the retry prompt
|
|
22
|
-
with:
|
|
23
|
-
|
|
24
|
-
```text
|
|
25
|
-
Your ONLY job is to call the Write tool with the full <phase>.md content now.
|
|
26
|
-
Do not explain. Do not narrate. Write the file and stop.
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Only advance `.state.json.phase` after the file exists and passes the size
|
|
30
|
-
sanity check. If a second dispatch still fails, stop and surface the problem to
|
|
31
|
-
the user rather than silently continuing.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Phase Execution — Dispatch Contracts
|
|
2
|
-
|
|
3
|
-
Each phase writes exactly one artifact. The file is the deliverable; agent
|
|
4
|
-
commentary is not.
|
|
5
|
-
|
|
6
|
-
Shared runtime references:
|
|
7
|
-
|
|
8
|
-
- `${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-output-discipline.md`
|
|
9
|
-
- `${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-summary-contracts.md`
|
|
10
|
-
|
|
11
|
-
## Phase Map
|
|
12
|
-
|
|
13
|
-
| Phase | Agent | Inputs | Output |
|
|
14
|
-
|-------|-------|--------|--------|
|
|
15
|
-
| `research` | `flow-researcher` | spec goal + one-line description from `.state.json` | `research.md` |
|
|
16
|
-
| `requirements` | `flow-product-designer` | `research.md` | `requirements.md` |
|
|
17
|
-
| `design` | `flow-architect` | `research.md` + `requirements.md` | `design.md` |
|
|
18
|
-
| `tasks` | `flow-planner` | all prior artifacts + `.flow/PROJECT.md` | `tasks.md` |
|
|
19
|
-
|
|
20
|
-
## Shared Dispatch Rule
|
|
21
|
-
|
|
22
|
-
Every phase dispatch must explicitly enforce the same two rules:
|
|
23
|
-
|
|
24
|
-
1. The first substantive action is the `Write` call for the final artifact.
|
|
25
|
-
2. After the write lands, emit only the matching summary contract from
|
|
26
|
-
`${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-summary-contracts.md`.
|
|
27
|
-
|
|
28
|
-
Do not inline previews, rationale summaries, or duplicate artifact content in
|
|
29
|
-
the orchestration skill.
|
|
30
|
-
|
|
31
|
-
## Phase Output Contracts
|
|
32
|
-
|
|
33
|
-
| Phase | Artifact | Summary contract | Next line |
|
|
34
|
-
|-------|----------|------------------|-----------|
|
|
35
|
-
| `research` | `research.md` | `research.md` section | `Next: /curdx-flow:spec --phase=requirements` |
|
|
36
|
-
| `requirements` | `requirements.md` | `requirements.md` section | `Next: /curdx-flow:spec --phase=design` |
|
|
37
|
-
| `design` | `design.md` | `design.md` section | `Next: /curdx-flow:spec --phase=tasks` |
|
|
38
|
-
| `tasks` | `tasks.md` | `tasks.md` section | `Next: /curdx-flow:implement` |
|
|
39
|
-
|
|
40
|
-
## Post-Phase State Update
|
|
41
|
-
|
|
42
|
-
After the artifact lands and passes landing checks, update `.state.json`:
|
|
43
|
-
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"phase": "<just-completed-phase>",
|
|
47
|
-
"phase_status": { "<phase>": "completed" },
|
|
48
|
-
"updated": "<ISO8601 timestamp>"
|
|
49
|
-
}
|
|
50
|
-
```
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Planning Review — Optional Multi-Dimension Pass
|
|
2
|
-
|
|
3
|
-
Use this only when `--review` is present.
|
|
4
|
-
|
|
5
|
-
## Preconditions
|
|
6
|
-
|
|
7
|
-
- `design.md` must exist
|
|
8
|
-
- Bare `--review` expands to `ceo,eng,design,dx`
|
|
9
|
-
- `all` also expands to `ceo,eng,design,dx`
|
|
10
|
-
|
|
11
|
-
## Dimension Map
|
|
12
|
-
|
|
13
|
-
| Dim | Agent | Focus |
|
|
14
|
-
|-----|-------|-------|
|
|
15
|
-
| `ceo` | `flow-architect` (review mode) | Strategic scope fit, ROI, opportunity cost |
|
|
16
|
-
| `eng` | `flow-architect` (review mode) | Lock-in risk, architecture debt, technical risk |
|
|
17
|
-
| `design` | `flow-ux-designer` | UX, UI, accessibility, design system fit |
|
|
18
|
-
| `dx` | `flow-architect` (review mode) | Naming, structure, setup, types, tests, developer loop |
|
|
19
|
-
|
|
20
|
-
## Aggregation
|
|
21
|
-
|
|
22
|
-
Dispatch one review agent per dimension, aggregate findings into:
|
|
23
|
-
|
|
24
|
-
```text
|
|
25
|
-
.flow/specs/<active>/spec-review.md
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
The report must contain:
|
|
29
|
-
|
|
30
|
-
- one section per requested dimension
|
|
31
|
-
- a consolidated verdict: `GO`, `GO-WITH-CHANGES`, or `HOLD`
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Spec Preflight and Routing — Resolve What Runs
|
|
2
|
-
|
|
3
|
-
Before dispatching any phase:
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
[ ! -d ".flow" ] && {
|
|
7
|
-
echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first.";
|
|
8
|
-
exit 1;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
SPEC_NAME=$(cat .flow/.active-spec 2>/dev/null)
|
|
12
|
-
if [ -z "$SPEC_NAME" ]; then
|
|
13
|
-
echo "✗ No active spec. Run /curdx-flow:start <name> \"<goal>\" first.";
|
|
14
|
-
exit 1;
|
|
15
|
-
fi
|
|
16
|
-
SPEC_DIR=".flow/specs/$SPEC_NAME"
|
|
17
|
-
STATE_FILE="$SPEC_DIR/.state.json"
|
|
18
|
-
[ ! -f "$STATE_FILE" ] && { echo "✗ Missing $STATE_FILE"; exit 1; }
|
|
19
|
-
|
|
20
|
-
FLAG_PHASE=$(echo "$ARGUMENTS" | grep -oP -- '--phase=\K[^\s]+' || true)
|
|
21
|
-
FLAG_UNTIL=$(echo "$ARGUMENTS" | grep -oP -- '--until=\K[^\s]+' || true)
|
|
22
|
-
FLAG_REVIEW=$(echo "$ARGUMENTS" | grep -oP -- '--review(?:=[^\s]+)?' || true)
|
|
23
|
-
FLAG_REGENERATE=$(echo "$ARGUMENTS" | grep -q -- '--regenerate' && echo "1" || echo "0")
|
|
24
|
-
|
|
25
|
-
if [ -n "$FLAG_PHASE" ] && [ -n "$FLAG_UNTIL" ]; then
|
|
26
|
-
echo "✗ --phase and --until cannot be combined. Pick one.";
|
|
27
|
-
exit 1;
|
|
28
|
-
fi
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
The ordered pipeline is:
|
|
32
|
-
|
|
33
|
-
```text
|
|
34
|
-
research -> requirements -> design -> tasks
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Routing rules:
|
|
38
|
-
|
|
39
|
-
- no flags -> start at `.state.json.phase`, run forward to `tasks`
|
|
40
|
-
- `--phase=design` -> run only `design`
|
|
41
|
-
- `--phase=design,tasks` -> run `design` then `tasks`
|
|
42
|
-
- `--until=design` -> start at `.state.json.phase`, stop after `design`
|
|
43
|
-
- `--regenerate` -> clear targeted phase output before rerunning it
|
|
44
|
-
|
|
45
|
-
Advance `.state.json.phase` only after the targeted artifact lands and passes
|
|
46
|
-
`references/artifact-landing.md`.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Spec Reporting — Final Summary and Handoff
|
|
2
|
-
|
|
3
|
-
End with a compact execution summary:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
✓ Spec <name> refreshed
|
|
7
|
-
Phases run: research, requirements, design, tasks
|
|
8
|
-
Review dims: ceo, eng, design, dx (if --review was used)
|
|
9
|
-
Files:
|
|
10
|
-
.flow/specs/<name>/research.md
|
|
11
|
-
.flow/specs/<name>/requirements.md
|
|
12
|
-
.flow/specs/<name>/design.md
|
|
13
|
-
.flow/specs/<name>/tasks.md
|
|
14
|
-
.flow/specs/<name>/spec-review.md (if --review was used)
|
|
15
|
-
|
|
16
|
-
Next: /curdx-flow:implement
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Do not summarize the full content of the artifacts inline. The files are the
|
|
20
|
-
deliverables; the closing message only confirms what ran and where the outputs
|
|
21
|
-
landed.
|
package/skills/start/SKILL.md
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: start
|
|
3
|
-
description: Create, resume, list, or switch the active feature spec.
|
|
4
|
-
when_to_use: Use when the user wants to create a spec, switch active work, resume a prior spec, list specs, or set the workflow mode for a feature.
|
|
5
|
-
argument-hint: "[<spec-name>] [\"<one-line goal>\"] [--resume] [--list] [--mode=<fast|standard|enterprise>]"
|
|
6
|
-
disable-model-invocation: true
|
|
7
|
-
allowed-tools: [Read, Write, Bash, AskUserQuestion, Agent]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Start or Resume a Feature Spec
|
|
11
|
-
|
|
12
|
-
Entry point for every feature. Keep this skill focused on argument parsing,
|
|
13
|
-
branch selection, state seeding, and next-step routing. Detailed branch behavior
|
|
14
|
-
and workflow handoff rules live in:
|
|
15
|
-
|
|
16
|
-
- `references/preflight.md`
|
|
17
|
-
- `references/branch-routing.md`
|
|
18
|
-
- `references/state-seeding.md`
|
|
19
|
-
- `references/mode-semantics.md`
|
|
20
|
-
- `references/workflow-handoff.md`
|
|
21
|
-
- `references/reporting.md`
|
|
22
|
-
|
|
23
|
-
## Invocation Patterns
|
|
24
|
-
|
|
25
|
-
| Pattern | Behavior |
|
|
26
|
-
|---------|----------|
|
|
27
|
-
| `/curdx-flow:start my-feature "Add JWT auth to REST API"` | Create a fresh spec named `my-feature`, set it active, seed draft requirements. |
|
|
28
|
-
| `/curdx-flow:start my-feature` (name exists) | Switch active spec to `my-feature` (same as v1 `/switch`). |
|
|
29
|
-
| `/curdx-flow:start --resume` | Resume the last active spec from `.flow/.active-spec`. |
|
|
30
|
-
| `/curdx-flow:start --list` | List all specs with their phase and last-updated time, prompt to pick. |
|
|
31
|
-
| `/curdx-flow:start` (no args) | Interactive: ask the user whether to create new, resume recent, or list all. |
|
|
32
|
-
| Add `--mode=<fast\|standard\|enterprise>` | Set the execution mode for this spec (stored in `.state.json`). |
|
|
33
|
-
|
|
34
|
-
## Preflight
|
|
35
|
-
|
|
36
|
-
Use `references/preflight.md` for the project-level guard.
|
|
37
|
-
|
|
38
|
-
## Flag Parsing
|
|
39
|
-
|
|
40
|
-
Do not shell-split `$ARGUMENTS`. Parse flags and positional arguments using the
|
|
41
|
-
rules in `references/branch-routing.md`.
|
|
42
|
-
|
|
43
|
-
Hard constraints:
|
|
44
|
-
|
|
45
|
-
- Flags allowed: `--resume`, `--list`, `--mode=<fast|standard|enterprise>`
|
|
46
|
-
- First positional token -> `SPEC_NAME`
|
|
47
|
-
- Remaining trimmed content -> `GOAL`
|
|
48
|
-
- `SPEC_NAME` must be kebab-case per `schemas/spec-state.schema.json`
|
|
49
|
-
- Invalid mode -> warn and fall back to `standard`
|
|
50
|
-
|
|
51
|
-
## Branch Selection
|
|
52
|
-
|
|
53
|
-
Use `references/branch-routing.md` for the full branch contract:
|
|
54
|
-
|
|
55
|
-
- Branch A: `--list`
|
|
56
|
-
- Branch B: `--resume`
|
|
57
|
-
- Branch C: existing `SPEC_NAME`
|
|
58
|
-
- Branch D: new `SPEC_NAME`
|
|
59
|
-
- Branch E: no args / no flags
|
|
60
|
-
|
|
61
|
-
If a new spec must be created, seed `.state.json`, `.flow/.active-spec`, and
|
|
62
|
-
`.progress.md` using `references/state-seeding.md`.
|
|
63
|
-
|
|
64
|
-
## Mode Semantics
|
|
65
|
-
|
|
66
|
-
Use `references/mode-semantics.md` for the workflow defaults implied by
|
|
67
|
-
`mode`.
|
|
68
|
-
|
|
69
|
-
## Post-Create and Resume Handoff
|
|
70
|
-
|
|
71
|
-
The next-command routing rules are centralized in
|
|
72
|
-
`references/workflow-handoff.md`.
|
|
73
|
-
|
|
74
|
-
User-visible create/switch/resume summaries live in `references/reporting.md`.
|
|
75
|
-
For a newly created spec, the immediate handoff remains:
|
|
76
|
-
|
|
77
|
-
```text
|
|
78
|
-
Next: /curdx-flow:spec
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## References
|
|
82
|
-
|
|
83
|
-
- State schema: `@${CLAUDE_PLUGIN_ROOT}/schemas/spec-state.schema.json`
|
|
84
|
-
- Mode semantics: `@${CLAUDE_PLUGIN_ROOT}/knowledge/execution-strategies.md`
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Branch Routing — Start Skill Control Flow
|
|
2
|
-
|
|
3
|
-
## Argument Parsing Rules
|
|
4
|
-
|
|
5
|
-
Do not shell-split `$ARGUMENTS`.
|
|
6
|
-
|
|
7
|
-
1. Detect and remove these flags from the raw string:
|
|
8
|
-
- `--resume`
|
|
9
|
-
- `--list`
|
|
10
|
-
- `--mode=<fast|standard|enterprise>`
|
|
11
|
-
2. After flags are removed:
|
|
12
|
-
- first whitespace-delimited token -> `SPEC_NAME`
|
|
13
|
-
- remaining trimmed text -> `GOAL`
|
|
14
|
-
- strip one outer layer of matching single or double quotes from `GOAL`
|
|
15
|
-
3. Reject unknown flags instead of ignoring them.
|
|
16
|
-
|
|
17
|
-
## Branches
|
|
18
|
-
|
|
19
|
-
### Branch A — `--list`
|
|
20
|
-
|
|
21
|
-
- enumerate `.flow/specs/*`
|
|
22
|
-
- read each `.state.json`
|
|
23
|
-
- show phase + updated timestamp
|
|
24
|
-
- use `AskUserQuestion` to choose
|
|
25
|
-
- set `.flow/.active-spec`
|
|
26
|
-
|
|
27
|
-
### Branch B — `--resume`
|
|
28
|
-
|
|
29
|
-
- read `.flow/.active-spec`
|
|
30
|
-
- if stale or missing, fall back to Branch A
|
|
31
|
-
- report current phase and route using `references/workflow-handoff.md`
|
|
32
|
-
|
|
33
|
-
### Branch C — Existing `SPEC_NAME`
|
|
34
|
-
|
|
35
|
-
- switch `.flow/.active-spec` to that spec
|
|
36
|
-
- confirm if the user likely intended to switch rather than overwrite
|
|
37
|
-
- report current phase
|
|
38
|
-
|
|
39
|
-
### Branch D — New `SPEC_NAME`
|
|
40
|
-
|
|
41
|
-
- gather missing `GOAL` if necessary
|
|
42
|
-
- create state and progress files using `references/state-seeding.md`
|
|
43
|
-
- set `.flow/.active-spec`
|
|
44
|
-
|
|
45
|
-
### Branch E — No args / no flags
|
|
46
|
-
|
|
47
|
-
Ask the user to choose:
|
|
48
|
-
|
|
49
|
-
- create a new spec
|
|
50
|
-
- resume the last active spec
|
|
51
|
-
- list all specs
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Start Mode Semantics — What Each Mode Implies
|
|
2
|
-
|
|
3
|
-
The `mode` field in `.state.json` drives later workflow defaults:
|
|
4
|
-
|
|
5
|
-
| Mode | `/curdx-flow:spec` default | `/curdx-flow:implement` default | Gates applied |
|
|
6
|
-
|------|---------------------------|--------------------------------|---------------|
|
|
7
|
-
| `fast` | skipped (use `/curdx-flow:fast` instead) | linear strategy | karpathy + verification |
|
|
8
|
-
| `standard` | full 4 phases | auto strategy | + tdd + coverage-audit |
|
|
9
|
-
| `enterprise` | full 4 phases + `--review=all` | auto strategy + stricter gates | + adversarial + edge-case + security + devex |
|
|
10
|
-
|
|
11
|
-
If an invalid mode is provided during argument parsing, warn and fall back to
|
|
12
|
-
`standard`.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Start Preflight — Project Must Be Initialized
|
|
2
|
-
|
|
3
|
-
Before parsing arguments or touching spec state:
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
[ ! -d ".flow" ] && {
|
|
7
|
-
echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first.";
|
|
8
|
-
exit 1;
|
|
9
|
-
}
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
`/curdx-flow:start` is the first mutable workflow entrypoint after init. If the
|
|
13
|
-
project scaffold is missing, stop immediately instead of attempting recovery.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Start Reporting — User-Facing Summaries
|
|
2
|
-
|
|
3
|
-
For a newly created spec, report:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
✓ Spec ready: <name>
|
|
7
|
-
Goal: <goal>
|
|
8
|
-
Mode: <mode>
|
|
9
|
-
Path: .flow/specs/<name>/
|
|
10
|
-
|
|
11
|
-
Next: /curdx-flow:spec
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
For resume and switch flows, keep the message short:
|
|
15
|
-
|
|
16
|
-
- identify the active spec
|
|
17
|
-
- state the current phase when known
|
|
18
|
-
- route using `references/workflow-handoff.md`
|
|
19
|
-
|
|
20
|
-
Do not restate the full workflow. Point to the immediate next command only.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# State Seeding — New Spec Bootstrap
|
|
2
|
-
|
|
3
|
-
When creating a fresh spec, use `Write` for all files so Claude checkpoints can
|
|
4
|
-
rewind the bootstrap cleanly.
|
|
5
|
-
|
|
6
|
-
## `.state.json`
|
|
7
|
-
|
|
8
|
-
Required shape:
|
|
9
|
-
|
|
10
|
-
```json
|
|
11
|
-
{
|
|
12
|
-
"version": "1.0",
|
|
13
|
-
"spec_name": "$SPEC_NAME",
|
|
14
|
-
"goal": "$GOAL",
|
|
15
|
-
"mode": "$FLAG_MODE",
|
|
16
|
-
"phase": "research",
|
|
17
|
-
"phase_status": {},
|
|
18
|
-
"strategy": "auto",
|
|
19
|
-
"execute_state": {},
|
|
20
|
-
"created": "YYYY-MM-DD",
|
|
21
|
-
"updated": "YYYY-MM-DDTHH:MM:SSZ"
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## `.progress.md`
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
# Progress Log — $SPEC_NAME
|
|
29
|
-
|
|
30
|
-
**Goal**: $GOAL
|
|
31
|
-
**Mode**: $FLAG_MODE
|
|
32
|
-
**Created**: YYYY-MM-DD
|
|
33
|
-
|
|
34
|
-
## Decisions
|
|
35
|
-
(populated during /curdx-flow:spec)
|
|
36
|
-
|
|
37
|
-
## Learnings
|
|
38
|
-
(populated during /curdx-flow:implement)
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Activation
|
|
42
|
-
|
|
43
|
-
Write `.flow/.active-spec` last, after the spec directory and both artifacts
|
|
44
|
-
exist.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Workflow Handoff — What Comes Next
|
|
2
|
-
|
|
3
|
-
`/curdx-flow:start` is the entrypoint, but it should route users to the right
|
|
4
|
-
next command based on current phase.
|
|
5
|
-
|
|
6
|
-
## New Spec
|
|
7
|
-
|
|
8
|
-
After a fresh spec is created:
|
|
9
|
-
|
|
10
|
-
```text
|
|
11
|
-
Next: /curdx-flow:spec
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Resume / Switch Routing
|
|
15
|
-
|
|
16
|
-
When resuming an existing spec:
|
|
17
|
-
|
|
18
|
-
- `phase` before `tasks` completion -> suggest `/curdx-flow:spec`
|
|
19
|
-
- `tasks` completed but execution not complete -> suggest `/curdx-flow:implement`
|
|
20
|
-
- `execute` completed but verification missing or failed -> suggest `/curdx-flow:verify`
|
|
21
|
-
- `verify` completed but review missing or failed -> suggest `/curdx-flow:review`
|
|
22
|
-
- both verification and review completed -> report evidence-backed handoff is
|
|
23
|
-
ready for human PR/release work
|
|
24
|
-
|
|
25
|
-
Do not invent non-existent ship commands. The workflow ends at human handoff
|
|
26
|
-
with persisted evidence.
|