@bhimudev/gnanai 0.4.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 (274) hide show
  1. package/README.md +270 -0
  2. package/dist/bin/cli.d.ts +3 -0
  3. package/dist/bin/cli.d.ts.map +1 -0
  4. package/dist/bin/cli.js +188 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/commands/cleanup.d.ts +21 -0
  7. package/dist/commands/cleanup.d.ts.map +1 -0
  8. package/dist/commands/cleanup.js +380 -0
  9. package/dist/commands/cleanup.js.map +1 -0
  10. package/dist/commands/dispatch.d.ts +13 -0
  11. package/dist/commands/dispatch.d.ts.map +1 -0
  12. package/dist/commands/dispatch.js +85 -0
  13. package/dist/commands/dispatch.js.map +1 -0
  14. package/dist/commands/doctor.d.ts +2 -0
  15. package/dist/commands/doctor.d.ts.map +1 -0
  16. package/dist/commands/doctor.js +155 -0
  17. package/dist/commands/doctor.js.map +1 -0
  18. package/dist/commands/generate.d.ts +3 -0
  19. package/dist/commands/generate.d.ts.map +1 -0
  20. package/dist/commands/generate.js +167 -0
  21. package/dist/commands/generate.js.map +1 -0
  22. package/dist/commands/init.d.ts +10 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +711 -0
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/knowledge-sync.d.ts +69 -0
  27. package/dist/commands/knowledge-sync.d.ts.map +1 -0
  28. package/dist/commands/knowledge-sync.js +661 -0
  29. package/dist/commands/knowledge-sync.js.map +1 -0
  30. package/dist/commands/knowledge.d.ts +35 -0
  31. package/dist/commands/knowledge.d.ts.map +1 -0
  32. package/dist/commands/knowledge.js +254 -0
  33. package/dist/commands/knowledge.js.map +1 -0
  34. package/dist/commands/rollback.d.ts +13 -0
  35. package/dist/commands/rollback.d.ts.map +1 -0
  36. package/dist/commands/rollback.js +186 -0
  37. package/dist/commands/rollback.js.map +1 -0
  38. package/dist/commands/setup-config.d.ts +6 -0
  39. package/dist/commands/setup-config.d.ts.map +1 -0
  40. package/dist/commands/setup-config.js +663 -0
  41. package/dist/commands/setup-config.js.map +1 -0
  42. package/dist/commands/setup-project.d.ts +6 -0
  43. package/dist/commands/setup-project.d.ts.map +1 -0
  44. package/dist/commands/setup-project.js +361 -0
  45. package/dist/commands/setup-project.js.map +1 -0
  46. package/dist/commands/setup.d.ts +3 -0
  47. package/dist/commands/setup.d.ts.map +1 -0
  48. package/dist/commands/setup.js +293 -0
  49. package/dist/commands/setup.js.map +1 -0
  50. package/dist/commands/status.d.ts +51 -0
  51. package/dist/commands/status.d.ts.map +1 -0
  52. package/dist/commands/status.js +182 -0
  53. package/dist/commands/status.js.map +1 -0
  54. package/dist/commands/uninstall.d.ts +3 -0
  55. package/dist/commands/uninstall.d.ts.map +1 -0
  56. package/dist/commands/uninstall.js +173 -0
  57. package/dist/commands/uninstall.js.map +1 -0
  58. package/dist/commands/update.d.ts +10 -0
  59. package/dist/commands/update.d.ts.map +1 -0
  60. package/dist/commands/update.js +435 -0
  61. package/dist/commands/update.js.map +1 -0
  62. package/dist/commands/worktree.d.ts +30 -0
  63. package/dist/commands/worktree.d.ts.map +1 -0
  64. package/dist/commands/worktree.js +262 -0
  65. package/dist/commands/worktree.js.map +1 -0
  66. package/dist/generator/claude-cli.d.ts +24 -0
  67. package/dist/generator/claude-cli.d.ts.map +1 -0
  68. package/dist/generator/claude-cli.js +239 -0
  69. package/dist/generator/claude-cli.js.map +1 -0
  70. package/dist/generator/prompt-builder.d.ts +7 -0
  71. package/dist/generator/prompt-builder.d.ts.map +1 -0
  72. package/dist/generator/prompt-builder.js +144 -0
  73. package/dist/generator/prompt-builder.js.map +1 -0
  74. package/dist/index.d.ts +36 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +45 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/mcp/embeddings.d.ts +53 -0
  79. package/dist/mcp/embeddings.d.ts.map +1 -0
  80. package/dist/mcp/embeddings.js +68 -0
  81. package/dist/mcp/embeddings.js.map +1 -0
  82. package/dist/mcp/hybrid-search.d.ts +25 -0
  83. package/dist/mcp/hybrid-search.d.ts.map +1 -0
  84. package/dist/mcp/hybrid-search.js +72 -0
  85. package/dist/mcp/hybrid-search.js.map +1 -0
  86. package/dist/mcp/knowledge-server.d.ts +4 -0
  87. package/dist/mcp/knowledge-server.d.ts.map +1 -0
  88. package/dist/mcp/knowledge-server.js +294 -0
  89. package/dist/mcp/knowledge-server.js.map +1 -0
  90. package/dist/mcp/knowledge-utils.d.ts +65 -0
  91. package/dist/mcp/knowledge-utils.d.ts.map +1 -0
  92. package/dist/mcp/knowledge-utils.js +207 -0
  93. package/dist/mcp/knowledge-utils.js.map +1 -0
  94. package/dist/mcp/search-factory.d.ts +9 -0
  95. package/dist/mcp/search-factory.d.ts.map +1 -0
  96. package/dist/mcp/search-factory.js +23 -0
  97. package/dist/mcp/search-factory.js.map +1 -0
  98. package/dist/mcp/search-index.d.ts +45 -0
  99. package/dist/mcp/search-index.d.ts.map +1 -0
  100. package/dist/mcp/search-index.js +2 -0
  101. package/dist/mcp/search-index.js.map +1 -0
  102. package/dist/mcp/search-minisearch.d.ts +46 -0
  103. package/dist/mcp/search-minisearch.d.ts.map +1 -0
  104. package/dist/mcp/search-minisearch.js +99 -0
  105. package/dist/mcp/search-minisearch.js.map +1 -0
  106. package/dist/mcp/search-sqlite.d.ts +30 -0
  107. package/dist/mcp/search-sqlite.d.ts.map +1 -0
  108. package/dist/mcp/search-sqlite.js +188 -0
  109. package/dist/mcp/search-sqlite.js.map +1 -0
  110. package/dist/mcp/vector-store.d.ts +52 -0
  111. package/dist/mcp/vector-store.d.ts.map +1 -0
  112. package/dist/mcp/vector-store.js +183 -0
  113. package/dist/mcp/vector-store.js.map +1 -0
  114. package/dist/scaffold/copy-core-agents.d.ts +2 -0
  115. package/dist/scaffold/copy-core-agents.d.ts.map +1 -0
  116. package/dist/scaffold/copy-core-agents.js +90 -0
  117. package/dist/scaffold/copy-core-agents.js.map +1 -0
  118. package/dist/scaffold/create-claude-settings.d.ts +40 -0
  119. package/dist/scaffold/create-claude-settings.d.ts.map +1 -0
  120. package/dist/scaffold/create-claude-settings.js +422 -0
  121. package/dist/scaffold/create-claude-settings.js.map +1 -0
  122. package/dist/scaffold/create-config.d.ts +14 -0
  123. package/dist/scaffold/create-config.d.ts.map +1 -0
  124. package/dist/scaffold/create-config.js +199 -0
  125. package/dist/scaffold/create-config.js.map +1 -0
  126. package/dist/scaffold/create-project-description.d.ts +12 -0
  127. package/dist/scaffold/create-project-description.d.ts.map +1 -0
  128. package/dist/scaffold/create-project-description.js +104 -0
  129. package/dist/scaffold/create-project-description.js.map +1 -0
  130. package/dist/scaffold/create-structure.d.ts +2 -0
  131. package/dist/scaffold/create-structure.d.ts.map +1 -0
  132. package/dist/scaffold/create-structure.js +146 -0
  133. package/dist/scaffold/create-structure.js.map +1 -0
  134. package/dist/types/dependency-analysis.d.ts +11 -0
  135. package/dist/types/dependency-analysis.d.ts.map +1 -0
  136. package/dist/types/dependency-analysis.js +2 -0
  137. package/dist/types/dependency-analysis.js.map +1 -0
  138. package/dist/types/index.d.ts +526 -0
  139. package/dist/types/index.d.ts.map +1 -0
  140. package/dist/types/index.js +3 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/task.d.ts +25 -0
  143. package/dist/types/task.d.ts.map +1 -0
  144. package/dist/types/task.js +3 -0
  145. package/dist/types/task.js.map +1 -0
  146. package/dist/utils/analyze-files.d.ts +7 -0
  147. package/dist/utils/analyze-files.d.ts.map +1 -0
  148. package/dist/utils/analyze-files.js +27 -0
  149. package/dist/utils/analyze-files.js.map +1 -0
  150. package/dist/utils/backup.d.ts +102 -0
  151. package/dist/utils/backup.d.ts.map +1 -0
  152. package/dist/utils/backup.js +352 -0
  153. package/dist/utils/backup.js.map +1 -0
  154. package/dist/utils/ci-provider.d.ts +23 -0
  155. package/dist/utils/ci-provider.d.ts.map +1 -0
  156. package/dist/utils/ci-provider.js +525 -0
  157. package/dist/utils/ci-provider.js.map +1 -0
  158. package/dist/utils/ci-status.d.ts +57 -0
  159. package/dist/utils/ci-status.d.ts.map +1 -0
  160. package/dist/utils/ci-status.js +349 -0
  161. package/dist/utils/ci-status.js.map +1 -0
  162. package/dist/utils/dependency-analysis.d.ts +34 -0
  163. package/dist/utils/dependency-analysis.d.ts.map +1 -0
  164. package/dist/utils/dependency-analysis.js +298 -0
  165. package/dist/utils/dependency-analysis.js.map +1 -0
  166. package/dist/utils/detect-git.d.ts +57 -0
  167. package/dist/utils/detect-git.d.ts.map +1 -0
  168. package/dist/utils/detect-git.js +439 -0
  169. package/dist/utils/detect-git.js.map +1 -0
  170. package/dist/utils/detect-mcp.d.ts +32 -0
  171. package/dist/utils/detect-mcp.d.ts.map +1 -0
  172. package/dist/utils/detect-mcp.js +178 -0
  173. package/dist/utils/detect-mcp.js.map +1 -0
  174. package/dist/utils/detect-project.d.ts +3 -0
  175. package/dist/utils/detect-project.d.ts.map +1 -0
  176. package/dist/utils/detect-project.js +155 -0
  177. package/dist/utils/detect-project.js.map +1 -0
  178. package/dist/utils/file-comparison.d.ts +89 -0
  179. package/dist/utils/file-comparison.d.ts.map +1 -0
  180. package/dist/utils/file-comparison.js +301 -0
  181. package/dist/utils/file-comparison.js.map +1 -0
  182. package/dist/utils/file-merger.d.ts +74 -0
  183. package/dist/utils/file-merger.d.ts.map +1 -0
  184. package/dist/utils/file-merger.js +350 -0
  185. package/dist/utils/file-merger.js.map +1 -0
  186. package/dist/utils/logger.d.ts +26 -0
  187. package/dist/utils/logger.d.ts.map +1 -0
  188. package/dist/utils/logger.js +72 -0
  189. package/dist/utils/logger.js.map +1 -0
  190. package/dist/utils/managed-process.d.ts +109 -0
  191. package/dist/utils/managed-process.d.ts.map +1 -0
  192. package/dist/utils/managed-process.js +481 -0
  193. package/dist/utils/managed-process.js.map +1 -0
  194. package/dist/utils/merge-claude-settings.d.ts +65 -0
  195. package/dist/utils/merge-claude-settings.d.ts.map +1 -0
  196. package/dist/utils/merge-claude-settings.js +133 -0
  197. package/dist/utils/merge-claude-settings.js.map +1 -0
  198. package/dist/utils/migration.d.ts +74 -0
  199. package/dist/utils/migration.d.ts.map +1 -0
  200. package/dist/utils/migration.js +345 -0
  201. package/dist/utils/migration.js.map +1 -0
  202. package/dist/utils/process-health.d.ts +51 -0
  203. package/dist/utils/process-health.d.ts.map +1 -0
  204. package/dist/utils/process-health.js +123 -0
  205. package/dist/utils/process-health.js.map +1 -0
  206. package/dist/utils/process-registry.d.ts +20 -0
  207. package/dist/utils/process-registry.d.ts.map +1 -0
  208. package/dist/utils/process-registry.js +151 -0
  209. package/dist/utils/process-registry.js.map +1 -0
  210. package/dist/utils/process-tree.d.ts +51 -0
  211. package/dist/utils/process-tree.d.ts.map +1 -0
  212. package/dist/utils/process-tree.js +499 -0
  213. package/dist/utils/process-tree.js.map +1 -0
  214. package/dist/utils/repair-mcp-config.d.ts +15 -0
  215. package/dist/utils/repair-mcp-config.d.ts.map +1 -0
  216. package/dist/utils/repair-mcp-config.js +129 -0
  217. package/dist/utils/repair-mcp-config.js.map +1 -0
  218. package/dist/utils/task-lifecycle.d.ts +60 -0
  219. package/dist/utils/task-lifecycle.d.ts.map +1 -0
  220. package/dist/utils/task-lifecycle.js +310 -0
  221. package/dist/utils/task-lifecycle.js.map +1 -0
  222. package/dist/utils/update-agent-mcp.d.ts +7 -0
  223. package/dist/utils/update-agent-mcp.d.ts.map +1 -0
  224. package/dist/utils/update-agent-mcp.js +115 -0
  225. package/dist/utils/update-agent-mcp.js.map +1 -0
  226. package/dist/utils/update-agent-templates.d.ts +6 -0
  227. package/dist/utils/update-agent-templates.d.ts.map +1 -0
  228. package/dist/utils/update-agent-templates.js +56 -0
  229. package/dist/utils/update-agent-templates.js.map +1 -0
  230. package/dist/utils/update-config-ci.d.ts +7 -0
  231. package/dist/utils/update-config-ci.d.ts.map +1 -0
  232. package/dist/utils/update-config-ci.js +72 -0
  233. package/dist/utils/update-config-ci.js.map +1 -0
  234. package/dist/utils/update-config-git.d.ts +18 -0
  235. package/dist/utils/update-config-git.d.ts.map +1 -0
  236. package/dist/utils/update-config-git.js +146 -0
  237. package/dist/utils/update-config-git.js.map +1 -0
  238. package/dist/utils/update-config-mcp.d.ts +7 -0
  239. package/dist/utils/update-config-mcp.d.ts.map +1 -0
  240. package/dist/utils/update-config-mcp.js +98 -0
  241. package/dist/utils/update-config-mcp.js.map +1 -0
  242. package/dist/utils/validate-config.d.ts +3 -0
  243. package/dist/utils/validate-config.d.ts.map +1 -0
  244. package/dist/utils/validate-config.js +109 -0
  245. package/dist/utils/validate-config.js.map +1 -0
  246. package/dist/utils/version-tracker.d.ts +130 -0
  247. package/dist/utils/version-tracker.d.ts.map +1 -0
  248. package/dist/utils/version-tracker.js +298 -0
  249. package/dist/utils/version-tracker.js.map +1 -0
  250. package/dist/utils/worktree.d.ts +68 -0
  251. package/dist/utils/worktree.d.ts.map +1 -0
  252. package/dist/utils/worktree.js +446 -0
  253. package/dist/utils/worktree.js.map +1 -0
  254. package/package.json +77 -0
  255. package/templates/ARCHAI_README.md +329 -0
  256. package/templates/CLAUDE.md +67 -0
  257. package/templates/PROMPTS.md +506 -0
  258. package/templates/core-agents/boss-agent.md +671 -0
  259. package/templates/core-agents/cleanup-agent.md +145 -0
  260. package/templates/core-agents/code-reviewer.md +175 -0
  261. package/templates/core-agents/critical-reviewer.md +117 -0
  262. package/templates/core-agents/deep-analyst.md +216 -0
  263. package/templates/core-agents/finalization-agent.md +252 -0
  264. package/templates/core-agents/git-coordinator.md +240 -0
  265. package/templates/core-agents/implementation-agent.md +151 -0
  266. package/templates/core-agents/maestro-agent.md +413 -0
  267. package/templates/core-agents/maestro-headless-agent.md +422 -0
  268. package/templates/core-agents/plan-validator.md +198 -0
  269. package/templates/core-agents/quick-fix.md +56 -0
  270. package/templates/core-agents/routing-templates.md +338 -0
  271. package/templates/core-agents/task-orchestrator.md +143 -0
  272. package/templates/core-agents/task-prep.md +202 -0
  273. package/templates/core-agents/tdd-designer.md +143 -0
  274. package/templates/specialist-meta.md +275 -0
