@curdx/flow 2.3.11 → 3.0.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 (44) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -20
  3. package/CHANGELOG.md +55 -2
  4. package/README.md +69 -19
  5. package/agents/flow-adversary.md +1 -0
  6. package/agents/flow-architect.md +1 -0
  7. package/agents/flow-brownfield-analyst.md +1 -0
  8. package/agents/flow-edge-hunter.md +1 -0
  9. package/agents/flow-planner.md +1 -0
  10. package/agents/flow-researcher.md +1 -0
  11. package/agents/flow-reviewer.md +1 -0
  12. package/agents/flow-ui-researcher.md +1 -0
  13. package/agents/flow-verifier.md +1 -0
  14. package/bin/curdx-flow-state +104 -0
  15. package/hooks/hooks.json +72 -0
  16. package/hooks/scripts/common.sh +191 -0
  17. package/hooks/scripts/config-change-guard.sh +94 -0
  18. package/hooks/scripts/flow-context-watch.sh +94 -0
  19. package/hooks/scripts/quick-mode-guard.sh +4 -3
  20. package/hooks/scripts/session-start.sh +14 -10
  21. package/hooks/scripts/session-title.sh +87 -0
  22. package/hooks/scripts/stop-watcher.sh +4 -3
  23. package/hooks/scripts/subagent-artifact-guard.sh +7 -74
  24. package/hooks/scripts/subagent-statusline.sh +8 -2
  25. package/hooks/scripts/task-lifecycle-guard.sh +106 -0
  26. package/hooks/scripts/teammate-idle-guard.sh +83 -0
  27. package/knowledge/claude-code-runtime-contracts.md +21 -0
  28. package/monitors/scripts/flow-state-monitor.sh +8 -5
  29. package/output-styles/curdx-fast-mode.md +42 -0
  30. package/output-styles/curdx-spec-mode.md +46 -0
  31. package/package.json +5 -3
  32. package/schemas/agent-frontmatter.schema.json +4 -1
  33. package/schemas/spec-state.schema.json +18 -0
  34. package/settings.json +2 -1
  35. package/skills/implement/SKILL.md +8 -0
  36. package/skills/implement/references/linear-execution.md +11 -0
  37. package/skills/implement/references/native-task-sync.md +107 -0
  38. package/skills/implement/references/progress-contract.md +4 -0
  39. package/skills/implement/references/state-init.md +3 -0
  40. package/skills/implement/references/stop-hook-execution.md +19 -5
  41. package/skills/implement/references/subagent-execution.md +16 -2
  42. package/skills/implement/references/wave-execution.md +18 -0
  43. package/skills/status/references/gather-contract.md +3 -0
  44. package/skills/status/references/output-contract.md +1 -0
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
9
- "version": "2.3.11"
9
+ "version": "3.0.0"
10
10
  },
