@curdx/flow 2.2.4 → 2.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.
Files changed (131) hide show
  1. package/.claude-plugin/marketplace.json +3 -2
  2. package/.claude-plugin/plugin.json +27 -1
  3. package/CHANGELOG.md +9 -564
  4. package/README.md +49 -113
  5. package/agents/flow-adversary.md +1 -0
  6. package/agents/flow-architect.md +9 -36
  7. package/agents/flow-brownfield-analyst.md +7 -18
  8. package/agents/flow-debugger.md +1 -0
  9. package/agents/flow-edge-hunter.md +1 -0
  10. package/agents/flow-executor.md +1 -0
  11. package/agents/flow-orchestrator.md +145 -0
  12. package/agents/flow-planner.md +11 -37
  13. package/agents/flow-product-designer.md +9 -41
  14. package/agents/flow-qa-engineer.md +1 -0
  15. package/agents/flow-researcher.md +9 -45
  16. package/agents/flow-reviewer.md +1 -0
  17. package/agents/flow-security-auditor.md +1 -0
  18. package/agents/flow-triage-analyst.md +1 -0
  19. package/agents/flow-ui-researcher.md +1 -0
  20. package/agents/flow-ux-designer.md +1 -0
  21. package/agents/flow-verifier.md +1 -0
  22. package/cli/install-companions.js +8 -8
  23. package/cli/install-next-steps.js +3 -1
  24. package/cli/lib/doctor-claude-settings.js +1 -0
  25. package/cli/lib/doctor-report.js +1 -1
  26. package/gates/coverage-audit-gate.md +1 -3
  27. package/gates/tdd-gate.md +0 -6
  28. package/gates/verification-gate.md +1 -5
  29. package/hooks/scripts/common.sh +7 -0
  30. package/hooks/scripts/session-start.sh +1 -1
  31. package/hooks/scripts/stop-watcher.sh +8 -0
  32. package/knowledge/artifact-output-discipline.md +24 -0
  33. package/knowledge/artifact-summary-contracts.md +50 -0
  34. package/knowledge/claude-code-runtime-contracts.md +13 -1
  35. package/knowledge/execution-strategies.md +6 -4
  36. package/knowledge/poc-first-workflow.md +2 -6
  37. package/knowledge/spec-driven-development.md +0 -4
  38. package/knowledge/systematic-debugging.md +0 -6
  39. package/knowledge/two-stage-review.md +8 -6
  40. package/knowledge/wave-execution.md +2 -1
  41. package/monitors/monitors.json +8 -0
  42. package/monitors/scripts/flow-state-monitor.sh +99 -0
  43. package/package.json +3 -2
  44. package/schemas/agent-frontmatter.schema.json +4 -0
  45. package/settings.json +1 -0
  46. package/skills/brownfield-index/SKILL.md +14 -20
  47. package/skills/brownfield-index/references/applicability.md +12 -0
  48. package/skills/brownfield-index/references/handoff.md +8 -0
  49. package/skills/brownfield-index/references/index-contract.md +10 -0
  50. package/skills/browser-qa/SKILL.md +15 -35
  51. package/skills/browser-qa/references/handoff.md +6 -0
  52. package/skills/browser-qa/references/prerequisites.md +10 -0
  53. package/skills/browser-qa/references/qa-contract.md +20 -0
  54. package/skills/cancel/SKILL.md +20 -61
  55. package/skills/cancel/references/destructive-mode.md +17 -0
  56. package/skills/cancel/references/reporting.md +18 -0
  57. package/skills/cancel/references/state-recovery.md +30 -0
  58. package/skills/cancel/references/target-resolution.md +7 -0
  59. package/skills/debug/SKILL.md +23 -87
  60. package/skills/debug/references/context-gathering.md +11 -0
  61. package/skills/debug/references/failure-guard.md +25 -0
  62. package/skills/debug/references/intake.md +12 -0
  63. package/skills/debug/references/phase-workflow.md +34 -0
  64. package/skills/debug/references/reporting.md +20 -0
  65. package/skills/epic/SKILL.md +18 -50
  66. package/skills/epic/references/epic-artifacts.md +20 -0
  67. package/skills/epic/references/epic-intake.md +9 -0
  68. package/skills/epic/references/slice-handoff.md +16 -0
  69. package/skills/fast/SKILL.md +34 -102
  70. package/skills/fast/references/applicability.md +25 -0
  71. package/skills/fast/references/clarification.md +20 -0
  72. package/skills/fast/references/execution-contract.md +56 -0
  73. package/skills/help/SKILL.md +26 -132
  74. package/skills/help/references/dispatch.md +20 -0
  75. package/skills/help/references/overview.md +39 -0
  76. package/skills/help/references/troubleshoot.md +47 -0
  77. package/skills/help/references/workflow.md +37 -0
  78. package/skills/implement/SKILL.md +61 -237
  79. package/skills/implement/references/error-recovery.md +36 -0
  80. package/skills/implement/references/linear-execution.md +32 -0
  81. package/skills/implement/references/preflight.md +43 -0
  82. package/skills/implement/references/progress-contract.md +32 -0
  83. package/skills/implement/references/state-init.md +33 -0
  84. package/skills/implement/references/stop-hook-execution.md +36 -0
  85. package/skills/implement/references/strategy-router.md +38 -0
  86. package/skills/implement/references/subagent-execution.md +43 -0
  87. package/skills/init/SKILL.md +26 -95
  88. package/skills/init/references/gitignore-and-health.md +26 -0
  89. package/skills/init/references/next-steps.md +22 -0
  90. package/skills/init/references/preflight.md +15 -0
  91. package/skills/init/references/scaffold-contract.md +27 -0
  92. package/skills/review/SKILL.md +45 -153
  93. package/skills/review/references/optional-passes.md +48 -0
  94. package/skills/review/references/preflight.md +38 -0
  95. package/skills/review/references/report-contract.md +49 -0
  96. package/skills/review/references/reporting.md +20 -0
  97. package/skills/review/references/stage-execution.md +32 -0
  98. package/skills/security-audit/SKILL.md +16 -34
  99. package/skills/security-audit/references/audit-contract.md +21 -0
  100. package/skills/security-audit/references/gate-handoff.md +8 -0
  101. package/skills/security-audit/references/scope-and-depth.md +9 -0
  102. package/skills/spec/SKILL.md +55 -182
  103. package/skills/spec/references/artifact-landing.md +31 -0
  104. package/skills/spec/references/phase-execution.md +50 -0
  105. package/skills/spec/references/planning-review.md +31 -0
  106. package/skills/spec/references/preflight-and-routing.md +46 -0
  107. package/skills/spec/references/reporting.md +21 -0
  108. package/skills/start/SKILL.md +40 -123
  109. package/skills/start/references/branch-routing.md +51 -0
  110. package/skills/start/references/mode-semantics.md +12 -0
  111. package/skills/start/references/preflight.md +13 -0
  112. package/skills/start/references/reporting.md +20 -0
  113. package/skills/start/references/state-seeding.md +44 -0
  114. package/skills/start/references/workflow-handoff.md +26 -0
  115. package/skills/status/SKILL.md +17 -61
  116. package/skills/status/references/gather-contract.md +27 -0
  117. package/skills/status/references/health-rules.md +27 -0
  118. package/skills/status/references/output-contract.md +24 -0
  119. package/skills/status/references/preflight.md +10 -0
  120. package/skills/status/references/recovery-hints.md +18 -0
  121. package/skills/ui-sketch/SKILL.md +15 -34
  122. package/skills/ui-sketch/references/brief-intake.md +10 -0
  123. package/skills/ui-sketch/references/iteration-handoff.md +5 -0
  124. package/skills/ui-sketch/references/variant-contract.md +15 -0
  125. package/skills/verify/SKILL.md +31 -86
  126. package/skills/verify/references/evidence-workflow.md +39 -0
  127. package/skills/verify/references/output-contract.md +23 -0
  128. package/skills/verify/references/preflight.md +11 -0
  129. package/skills/verify/references/report-handoff.md +35 -0
  130. package/skills/verify/references/strict-mode.md +12 -0
  131. package/README.zh.md +0 -160
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: start
3
- description: Smart entry point — create a new spec, resume an existing one, or switch between specs. Replaces v1's /start + /switch.
3
+ description: Create, resume, list, or switch the active feature spec.
4
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
5
  argument-hint: "[<spec-name>] [\"<one-line goal>\"] [--resume] [--list] [--mode=<fast|standard|enterprise>]"
