@curdx/flow 3.0.0 → 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.
Files changed (219) hide show
  1. package/CHANGELOG.md +21 -87
  2. package/LICENSE +1 -1
  3. package/README.md +28 -129
  4. package/dist/index.mjs +995 -0
  5. package/package.json +33 -44
  6. package/.claude-plugin/marketplace.json +0 -48
  7. package/.claude-plugin/plugin.json +0 -52
  8. package/agent-preamble/preamble.md +0 -314
  9. package/agents/flow-adversary.md +0 -203
  10. package/agents/flow-architect.md +0 -198
  11. package/agents/flow-brownfield-analyst.md +0 -143
  12. package/agents/flow-debugger.md +0 -321
  13. package/agents/flow-edge-hunter.md +0 -289
  14. package/agents/flow-executor.md +0 -269
  15. package/agents/flow-orchestrator.md +0 -145
  16. package/agents/flow-planner.md +0 -247
  17. package/agents/flow-product-designer.md +0 -159
  18. package/agents/flow-qa-engineer.md +0 -282
  19. package/agents/flow-researcher.md +0 -166
  20. package/agents/flow-reviewer.md +0 -304
  21. package/agents/flow-security-auditor.md +0 -401
  22. package/agents/flow-triage-analyst.md +0 -272
  23. package/agents/flow-ui-researcher.md +0 -230
  24. package/agents/flow-ux-designer.md +0 -221
  25. package/agents/flow-verifier.md +0 -350
  26. package/bin/curdx-flow +0 -5
  27. package/bin/curdx-flow-state +0 -104
  28. package/bin/curdx-flow.js +0 -54
  29. package/cli/README.md +0 -104
  30. package/cli/doctor-workflow.js +0 -483
  31. package/cli/doctor.js +0 -73
  32. package/cli/help.js +0 -59
  33. package/cli/install-bundled-mcps.js +0 -37
  34. package/cli/install-companions.js +0 -19
  35. package/cli/install-context7-config.js +0 -80
  36. package/cli/install-curdx-plugin.js +0 -96
  37. package/cli/install-language.js +0 -35
  38. package/cli/install-next-steps.js +0 -29
  39. package/cli/install-options.js +0 -9
  40. package/cli/install-paths.js +0 -52
  41. package/cli/install-recommended-plugins.js +0 -104
  42. package/cli/install-required-plugins.js +0 -57
  43. package/cli/install-self-update.js +0 -62
  44. package/cli/install-workflow.js +0 -209
  45. package/cli/install.js +0 -101
  46. package/cli/lib/claude-commands.js +0 -41
  47. package/cli/lib/claude-ops.js +0 -47
  48. package/cli/lib/claude.js +0 -183
  49. package/cli/lib/config.js +0 -24
  50. package/cli/lib/doctor-claude-settings.js +0 -1186
  51. package/cli/lib/doctor-report.js +0 -978
  52. package/cli/lib/doctor-runtime-environment.js +0 -196
  53. package/cli/lib/frontmatter.js +0 -44
  54. package/cli/lib/json-schema.js +0 -57
  55. package/cli/lib/logging.js +0 -25
  56. package/cli/lib/process.js +0 -60
  57. package/cli/lib/prompts.js +0 -135
  58. package/cli/lib/runtime.js +0 -107
  59. package/cli/lib/semver.js +0 -109
  60. package/cli/lib/version.js +0 -12
  61. package/cli/protocols-body.md +0 -22
  62. package/cli/protocols.js +0 -162
  63. package/cli/registry.js +0 -123
  64. package/cli/router.js +0 -49
  65. package/cli/uninstall-actions.js +0 -360
  66. package/cli/uninstall-workflow.js +0 -146
  67. package/cli/uninstall.js +0 -42
  68. package/cli/upgrade-workflow.js +0 -80
  69. package/cli/upgrade.js +0 -91
  70. package/cli/utils.js +0 -40
  71. package/gates/adversarial-review-gate.md +0 -219
  72. package/gates/coverage-audit-gate.md +0 -182
  73. package/gates/devex-gate.md +0 -254
  74. package/gates/edge-case-gate.md +0 -194
  75. package/gates/karpathy-gate.md +0 -130
  76. package/gates/security-gate.md +0 -218
  77. package/gates/tdd-gate.md +0 -182
  78. package/gates/test-quality-gate.md +0 -59
  79. package/gates/verification-gate.md +0 -179
  80. package/hooks/hooks.json +0 -130
  81. package/hooks/scripts/common.sh +0 -237
  82. package/hooks/scripts/config-change-guard.sh +0 -94
  83. package/hooks/scripts/flow-context-watch.sh +0 -94
  84. package/hooks/scripts/inject-karpathy.sh +0 -53
  85. package/hooks/scripts/quick-mode-guard.sh +0 -69
  86. package/hooks/scripts/session-start.sh +0 -94
  87. package/hooks/scripts/session-title.sh +0 -87
  88. package/hooks/scripts/stop-watcher.sh +0 -231
  89. package/hooks/scripts/subagent-artifact-guard.sh +0 -92
  90. package/hooks/scripts/subagent-statusline.sh +0 -111
  91. package/hooks/scripts/task-lifecycle-guard.sh +0 -106
  92. package/hooks/scripts/teammate-idle-guard.sh +0 -83
  93. package/knowledge/artifact-output-discipline.md +0 -24
  94. package/knowledge/artifact-summary-contracts.md +0 -50
  95. package/knowledge/atomic-commits.md +0 -262
  96. package/knowledge/claude-code-runtime-contracts.md +0 -240
  97. package/knowledge/epic-decomposition.md +0 -307
  98. package/knowledge/execution-strategies.md +0 -303
  99. package/knowledge/karpathy-guidelines.md +0 -219
  100. package/knowledge/planning-reviews.md +0 -211
  101. package/knowledge/poc-first-workflow.md +0 -223
  102. package/knowledge/review-feedback-intake.md +0 -57
  103. package/knowledge/spec-driven-development.md +0 -180
  104. package/knowledge/systematic-debugging.md +0 -378
  105. package/knowledge/two-stage-review.md +0 -249
  106. package/knowledge/wave-execution.md +0 -403
  107. package/monitors/monitors.json +0 -8
  108. package/monitors/scripts/flow-state-monitor.sh +0 -102
  109. package/output-styles/curdx-evidence-first.md +0 -34
  110. package/output-styles/curdx-fast-mode.md +0 -42
  111. package/output-styles/curdx-spec-mode.md +0 -46
  112. package/schemas/agent-frontmatter.schema.json +0 -66
  113. package/schemas/config.schema.json +0 -134
  114. package/schemas/gate-frontmatter.schema.json +0 -30
  115. package/schemas/hooks.schema.json +0 -115
  116. package/schemas/output-style-frontmatter.schema.json +0 -22
  117. package/schemas/plugin-manifest.schema.json +0 -436
  118. package/schemas/plugin-settings.schema.json +0 -29
  119. package/schemas/skill-frontmatter.schema.json +0 -177
  120. package/schemas/spec-frontmatter.schema.json +0 -42
  121. package/schemas/spec-state.schema.json +0 -165
  122. package/settings.json +0 -8
  123. package/skills/brownfield-index/SKILL.md +0 -53
  124. package/skills/brownfield-index/references/applicability.md +0 -12
  125. package/skills/brownfield-index/references/handoff.md +0 -8
  126. package/skills/brownfield-index/references/index-contract.md +0 -10
  127. package/skills/browser-qa/SKILL.md +0 -39
  128. package/skills/browser-qa/references/handoff.md +0 -6
  129. package/skills/browser-qa/references/prerequisites.md +0 -10
  130. package/skills/browser-qa/references/qa-contract.md +0 -20
  131. package/skills/cancel/SKILL.md +0 -41
  132. package/skills/cancel/references/destructive-mode.md +0 -17
  133. package/skills/cancel/references/reporting.md +0 -18
  134. package/skills/cancel/references/state-recovery.md +0 -30
  135. package/skills/cancel/references/target-resolution.md +0 -7
  136. package/skills/debug/SKILL.md +0 -45
  137. package/skills/debug/references/context-gathering.md +0 -11
  138. package/skills/debug/references/failure-guard.md +0 -25
  139. package/skills/debug/references/intake.md +0 -12
  140. package/skills/debug/references/phase-workflow.md +0 -34
  141. package/skills/debug/references/reporting.md +0 -20
  142. package/skills/epic/SKILL.md +0 -39
  143. package/skills/epic/references/epic-artifacts.md +0 -20
  144. package/skills/epic/references/epic-intake.md +0 -9
  145. package/skills/epic/references/slice-handoff.md +0 -16
  146. package/skills/fast/SKILL.md +0 -62
  147. package/skills/fast/references/applicability.md +0 -25
  148. package/skills/fast/references/clarification.md +0 -20
  149. package/skills/fast/references/execution-contract.md +0 -56
  150. package/skills/help/SKILL.md +0 -55
  151. package/skills/help/references/dispatch.md +0 -20
  152. package/skills/help/references/overview.md +0 -39
  153. package/skills/help/references/troubleshoot.md +0 -47
  154. package/skills/help/references/workflow.md +0 -37
  155. package/skills/implement/SKILL.md +0 -104
  156. package/skills/implement/references/error-recovery.md +0 -36
  157. package/skills/implement/references/linear-execution.md +0 -43
  158. package/skills/implement/references/native-task-sync.md +0 -107
  159. package/skills/implement/references/preflight.md +0 -43
  160. package/skills/implement/references/progress-contract.md +0 -36
  161. package/skills/implement/references/state-init.md +0 -36
  162. package/skills/implement/references/stop-hook-execution.md +0 -50
  163. package/skills/implement/references/strategy-router.md +0 -38
  164. package/skills/implement/references/subagent-execution.md +0 -57
  165. package/skills/implement/references/wave-execution.md +0 -180
  166. package/skills/init/SKILL.md +0 -49
  167. package/skills/init/references/gitignore-and-health.md +0 -26
  168. package/skills/init/references/next-steps.md +0 -22
  169. package/skills/init/references/preflight.md +0 -15
  170. package/skills/init/references/scaffold-contract.md +0 -27
  171. package/skills/review/SKILL.md +0 -82
  172. package/skills/review/references/optional-passes.md +0 -48
  173. package/skills/review/references/preflight.md +0 -38
  174. package/skills/review/references/report-contract.md +0 -49
  175. package/skills/review/references/reporting.md +0 -20
  176. package/skills/review/references/stage-execution.md +0 -32
  177. package/skills/security-audit/SKILL.md +0 -47
  178. package/skills/security-audit/references/audit-contract.md +0 -21
  179. package/skills/security-audit/references/gate-handoff.md +0 -8
  180. package/skills/security-audit/references/scope-and-depth.md +0 -9
  181. package/skills/spec/SKILL.md +0 -100
  182. package/skills/spec/references/artifact-landing.md +0 -31
  183. package/skills/spec/references/phase-execution.md +0 -50
  184. package/skills/spec/references/planning-review.md +0 -31
  185. package/skills/spec/references/preflight-and-routing.md +0 -46
  186. package/skills/spec/references/reporting.md +0 -21
  187. package/skills/start/SKILL.md +0 -84
  188. package/skills/start/references/branch-routing.md +0 -51
  189. package/skills/start/references/mode-semantics.md +0 -12
  190. package/skills/start/references/preflight.md +0 -13
  191. package/skills/start/references/reporting.md +0 -20
  192. package/skills/start/references/state-seeding.md +0 -44
  193. package/skills/start/references/workflow-handoff.md +0 -26
  194. package/skills/status/SKILL.md +0 -41
  195. package/skills/status/references/gather-contract.md +0 -30
  196. package/skills/status/references/health-rules.md +0 -27
  197. package/skills/status/references/output-contract.md +0 -25
  198. package/skills/status/references/preflight.md +0 -10
  199. package/skills/status/references/recovery-hints.md +0 -18
  200. package/skills/ui-sketch/SKILL.md +0 -39
  201. package/skills/ui-sketch/references/brief-intake.md +0 -10
  202. package/skills/ui-sketch/references/iteration-handoff.md +0 -5
  203. package/skills/ui-sketch/references/variant-contract.md +0 -15
  204. package/skills/verify/SKILL.md +0 -56
  205. package/skills/verify/references/evidence-workflow.md +0 -39
  206. package/skills/verify/references/output-contract.md +0 -23
  207. package/skills/verify/references/preflight.md +0 -11
  208. package/skills/verify/references/report-handoff.md +0 -35
  209. package/skills/verify/references/strict-mode.md +0 -12
  210. package/templates/CONTEXT.md.tmpl +0 -53
  211. package/templates/PROJECT.md.tmpl +0 -59
  212. package/templates/ROADMAP.md.tmpl +0 -50
  213. package/templates/STATE.md.tmpl +0 -49
  214. package/templates/config.json.tmpl +0 -51
  215. package/templates/design.md.tmpl +0 -83
  216. package/templates/progress.md.tmpl +0 -77
  217. package/templates/requirements.md.tmpl +0 -76
  218. package/templates/research.md.tmpl +0 -83
  219. package/templates/tasks.md.tmpl +0 -107