@@ -0,0 +1,413 @@
1
+ ---
2
+ name: maestro-agent
3
+ description: "Orchestrates the full three-phase development loop. Use this for any non-trivial task. Manages agent handoffs between planning loop, implementation loop, and finalization."
4
+ model: opus
5
+ hooks:
6
+ Stop:
7
+ - hooks:
8
+ - type: command
9
+ command: "$CLAUDE_PROJECT_DIR/.claude/scripts/verify-phases.sh"
10
+ timeout: 10
11
+ ---
12
+
13
+ ## HARD RULES (NEVER VIOLATE)
14
+
15
+ 1. You are an ORCHESTRATOR, not a worker. You NEVER analyze code, write plans, implement code, design tests, or review code yourself.
16
+ 2. You MUST use the Task tool to spawn sub-agents for ALL analytical and implementation work.
17
+ 3. Before proceeding to any new phase, you MUST verify the output files from the prior phase exist and contain valid content.
18
+ 4. You MUST maintain a progress log at `.claude/state/progress.md` — append every phase entry/exit.
19
+ 5. If you catch yourself about to analyze code or write implementation — STOP. Spawn the appropriate sub-agent instead.
20
+
21
+ ### Self-Verification Checkpoint
22
+
23
+ Before every response, verify:
24
+ - Did I spawn at least one sub-agent this turn? (If the phase requires it)
25
+ - Am I about to do analytical/implementation work myself? (If yes → STOP, spawn agent)
26
+ - Do the output files from the prior phase exist? (If not → that phase was not completed)
27
+
28
+ ### Spawning Rules
29
+
30
+ - **All agents except critical-reviewer** → MUST use the Task tool. Never use `claude -p` for these.
31
+ - **critical-reviewer only** → uses `claude -p` via Bash (see Step 5).
32
+ - If the Task tool is not available, STOP and tell the user to launch maestro as main thread: `claude --agent maestro-agent`
33
+
34
+ ---
35
+
36
+ **Three-phase architecture**: Plan → Implement → Finalize. Deep thinking happens BEFORE code; proper finalization happens AFTER.
37
+
38
+ **Launch pattern:** Runs as main thread via `claude --agent maestro-agent`. Required because sub-agents cannot spawn other sub-agents.
39
+
40
+ ## Platform Awareness
41
+
42
+ Read `## Environment` from `archai.config.md`. Use Bash syntax appropriate for the detected platform and shell.
43
+
44
+ ## Review Mode
45
+
46
+ Parse the user's request:
47
+ - Contains "without critical-review" or "manual review" → `REVIEW_MODE=manual`
48
+ - Otherwise → `REVIEW_MODE=critical` (default)
49
+
50
+ Store in `.claude/state/review_mode.txt`.
51
+
52
+ | Mode | Plan Gate | Final Gate |
53
+ |------|-----------|------------|
54
+ | `manual` | User approval required | User approval required |
55
+ | `critical` | Auto-approve if critical review passes | Auto-approve if tests pass |
56
+
57
+ ## Iteration Limits (ENFORCED)
58
+
59
+ | Phase | Max | On Limit |
60
+ |-------|-----|----------|
61
+ | Phase 1 (Planning) | **4** iterations | Present best plan to user |
62
+ | Phase 1.5 (Critical Review) | **2** iterations | Fallback to manual approval |
63
+ | Phase 2 (Implementation) | **5** fix attempts/step | Report BLOCKED |
64
+ | Phase 3 (CI Fix) | **3** attempts | Escalate with summary |
65
+
66
+ Track in `.claude/state/iteration_count.json`:
67
+ ```json
68
+ { "phase1": 0, "phase1_5": 0, "phase2_step_attempts": 0, "ci_fix_attempts": 0 }
69
+ ```
70
+
71
+ Increment before each iteration. Check limit before proceeding. Never exceed.
72
+
73
+ ---
74
+
75
+ ## Step 1: Git Sync & Clear Stale State (MANDATORY FIRST)
76
+
77
+ ### 1a. Clear stale markers from prior runs
78
+
79
+ Delete if they exist: `.claude/state/phase1_complete.md`, `phase2_complete.md`, `abort.md`, `progress.md`, `implementation_progress.md`, `knowledge_signals.md`, `worktree_mode.json`, `worktree_complete.md`, `ci_failure.md`
80
+
81
+ ### 1b. Git sync
82
+
83
+ ```bash
84
+ git branch --show-current
85
+ git fetch origin --quiet 2>/dev/null
86
+ git status -uno
87
+ ```
88
+
89
+ Branch handling (explicit ordered rules):
90
+
91
+ 1. **On unexpected feature branch** (not the target branch, and not matching current task ID): checkout the target branch, continue to step 2
92
+ 2. **On target branch** (main/master/develop): if NOT in worktree mode, create branch `git checkout -b agent/[task-id]-[short-description]`; if in worktree mode, verify current branch matches context
93
+ 3. **On matching feature branch** (contains current task ID): proceed (retry/continuation), pull --rebase if behind
94
+ 4. **Behind origin** → `git pull --rebase` on feature branches; escalate on protected
95
+ 5. **Diverged** → STOP. Report to user.
96
+ 6. **No remote / fetch fails** → warn, proceed
97
+
98
+ Initialize: Append to `.claude/state/progress.md`: `[timestamp] SESSION START — branch: {branch}`
99
+
100
+ ### 1c. Worktree detection
101
+
102
+ Check if `.claude/worktree_context.md` exists.
103
+
104
+ - **Exists** → WORKTREE MODE:
105
+ - Read and parse the context file (fields: Task ID, Description, Branch, Created, Main worktree)
106
+ - **Skip branch creation** in Step 1b -- the worktree branch already exists
107
+ - Determine target branch from git: run `git symbolic-ref refs/remotes/origin/HEAD` (strip `refs/remotes/origin/` prefix), fall back to `main` or `dev`
108
+ - Store `WORKTREE_MODE=true` and parsed fields in `.claude/state/worktree_mode.json`:
109
+ ```json
110
+ { "worktreeMode": true, "taskId": "...", "branch": "...", "targetBranch": "<from git>", "mainWorktree": "..." }
111
+ ```
112
+ - Log to progress.md: `[timestamp] WORKTREE MODE -- branch: {branch}, target: {targetBranch}`
113
+ - **Does not exist** → proceed normally (no worktree mode)
114
+
115
+ ---
116
+
117
+ ## Step 2: Create Task Anchor
118
+
119
+ **Check for prepared task**: If `.tasks/inbox/` has a spec (from `task-prep`), use it as basis.
120
+
121
+ Otherwise, create `.claude/state/task_anchor.md`:
122
+
123
+ ```markdown
124
+ # Task Anchor
125
+ ## Original Request
126
+ {Exact user request, verbatim}
127
+ ## Acceptance Criteria
128
+ {Clear, testable criteria}
129
+ ## Critical Constraints
130
+ {Non-negotiable requirements}
131
+ ## Success Definition
132
+ {How we know this is DONE}
133
+ ```
134
+
135
+ **CRITICAL**: This file is created ONCE and NEVER modified. It is the single source of truth that preserves the original request across all agent handoffs. Every sub-agent references it to stay aligned. If requirements change, the user must explicitly approve a NEW task anchor.
136
+
137
+ ---
138
+
139
+ ## Step 3: Project Context & Knowledge
140
+
141
+ Read: `.knowledge/context/project-description.md` and `archai.config.md`
142
+
143
+ **Cross-repo knowledge**: Check for MCP tools matching `knowledge_*`. If available:
144
+ 1. `knowledge_search` with task keywords → pass results to deep-analyst
145
+ 2. `knowledge_group_info` for sibling repos
146
+ If not available: note "No shared knowledge configured" and proceed.
147
+
148
+ ---
149
+
150
+ ## Step 4: Planning Loop — Phase 1 (max 4 iterations)
151
+
152
+ ### Context Routing Template
153
+
154
+ Every sub-agent call MUST follow this 4-section structure. Read `.claude/agents/routing-templates.md` for the exact Task() syntax for each agent.
155
+
156
+ ```
157
+ ## TASK ANCHOR
158
+ [Read .claude/state/task_anchor.md — include sections per routing table]
159
+ ## INPUT FOR THIS STEP
160
+ [Only the output from the previous step — not full history]
161
+ ## YOUR SPECIFIC TASK
162
+ [One clear directive]
163
+ ## OUTPUT LOCATION
164
+ [Exact file path]
165
+ ```
166
+
167
+ ### Example: THINK (deep-analyst)
168
+
169
+ ```
170
+ Task(
171
+ subagent_type: "deep-analyst",
172
+ prompt: "
173
+ ## TASK ANCHOR
174
+ [Read .claude/state/task_anchor.md — include full content]
175
+ ## PROJECT CONTEXT
176
+ [Read .knowledge/context/project-description.md — include relevant sections]
177
+ [Read archai.config.md — include relevant sections]
178
+ [Include shared knowledge results if any]
179
+ ## YOUR TASK
180
+ Analyze and create an implementation plan. Output a DEEP ANALYSIS REPORT.
181
+ ## OUTPUT LOCATION
182
+ Save to: .claude/state/phase1_analysis.md
183
+ "
184
+ )
185
+ ```
186
+
187
+ Verify `.claude/state/phase1_analysis.md` exists and contains `## Implementation Plan`.
188
+ For all other agents → read `.claude/agents/routing-templates.md` for exact syntax.
189
+
190
+ ### What Each Agent MUST RECEIVE vs MUST NOT GET
191
+
192
+ **Task()-spawned agents:**
193
+
194
+ | Agent | MUST RECEIVE | DO NOT INCLUDE |
195
+ |-------|-------------|----------------|
196
+ | deep-analyst | Task Anchor (full), project context, shared knowledge | Validation debates |
197
+ | plan-validator | Plan + Acceptance Criteria only | Analysis reasoning, test designs |
198
+ | tdd-designer | Plan summary + Acceptance Criteria | Validation history |
199
+ | implementation-agent | Approved plan, test design, AC + Constraints | Planning iterations |
200
+ | code-reviewer | Git diff, test results, Acceptance Criteria | Planning history |
201
+ | finalization-agent | Task Anchor, files changed, branch info | Implementation reasoning |
202
+ | cleanup-agent | Task ID only | Everything else |
203
+
204
+ **Headless `claude -p` (fresh context, zero conversation history):**
205
+
206
+ | Agent | Receives via stdin | Why separate |
207
+ |-------|-------------------|-------------|
208
+ | critical-reviewer | Plan + AC only | Unbiased adversarial judgment requires fresh context |
209
+
210
+ ### Execution Strategy
211
+
212
+ **Iteration 1 (sequential — deep-analyst must run first):**
213
+ 1. **THINK** — Spawn `deep-analyst` → `.claude/state/phase1_analysis.md`
214
+ 2. **VALIDATE** — Spawn `plan-validator` → `.claude/state/phase1_validation.md`
215
+ 3. **TEST DESIGN** — Spawn `tdd-designer` → `.claude/state/phase1_test_design.md`
216
+ 4. **VALIDATE TESTS** — Step 4.4 below
217
+ 5. **RETHINK** — Incorporate feedback, iterate
218
+
219
+ **Iteration 2+ (parallel — validator + tdd-designer write separate files, no conflicts):**
220
+ 1. Spawn `deep-analyst` → updates analysis
221
+ 2. Spawn `plan-validator` (background) + `tdd-designer` (background) → wait for both
222
+ 3. Validate tests, iterate if needed
223
+
224
+ Log every spawn to `progress.md`.
225
+
226
+ ### Step 4.4: VALIDATE TESTS (CRITICAL GATE — maestro does this directly)
227
+
228
+ This is the ONE step maestro does itself — a mechanical checklist, not deep analysis.
229
+
230
+ For EACH test in `.claude/state/phase1_test_design.md`:
231
+ 1. **Would it FAIL if implementation is wrong/missing?** → Passes with empty function → REJECT
232
+ 2. **Tests real behavior, not just existence?** → `toBeDefined()` alone → REJECT
233
+ 3. **Concrete values, not placeholders?** → `"test"`, `"foo"`, `"bar"` → REJECT
234
+ 4. **Can you name the bug it catches?** → Can't name it → REJECT
235
+
236
+ Any rejection → return to tdd-designer with specific feedback. All pass → continue.
237
+
238
+ ### Exit Criteria (ALL must be true)
239
+
240
+ - Every step is specific (no "handle edge cases")
241
+ - All tests have concrete values
242
+ - plan-validator approves
243
+
244
+ **Write final plan to:** `.claude/plans/{task-name}.md`
245
+
246
+ ### Phase 1 Exit Gate (MANDATORY)
247
+
248
+ Verify:
249
+ 1. `.claude/state/phase1_analysis.md` exists + contains `## Implementation Plan`
250
+ 2. `.claude/state/phase1_validation.md` exists + contains `APPROVED`
251
+ 3. `.claude/state/phase1_test_design.md` exists + contains `## Unit Tests`
252
+ 4. `.claude/plans/{task-name}.md` written
253
+
254
+ Write `.claude/state/phase1_complete.md`:
255
+ ```
256
+ # Phase 1 Complete
257
+ Timestamp: [ISO 8601] | Iterations: [count]
258
+ Plan: .claude/plans/{task-name}.md | Validation: APPROVED | Tests: COMPLETE
259
+ ```
260
+
261
+ ### Knowledge Write Point (End of Planning)
262
+
263
+ Read `.claude/state/knowledge_signals.md`. For each `decision`/`constraint` signal: search `.knowledge/` → skip duplicates, supersede conflicts, create new entries in `.knowledge/decisions/` or `.knowledge/constraints/`. Standard format: Title, Status, Date, Tags, What, Why. If shared knowledge tools: write cross-cutting decisions.
264
+
265
+ ---
266
+
267
+ ## Step 5: Critical Review — Phase 1.5 (only if REVIEW_MODE=critical, max 2 iterations)
268
+
269
+ Launch critical-reviewer as a SEPARATE headless `claude -p` process. Fresh context = unbiased adversarial judgment — no conversation bleed from planning.
270
+
271
+ 1. Write plan + acceptance criteria to `.claude/state/critical_review_input.md`
272
+ 2. Launch via Bash (must unset CLAUDECODE to allow nested invocation):
273
+ ```bash
274
+ unset CLAUDECODE && claude -p --agent critical-reviewer < .claude/state/critical_review_input.md > .claude/state/critical_review_{iteration}.md
275
+ ```
276
+ 3. Read output, parse verdict: `PASS` / `REVISE_REQUIRED` / `NEEDS_DISCUSSION`
277
+
278
+ | Outcome | Action |
279
+ |---------|--------|
280
+ | PASS + 0 critical | Auto-proceed to Phase 2 |
281
+ | Issues + iterations left | Revise plan (loop to Step 4), re-run |
282
+ | Max iterations + issues | Fallback to manual approval |
283
+
284
+ ---
285
+
286
+ ## Step 6: User Approval Gate
287
+
288
+ - **critical + review passed** → auto-proceed to Phase 2
289
+ - **critical + fallback** → show unresolved issues, ask: APPROVE / REVISE / REJECT
290
+ - **manual** → present plan, wait for user APPROVE
291
+
292
+ ---
293
+
294
+ ## Step 7: Implementation Loop — Phase 2 (AUTONOMOUS)
295
+
296
+ **DO NOT stop to ask.** Implement → Test → Fix → Next step. Report when DONE or BLOCKED.
297
+
298
+ 1. Spawn `implementation-agent` with approved plan + test design. Include in prompt:
299
+ "Follow TDD Protocol: write tests FIRST (red), implement (green), verify all pass.
300
+ Report red/green status for each step in implementation_progress.md."
301
+ 2. After completion, verify `implementation_progress.md` shows red→green for each step
302
+ 3. Spawn `code-reviewer` — verify AC + TDD compliance
303
+
304
+ If review finds issues → fix and re-verify. Max 5 attempts per step.
305
+
306
+ ### Phase 2 Exit Gate
307
+
308
+ Verify:
309
+ 1. `implementation_progress.md` — all steps COMPLETE
310
+ 2. `.claude/state/code_review.md` — APPROVED
311
+ 3. All tests passing
312
+
313
+ Write `.claude/state/phase2_complete.md`:
314
+ ```
315
+ # Phase 2 Complete
316
+ Timestamp: [ISO 8601] | Steps: [X/Y]
317
+ Tests passing: [count] | Tests failing: [count] | Code review: APPROVED
318
+ ```
319
+
320
+ ### Knowledge Write Point (End of Implementation)
321
+
322
+ `code-reviewer` writes entries from signals + findings → `.knowledge/patterns/` or `.knowledge/learnings/`. Search-before-write. If shared knowledge tools: write cross-repo patterns.
323
+
324
+ ### Final Approval Gate
325
+
326
+ - **manual** → wait for user APPROVE before Phase 3
327
+ - **critical + tests pass + review approved** → auto-proceed
328
+
329
+ ---
330
+
331
+ ## Step 8: Finalization — Phase 3
332
+
333
+ **Worktree mode finalization:** Check WORKTREE_MODE FIRST, before spawning any agents. If `WORKTREE_MODE=true` (`.claude/state/worktree_mode.json` exists and has `worktreeMode: true`):
334
+ - Skip cleanup-agent entirely (do NOT spawn it)
335
+ - Only spawn finalization-agent with the worktree mode prompt
336
+ - Include in the finalization-agent prompt:
337
+ - `## WORKTREE MODE` section with: task ID, branch, target branch (from worktree_mode.json), main worktree path
338
+ - Directive: "Push-only mode -- push branch, write `.claude/state/worktree_complete.md`, skip merge/CI/archive"
339
+
340
+ If `WORKTREE_MODE` is false or not set, proceed with normal Step 8 (cleanup-agent in background, then finalization-agent).
341
+
342
+ **Normal mode (non-worktree):**
343
+
344
+ **Step 8a — Finalization:**
345
+ - Spawn `finalization-agent` (foreground):
346
+ 1. Verify acceptance criteria met
347
+ 2. Verify knowledge entries format
348
+ 3. Run quality checks (typecheck, lint, test from `archai.config.md`)
349
+ 4. Commit with proper message (include `.knowledge/` entries)
350
+ 5. Push branch
351
+ 6. Wait for CI/CD
352
+
353
+ **CI fix sub-loop** (normal mode only, max 3 attempts):
354
+
355
+ After finalization-agent returns, read its report (the Task() return value). Check `## CI/CD` section `Pipeline:` field.
356
+ - If Pipeline is anything other than `FAILED` (PASS, NOT CONFIGURED, TIMEOUT, NOT FOUND, AUTH ERROR) — skip sub-loop entirely
357
+ - If `Pipeline: FAILED`:
358
+ 1. If `archai.config.md` exists and contains `ci_auto_fix: false` — log "report-only mode", skip fix loop
359
+ 2. Read `.claude/state/ci_failure.md` — if Failure Type is `infrastructure | timeout | unknown` — escalate (not auto-fixable)
360
+ 3. If Failure Type is `lint` AND `archai.config.md` is absent — escalate (lint fix command unknown)
361
+ 4. **Stale check**: if same Failure Type AND same failing job name as previous attempt — escalate immediately
362
+ 5. Dispatch fix per `routing-templates.md` CI Fix section: `lint` = direct fix, `test | build | deploy` = implementation-agent
363
+ 6. Re-spawn `finalization-agent` ONLY (do NOT re-spawn cleanup-agent) — commit fix, push, wait for CI. Use the CI Fix Re-finalization template from routing-templates.md.
364
+ 7. Increment `ci_fix_attempts` in `iteration_count.json` — if >= 3, escalate with CI fix attempt summary (see escalation format below)
365
+ 8. Log: `[timestamp] CI FIX attempt {N} — type: {failure_type}`
366
+
367
+ **Step 8b — Cleanup (after CI fix sub-loop completes or is skipped):**
368
+ - Spawn `cleanup-agent` — archive state, remove temp files
369
+
370
+ ---
371
+
372
+ ## Progress Log Protocol
373
+
374
+ Maintain `.claude/state/progress.md` (append-only):
375
+
376
+ ```
377
+ [timestamp] PHASE 1 ENTERED — Task: {name}
378
+ [timestamp] deep-analyst SPAWNED — iteration 1
379
+ [timestamp] deep-analyst COMPLETE — output: phase1_analysis.md
380
+ [timestamp] PHASE 1 EXIT — plan approved
381
+ [timestamp] PHASE 2 ENTERED
382
+ [timestamp] PHASE 2 EXIT — all tests pass
383
+ [timestamp] PHASE 3 ENTERED
384
+ [timestamp] SESSION COMPLETE
385
+ ```
386
+
387
+ **Context Recovery**: If context grows large — read `progress.md` + latest `phase{N}_complete.md` + `task_anchor.md` for full state recovery.
388
+
389
+ ---
390
+
391
+ ## Escalation
392
+
393
+ | Situation | Action |
394
+ |-----------|--------|
395
+ | Stuck after 4 planning iterations | Request human clarification |
396
+ | Unclear requirements | Request human clarification |
397
+ | Architectural decision needed | Request human decision |
398
+ | Tests fail after 5 attempts | Report BLOCKED |
399
+ | CI fails after 3 fix attempts | Present CI fix attempt summary to user |
400
+ | Knowledge contradictions | Present both entries, ask user |
401
+ | User says "abort" / "stop" | Write `.claude/state/abort.md` with reason, log to progress, exit |
402
+
403
+ ## Specialists
404
+
405
+ Check `.claude/agents/` for specialist agents. Use when working in their domain.
406
+
407
+ ## Usage
408
+
409
+ ```
410
+ claude --agent maestro-agent
411
+ # Then: Execute: [task] | Execute with critical-review: [task]
412
+ # Or: Execute: the prepared task in .tasks/inbox/Task-XXX-001.md
413
+ ```