6
6
  disable-model-invocation: true
@@ -9,9 +9,18 @@ allowed-tools: [Read, Write, Bash, AskUserQuestion, Agent]
9
9
 
10
10
  # Start or Resume a Feature Spec
11
11
 
12
- Entry point for every feature. Works in four modes depending on flags and existing state.
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:
13
15
 
14
- ## Invocation patterns
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
15
24
 
16
25
  | Pattern | Behavior |
17
26
  |---------|----------|
@@ -24,140 +33,48 @@ Entry point for every feature. Works in four modes depending on flags and existi
24
33
 
25
34
  ## Preflight
26
35
 
27
- ```bash
28
- # Require a .flow project
29
- [ ! -d ".flow" ] && {
30
- echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first.";
31
- exit 1;
32
- }
33
- ```
36
+ Use `references/preflight.md` for the project-level guard.
34
37
 
35
- ## Flag parsing
36
-
37
- **Do not shell-split `$ARGUMENTS`.** It is a user-supplied string that may
38
- contain quoted substrings with spaces, `$`-signs, or embedded quotes.
39
- `xargs`, naive `awk`, and `sed`-based quote stripping all mis-parse at
40
- least one of those cases (e.g. `my-feature "Fix user's login bug"` breaks
41
- `xargs: unmatched quote`). Parse the string as a model task instead:
42
-
43
- 1. **Flags** (order-independent, each is self-delimited):
44
- - `--resume` / `--list` — boolean presence
45
- - `--mode=<fast|standard|enterprise>` — value after `=`
46
- Detect each with a single regex over the full `$ARGUMENTS` string and
47
- remove the matched span from your working copy. Flags not in the list
48
- above are errors — surface them to the user.
49
-
50
- 2. **Positional args** (after flags removed):
51
- - First whitespace-separated token → `SPEC_NAME` (kebab-case `[a-z0-9-]+`).
52
- - Remainder of the string, trimmed and with one layer of outer `"..."`
53
- or `'...'` quotes stripped → `GOAL`. Preserve inner quotes as-is.
54
-
55
- 3. If `SPEC_NAME` does not match `^[a-z0-9][a-z0-9-]*$` (per
56
- `schemas/spec-state.schema.json`), stop and ask the user to pick a
57
- valid kebab-case name.
58
-
59
- Mode must be `fast`, `standard`, or `enterprise`. Invalid → default to
60
- `standard` with a warning.
61
-
62
- Example inputs and their parse:
63
-
64
- | `$ARGUMENTS` | SPEC_NAME | GOAL | flags |
65
- |-------------------------------------------------|--------------|-------------------------------|---------------|
66
- | `my-feature "Add JWT auth"` | `my-feature` | `Add JWT auth` | — |
67
- | `my-feature --mode=fast "Add JWT auth"` | `my-feature` | `Add JWT auth` | mode=fast |
68
- | `my-feature "Fix user's login bug"` | `my-feature` | `Fix user's login bug` | — |
69
- | `--list` | — | — | list=true |
70
- | `--resume` | — | — | resume=true |
71
-
72
- ## Branch logic
73
-
74
- ### Branch A: `--list`
75
- Enumerate every directory under `.flow/specs/`, read each `.state.json` for `phase` and `updated` (per `schemas/spec-state.schema.json`), print a numbered list, then `AskUserQuestion` to pick one. Picking sets `.flow/.active-spec` and exits.
76
-
77
- ### Branch B: `--resume` (no name)
78
- Read `.flow/.active-spec`. If it points to a valid spec dir, report its current phase and next suggested command (`/curdx-flow:spec` if incomplete, `/curdx-flow:implement` if tasks ready). If `.active-spec` is empty or stale, fall back to Branch A.
79
-
80
- ### Branch C: `SPEC_NAME` provided, spec exists
81
- Switch `.flow/.active-spec` to `SPEC_NAME`. Confirm with the user if they intended to switch (not overwrite). Report current phase.
82
-
83
- ### Branch D: `SPEC_NAME` provided, spec does NOT exist
84
- Create a new spec:
85
-
86
- Use the `Write` tool for `.flow/specs/$SPEC_NAME/.state.json` and `.flow/.active-spec` so Claude Code checkpoints can rewind the new spec. The state file must match `schemas/spec-state.schema.json`:
87
-
88
- - `spec_name`, not `spec`
89
- - `created` as date, not `created_at`
90
- - `updated` as date-time, not `updated_at`
91
- - `phase` starts as `research`; there is no `created` phase
92
- - `version` is required
93
-
94
- Initial state JSON shape:
95
-
96
- ```json
97
- {
98
- "version": "1.0",
99
- "spec_name": "$SPEC_NAME",
100
- "goal": "$GOAL",
101
- "mode": "$FLAG_MODE",
102
- "phase": "research",
103
- "phase_status": {},
104
- "strategy": "auto",
105
- "execute_state": {},
106
- "created": "YYYY-MM-DD",
107
- "updated": "YYYY-MM-DDTHH:MM:SSZ"
108
- }
109
- ```
38
+ ## Flag Parsing
110
39
 
