@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.
Files changed (210) hide show
  1. package/CHANGELOG.md +21 -34
  2. package/LICENSE +1 -1
  3. package/README.md +28 -79
  4. package/dist/index.mjs +995 -0
  5. package/package.json +33 -42
  6. package/.claude-plugin/marketplace.json +0 -48
  7. package/.claude-plugin/plugin.json +0 -70
  8. package/agent-preamble/preamble.md +0 -314
  9. package/agents/flow-adversary.md +0 -202
  10. package/agents/flow-architect.md +0 -197
  11. package/agents/flow-brownfield-analyst.md +0 -142
  12. package/agents/flow-debugger.md +0 -321
  13. package/agents/flow-edge-hunter.md +0 -288
  14. package/agents/flow-executor.md +0 -269
  15. package/agents/flow-orchestrator.md +0 -145
  16. package/agents/flow-planner.md +0 -246
  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 -165
  20. package/agents/flow-reviewer.md +0 -303
  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 -229
  24. package/agents/flow-ux-designer.md +0 -221
  25. package/agents/flow-verifier.md +0 -349
  26. package/bin/curdx-flow +0 -5
  27. package/bin/curdx-flow.js +0 -54
  28. package/cli/README.md +0 -104
  29. package/cli/doctor-workflow.js +0 -483
  30. package/cli/doctor.js +0 -73
  31. package/cli/help.js +0 -59
  32. package/cli/install-bundled-mcps.js +0 -37
  33. package/cli/install-companions.js +0 -19
  34. package/cli/install-context7-config.js +0 -80
  35. package/cli/install-curdx-plugin.js +0 -96
  36. package/cli/install-language.js +0 -35
  37. package/cli/install-next-steps.js +0 -29
  38. package/cli/install-options.js +0 -9
  39. package/cli/install-paths.js +0 -52
  40. package/cli/install-recommended-plugins.js +0 -104
  41. package/cli/install-required-plugins.js +0 -57
  42. package/cli/install-self-update.js +0 -62
  43. package/cli/install-workflow.js +0 -209
  44. package/cli/install.js +0 -101
  45. package/cli/lib/claude-commands.js +0 -41
  46. package/cli/lib/claude-ops.js +0 -47
  47. package/cli/lib/claude.js +0 -183
  48. package/cli/lib/config.js +0 -24
  49. package/cli/lib/doctor-claude-settings.js +0 -1186
  50. package/cli/lib/doctor-report.js +0 -978
  51. package/cli/lib/doctor-runtime-environment.js +0 -196
  52. package/cli/lib/frontmatter.js +0 -44
  53. package/cli/lib/json-schema.js +0 -57
  54. package/cli/lib/logging.js +0 -25
  55. package/cli/lib/process.js +0 -60
  56. package/cli/lib/prompts.js +0 -135
  57. package/cli/lib/runtime.js +0 -107
  58. package/cli/lib/semver.js +0 -109
  59. package/cli/lib/version.js +0 -12
  60. package/cli/protocols-body.md +0 -22
  61. package/cli/protocols.js +0 -162
  62. package/cli/registry.js +0 -123
  63. package/cli/router.js +0 -49
  64. package/cli/uninstall-actions.js +0 -360
  65. package/cli/uninstall-workflow.js +0 -146
  66. package/cli/uninstall.js +0 -42
  67. package/cli/upgrade-workflow.js +0 -80
  68. package/cli/upgrade.js +0 -91
  69. package/cli/utils.js +0 -40
  70. package/gates/adversarial-review-gate.md +0 -219
  71. package/gates/coverage-audit-gate.md +0 -182
  72. package/gates/devex-gate.md +0 -254
  73. package/gates/edge-case-gate.md +0 -194
  74. package/gates/karpathy-gate.md +0 -130
  75. package/gates/security-gate.md +0 -218
  76. package/gates/tdd-gate.md +0 -182
  77. package/gates/test-quality-gate.md +0 -59
  78. package/gates/verification-gate.md +0 -179
  79. package/hooks/hooks.json +0 -58
  80. package/hooks/scripts/common.sh +0 -46
  81. package/hooks/scripts/inject-karpathy.sh +0 -53
  82. package/hooks/scripts/quick-mode-guard.sh +0 -68
  83. package/hooks/scripts/session-start.sh +0 -90
  84. package/hooks/scripts/stop-watcher.sh +0 -230
  85. package/hooks/scripts/subagent-artifact-guard.sh +0 -159
  86. package/hooks/scripts/subagent-statusline.sh +0 -105
  87. package/knowledge/artifact-output-discipline.md +0 -24
  88. package/knowledge/artifact-summary-contracts.md +0 -50
  89. package/knowledge/atomic-commits.md +0 -262
  90. package/knowledge/claude-code-runtime-contracts.md +0 -219
  91. package/knowledge/epic-decomposition.md +0 -307
  92. package/knowledge/execution-strategies.md +0 -303
  93. package/knowledge/karpathy-guidelines.md +0 -219
  94. package/knowledge/planning-reviews.md +0 -211
  95. package/knowledge/poc-first-workflow.md +0 -223
  96. package/knowledge/review-feedback-intake.md +0 -57
  97. package/knowledge/spec-driven-development.md +0 -180
  98. package/knowledge/systematic-debugging.md +0 -378
  99. package/knowledge/two-stage-review.md +0 -249
  100. package/knowledge/wave-execution.md +0 -403
  101. package/monitors/monitors.json +0 -8
  102. package/monitors/scripts/flow-state-monitor.sh +0 -99
  103. package/output-styles/curdx-evidence-first.md +0 -34
  104. package/schemas/agent-frontmatter.schema.json +0 -63
  105. package/schemas/config.schema.json +0 -134
  106. package/schemas/gate-frontmatter.schema.json +0 -30
  107. package/schemas/hooks.schema.json +0 -115
  108. package/schemas/output-style-frontmatter.schema.json +0 -22
  109. package/schemas/plugin-manifest.schema.json +0 -436
  110. package/schemas/plugin-settings.schema.json +0 -29
  111. package/schemas/skill-frontmatter.schema.json +0 -177
  112. package/schemas/spec-frontmatter.schema.json +0 -42
  113. package/schemas/spec-state.schema.json +0 -147
  114. package/settings.json +0 -7
  115. package/skills/brownfield-index/SKILL.md +0 -53
  116. package/skills/brownfield-index/references/applicability.md +0 -12
  117. package/skills/brownfield-index/references/handoff.md +0 -8
  118. package/skills/brownfield-index/references/index-contract.md +0 -10
  119. package/skills/browser-qa/SKILL.md +0 -39
  120. package/skills/browser-qa/references/handoff.md +0 -6
  121. package/skills/browser-qa/references/prerequisites.md +0 -10
  122. package/skills/browser-qa/references/qa-contract.md +0 -20
  123. package/skills/cancel/SKILL.md +0 -41
  124. package/skills/cancel/references/destructive-mode.md +0 -17
  125. package/skills/cancel/references/reporting.md +0 -18
  126. package/skills/cancel/references/state-recovery.md +0 -30
  127. package/skills/cancel/references/target-resolution.md +0 -7
  128. package/skills/debug/SKILL.md +0 -45
  129. package/skills/debug/references/context-gathering.md +0 -11
  130. package/skills/debug/references/failure-guard.md +0 -25
  131. package/skills/debug/references/intake.md +0 -12
  132. package/skills/debug/references/phase-workflow.md +0 -34
  133. package/skills/debug/references/reporting.md +0 -20
  134. package/skills/epic/SKILL.md +0 -39
  135. package/skills/epic/references/epic-artifacts.md +0 -20
  136. package/skills/epic/references/epic-intake.md +0 -9
  137. package/skills/epic/references/slice-handoff.md +0 -16
  138. package/skills/fast/SKILL.md +0 -62
  139. package/skills/fast/references/applicability.md +0 -25
  140. package/skills/fast/references/clarification.md +0 -20
  141. package/skills/fast/references/execution-contract.md +0 -56
  142. package/skills/help/SKILL.md +0 -55
  143. package/skills/help/references/dispatch.md +0 -20
  144. package/skills/help/references/overview.md +0 -39
  145. package/skills/help/references/troubleshoot.md +0 -47
  146. package/skills/help/references/workflow.md +0 -37
  147. package/skills/implement/SKILL.md +0 -96
  148. package/skills/implement/references/error-recovery.md +0 -36
  149. package/skills/implement/references/linear-execution.md +0 -32
  150. package/skills/implement/references/preflight.md +0 -43
  151. package/skills/implement/references/progress-contract.md +0 -32
  152. package/skills/implement/references/state-init.md +0 -33
  153. package/skills/implement/references/stop-hook-execution.md +0 -36
  154. package/skills/implement/references/strategy-router.md +0 -38
  155. package/skills/implement/references/subagent-execution.md +0 -43
  156. package/skills/implement/references/wave-execution.md +0 -162
  157. package/skills/init/SKILL.md +0 -49
  158. package/skills/init/references/gitignore-and-health.md +0 -26
  159. package/skills/init/references/next-steps.md +0 -22
  160. package/skills/init/references/preflight.md +0 -15
  161. package/skills/init/references/scaffold-contract.md +0 -27
  162. package/skills/review/SKILL.md +0 -82
  163. package/skills/review/references/optional-passes.md +0 -48
  164. package/skills/review/references/preflight.md +0 -38
  165. package/skills/review/references/report-contract.md +0 -49
  166. package/skills/review/references/reporting.md +0 -20
  167. package/skills/review/references/stage-execution.md +0 -32
  168. package/skills/security-audit/SKILL.md +0 -47
  169. package/skills/security-audit/references/audit-contract.md +0 -21
  170. package/skills/security-audit/references/gate-handoff.md +0 -8
  171. package/skills/security-audit/references/scope-and-depth.md +0 -9
  172. package/skills/spec/SKILL.md +0 -100
  173. package/skills/spec/references/artifact-landing.md +0 -31
  174. package/skills/spec/references/phase-execution.md +0 -50
  175. package/skills/spec/references/planning-review.md +0 -31
  176. package/skills/spec/references/preflight-and-routing.md +0 -46
  177. package/skills/spec/references/reporting.md +0 -21
  178. package/skills/start/SKILL.md +0 -84
  179. package/skills/start/references/branch-routing.md +0 -51
  180. package/skills/start/references/mode-semantics.md +0 -12
  181. package/skills/start/references/preflight.md +0 -13
  182. package/skills/start/references/reporting.md +0 -20
  183. package/skills/start/references/state-seeding.md +0 -44
  184. package/skills/start/references/workflow-handoff.md +0 -26
  185. package/skills/status/SKILL.md +0 -41
  186. package/skills/status/references/gather-contract.md +0 -27
  187. package/skills/status/references/health-rules.md +0 -27
  188. package/skills/status/references/output-contract.md +0 -24
  189. package/skills/status/references/preflight.md +0 -10
  190. package/skills/status/references/recovery-hints.md +0 -18
  191. package/skills/ui-sketch/SKILL.md +0 -39
  192. package/skills/ui-sketch/references/brief-intake.md +0 -10
  193. package/skills/ui-sketch/references/iteration-handoff.md +0 -5
  194. package/skills/ui-sketch/references/variant-contract.md +0 -15
  195. package/skills/verify/SKILL.md +0 -56
  196. package/skills/verify/references/evidence-workflow.md +0 -39
  197. package/skills/verify/references/output-contract.md +0 -23
  198. package/skills/verify/references/preflight.md +0 -11
  199. package/skills/verify/references/report-handoff.md +0 -35
  200. package/skills/verify/references/strict-mode.md +0 -12
  201. package/templates/CONTEXT.md.tmpl +0 -53
  202. package/templates/PROJECT.md.tmpl +0 -59
  203. package/templates/ROADMAP.md.tmpl +0 -50
  204. package/templates/STATE.md.tmpl +0 -49
  205. package/templates/config.json.tmpl +0 -51
  206. package/templates/design.md.tmpl +0 -83
  207. package/templates/progress.md.tmpl +0 -77
  208. package/templates/requirements.md.tmpl +0 -76
  209. package/templates/research.md.tmpl +0 -83
  210. package/templates/tasks.md.tmpl +0 -107