@@ -1,102 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -u
4
-
5
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- . "$SCRIPT_DIR/../../hooks/scripts/common.sh"
7
-
8
- interval="${CLAUDE_PLUGIN_OPTION_MONITOR_INTERVAL_SECONDS:-8}"
9
- case "$interval" in
10
- ''|*[!0-9]*)
11
- interval=8
12
- ;;
13
- esac
14
- if [ "$interval" -lt 3 ] 2>/dev/null; then
15
- interval=3
16
- fi
17
-
18
- build_snapshot() {
19
- local flow_root=""
20
- flow_root="$(resolve_flow_root 2>/dev/null || true)"
21
- [ -n "$flow_root" ] || return 0
22
-
23
- local active=""
24
- active="$(cat "$flow_root/.flow/.active-spec" 2>/dev/null || true)"
25
- [ -z "$active" ] && return 0
26
-
27
- local spec_dir="$flow_root/.flow/specs/$active"
28
- [ ! -d "$spec_dir" ] && return 0
29
-
30
- local state_file="$spec_dir/.state.json"
31
- local tasks_file="$spec_dir/tasks.md"
32
-
33
- python3 - "$active" "$state_file" "$tasks_file" <<'PY' 2>/dev/null
34
- import json
35
- import os
36
- import re
37
- import sys
38
-
39
- active, state_file, tasks_file = sys.argv[1:4]
40
-
41
- phase = "unknown"
42
- strategy = "unknown"
43
- task_index = 0
44
- total_tasks = 0
45
- failed_attempts = 0
46
- global_iteration = 0
47
-
48
- if os.path.exists(state_file):
49
- try:
50
- state = json.load(open(state_file, "r", encoding="utf-8"))
51
- phase = state.get("phase") or phase
52
- strategy = state.get("strategy") or strategy
53
- execute_state = state.get("execute_state") or {}
54
- task_index = execute_state.get("task_index") or 0
55
- total_tasks = execute_state.get("total_tasks") or 0
56
- failed_attempts = execute_state.get("failed_attempts") or 0
57
- global_iteration = execute_state.get("global_iteration") or 0
58
- except Exception:
59
- phase = "invalid-state"
60
-
61
- unchecked = 0
62
- if os.path.exists(tasks_file):
63
- try:
64
- text = open(tasks_file, "r", encoding="utf-8").read()
65
- unchecked = len(re.findall(r"^- \[ \] \*\*[0-9]+(\.[0-9]+|\.VF|\.X(\+[0-9]+)?)*\*\*", text, re.M))
66
- except Exception:
67
- unchecked = -1
68
-
69
- parts = [
70
- f"CurDX-Flow monitor: spec={active}",
71
- f"phase={phase}",
72
- f"strategy={strategy}",
73
- ]
74
-
75
- if total_tasks > 0:
76
- parts.append(f"tasks={task_index}/{total_tasks}")
77
- parts.append(f"unchecked={unchecked}")
78
-
79
- if failed_attempts > 0:
80
- parts.append(f"failed_attempts={failed_attempts}")
81
- if global_iteration > 0:
82
- parts.append(f"loop={global_iteration}")
83
-
84
- print(" ".join(parts))
85
- PY
86
- }
87
-
88
- last_snapshot=""
89
-
90
- while true; do
91
- snapshot="$(build_snapshot)"
92
- if [ -n "$snapshot" ] && [ "$snapshot" != "$last_snapshot" ]; then
93
- printf '%s\n' "$snapshot"
94
- last_snapshot="$snapshot"
95
- fi
96
-
97
- if [ "${CURDX_FLOW_MONITOR_ONCE:-0}" = "1" ]; then
98
- exit 0
99
- fi
100
-
101
- sleep "$interval"
102
- done
@@ -1,34 +0,0 @@
1
- ---
2
- name: CurdX Evidence-First
3
- description: Concise, engineering-focused replies with explicit validation status, assumptions, and next actions.
4
- keep-coding-instructions: true
5
- ---
6
-
7
- # CurdX Evidence-First
8
-
9
- You are still Claude Code. Keep the default coding workflow, safety rules,
10
- tool usage behavior, and verification discipline.
11
-
12
- ## Response priorities
13
-
14
- 1. Lead with the concrete outcome or current state.
15
- 2. State validation status explicitly:
16
- - `Validated` when you actually ran checks and they passed
17
- - `Unvalidated` when you did not run checks yet
18
- - `Blocked` when validation could not be completed
19
- 3. Separate observed facts from assumptions or proposals.
20
- 4. Keep answers concise and operational; avoid filler and cheerleading.
21
- 5. When work is incomplete, state the next highest-value action plainly.
22
-
23
- ## Completion discipline
24
-
25
- - Never imply something is done without evidence.
26
- - If tests, builds, browser checks, or docs validation were not run, say so directly.
27
- - If you are making a best-effort inference, label it as an inference.
28
- - When relevant, point to the exact file paths or commands that support the claim.
29
-
30
- ## Formatting
31
-
32
- - Use short section headers only when they improve scanability.
33
- - Prefer short bullet lists over long prose.
34
- - Match the user's language.
@@ -1,42 +0,0 @@
1
- ---
2
- name: CurdX Fast Mode
3
- description: Low-ceremony style for /curdx-flow:fast and small surgical work. Skip preamble, ship the change, validate, stop.
4
- keep-coding-instructions: true
5
- ---
6
-
7
- # CurdX Fast Mode
8
-
9
- You are still Claude Code. Keep the default coding workflow, safety rules,
10
- tool usage behavior, and verification discipline. This style strips ceremony
11
- for small, well-bounded tasks.
12
-
13
- ## When this style fits
14
-
15
- Use during `/curdx-flow:fast` runs or any task that is obviously small,
16
- surgical, low-ambiguity, and not worth a full spec workflow.
17
-
18
- ## Response priorities
19
-
20
- 1. State the change in one sentence before the first edit.
21
- 2. Make the smallest correct edit — do not refactor surrounding code, do
22
- not introduce abstractions, do not "improve" unrelated lines.
23
- 3. Run the smallest verification that proves the change works (one test,
24
- one command, one curl). State it explicitly.
25
- 4. End with a one-line status: `Validated` (with evidence), `Unvalidated`
26
- (with reason), or `Blocked` (with the blocker).
27
- 5. If you find scope creep — a second bug, a desired refactor, an unclear
28
- interface — stop and surface it instead of expanding silently.
29
-
30
- ## Hard rules
31
-
32
- - No spec scaffolding, no phase narration, no "let me think step by step".
33
- - No defensive validation, no fallback paths, no try/except for impossible
34
- cases.
35
- - No new files unless the change inherently requires one.
36
- - No follow-on TODOs in the diff. Surface them in the reply, not the code.
37
-
38
- ## Format
39
-
40
- - Plain prose with one diff or one command per paragraph.
41
- - Bullets only when listing more than two parallel items.
42
- - No section headers under three lines of content.
@@ -1,46 +0,0 @@
1
- ---
2
- name: CurdX Spec Mode
3
- description: Spec-driven verbose style for multi-phase work. Lead with the active phase, cite artifact paths, and never claim done without an evidence block.
4
- keep-coding-instructions: true
5
- ---
6
-
7
- # CurdX Spec Mode
8
-
9
- You are still Claude Code. Keep the default coding workflow, safety rules,
10
- tool usage behavior, and verification discipline. This style adds spec-driven
11
- discipline on top of the defaults.
12
-
13
- ## When this style fits
14
-
15
- Use this style during multi-phase CurDX-Flow work — research / requirements /
16
- design / tasks / execute / verify — when the user wants a clear paper trail
17
- across phases.
18
-
19
- ## Response priorities
20
-
21
- 1. State the active spec and phase explicitly. If no spec is active, say so.
22
- 2. Lead with the artifact you produced or modified, including its full path
23
- under `.flow/specs/<active>/`.
24
- 3. Quote the smallest concrete decision that drove the change (one or two
25
- lines). Do not repeat the full artifact body.
26
- 4. End every reply with one of: `Validated`, `Unvalidated`, `Blocked`. State
27
- what evidence backs the label.
28
- 5. When proposing a next step, name the exact CurDX-Flow surface that should
29
- run it (`/curdx-flow:spec --phase=design`, `flow-verifier`, etc.).
30
-
31
- ## Hard rules
32
-
33
- - Never claim a phase is complete without referencing the produced artifact
34
- on disk and the gate it passed.
35
- - Never produce a long architecture essay in chat — that belongs in the
36
- spec artifact. The reply should point to the file and call out the
37
- decision taken.
38
- - Never advance phase state from chat narrative. The phase counter in
39
- `.state.json` is the source of truth; only the corresponding skill or
40
- agent is allowed to advance it.
41
-
42
- ## Format
43
-
44
- - Short headers only when they aid scanning.
45
- - Bullets for status, prose only for the decision rationale.
46
- - Match the user's language.
@@ -1,66 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://curdx-flow.dev/schemas/agent-frontmatter.schema.json",
4
- "title": "CurdX-Flow Agent Frontmatter",
5
- "description": "Supported YAML frontmatter fields for agents/*.md plugin subagent definitions. Tracks the canonical field list documented at https://code.claude.com/docs/en/sub-agents.md#supported-frontmatter-fields. The fields `hooks`, `mcpServers`, and `permissionMode` are canonical for non-plugin agents but are silently ignored when an agent is loaded from a plugin (Claude Code security boundary), so this schema intentionally omits them — `additionalProperties: false` rejects them and surfaces the mistake at validation time instead of at runtime.",
6
- "type": "object",
7
- "required": ["name", "description"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "name": {
11
- "type": "string",
12
- "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
13
- },
14
- "description": {
15
- "type": "string",
16
- "minLength": 1
17
- },
18
- "tools": {
19
- "oneOf": [
20
- { "type": "string" },
21
- { "type": "array", "items": { "type": "string" } }
22
- ]
23
- },
24
- "disallowedTools": {
25
- "oneOf": [
26
- { "type": "string" },
27
- { "type": "array", "items": { "type": "string" } }
28
- ]
29
- },
30
- "model": {
31
- "type": "string"
32
- },
33
- "effort": {
34
- "type": "string",
35
- "enum": ["low", "medium", "high", "xhigh", "max"]
36
- },
37
- "maxTurns": {
38
- "type": "integer",
39
- "minimum": 1
40
- },
41
- "skills": {
42
- "oneOf": [
43
- { "type": "string" },
44
- { "type": "array", "items": { "type": "string" } }
45
- ]
46
- },
47
- "memory": {
48
- "type": "string",
49
- "enum": ["user", "project", "local"]
50
- },
51
- "background": {
52
- "type": "boolean"
53
- },
54
- "isolation": {
55
- "type": "string",
56
- "enum": ["worktree"]
57
- },
58
- "initialPrompt": {
59
- "type": "string"
60
- },
61
- "color": {
62
- "type": "string",
63
- "enum": ["red", "blue", "green", "yellow", "purple", "orange", "pink", "cyan"]
64
- }
65
- }
66
- }
@@ -1,134 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://curdx-flow.dev/schemas/config.schema.json",
4
- "title": "CurdX-Flow Project Config",
5
- "description": "Schema for .flow/config.json",
6
- "type": "object",
7
- "required": ["version", "mode"],
8
- "properties": {
9
- "$schema": { "type": "string" },
10
- "version": {
11
- "type": "string",
12
- "const": "1.0"
13
- },
14
- "mode": {
15
- "type": "string",
16
- "enum": ["fast", "standard", "enterprise"],
17
- "description": "Default workflow depth for this project"
18
- },
19
- "execution": {
20
- "type": "object",
21
- "properties": {
22
- "strategy": {
23
- "type": "string",
24
- "enum": ["auto", "subagent", "stop-hook", "wave", "linear"],
25
- "default": "auto"
26
- },
27
- "max_parallel": {
28
- "type": "integer",
29
- "minimum": 1,
30
- "maximum": 20,
31
- "default": 5
32
- },
33
- "subagent_threshold": {
34
- "type": "integer",
35
- "minimum": 1,
36
- "default": 8,
37
- "description": "Task count above which subagent strategy is preferred"
38
- },
39
- "wave_fail_policy": {
40
- "type": "string",
41
- "enum": ["continue-on-single", "stop-on-any"],
42
- "default": "continue-on-single"
43
- },
44
- "recovery_mode": {
45
- "type": "string",
46
- "enum": ["manual", "fix-task"],
47
- "default": "manual",
48
- "description": "How /curdx-flow:implement handles TASK_FAILED during execution. manual blocks for retry; fix-task inserts targeted [FIX <task>] tasks before retrying."
49
- },
50
- "max_fix_tasks_per_original": {
51
- "type": "integer",
52
- "minimum": 1,
53
- "maximum": 5,
54
- "default": 2,
55
- "description": "Maximum generated [FIX <task>] tasks allowed for a single original task when recovery_mode is fix-task."
56
- }
57
- }
58
- },
59
- "gates": {
60
- "type": "object",
61
- "description": "Which quality gates to enable. Gate definitions live in gates/*.md (Phase 3)",
62
- "properties": {
63
- "always_on": {
64
- "type": "array",
65
- "items": { "$ref": "#/definitions/gateName" },
66
- "default": ["karpathy-gate", "verification-gate"]
67
- },
68
- "standard_mode": {
69
- "type": "array",
70
- "items": { "$ref": "#/definitions/gateName" }
71
- },
72
- "enterprise_mode": {
73
- "type": "array",
74
- "items": { "$ref": "#/definitions/gateName" }
75
- }
76
- }
77
- },
78
- "specs": {
79
- "type": "object",
80
- "properties": {
81
- "directories": {
82
- "type": "array",
83
- "items": { "type": "string" },
84
- "default": ["./.flow/specs"],
85
- "description": "Monorepo-friendly: multiple spec directories supported"
86
- },
87
- "default_task_size": {
88
- "type": "string",
89
- "enum": ["fine", "coarse"],
90
- "default": "fine"
91
- }
92
- }
93
- },
94
- "addons": {
95
- "type": "object",
96
- "properties": {
97
- "pua": {
98
- "type": "object",
99
- "properties": {
100
- "enabled": { "type": "boolean", "default": false },
101
- "style": {
102
- "type": "string",
103
- "enum": ["alibaba", "bytedance", "huawei", "tencent", "baidu", "pdd", "meituan", "jd", "xiaomi", "netflix", "musk", "jobs", "amazon"]
104
- },
105
- "auto_trigger": {
106
- "type": "string",
107
- "enum": ["on-failure", "always", "manual"]
108
- }
109
- }
110
- }
111
- }
112
- },
113
- "created": {
114
- "type": "string",
115
- "format": "date"
116
- }
117
- },
118
- "definitions": {
119
- "gateName": {
120
- "type": "string",
121
- "enum": [
122
- "karpathy-gate",
123
- "verification-gate",
124
- "tdd-gate",
125
- "test-quality-gate",
126
- "coverage-audit-gate",
127
- "adversarial-review-gate",
128
- "edge-case-gate",
129
- "security-gate",
130
- "devex-gate"
131
- ]
132
- }
133
- }
134
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://curdx-flow.dev/schemas/gate-frontmatter.schema.json",
4
- "title": "CurdX-Flow Gate Frontmatter",
5
- "description": "Supported YAML frontmatter fields for gates/*.md quality gate definitions.",
6
- "type": "object",
7
- "required": ["gate", "category", "severity", "depends_on"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "gate": {
11
- "type": "string",
12
- "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
13
- },
14
- "category": {
15
- "type": "string",
16
- "enum": ["always-on", "standard-mode", "enterprise-mode"]
17
- },
18
- "severity": {
19
- "type": "string",
20
- "enum": ["blocking", "warning"]
21
- },
22
- "depends_on": {
23
- "type": "array",
24
- "items": {
25
- "type": "string",
26
- "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
27
- }
28
- }
29
- }
30
- }
@@ -1,115 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://curdx-flow.dev/schemas/hooks.schema.json",
4
- "title": "CurdX-Flow Hook Configuration",
5
- "description": "Supported event names and handler shape for hooks/hooks.json.",
6
- "type": "object",
7
- "required": ["hooks"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "hooks": {
11
- "type": "object",
12
- "propertyNames": {
13
- "enum": [
14
- "SessionStart",
15
- "InstructionsLoaded",
16
- "UserPromptSubmit",
17
- "UserPromptExpansion",
18
- "PreToolUse",
19
- "PermissionRequest",
20
- "PostToolUse",
21
- "PostToolUseFailure",
22
- "PostToolBatch",
23
- "PermissionDenied",
24
- "Notification",
25
- "SubagentStart",
26
- "SubagentStop",
27
- "TaskCreated",
28
- "TaskCompleted",
29
- "Stop",
30
- "StopFailure",
31
- "TeammateIdle",
32
- "ConfigChange",
33
- "CwdChanged",
34
- "FileChanged",
35
- "WorktreeCreate",
36
- "WorktreeRemove",
37
- "PreCompact",
38
- "PostCompact",
39
- "Elicitation",
40
- "ElicitationResult",
41
- "SessionEnd"
42
- ]
43
- },
44
- "additionalProperties": {
45
- "type": "array",
46
- "items": { "$ref": "#/definitions/matcherGroup" }
47
- }
48
- }
49
- },
50
- "definitions": {
51
- "matcherGroup": {
52
- "type": "object",
53
- "required": ["hooks"],
54
- "additionalProperties": false,
55
- "properties": {
56
- "matcher": { "type": "string" },
57
- "hooks": {
58
- "type": "array",
59
- "items": { "$ref": "#/definitions/hookHandler" }
60
- }
61
- }
62
- },
63
- "hookHandler": {
64
- "type": "object",
65
- "required": ["type"],
66
- "additionalProperties": false,
67
- "properties": {
68
- "type": {
69
- "type": "string",
70
- "enum": ["command", "http", "mcp_tool", "prompt", "agent"]
71
- },
72
- "if": { "type": "string" },
73
- "timeout": { "type": "integer", "minimum": 1 },
74
- "statusMessage": { "type": "string" },
75
- "async": { "type": "boolean" },
76
- "asyncRewake": { "type": "boolean" },
77
- "once": { "type": "boolean" },
78
- "command": { "type": "string" },
79
- "shell": {
80
- "type": "string",
81
- "enum": ["bash", "powershell"]
82
- },
83
- "url": { "type": "string" },
84
- "headers": { "type": "object" },
85
- "allowedEnvVars": {
86
- "type": "array",
87
- "items": { "type": "string" }
88
- },
89
- "server": { "type": "string" },
90
- "tool": { "type": "string" },
91
- "input": { "type": "object" },
92
- "prompt": { "type": "string" },
93
- "model": { "type": "string" }
94
- },
95
- "allOf": [
96
- {
97
- "if": { "properties": { "type": { "const": "command" } } },
98
- "then": { "required": ["command"] }
99
- },
100
- {
101
- "if": { "properties": { "type": { "const": "http" } } },
102
- "then": { "required": ["url"] }
103
- },
104
- {
105
- "if": { "properties": { "type": { "const": "mcp_tool" } } },
106
- "then": { "required": ["server", "tool"] }
107
- },
108
- {
109
- "if": { "properties": { "type": { "enum": ["prompt", "agent"] } } },
110
- "then": { "required": ["prompt"] }
111
- }
112
- ]
113
- }
114
- }
115
- }
@@ -1,22 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://curdx-flow.dev/schemas/output-style-frontmatter.schema.json",
4
- "title": "CurdX-Flow Output Style Frontmatter",
5
- "description": "Supported YAML frontmatter fields for output-styles/*.md.",
6
- "type": "object",
7
- "required": ["name", "description", "keep-coding-instructions"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "name": {
11
- "type": "string",
12
- "minLength": 1
13
- },
14
- "description": {
15
- "type": "string",
16
- "minLength": 1
17
- },
18
- "keep-coding-instructions": {
19
- "type": "boolean"
20
- }
21
- }
22
- }