11
11
  "allowCrossMarketplaceDependenciesOn": [
12
12
  "context7-marketplace"
@@ -16,7 +16,7 @@
16
16
  "name": "curdx-flow",
17
17
  "source": "./",
18
18
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
19
- "version": "2.3.11",
19
+ "version": "3.0.0",
20
20
  "author": {
21
21
  "name": "wdx",
22
22
  "email": "bydongxin@gmail.com"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "curdx-flow",
3
- "version": "2.3.11",
3
+ "version": "3.0.0",
4
4
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
5
5
  "author": {
6
6
  "name": "wdx",
@@ -18,25 +18,7 @@
18
18
  "claude-code"
19
19
  ],
20
20
  "skills": "./skills/",
21
- "agents": [
22
- "./agents/flow-adversary.md",
23
- "./agents/flow-architect.md",
24
- "./agents/flow-brownfield-analyst.md",
25
- "./agents/flow-debugger.md",
26
- "./agents/flow-edge-hunter.md",
27
- "./agents/flow-executor.md",
28
- "./agents/flow-orchestrator.md",
29
- "./agents/flow-planner.md",
30
- "./agents/flow-product-designer.md",
31
- "./agents/flow-qa-engineer.md",
32
- "./agents/flow-researcher.md",
33
- "./agents/flow-reviewer.md",
34
- "./agents/flow-security-auditor.md",
35
- "./agents/flow-triage-analyst.md",
36
- "./agents/flow-ui-researcher.md",
37
- "./agents/flow-ux-designer.md",
38
- "./agents/flow-verifier.md"
39
- ],
21
+ "agents": "./agents/",
40
22
  "outputStyles": "./output-styles/",
41
23
  "monitors": "./monitors/monitors.json",
42
24
  "userConfig": {
package/CHANGELOG.md CHANGED
@@ -1,10 +1,63 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0
4
+
5
+ The modernization release. No breaking changes for end users — internal
6
+ manifest reshape, schema realignment, and platform-feature uptake.
7
+
8
+ - aligned `schemas/agent-frontmatter.schema.json` with the canonical field
9
+ list documented at <https://code.claude.com/docs/en/sub-agents.md>; reversed
10
+ the P1 contract validator's misjudgement that flagged `effort`,
11
+ `maxTurns`, `background`, and `color` as non-canonical, and replaced it
12
+ with a strict-mode threshold check on combined `description + when_to_use`
13
+ length (1536-char skill listing cap)
14
+ - collapsed `plugin.json#agents` from a 17-entry explicit array to the
15
+ directory pointer `"./agents/"`, matching `skills` and `outputStyles` and
16
+ eliminating per-agent manifest drift
17
+ - explicitly forbade plugin-ignored fields (`hooks`, `mcpServers`,
18
+ `permissionMode`) at schema validation time so misconfigurations surface
19
+ before install instead of being silently dropped at runtime
20
+ - shipped a plugin root `bin/` directory: `bin/curdx-flow-state` emits a
21
+ one-line snapshot of the active spec and is added to the Bash tool's
22
+ `PATH` whenever the plugin is enabled (Claude Code v2.1.91+); agents,
23
+ skills, and hooks can call it as a bare command instead of duplicating
24
+ Python/Bash snippets
25
+ - added `subagentStatusLine.refreshInterval: 5` so the worktree-aware
26
+ status line refreshes automatically (Claude Code Week 15 statusline
27
+ feature)
28
+ - shipped two new output styles, `CurdX Spec Mode` (verbose, artifact-first)
29
+ and `CurdX Fast Mode` (low-ceremony surgical work), alongside the
30
+ default evidence-first style
31
+ - expanded the test suite from 10 to 110+ assertions across five new files:
32
+ every skill frontmatter parses with name/description/length contract,
33
+ every hook script invoked from `hooks.json` is executable + bash-parsable,
34
+ every output style has frontmatter + non-trivial body, the
35
+ `RECOMMENDED_PLUGINS` registry stays in lockstep with `session-start.sh`,
36
+ and every plugin `bin/` executable parses + runs without crashing
37
+ - restored the README and CHANGELOG that were dropped during the
38
+ P1 slate-clearing (commits 0dee423 / 8b14aba) and updated them to v3.0.0
39
+
40
+ ## 2.3.11
41
+
42
+ - internal-only patches; no user-facing behavior change
43
+
44
+ ## 2.3.10
45
+
46
+ - auto-heal legacy Context7 state on upgrade; doctor reports "all healthy" once
47
+ the legacy user-level Context7 MCP entry has been reconciled
48
+
49
+ ## 2.3.9
50
+
51
+ - aligned Claude runtime hooks with the official auto-discovery contract
52
+ (`hooks.json` is loaded automatically; manifest `hooks` field is reserved
53
+ for non-standard locations only) and resolved the `context7-plugin
54
+ unknown version` install failure that blocked upgrades
55
+
3
56
  ## 2.3.8
4
57
 
5
58
  - taught `doctor` to detect dirty CurDX-Flow source checkouts, so plugin developers immediately see when Claude cannot possibly be running their latest local edits yet
6
59
  - surfaced bundled source repo metadata (`branch`, `shortSha`, `exactTag`, `dirty`) alongside bundled plugin body version in diagnostics and JSON output
7
- - documented the reinstall workflow for same version, but local source changed plugin-development scenarios
60
+ - documented the reinstall workflow for "same version, but local source changed" plugin-development scenarios
8
61
 
9
62
  ## 2.3.7
10
63
 
@@ -26,7 +79,7 @@
26
79
 
27
80
  ## 2.3.1
28
81
 
29
- - expanded `doctor` to report CurDX-Flows bundled main-thread agent, monitor surface, and plugin option defaults
82
+ - expanded `doctor` to report CurDX-Flow's bundled main-thread agent, monitor surface, and plugin option defaults
30
83
  - documented where Claude Code stores CurDX-Flow non-sensitive `userConfig` values in `pluginConfigs`
31
84
  - added troubleshooting guidance for stop-hook blocking and plugin monitor behavior
32
85
 
package/README.md CHANGED
@@ -9,8 +9,15 @@
9
9
 
10
10
  CurdX-Flow is a skill-first Claude Code plugin. The public surface stays small:
11
11
  11 slash commands, 5 auto-invoked skills, 17 internal agents, and a thin set of
12
- entry docs. The heavy workflow detail lives in `skills/*/references/` and
13
- `knowledge/`.
12
+ runtime contracts. The heavy workflow detail lives in `skills/*/references/`,
13
+ `knowledge/`, and the `agent-preamble/`.
14
+
15
+ v3.0.0 is the modernization release: the plugin manifest, agent/skill schemas,
16
+ and contract validator are aligned with the latest Claude Code plugin spec
17
+ ([sub-agents.md](https://code.claude.com/docs/en/sub-agents.md),
18
+ [plugins-reference.md](https://code.claude.com/docs/en/plugins-reference.md)),
19
+ and the plugin now ships a `bin/` directory whose executables are added to the
20
+ Bash tool's `PATH` while CurdX-Flow is enabled (Claude Code v2.1.91+).
14
21
 
15
22
  ## Install
16
23
 
@@ -21,10 +28,10 @@ npx @curdx/flow install --all
21
28
  Requires modern Claude Code and Node 18+. The install flow registers the plugin,
22
29
  required reasoning/doc tools, and recommended companion plugins. Run
23
30
  `npx @curdx/flow doctor` after install if anything looks off. For CI or wrapper
24
- automation, use `npx @curdx/flow doctor --json`, which now includes file-based
25
- managed settings in its inspected precedence model.
31
+ automation, use `npx @curdx/flow doctor --json`, which reports file-based
32
+ managed settings at their correct precedence layer.
26
33
 
27
- After restart, CurDX-Flow routes the main thread through `flow-orchestrator`
34
+ After restart, CurdX-Flow routes the main thread through `flow-orchestrator`
28
35
  by default and starts the bundled `.flow` progress monitor in interactive
29
36
  Claude Code sessions.
30
37
 
@@ -70,26 +77,69 @@ This produces a durable audit trail instead of a chat-only claim of completion.
70
77
  ## What ships
71
78
 
72
79
  - 11 slash commands and 5 auto-invoked skills
73
- - 17 internal agents
74
- - a default main-thread `flow-orchestrator` agent
75
- - a `.flow` state monitor that streams spec progress changes back into Claude
76
- - 8 composable gates
77
- - 4 execution strategies for `/curdx-flow:implement`
80
+ - 17 internal agents wired through `flow-orchestrator`
81
+ - 3 output styles: default, `CurdX Spec Mode`, `CurdX Fast Mode`
82
+ - a `flow-state` background monitor that streams spec progress changes back into Claude
83
+ - 9 composable gates and 14 knowledge docs referenced by every agent
84
+ - 4 execution strategies for `/curdx-flow:implement` (linear, subagent, stop-hook, wave)
85
+ - a plugin `bin/` directory: `curdx-flow-state` is PATH-mounted while the plugin is enabled, so agents and hooks can call it as a bare command
78
86
  - thin public docs, thick supporting references
79
87
 
80
- ## Docs
88
+ ## Plugin layout
89
+
90
+ ```
91
+ .claude-plugin/
92
+ plugin.json plugin manifest (agents/skills/outputStyles point at directories, not file lists)
93
+ marketplace.json
94
+ agents/ 17 specialist subagents
95
+ skills/ 16 skills (commands + auto-invoked)
96
+ hooks/
97
+ hooks.json SessionStart, UserPromptSubmit, Stop, SubagentStop, …
98
+ scripts/ shell handlers (sourced helpers in common.sh, invoked scripts +x)
99
+ gates/ 9 composable review gates
100
+ knowledge/ 14 long-form references @-included by agents
101
+ monitors/
102
+ monitors.json background watchers (flow-state)
103
+ output-styles/ default + spec-mode + fast-mode
104
+ agent-preamble/ shared preamble all agents @-include
105
+ schemas/ JSON Schemas for plugin manifest, agent / skill frontmatter, hooks
106
+ templates/ scaffold templates the CLI installer copies into .flow/
107
+ bin/ plugin executables on PATH (curdx-flow-state, plus the npm CLI bin)
108
+ cli/ npm-published CLI installer (install / upgrade / doctor / uninstall)
109
+ test/ node:test suite + plugin contract validator regression baseline
110
+ scripts/ release.sh + validate-plugin-contracts.mjs + npm-dist-tag
111
+ ```
112
+
113
+ ## Compatibility notes
114
+
115
+ - **Skill shell execution** — CurdX-Flow skills rely on Bash tool calls. If your
116
+ Claude Code settings have `disableSkillShellExecution: true`, the spec
117
+ workflow will not run; remove that setting or scope it away from CurdX-Flow.
118
+ - **Plugin agent fields** — agent frontmatter follows the canonical fields
119
+ documented at
120
+ [sub-agents.md](https://code.claude.com/docs/en/sub-agents.md). The fields
121
+ `hooks`, `mcpServers`, and `permissionMode` are silently ignored by the
122
+ Claude Code plugin runtime; CurdX-Flow's schema rejects them at validation
123
+ time so misconfigurations surface before install.
124
+ - **Plugin executables on PATH** — the plugin root `bin/` directory lands on
125
+ the Bash tool's `PATH` while CurdX-Flow is enabled (Claude Code v2.1.91+).
126
+
127
+ ## Development
128
+
129
+ ```bash
130
+ npm test # 110+ tests
131
+ npm run validate:contracts # lenient validator
132
+ npm run validate:contracts:strict # strict validator (skill description-length cap is fatal)
133
+ claude plugin validate . # ground-truth gate
134
+ ```
81
135
 
82
- - [docs/getting-started.md](./docs/getting-started.md) for the first end-to-end walkthrough
83
- - [docs/command-reference.md](./docs/command-reference.md) for flags, strategy semantics, and specialty skill contracts
84
- - [docs/workflows.md](./docs/workflows.md) for greenfield, brownfield, epic, fast, and enterprise flows
85
- - [docs/headless-ci.md](./docs/headless-ci.md) for `claude --bare -p`, `system/init`, `system/plugin_install`, and CI patterns
86
- - [docs/troubleshoot.md](./docs/troubleshoot.md) for operator fixes
87
- - [docs/architecture.md](./docs/architecture.md) for the skill-first layout
88
- - [docs/agent-reference.md](./docs/agent-reference.md) for the 17 internal agents and their artifacts
136
+ `scripts/release.sh major|minor|patch` bumps `package.json`, `plugin.json`,
137
+ `marketplace.json`, and the lockfile in lockstep, commits, tags, and pushes.
138
+ The tag push triggers `.github/workflows/npm-publish.yml`.
89
139
 
90
140
  ## Notes
91
141
 
92
142
  - `enterprise` mode turns on adversarial, edge-case, security, and DevEx gates.
93
- - `subagent` is serial; `wave` is the parallel strategy.
143
+ - `subagent` is serial; `wave` is the parallel execution strategy.
94
144
  - Headless usage should favor `claude --bare -p` and explicit `--plugin-dir`,
95
145
  `--settings`, and `--mcp-config` wiring.
@@ -4,6 +4,7 @@ description: Use proactively when reviewing a spec or diff from an attacker or s
4
4
  model: opus
5
5
  effort: high
6
6
  maxTurns: 30
7
+ background: true
7
8
  color: red
8
9
  tools: [Read, Grep, Glob, Bash]
9
10
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: opus
6
6
  effort: high
7
7
  maxTurns: 40
8
+ background: true
8
9
  color: cyan
9
10
  tools: [Read, Write, Grep, Glob, Bash, WebSearch]
10
11
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 30
8
+ background: true
8
9
  color: blue
9
10
  tools: [Read, Write, Grep, Glob, Bash]
10
11
  ---
@@ -4,6 +4,7 @@ description: Use proactively when a feature, spec, or diff needs a non-happy-pat
4
4
  model: sonnet
5
5
  effort: high
6
6
  maxTurns: 30
7
+ background: true
7
8
  color: purple
8
9
  tools: [Read, Grep, Glob, Bash]
9
10
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 30
8
+ background: true
8
9
  color: cyan
9
10
  tools: [Read, Write, Grep, Glob, Bash]
10
11
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 40
8
+ background: true
8
9
  color: blue
9
10
  tools: [Read, Write, WebSearch, WebFetch, Grep, Glob, Bash]
10
11
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 40
8
+ background: true
8
9
  color: purple
9
10
  tools: [Read, Grep, Glob, Bash]
10
11
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: medium
7
7
  maxTurns: 25
8
+ background: true
8
9
  color: blue
9
10
  tools: [Read, Write, WebSearch, WebFetch, Grep, Glob, Bash]
10
11
  ---
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 30
8
+ background: true
8
9
  color: yellow
9
10
  tools: [Read, Grep, Glob, Bash, Monitor]
10
11
  ---
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env bash
2
+ # curdx-flow-state — emit a one-line snapshot of the active CurDX-Flow spec.
3
+ #
4
+ # When the curdx-flow plugin is enabled, Claude Code adds the plugin's bin/
5
+ # directory to the Bash tool's PATH (Claude Code v2.1.91+). Agents, skills,
6
+ # and hooks can then call `curdx-flow-state` as a bare command instead of
7
+ # duplicating Python/Bash snippets that walk .flow state.
8
+ #
9
+ # Output format (single line, stable contract):
10
+ # spec=<name> phase=<phase> strategy=<strategy> tasks=<idx>/<total> unchecked=<n> [failed_attempts=<n>] [loop=<n>]
11
+ #
12
+ # Exit codes:
13
+ # 0 state available (line printed)
14
+ # 2 no .flow/ root found
15
+ # 3 no active spec
16
+ #
17
+ # Usage from a Bash tool call (or any shell):
18
+ # curdx-flow-state # current cwd
19
+ # curdx-flow-state /path/to/repo
20
+
21
+ set -u
22
+
23
+ ROOT="${CLAUDE_PLUGIN_ROOT:-}"
24
+ if [ -z "$ROOT" ]; then
25
+ # Resolve relative to this script's location (works for npm install + plugin install).
26
+ ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
27
+ fi
28
+
29
+ # shellcheck source=hooks/scripts/common.sh
30
+ . "$ROOT/hooks/scripts/common.sh"
31
+
32
+ target="${1:-${PWD:-}}"
33
+ flow_root="$(resolve_flow_root "$target" 2>/dev/null || true)"
34
+ [ -n "$flow_root" ] || exit 2
35
+
36
+ active="$(cat "$flow_root/.flow/.active-spec" 2>/dev/null || true)"
37
+ [ -n "$active" ] || exit 3
38
+
39
+ spec_dir="$flow_root/.flow/specs/$active"
40
+ state_file="$spec_dir/.state.json"
41
+ tasks_file="$spec_dir/tasks.md"
42
+
43
+ if has_python3; then
44
+ export CURDX_STATE_ACTIVE="$active"
45
+ export CURDX_STATE_FILE="$state_file"
46
+ export CURDX_TASKS_FILE="$tasks_file"
47
+ python3 <<'PY'
48
+ import json
49
+ import os
50
+ import re
51
+
52
+ active = os.environ["CURDX_STATE_ACTIVE"]
53
+ state_file = os.environ["CURDX_STATE_FILE"]
54
+ tasks_file = os.environ["CURDX_TASKS_FILE"]
55
+
56
+ phase = "unknown"
57
+ strategy = "unknown"
58
+ task_index = 0
59
+ total_tasks = 0
60
+ failed_attempts = 0
61
+ global_iteration = 0
62
+
63
+ if os.path.exists(state_file):
64
+ try:
65
+ state = json.load(open(state_file, "r", encoding="utf-8"))
66
+ phase = state.get("phase") or phase
67
+ strategy = state.get("strategy") or strategy
68
+ execute_state = state.get("execute_state") or {}
69
+ task_index = int(execute_state.get("task_index") or 0)
70
+ total_tasks = int(execute_state.get("total_tasks") or 0)
71
+ failed_attempts = int(execute_state.get("failed_attempts") or 0)
72
+ global_iteration = int(execute_state.get("global_iteration") or 0)
73
+ except Exception:
74
+ phase = "invalid-state"
75
+
76
+ unchecked = -1
77
+ if os.path.exists(tasks_file):
78
+ try:
79
+ text = open(tasks_file, "r", encoding="utf-8").read()
80
+ unchecked = len(re.findall(r"^- \[ \] \*\*[0-9]+(\.[0-9]+|\.VF|\.X(\+[0-9]+)?)*\*\*", text, re.M))
81
+ except Exception:
82
+ unchecked = -1
83
+
84
+ parts = [
85
+ f"spec={active}",
86
+ f"phase={phase}",
87
+ f"strategy={strategy}",
88
+ ]
89
+ if total_tasks > 0:
90
+ parts.append(f"tasks={task_index}/{total_tasks}")
91
+ parts.append(f"unchecked={unchecked}")
92
+ if failed_attempts > 0:
93
+ parts.append(f"failed_attempts={failed_attempts}")
94
+ if global_iteration > 0:
95
+ parts.append(f"loop={global_iteration}")
96
+
97
+ print(" ".join(parts))
98
+ PY
99
+ exit 0
100
+ fi
101
+
102
+ # Fallback when python3 is unavailable: emit minimum useful info.
103
+ printf 'spec=%s\n' "$active"
104
+ exit 0
package/hooks/hooks.json CHANGED
@@ -21,6 +21,37 @@
21
21
  ]
22
22
  }
23
23
  ],
24
+ "UserPromptSubmit": [
25
+ {
26
+ "hooks": [
27
+ {
28
+ "type": "command",
29
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/session-title.sh",
30
+ "statusMessage": "Refreshing CurDX-Flow session title"
31
+ }
32
+ ]
33
+ }
34
+ ],
35
+ "CwdChanged": [
36
+ {
37
+ "hooks": [
38
+ {
39
+ "type": "command",
40
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/flow-context-watch.sh"
41
+ }
42
+ ]
43
+ }
44
+ ],
45
+ "FileChanged": [
46
+ {
47
+ "hooks": [
48
+ {
49
+ "type": "command",
50
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/flow-context-watch.sh"
51
+ }
52
+ ]
53
+ }
54
+ ],
24
55
  "Stop": [
25
56
  {
26
57
  "hooks": [
@@ -43,6 +74,47 @@
43
74
  ]
44
75
  }
45
76
  ],
77
+ "TaskCreated": [
78
+ {
79
+ "hooks": [
80
+ {
81
+ "type": "command",
82
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/task-lifecycle-guard.sh"
83
+ }
84
+ ]
85
+ }
86
+ ],
87
+ "TaskCompleted": [
88
+ {
89
+ "hooks": [
90
+ {
91
+ "type": "command",
92
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/task-lifecycle-guard.sh"
93
+ }
94
+ ]
95
+ }
96
+ ],
97
+ "TeammateIdle": [
98
+ {
99
+ "hooks": [
100
+ {
101
+ "type": "command",
102
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/teammate-idle-guard.sh"
103
+ }
104
+ ]
105
+ }
106
+ ],
107
+ "ConfigChange": [
108
+ {
109
+ "matcher": "project_settings|local_settings",
110
+ "hooks": [
111
+ {
112
+ "type": "command",
113
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/config-change-guard.sh"
114
+ }
115
+ ]
116
+ }
117
+ ],
46
118
  "PreToolUse": [
47
119
  {
48
120
  "matcher": "AskUserQuestion",