@@ -1,99 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -u
4
-
5
- interval="${CLAUDE_PLUGIN_OPTION_MONITOR_INTERVAL_SECONDS:-8}"
6
- case "$interval" in
7
- ''|*[!0-9]*)
8
- interval=8
9
- ;;
10
- esac
11
- if [ "$interval" -lt 3 ] 2>/dev/null; then
12
- interval=3
13
- fi
14
-
15
- build_snapshot() {
16
- if [ ! -d ".flow" ]; then
17
- return 0
18
- fi
19
-
20
- local active=""
21
- active="$(cat .flow/.active-spec 2>/dev/null || true)"
22
- [ -z "$active" ] && return 0
23
-
24
- local spec_dir=".flow/specs/$active"
25
- [ ! -d "$spec_dir" ] && return 0
26
-
27
- local state_file="$spec_dir/.state.json"
28
- local tasks_file="$spec_dir/tasks.md"
29
-
30
- python3 - "$active" "$state_file" "$tasks_file" <<'PY' 2>/dev/null
31
- import json
32
- import os
33
- import re
34
- import sys
35
-
36
- active, state_file, tasks_file = sys.argv[1:4]
37
-
38
- phase = "unknown"
39
- strategy = "unknown"
40
- task_index = 0
41
- total_tasks = 0
42
- failed_attempts = 0
43
- global_iteration = 0
44
-
45
- if os.path.exists(state_file):
46
- try:
47
- state = json.load(open(state_file, "r", encoding="utf-8"))
48
- phase = state.get("phase") or phase
49
- strategy = state.get("strategy") or strategy
50
- execute_state = state.get("execute_state") or {}
51
- task_index = execute_state.get("task_index") or 0
52
- total_tasks = execute_state.get("total_tasks") or 0
53
- failed_attempts = execute_state.get("failed_attempts") or 0
54
- global_iteration = execute_state.get("global_iteration") or 0
55
- except Exception:
56
- phase = "invalid-state"
57
-
58
- unchecked = 0
59
- if os.path.exists(tasks_file):
60
- try:
61
- text = open(tasks_file, "r", encoding="utf-8").read()
62
- unchecked = len(re.findall(r"^- \[ \] \*\*[0-9]+(\.[0-9]+|\.VF|\.X(\+[0-9]+)?)*\*\*", text, re.M))
63
- except Exception:
64
- unchecked = -1
65
-
66
- parts = [
67
- f"CurDX-Flow monitor: spec={active}",
68
- f"phase={phase}",
69
- f"strategy={strategy}",
70
- ]
71
-
72
- if total_tasks > 0:
73
- parts.append(f"tasks={task_index}/{total_tasks}")
74
- parts.append(f"unchecked={unchecked}")
75
-
76
- if failed_attempts > 0:
77
- parts.append(f"failed_attempts={failed_attempts}")
78
- if global_iteration > 0:
79
- parts.append(f"loop={global_iteration}")
80
-
81
- print(" ".join(parts))
82
- PY
83
- }
84
-
85
- last_snapshot=""
86
-
87
- while true; do
88
- snapshot="$(build_snapshot)"
89
- if [ -n "$snapshot" ] && [ "$snapshot" != "$last_snapshot" ]; then
90
- printf '%s\n' "$snapshot"
91
- last_snapshot="$snapshot"
92
- fi
93
-
94
- if [ "${CURDX_FLOW_MONITOR_ONCE:-0}" = "1" ]; then
95
- exit 0
96
- fi
97
-
98
- sleep "$interval"
99
- 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,63 +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.",
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
- "color": {
59
- "type": "string",
60
- "enum": ["red", "blue", "green", "yellow", "purple", "orange", "pink", "cyan"]
61
- }
62
- }
63
- }
@@ -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
- }