111
- If `GOAL` is empty, `AskUserQuestion` to gather it before writing `.state.json`.
40
+ Do not shell-split `$ARGUMENTS`. Parse flags and positional arguments using the
41
+ rules in `references/branch-routing.md`.
112
42
 
113
- Then seed a minimal `.progress.md`:
43
+ Hard constraints:
114
44
 
115
- Use the `Write` tool for `.flow/specs/$SPEC_NAME/.progress.md`:
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`
116
50
 
117
- ```markdown
118
- # Progress Log — $SPEC_NAME
51
+ ## Branch Selection
119
52
 
120
- **Goal**: $GOAL
121
- **Mode**: $FLAG_MODE
122
- **Created**: YYYY-MM-DD
53
+ Use `references/branch-routing.md` for the full branch contract:
123
54
 
124
- ## Decisions
125
- (populated during /curdx-flow:spec)
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
126
60
 
127
- ## Learnings
128
- (populated during /curdx-flow:implement)
129
- ```
61
+ If a new spec must be created, seed `.state.json`, `.flow/.active-spec`, and
62
+ `.progress.md` using `references/state-seeding.md`.
130
63
 
131
- ### Branch E: no args, no flags
132
- ```
133
- AskUserQuestion:
134
- "No spec name given. What would you like to do?"
135
- Options:
136
- - Create a new spec (prompts for name + goal)
137
- - Resume the last active spec
138
- - List all specs
139
- ```
140
-
141
- Route to the matching branch.
64
+ ## Mode Semantics
142
65
 
143
- ## Mode semantics
66
+ Use `references/mode-semantics.md` for the workflow defaults implied by
67
+ `mode`.
144
68
 
145
- The `mode` field in `.state.json` drives behavior in later commands:
69
+ ## Post-Create and Resume Handoff
146
70
 
147
- | Mode | `/curdx-flow:spec` default | `/curdx-flow:implement` default | Gates applied |
148
- |------|---------------------------|--------------------------------|---------------|
149
- | `fast` | skipped (use `/curdx-flow:fast` instead) | linear strategy | karpathy + verification |
150
- | `standard` | full 4 phases | auto strategy | + tdd + coverage-audit |
151
- | `enterprise` | full 4 phases + `--review=all` | auto strategy + stricter gates | + adversarial + edge-case + security |
71
+ The next-command routing rules are centralized in
72
+ `references/workflow-handoff.md`.
152
73
 
153
- ## Post-create reporting
154
-
155
- ```
156
- ✓ Spec ready: <name>
157
- Goal: <goal>
158
- Mode: <mode>
159
- Path: .flow/specs/<name>/
74
+ User-visible create/switch/resume summaries live in `references/reporting.md`.
75
+ For a newly created spec, the immediate handoff remains:
160
76
 
77
+ ```text
161
78
  Next: /curdx-flow:spec
162
79
  ```
163
80
 
@@ -0,0 +1,51 @@
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
@@ -0,0 +1,12 @@
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`.
@@ -0,0 +1,13 @@
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.
@@ -0,0 +1,20 @@
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.
@@ -0,0 +1,44 @@
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.
@@ -0,0 +1,26 @@
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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: status
3
- description: Show CurdX-Flow project/spec status, active spec, phase, task progress, artifacts, and recovery hints.
3
+ description: Show active spec health, progress, artifacts, and recovery hints.
4
4
  when_to_use: Use when the user asks what is active, which phase a spec is in, what artifacts exist, or how to recover from interrupted execution.
5
5
  argument-hint: "[--all]"
6
6
  disable-model-invocation: true
@@ -9,77 +9,33 @@ allowed-tools: [Read, Bash, Glob]
9
9
 
10
10
  # CurdX-Flow Status
11
11
 
12
- Show a compact, read-only status summary for the current project.
12
+ Show a compact, read-only status summary for the current project. Keep this
13
+ entrypoint focused on read-only inventory, health classification, and recovery
14
+ hints. Detailed health and recovery rules live in:
15
+
16
+ - `references/preflight.md`
17
+ - `references/gather-contract.md`
18
+ - `references/health-rules.md`
19
+ - `references/recovery-hints.md`
20
+ - `references/output-contract.md`
13
21
 
14
22
  ## Preconditions
15
23
 
16
- ```bash
17
- [ ! -d ".flow" ] && { echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first."; exit 1; }
18
- ```
24
+ Use `references/preflight.md` for the project-level guard.
19
25
 
20
26
  ## Gather
21
27
 
22
- 1. Read `.flow/.active-spec` if present.
23
- 2. List `.flow/specs/*/` directories.
24
- 3. For each spec, check artifacts:
25
- - `research.md`
26
- - `requirements.md`
27
- - `design.md`
28
- - `tasks.md`
29
- - `verification-report.md`
30
- - `review-report.md`
31
- 4. If `.state.json` exists, read:
32
- - `phase`
33
- - `strategy`
34
- - `phase_status`
35
- - `execute_state.task_index`
36
- - `execute_state.total_tasks`
37
- - `execute_state.failed_attempts`
38
- - `execute_state.global_iteration`
39
- 5. If `tasks.md` exists, count:
40
- - completed tasks: lines matching `- [x] **`
41
- - open tasks: lines matching `- [ ] **`
28
+ Use `references/gather-contract.md` for the full read-only inventory contract.
42
29
 
43
30
  ## Output Format
44
31
 
45
- ```markdown
46
- # CurDX-Flow Status
47
-
48
- Project: <cwd>
49
- Active spec: <name | none>
50
-
51
- ## Specs
52
-
53
- ### <spec-name> [ACTIVE]
54
- Phase: <phase | unknown>
55
- Strategy: <strategy | auto>
56
- Tasks: <done>/<total from tasks.md> checked, state cursor <task_index>/<total_tasks>
57
- Failures: <failed_attempts>, rounds: <global_iteration>
58
- Artifacts: [x] research [x] requirements [x] design [x] tasks [ ] verify [ ] review
59
- Health: OK | NEEDS_ATTENTION
60
- Recovery: <one concrete next command>
61
- ```
62
-
63
- ## Health Rules
64
-
65
- - `OK`: state and tasks agree, no failed attempts, no missing current-phase artifact.
66
- - `NEEDS_ATTENTION`: any of these:
67
- - `.state.json` says execute complete but `tasks.md` has open tasks.
68
- - failed attempts > 0.
69
- - active spec points to a missing directory.
70
- - current phase's expected artifact is missing or too small.
71
-
72
- ## Recovery Hints
32
+ Use `references/output-contract.md` for the compact markdown report shape.
73
33
 
74
- - No `.flow/`: `/curdx-flow:init`
75
- - No active spec: `/curdx-flow:start <name> "<goal>"`
76
- - In spec phase with missing artifact: `/curdx-flow:spec --resume`
77
- - Execute in progress: `/curdx-flow:implement --task=next`
78
- - Stop-hook appears stuck: `/curdx-flow:cancel` then `/curdx-flow:implement --strategy=subagent`
79
- - Verify missing after execute complete: `/curdx-flow:verify`
80
- - Review missing after verify pass: `/curdx-flow:review`
34
+ Use `references/health-rules.md` to compute `Health`, and
35
+ `references/recovery-hints.md` to compute the single best next action.
81
36
 
82
37
  ## Strictness
83
38
 
84
39
  - Read-only. Do not modify files.
85
- - Do not claim a spec is complete from `.state.json` alone; compare `tasks.md` checkboxes.
40
+ - Do not claim a spec is complete from `.state.json` alone; compare `tasks.md`
41
+ checkboxes.
@@ -0,0 +1,27 @@
1
+ # Status Gather Contract — What to Read
2
+
3
+ Gather read-only state in this order:
4
+
5
+ 1. Read `.flow/.active-spec` if present.
6
+ 2. List `.flow/specs/*/` directories.
7
+ 3. For each spec, check artifacts:
8
+ - `research.md`
9
+ - `requirements.md`
10
+ - `design.md`
11
+ - `tasks.md`
12
+ - `verification-report.md`
13
+ - `review-report.md`
14
+ 4. If `.state.json` exists, read:
15
+ - `phase`
16
+ - `strategy`
17
+ - `phase_status`
18
+ - `execute_state.task_index`
19
+ - `execute_state.total_tasks`
20
+ - `execute_state.failed_attempts`
21
+ - `execute_state.global_iteration`
22
+ 5. If `tasks.md` exists, count:
23
+ - completed tasks: lines matching `- [x] **`
24
+ - open tasks: lines matching `- [ ] **`
25
+
26
+ Do not mutate files while gathering. `status` is an observer, not a repair
27
+ workflow.
@@ -0,0 +1,27 @@
1
+ # Status Health Rules — Canonical Evaluation
2
+
3
+ ## `OK`
4
+
5
+ Use `OK` only when:
6
+
7
+ - state and tasks agree
8
+ - failed attempts are zero
9
+ - the current phase's expected artifact exists
10
+
11
+ ## `NEEDS_ATTENTION`
12
+
13
+ Use `NEEDS_ATTENTION` when any of these is true:
14
+
15
+ - `.state.json` says execute complete but `tasks.md` still has open tasks
16
+ - `failed_attempts > 0`
17
+ - `.flow/.active-spec` points to a missing directory
18
+ - the current phase's expected artifact is missing or obviously truncated
19
+
20
+ ## Artifact Expectations
21
+
22
+ - `research` -> `research.md`
23
+ - `requirements` -> `requirements.md`
24
+ - `design` -> `design.md`
25
+ - `tasks` / `execute` -> `tasks.md`
26
+ - `verify` -> `verification-report.md`
27
+ - `review` -> `review-report.md`
@@ -0,0 +1,24 @@
1
+ # Status Output Contract — Compact Read-Only Summary
2
+
3
+ Render:
4
+
5
+ ```markdown
6
+ # CurDX-Flow Status
7
+
8
+ Project: <cwd>
9
+ Active spec: <name | none>
10
+
11
+ ## Specs
12
+
13
+ ### <spec-name> [ACTIVE]
14
+ Phase: <phase | unknown>
15
+ Strategy: <strategy | auto>
16
+ Tasks: <done>/<total from tasks.md> checked, state cursor <task_index>/<total_tasks>
17
+ Failures: <failed_attempts>, rounds: <global_iteration>
18
+ Artifacts: [x] research [x] requirements [x] design [x] tasks [ ] verify [ ] review
19
+ Health: OK | NEEDS_ATTENTION
20
+ Recovery: <one concrete next command>
21
+ ```
22
+
23
+ Keep it compact and operational. Show one best recovery command, not a list of
24
+ possible next steps.
@@ -0,0 +1,10 @@
1
+ # Status Preflight — Project Must Exist
2
+
3
+ Before reading any status signals:
4
+
5
+ ```bash
6
+ [ ! -d ".flow" ] && { echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first."; exit 1; }
7
+ ```
8
+
9
+ `status` is strictly read-only. If `.flow/` does not exist, stop immediately
10
+ and route to `/curdx-flow:init`.
@@ -0,0 +1,18 @@
1
+ # Status Recovery Hints — Single Best Next Command
2
+
3
+ Choose one concrete recovery command, not a menu.
4
+
5
+ ## Priority Rules
6
+
7
+ - No `.flow/` -> `/curdx-flow:init`
8
+ - No active spec -> `/curdx-flow:start <name> "<goal>"`
9
+ - Missing or stale spec artifact before tasks completion -> `/curdx-flow:spec`
10
+ - Tasks complete but execute not done -> `/curdx-flow:implement`
11
+ - Execute complete but verification missing or failed -> `/curdx-flow:verify`
12
+ - Verification complete but review missing or failed -> `/curdx-flow:review`
13
+ - Stop-hook or execution parity drift -> `/curdx-flow:cancel`, then `/curdx-flow:implement --strategy=subagent`
14
+
15
+ ## Constraint
16
+
17
+ Do not suggest a later-stage command when an earlier missing artifact or failed
18
+ phase blocks it.
@@ -15,44 +15,25 @@ paths:
15
15
 
16
16
  # UI Sketch
17
17
 
18
- You are invoked when the user wants fresh UI design drafts — typically 2–4 variants for comparison, or a single iterative refinement.
18
+ This skill is for design exploration, not final implementation. Keep the
19
+ entrypoint focused on design-brief intake, variant output requirements, and the
20
+ iteration handoff. Detailed rules live in:
19
21
 
20
- ## Preconditions
22
+ - `references/brief-intake.md`
23
+ - `references/variant-contract.md`
24
+ - `references/iteration-handoff.md`
21
25
 
22
- 1. The `frontend-design` skill (Anthropic official) should be installed. Without it, fall back to Tailwind + shadcn/ui defaults.
23
- 2. The user provides a description of the UI goal (component, page, or flow).
26
+ ## Design Brief
24
27
 
25
- ## Workflow
28
+ Use `references/brief-intake.md` to confirm the brief before dispatching
29
+ `flow-ux-designer`.
26
30
 
27
- ### Step 1: Clarify design brief
31
+ ## Variant Contract
28
32
 
29
- Confirm with the user:
30
- - **What is being designed** (component / page / full screen)
31
- - **Context** (consumer product / enterprise tool / marketing site / internal dashboard)
32
- - **Must-haves** (brand colors / existing design system / responsive breakpoints)
33
- - **Variant count** (default: 3 variants with distinct design directions)
33
+ The required outputs for `flow-ux-designer` and optional `flow-ui-researcher`
34
+ live in `references/variant-contract.md`.
34
35
 
35
- ### Step 2: Run via `flow-ux-designer`
36
+ ## Iteration Handoff
36
37
 
37
- This skill executes in a forked context through `flow-ux-designer`. It will:
38
- 1. Invoke the `frontend-design` skill with the brief
39
- 2. Generate N variant HTML/JSX files under `.flow/specs/<active>/sketches/`
40
- 3. For each variant, produce a rationale: typography, color, layout decisions
41
- 4. Open the variants for user preview if a dev server is running
42
-
43
- ### Step 3: Present variants
44
-
45
- Show the user:
46
- - **Variant preview URLs** or file paths
47
- - **Design rationale** per variant (what's different, why)
48
- - **Accessibility notes** (contrast ratios, focus states)
49
-
50
- ### Step 4: Iterate or finalize
51
-
52
- - If user picks a variant: move the chosen file into the spec's `design.md` asset section.
53
- - If user wants a hybrid: dispatch `flow-ux-designer` again with "merge variant A layout + variant B color scheme".
54
-
55
- ## References
56
-
57
- - `flow-ux-designer` agent: `@${CLAUDE_PLUGIN_ROOT}/agents/flow-ux-designer.md`
58
- - `flow-ui-researcher` agent (for competitive reference scraping): `@${CLAUDE_PLUGIN_ROOT}/agents/flow-ui-researcher.md`
38
+ How to pick, merge, or promote a variant lives in
39
+ `references/iteration-handoff.md`.
@@ -0,0 +1,10 @@
1
+ # UI Sketch Brief Intake — What to Clarify
2
+
3
+ Before sketching, confirm:
4
+
5
+ - what is being designed
6
+ - context (consumer, enterprise, marketing, internal tool)
7
+ - must-haves (brand, system, responsive constraints)
8
+ - variant count
9
+
10
+ If the user already provided all of this, do not over-interview.
@@ -0,0 +1,5 @@
1
+ # UI Sketch Iteration Handoff — Pick, Merge, or Promote
2
+
3
+ - if the user picks a variant, promote it into the active design discussion
4
+ - if the user wants a hybrid, rerun with an explicit merge instruction
5
+ - treat sketches as exploratory assets, not shipped implementation by default