@bonesofspring/ai-rules 0.2.30 → 0.2.31

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 (504) hide show
  1. package/package.json +1 -1
  2. package/presets/_shared/core/agent-team/agent-artifact-contracts.md +6 -4
  3. package/presets/_shared/core/agent-team/agent-task-metrics.md +14 -1
  4. package/presets/_shared/core/agent-team/agent-team-orchestrator.md +3 -1
  5. package/presets/claude/android-kotlin/agents/accessibility-reviewer.md +2 -2
  6. package/presets/claude/android-kotlin/agents/api-contract-reviewer.md +2 -2
  7. package/presets/claude/android-kotlin/agents/build-verifier.md +1 -1
  8. package/presets/claude/android-kotlin/agents/ci-investigator.md +2 -2
  9. package/presets/claude/android-kotlin/agents/code-reviewer.md +2 -2
  10. package/presets/claude/android-kotlin/agents/debugger.md +2 -2
  11. package/presets/claude/android-kotlin/agents/feature-developer.md +2 -2
  12. package/presets/claude/android-kotlin/agents/migration-specialist.md +2 -2
  13. package/presets/claude/android-kotlin/agents/mockup-reviewer.md +2 -2
  14. package/presets/claude/android-kotlin/agents/openspec-author.md +2 -2
  15. package/presets/claude/android-kotlin/agents/performance-auditor.md +2 -2
  16. package/presets/claude/android-kotlin/agents/qa-tester.md +2 -2
  17. package/presets/claude/android-kotlin/agents/security-reviewer.md +2 -2
  18. package/presets/claude/android-kotlin/agents/task-analyst.md +1 -1
  19. package/presets/claude/android-kotlin/agents/task-router.md +1 -1
  20. package/presets/claude/android-kotlin/agents/tech-writer.md +2 -2
  21. package/presets/claude/android-kotlin/agents/unit-test-generator.md +2 -2
  22. package/presets/claude/android-kotlin/agents/unit-test-healer.md +2 -2
  23. package/presets/claude/android-kotlin/agents/unit-test-planner.md +2 -2
  24. package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-orchestrator.md +2 -1
  25. package/presets/claude/go/agents/build-verifier.md +2 -2
  26. package/presets/claude/go/agents/code-reviewer.md +2 -2
  27. package/presets/claude/go/agents/feature-developer.md +2 -2
  28. package/presets/claude/go/agents/openspec-author.md +2 -2
  29. package/presets/claude/go/agents/task-analyst.md +1 -1
  30. package/presets/claude/go/agents/task-router.md +1 -1
  31. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  32. package/presets/claude/ios-swift/agents/build-verifier.md +2 -2
  33. package/presets/claude/ios-swift/agents/code-reviewer.md +2 -2
  34. package/presets/claude/ios-swift/agents/feature-developer.md +2 -2
  35. package/presets/claude/ios-swift/agents/mockup-reviewer.md +2 -2
  36. package/presets/claude/ios-swift/agents/openspec-author.md +2 -2
  37. package/presets/claude/ios-swift/agents/task-analyst.md +1 -1
  38. package/presets/claude/ios-swift/agents/task-router.md +1 -1
  39. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +2 -1
  40. package/presets/claude/java/agents/build-verifier.md +2 -2
  41. package/presets/claude/java/agents/code-reviewer.md +2 -2
  42. package/presets/claude/java/agents/feature-developer.md +2 -2
  43. package/presets/claude/java/agents/openspec-author.md +2 -2
  44. package/presets/claude/java/agents/task-analyst.md +1 -1
  45. package/presets/claude/java/agents/task-router.md +1 -1
  46. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  47. package/presets/claude/mcp-ts/agents/build-verifier.md +2 -2
  48. package/presets/claude/mcp-ts/agents/feature-developer.md +2 -2
  49. package/presets/claude/mcp-ts/agents/task-analyst.md +1 -1
  50. package/presets/claude/mcp-ts/agents/task-router.md +1 -1
  51. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  52. package/presets/claude/next/agents/accessibility-reviewer.md +2 -2
  53. package/presets/claude/next/agents/api-contract-reviewer.md +2 -2
  54. package/presets/claude/next/agents/build-verifier.md +2 -2
  55. package/presets/claude/next/agents/ci-investigator.md +2 -2
  56. package/presets/claude/next/agents/code-reviewer.md +2 -2
  57. package/presets/claude/next/agents/debugger.md +2 -2
  58. package/presets/claude/next/agents/feature-developer.md +2 -2
  59. package/presets/claude/next/agents/migration-specialist.md +2 -2
  60. package/presets/claude/next/agents/mockup-reviewer.md +2 -2
  61. package/presets/claude/next/agents/openspec-author.md +2 -2
  62. package/presets/claude/next/agents/performance-auditor.md +2 -2
  63. package/presets/claude/next/agents/qa-tester.md +2 -2
  64. package/presets/claude/next/agents/security-reviewer.md +2 -2
  65. package/presets/claude/next/agents/solution-architect.md +2 -2
  66. package/presets/claude/next/agents/task-analyst.md +1 -1
  67. package/presets/claude/next/agents/task-router.md +1 -1
  68. package/presets/claude/next/agents/tech-writer.md +2 -2
  69. package/presets/claude/next/agents/unit-test-generator.md +2 -2
  70. package/presets/claude/next/agents/unit-test-healer.md +2 -2
  71. package/presets/claude/next/agents/unit-test-planner.md +2 -2
  72. package/presets/claude/next/hooks/chain-team-phases.sh +46 -1
  73. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  74. package/presets/claude/nuxt/agents/accessibility-reviewer.md +2 -2
  75. package/presets/claude/nuxt/agents/api-contract-reviewer.md +2 -2
  76. package/presets/claude/nuxt/agents/build-verifier.md +2 -2
  77. package/presets/claude/nuxt/agents/ci-investigator.md +2 -2
  78. package/presets/claude/nuxt/agents/code-reviewer.md +2 -2
  79. package/presets/claude/nuxt/agents/debugger.md +2 -2
  80. package/presets/claude/nuxt/agents/feature-developer.md +2 -2
  81. package/presets/claude/nuxt/agents/migration-specialist.md +2 -2
  82. package/presets/claude/nuxt/agents/mockup-reviewer.md +2 -2
  83. package/presets/claude/nuxt/agents/openspec-author.md +2 -2
  84. package/presets/claude/nuxt/agents/performance-auditor.md +2 -2
  85. package/presets/claude/nuxt/agents/qa-tester.md +2 -2
  86. package/presets/claude/nuxt/agents/security-reviewer.md +2 -2
  87. package/presets/claude/nuxt/agents/solution-architect.md +2 -2
  88. package/presets/claude/nuxt/agents/task-analyst.md +1 -1
  89. package/presets/claude/nuxt/agents/task-router.md +1 -1
  90. package/presets/claude/nuxt/agents/tech-writer.md +2 -2
  91. package/presets/claude/nuxt/agents/unit-test-generator.md +2 -2
  92. package/presets/claude/nuxt/agents/unit-test-healer.md +2 -2
  93. package/presets/claude/nuxt/agents/unit-test-planner.md +2 -2
  94. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  95. package/presets/claude/php-hexagonal/agents/build-verifier.md +2 -2
  96. package/presets/claude/php-hexagonal/agents/code-reviewer.md +2 -2
  97. package/presets/claude/php-hexagonal/agents/feature-developer.md +2 -2
  98. package/presets/claude/php-hexagonal/agents/openspec-author.md +2 -2
  99. package/presets/claude/php-hexagonal/agents/task-analyst.md +1 -1
  100. package/presets/claude/php-hexagonal/agents/task-router.md +1 -1
  101. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  102. package/presets/claude/php-laravel/agents/build-verifier.md +2 -2
  103. package/presets/claude/php-laravel/agents/code-reviewer.md +2 -2
  104. package/presets/claude/php-laravel/agents/feature-developer.md +2 -2
  105. package/presets/claude/php-laravel/agents/openspec-author.md +2 -2
  106. package/presets/claude/php-laravel/agents/task-analyst.md +1 -1
  107. package/presets/claude/php-laravel/agents/task-router.md +1 -1
  108. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  109. package/presets/claude/svelte/agents/accessibility-reviewer.md +2 -2
  110. package/presets/claude/svelte/agents/api-contract-reviewer.md +2 -2
  111. package/presets/claude/svelte/agents/build-verifier.md +2 -2
  112. package/presets/claude/svelte/agents/ci-investigator.md +2 -2
  113. package/presets/claude/svelte/agents/code-reviewer.md +2 -2
  114. package/presets/claude/svelte/agents/debugger.md +2 -2
  115. package/presets/claude/svelte/agents/feature-developer.md +2 -2
  116. package/presets/claude/svelte/agents/migration-specialist.md +2 -2
  117. package/presets/claude/svelte/agents/mockup-reviewer.md +2 -2
  118. package/presets/claude/svelte/agents/openspec-author.md +2 -2
  119. package/presets/claude/svelte/agents/performance-auditor.md +2 -2
  120. package/presets/claude/svelte/agents/qa-tester.md +2 -2
  121. package/presets/claude/svelte/agents/security-reviewer.md +2 -2
  122. package/presets/claude/svelte/agents/solution-architect.md +2 -2
  123. package/presets/claude/svelte/agents/task-analyst.md +1 -1
  124. package/presets/claude/svelte/agents/task-router.md +1 -1
  125. package/presets/claude/svelte/agents/tech-writer.md +2 -2
  126. package/presets/claude/svelte/agents/unit-test-generator.md +2 -2
  127. package/presets/claude/svelte/agents/unit-test-healer.md +2 -2
  128. package/presets/claude/svelte/agents/unit-test-planner.md +2 -2
  129. package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +4 -1
  130. package/presets/cursor/android-kotlin/agents/accessibility-reviewer.md +2 -2
  131. package/presets/cursor/android-kotlin/agents/api-contract-reviewer.md +2 -2
  132. package/presets/cursor/android-kotlin/agents/build-verifier.md +1 -1
  133. package/presets/cursor/android-kotlin/agents/ci-investigator.md +2 -2
  134. package/presets/cursor/android-kotlin/agents/code-reviewer.md +2 -2
  135. package/presets/cursor/android-kotlin/agents/debugger.md +2 -2
  136. package/presets/cursor/android-kotlin/agents/feature-developer.md +2 -2
  137. package/presets/cursor/android-kotlin/agents/migration-specialist.md +2 -2
  138. package/presets/cursor/android-kotlin/agents/mockup-reviewer.md +2 -2
  139. package/presets/cursor/android-kotlin/agents/openspec-author.md +2 -2
  140. package/presets/cursor/android-kotlin/agents/performance-auditor.md +2 -2
  141. package/presets/cursor/android-kotlin/agents/qa-tester.md +2 -2
  142. package/presets/cursor/android-kotlin/agents/security-reviewer.md +2 -2
  143. package/presets/cursor/android-kotlin/agents/task-analyst.md +1 -1
  144. package/presets/cursor/android-kotlin/agents/task-router.md +1 -1
  145. package/presets/cursor/android-kotlin/agents/tech-writer.md +2 -2
  146. package/presets/cursor/android-kotlin/agents/unit-test-generator.md +2 -2
  147. package/presets/cursor/android-kotlin/agents/unit-test-healer.md +2 -2
  148. package/presets/cursor/android-kotlin/agents/unit-test-planner.md +2 -2
  149. package/presets/cursor/android-kotlin/rules/agent-team-orchestrator.mdc +1 -1
  150. package/presets/cursor/go/agents/build-verifier.md +2 -2
  151. package/presets/cursor/go/agents/code-reviewer.md +2 -2
  152. package/presets/cursor/go/agents/feature-developer.md +2 -2
  153. package/presets/cursor/go/agents/openspec-author.md +2 -2
  154. package/presets/cursor/go/agents/task-analyst.md +1 -1
  155. package/presets/cursor/go/agents/task-router.md +1 -1
  156. package/presets/cursor/go/rules/agent-team-orchestrator.mdc +3 -1
  157. package/presets/cursor/ios-swift/agents/build-verifier.md +2 -2
  158. package/presets/cursor/ios-swift/agents/code-reviewer.md +2 -2
  159. package/presets/cursor/ios-swift/agents/feature-developer.md +2 -2
  160. package/presets/cursor/ios-swift/agents/mockup-reviewer.md +2 -2
  161. package/presets/cursor/ios-swift/agents/openspec-author.md +2 -2
  162. package/presets/cursor/ios-swift/agents/task-analyst.md +1 -1
  163. package/presets/cursor/ios-swift/agents/task-router.md +1 -1
  164. package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +1 -1
  165. package/presets/cursor/java/agents/build-verifier.md +2 -2
  166. package/presets/cursor/java/agents/code-reviewer.md +2 -2
  167. package/presets/cursor/java/agents/feature-developer.md +2 -2
  168. package/presets/cursor/java/agents/openspec-author.md +2 -2
  169. package/presets/cursor/java/agents/task-analyst.md +1 -1
  170. package/presets/cursor/java/agents/task-router.md +1 -1
  171. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +3 -1
  172. package/presets/cursor/mcp-ts/agents/build-verifier.md +2 -2
  173. package/presets/cursor/mcp-ts/agents/feature-developer.md +2 -2
  174. package/presets/cursor/mcp-ts/agents/task-analyst.md +1 -1
  175. package/presets/cursor/mcp-ts/agents/task-router.md +1 -1
  176. package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +3 -1
  177. package/presets/cursor/next/agents/accessibility-reviewer.md +2 -2
  178. package/presets/cursor/next/agents/api-contract-reviewer.md +2 -2
  179. package/presets/cursor/next/agents/build-verifier.md +2 -2
  180. package/presets/cursor/next/agents/ci-investigator.md +2 -2
  181. package/presets/cursor/next/agents/code-reviewer.md +2 -2
  182. package/presets/cursor/next/agents/debugger.md +2 -2
  183. package/presets/cursor/next/agents/feature-developer.md +2 -2
  184. package/presets/cursor/next/agents/migration-specialist.md +2 -2
  185. package/presets/cursor/next/agents/mockup-reviewer.md +2 -2
  186. package/presets/cursor/next/agents/openspec-author.md +2 -2
  187. package/presets/cursor/next/agents/performance-auditor.md +2 -2
  188. package/presets/cursor/next/agents/qa-tester.md +2 -2
  189. package/presets/cursor/next/agents/security-reviewer.md +2 -2
  190. package/presets/cursor/next/agents/solution-architect.md +2 -2
  191. package/presets/cursor/next/agents/task-analyst.md +1 -1
  192. package/presets/cursor/next/agents/task-router.md +1 -1
  193. package/presets/cursor/next/agents/tech-writer.md +2 -2
  194. package/presets/cursor/next/agents/unit-test-generator.md +2 -2
  195. package/presets/cursor/next/agents/unit-test-healer.md +2 -2
  196. package/presets/cursor/next/agents/unit-test-planner.md +2 -2
  197. package/presets/cursor/next/hooks/chain-team-phases.sh +46 -1
  198. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +3 -1
  199. package/presets/cursor/nuxt/agents/accessibility-reviewer.md +2 -2
  200. package/presets/cursor/nuxt/agents/api-contract-reviewer.md +2 -2
  201. package/presets/cursor/nuxt/agents/build-verifier.md +2 -2
  202. package/presets/cursor/nuxt/agents/ci-investigator.md +2 -2
  203. package/presets/cursor/nuxt/agents/code-reviewer.md +2 -2
  204. package/presets/cursor/nuxt/agents/debugger.md +2 -2
  205. package/presets/cursor/nuxt/agents/feature-developer.md +2 -2
  206. package/presets/cursor/nuxt/agents/migration-specialist.md +2 -2
  207. package/presets/cursor/nuxt/agents/mockup-reviewer.md +2 -2
  208. package/presets/cursor/nuxt/agents/openspec-author.md +2 -2
  209. package/presets/cursor/nuxt/agents/performance-auditor.md +2 -2
  210. package/presets/cursor/nuxt/agents/qa-tester.md +2 -2
  211. package/presets/cursor/nuxt/agents/security-reviewer.md +2 -2
  212. package/presets/cursor/nuxt/agents/solution-architect.md +2 -2
  213. package/presets/cursor/nuxt/agents/task-analyst.md +1 -1
  214. package/presets/cursor/nuxt/agents/task-router.md +1 -1
  215. package/presets/cursor/nuxt/agents/tech-writer.md +2 -2
  216. package/presets/cursor/nuxt/agents/unit-test-generator.md +2 -2
  217. package/presets/cursor/nuxt/agents/unit-test-healer.md +2 -2
  218. package/presets/cursor/nuxt/agents/unit-test-planner.md +2 -2
  219. package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +3 -1
  220. package/presets/cursor/php-hexagonal/agents/build-verifier.md +2 -2
  221. package/presets/cursor/php-hexagonal/agents/code-reviewer.md +2 -2
  222. package/presets/cursor/php-hexagonal/agents/feature-developer.md +2 -2
  223. package/presets/cursor/php-hexagonal/agents/openspec-author.md +2 -2
  224. package/presets/cursor/php-hexagonal/agents/task-analyst.md +1 -1
  225. package/presets/cursor/php-hexagonal/agents/task-router.md +1 -1
  226. package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +3 -1
  227. package/presets/cursor/php-laravel/agents/build-verifier.md +2 -2
  228. package/presets/cursor/php-laravel/agents/code-reviewer.md +2 -2
  229. package/presets/cursor/php-laravel/agents/feature-developer.md +2 -2
  230. package/presets/cursor/php-laravel/agents/openspec-author.md +2 -2
  231. package/presets/cursor/php-laravel/agents/task-analyst.md +1 -1
  232. package/presets/cursor/php-laravel/agents/task-router.md +1 -1
  233. package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +3 -1
  234. package/presets/cursor/svelte/agents/accessibility-reviewer.md +2 -2
  235. package/presets/cursor/svelte/agents/api-contract-reviewer.md +2 -2
  236. package/presets/cursor/svelte/agents/build-verifier.md +2 -2
  237. package/presets/cursor/svelte/agents/ci-investigator.md +2 -2
  238. package/presets/cursor/svelte/agents/code-reviewer.md +2 -2
  239. package/presets/cursor/svelte/agents/debugger.md +2 -2
  240. package/presets/cursor/svelte/agents/feature-developer.md +2 -2
  241. package/presets/cursor/svelte/agents/migration-specialist.md +2 -2
  242. package/presets/cursor/svelte/agents/mockup-reviewer.md +2 -2
  243. package/presets/cursor/svelte/agents/openspec-author.md +2 -2
  244. package/presets/cursor/svelte/agents/performance-auditor.md +2 -2
  245. package/presets/cursor/svelte/agents/qa-tester.md +2 -2
  246. package/presets/cursor/svelte/agents/security-reviewer.md +2 -2
  247. package/presets/cursor/svelte/agents/solution-architect.md +2 -2
  248. package/presets/cursor/svelte/agents/task-analyst.md +1 -1
  249. package/presets/cursor/svelte/agents/task-router.md +1 -1
  250. package/presets/cursor/svelte/agents/tech-writer.md +2 -2
  251. package/presets/cursor/svelte/agents/unit-test-generator.md +2 -2
  252. package/presets/cursor/svelte/agents/unit-test-healer.md +2 -2
  253. package/presets/cursor/svelte/agents/unit-test-planner.md +2 -2
  254. package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +3 -1
  255. package/presets/mavis/android-kotlin/agents/accessibility-reviewer.md +2 -2
  256. package/presets/mavis/android-kotlin/agents/api-contract-reviewer.md +2 -2
  257. package/presets/mavis/android-kotlin/agents/build-verifier.md +1 -1
  258. package/presets/mavis/android-kotlin/agents/ci-investigator.md +2 -2
  259. package/presets/mavis/android-kotlin/agents/code-reviewer.md +2 -2
  260. package/presets/mavis/android-kotlin/agents/debugger.md +2 -2
  261. package/presets/mavis/android-kotlin/agents/feature-developer.md +2 -2
  262. package/presets/mavis/android-kotlin/agents/migration-specialist.md +2 -2
  263. package/presets/mavis/android-kotlin/agents/mockup-reviewer.md +2 -2
  264. package/presets/mavis/android-kotlin/agents/openspec-author.md +2 -2
  265. package/presets/mavis/android-kotlin/agents/performance-auditor.md +2 -2
  266. package/presets/mavis/android-kotlin/agents/qa-tester.md +2 -2
  267. package/presets/mavis/android-kotlin/agents/security-reviewer.md +2 -2
  268. package/presets/mavis/android-kotlin/agents/task-analyst.md +1 -1
  269. package/presets/mavis/android-kotlin/agents/task-router.md +1 -1
  270. package/presets/mavis/android-kotlin/agents/tech-writer.md +2 -2
  271. package/presets/mavis/android-kotlin/agents/unit-test-generator.md +2 -2
  272. package/presets/mavis/android-kotlin/agents/unit-test-healer.md +2 -2
  273. package/presets/mavis/android-kotlin/agents/unit-test-planner.md +2 -2
  274. package/presets/mavis/android-kotlin/rules/agent-team-orchestrator.md +4 -1
  275. package/presets/mavis/go/agents/build-verifier.md +2 -2
  276. package/presets/mavis/go/agents/code-reviewer.md +2 -2
  277. package/presets/mavis/go/agents/feature-developer.md +2 -2
  278. package/presets/mavis/go/agents/openspec-author.md +2 -2
  279. package/presets/mavis/go/agents/task-analyst.md +1 -1
  280. package/presets/mavis/go/agents/task-router.md +1 -1
  281. package/presets/mavis/go/rules/agent-team-orchestrator.md +4 -1
  282. package/presets/mavis/ios-swift/agents/build-verifier.md +2 -2
  283. package/presets/mavis/ios-swift/agents/code-reviewer.md +2 -2
  284. package/presets/mavis/ios-swift/agents/feature-developer.md +2 -2
  285. package/presets/mavis/ios-swift/agents/mockup-reviewer.md +2 -2
  286. package/presets/mavis/ios-swift/agents/openspec-author.md +2 -2
  287. package/presets/mavis/ios-swift/agents/task-analyst.md +1 -1
  288. package/presets/mavis/ios-swift/agents/task-router.md +1 -1
  289. package/presets/mavis/ios-swift/rules/agent-team-orchestrator.md +4 -1
  290. package/presets/mavis/java/agents/build-verifier.md +2 -2
  291. package/presets/mavis/java/agents/code-reviewer.md +2 -2
  292. package/presets/mavis/java/agents/feature-developer.md +2 -2
  293. package/presets/mavis/java/agents/openspec-author.md +2 -2
  294. package/presets/mavis/java/agents/task-analyst.md +1 -1
  295. package/presets/mavis/java/agents/task-router.md +1 -1
  296. package/presets/mavis/java/rules/agent-team-orchestrator.md +4 -1
  297. package/presets/mavis/mcp-ts/agents/build-verifier.md +2 -2
  298. package/presets/mavis/mcp-ts/agents/feature-developer.md +2 -2
  299. package/presets/mavis/mcp-ts/agents/task-analyst.md +1 -1
  300. package/presets/mavis/mcp-ts/agents/task-router.md +1 -1
  301. package/presets/mavis/mcp-ts/rules/agent-team-orchestrator.md +4 -1
  302. package/presets/mavis/next/agents/accessibility-reviewer.md +2 -2
  303. package/presets/mavis/next/agents/api-contract-reviewer.md +2 -2
  304. package/presets/mavis/next/agents/build-verifier.md +2 -2
  305. package/presets/mavis/next/agents/ci-investigator.md +2 -2
  306. package/presets/mavis/next/agents/code-reviewer.md +2 -2
  307. package/presets/mavis/next/agents/debugger.md +2 -2
  308. package/presets/mavis/next/agents/feature-developer.md +2 -2
  309. package/presets/mavis/next/agents/migration-specialist.md +2 -2
  310. package/presets/mavis/next/agents/mockup-reviewer.md +2 -2
  311. package/presets/mavis/next/agents/openspec-author.md +2 -2
  312. package/presets/mavis/next/agents/performance-auditor.md +2 -2
  313. package/presets/mavis/next/agents/qa-tester.md +2 -2
  314. package/presets/mavis/next/agents/security-reviewer.md +2 -2
  315. package/presets/mavis/next/agents/solution-architect.md +2 -2
  316. package/presets/mavis/next/agents/task-analyst.md +1 -1
  317. package/presets/mavis/next/agents/task-router.md +1 -1
  318. package/presets/mavis/next/agents/tech-writer.md +2 -2
  319. package/presets/mavis/next/agents/unit-test-generator.md +2 -2
  320. package/presets/mavis/next/agents/unit-test-healer.md +2 -2
  321. package/presets/mavis/next/agents/unit-test-planner.md +2 -2
  322. package/presets/mavis/next/hooks/chain-team-phases.sh +46 -1
  323. package/presets/mavis/next/rules/agent-team-orchestrator.md +4 -1
  324. package/presets/mavis/nuxt/agents/accessibility-reviewer.md +2 -2
  325. package/presets/mavis/nuxt/agents/api-contract-reviewer.md +2 -2
  326. package/presets/mavis/nuxt/agents/build-verifier.md +2 -2
  327. package/presets/mavis/nuxt/agents/ci-investigator.md +2 -2
  328. package/presets/mavis/nuxt/agents/code-reviewer.md +2 -2
  329. package/presets/mavis/nuxt/agents/debugger.md +2 -2
  330. package/presets/mavis/nuxt/agents/feature-developer.md +2 -2
  331. package/presets/mavis/nuxt/agents/migration-specialist.md +2 -2
  332. package/presets/mavis/nuxt/agents/mockup-reviewer.md +2 -2
  333. package/presets/mavis/nuxt/agents/openspec-author.md +2 -2
  334. package/presets/mavis/nuxt/agents/performance-auditor.md +2 -2
  335. package/presets/mavis/nuxt/agents/qa-tester.md +2 -2
  336. package/presets/mavis/nuxt/agents/security-reviewer.md +2 -2
  337. package/presets/mavis/nuxt/agents/solution-architect.md +2 -2
  338. package/presets/mavis/nuxt/agents/task-analyst.md +1 -1
  339. package/presets/mavis/nuxt/agents/task-router.md +1 -1
  340. package/presets/mavis/nuxt/agents/tech-writer.md +2 -2
  341. package/presets/mavis/nuxt/agents/unit-test-generator.md +2 -2
  342. package/presets/mavis/nuxt/agents/unit-test-healer.md +2 -2
  343. package/presets/mavis/nuxt/agents/unit-test-planner.md +2 -2
  344. package/presets/mavis/nuxt/rules/agent-team-orchestrator.md +4 -1
  345. package/presets/mavis/php-hexagonal/agents/build-verifier.md +2 -2
  346. package/presets/mavis/php-hexagonal/agents/code-reviewer.md +2 -2
  347. package/presets/mavis/php-hexagonal/agents/feature-developer.md +2 -2
  348. package/presets/mavis/php-hexagonal/agents/openspec-author.md +2 -2
  349. package/presets/mavis/php-hexagonal/agents/task-analyst.md +1 -1
  350. package/presets/mavis/php-hexagonal/agents/task-router.md +1 -1
  351. package/presets/mavis/php-hexagonal/rules/agent-team-orchestrator.md +4 -1
  352. package/presets/mavis/php-laravel/agents/build-verifier.md +2 -2
  353. package/presets/mavis/php-laravel/agents/code-reviewer.md +2 -2
  354. package/presets/mavis/php-laravel/agents/feature-developer.md +2 -2
  355. package/presets/mavis/php-laravel/agents/openspec-author.md +2 -2
  356. package/presets/mavis/php-laravel/agents/task-analyst.md +1 -1
  357. package/presets/mavis/php-laravel/agents/task-router.md +1 -1
  358. package/presets/mavis/php-laravel/rules/agent-team-orchestrator.md +4 -1
  359. package/presets/mavis/svelte/agents/accessibility-reviewer.md +2 -2
  360. package/presets/mavis/svelte/agents/api-contract-reviewer.md +2 -2
  361. package/presets/mavis/svelte/agents/build-verifier.md +2 -2
  362. package/presets/mavis/svelte/agents/ci-investigator.md +2 -2
  363. package/presets/mavis/svelte/agents/code-reviewer.md +2 -2
  364. package/presets/mavis/svelte/agents/debugger.md +2 -2
  365. package/presets/mavis/svelte/agents/feature-developer.md +2 -2
  366. package/presets/mavis/svelte/agents/migration-specialist.md +2 -2
  367. package/presets/mavis/svelte/agents/mockup-reviewer.md +2 -2
  368. package/presets/mavis/svelte/agents/openspec-author.md +2 -2
  369. package/presets/mavis/svelte/agents/performance-auditor.md +2 -2
  370. package/presets/mavis/svelte/agents/qa-tester.md +2 -2
  371. package/presets/mavis/svelte/agents/security-reviewer.md +2 -2
  372. package/presets/mavis/svelte/agents/solution-architect.md +2 -2
  373. package/presets/mavis/svelte/agents/task-analyst.md +1 -1
  374. package/presets/mavis/svelte/agents/task-router.md +1 -1
  375. package/presets/mavis/svelte/agents/tech-writer.md +2 -2
  376. package/presets/mavis/svelte/agents/unit-test-generator.md +2 -2
  377. package/presets/mavis/svelte/agents/unit-test-healer.md +2 -2
  378. package/presets/mavis/svelte/agents/unit-test-planner.md +2 -2
  379. package/presets/mavis/svelte/rules/agent-team-orchestrator.md +4 -1
  380. package/presets/opencode/android-kotlin/agents/accessibility-reviewer.md +2 -2
  381. package/presets/opencode/android-kotlin/agents/api-contract-reviewer.md +2 -2
  382. package/presets/opencode/android-kotlin/agents/build-verifier.md +1 -1
  383. package/presets/opencode/android-kotlin/agents/ci-investigator.md +2 -2
  384. package/presets/opencode/android-kotlin/agents/code-reviewer.md +2 -2
  385. package/presets/opencode/android-kotlin/agents/debugger.md +2 -2
  386. package/presets/opencode/android-kotlin/agents/feature-developer.md +2 -2
  387. package/presets/opencode/android-kotlin/agents/migration-specialist.md +2 -2
  388. package/presets/opencode/android-kotlin/agents/mockup-reviewer.md +2 -2
  389. package/presets/opencode/android-kotlin/agents/openspec-author.md +2 -2
  390. package/presets/opencode/android-kotlin/agents/performance-auditor.md +2 -2
  391. package/presets/opencode/android-kotlin/agents/qa-tester.md +2 -2
  392. package/presets/opencode/android-kotlin/agents/security-reviewer.md +2 -2
  393. package/presets/opencode/android-kotlin/agents/task-analyst.md +1 -1
  394. package/presets/opencode/android-kotlin/agents/task-router.md +1 -1
  395. package/presets/opencode/android-kotlin/agents/tech-writer.md +2 -2
  396. package/presets/opencode/android-kotlin/agents/unit-test-generator.md +2 -2
  397. package/presets/opencode/android-kotlin/agents/unit-test-healer.md +2 -2
  398. package/presets/opencode/android-kotlin/agents/unit-test-planner.md +2 -2
  399. package/presets/opencode/android-kotlin/rules/agent-team-orchestrator.md +4 -1
  400. package/presets/opencode/go/agents/build-verifier.md +2 -2
  401. package/presets/opencode/go/agents/code-reviewer.md +2 -2
  402. package/presets/opencode/go/agents/feature-developer.md +2 -2
  403. package/presets/opencode/go/agents/openspec-author.md +2 -2
  404. package/presets/opencode/go/agents/task-analyst.md +1 -1
  405. package/presets/opencode/go/agents/task-router.md +1 -1
  406. package/presets/opencode/go/rules/agent-team-orchestrator.md +4 -1
  407. package/presets/opencode/ios-swift/agents/build-verifier.md +2 -2
  408. package/presets/opencode/ios-swift/agents/code-reviewer.md +2 -2
  409. package/presets/opencode/ios-swift/agents/feature-developer.md +2 -2
  410. package/presets/opencode/ios-swift/agents/mockup-reviewer.md +2 -2
  411. package/presets/opencode/ios-swift/agents/openspec-author.md +2 -2
  412. package/presets/opencode/ios-swift/agents/task-analyst.md +1 -1
  413. package/presets/opencode/ios-swift/agents/task-router.md +1 -1
  414. package/presets/opencode/ios-swift/rules/agent-team-orchestrator.md +4 -1
  415. package/presets/opencode/java/agents/build-verifier.md +2 -2
  416. package/presets/opencode/java/agents/code-reviewer.md +2 -2
  417. package/presets/opencode/java/agents/feature-developer.md +2 -2
  418. package/presets/opencode/java/agents/openspec-author.md +2 -2
  419. package/presets/opencode/java/agents/task-analyst.md +1 -1
  420. package/presets/opencode/java/agents/task-router.md +1 -1
  421. package/presets/opencode/java/rules/agent-team-orchestrator.md +4 -1
  422. package/presets/opencode/mcp-ts/agents/build-verifier.md +2 -2
  423. package/presets/opencode/mcp-ts/agents/feature-developer.md +2 -2
  424. package/presets/opencode/mcp-ts/agents/task-analyst.md +1 -1
  425. package/presets/opencode/mcp-ts/agents/task-router.md +1 -1
  426. package/presets/opencode/mcp-ts/rules/agent-team-orchestrator.md +4 -1
  427. package/presets/opencode/next/agents/accessibility-reviewer.md +2 -2
  428. package/presets/opencode/next/agents/api-contract-reviewer.md +2 -2
  429. package/presets/opencode/next/agents/build-verifier.md +2 -2
  430. package/presets/opencode/next/agents/ci-investigator.md +2 -2
  431. package/presets/opencode/next/agents/code-reviewer.md +2 -2
  432. package/presets/opencode/next/agents/debugger.md +2 -2
  433. package/presets/opencode/next/agents/feature-developer.md +2 -2
  434. package/presets/opencode/next/agents/migration-specialist.md +2 -2
  435. package/presets/opencode/next/agents/mockup-reviewer.md +2 -2
  436. package/presets/opencode/next/agents/openspec-author.md +2 -2
  437. package/presets/opencode/next/agents/performance-auditor.md +2 -2
  438. package/presets/opencode/next/agents/qa-tester.md +2 -2
  439. package/presets/opencode/next/agents/security-reviewer.md +2 -2
  440. package/presets/opencode/next/agents/solution-architect.md +2 -2
  441. package/presets/opencode/next/agents/task-analyst.md +1 -1
  442. package/presets/opencode/next/agents/task-router.md +1 -1
  443. package/presets/opencode/next/agents/tech-writer.md +2 -2
  444. package/presets/opencode/next/agents/unit-test-generator.md +2 -2
  445. package/presets/opencode/next/agents/unit-test-healer.md +2 -2
  446. package/presets/opencode/next/agents/unit-test-planner.md +2 -2
  447. package/presets/opencode/next/hooks/chain-team-phases.sh +46 -1
  448. package/presets/opencode/next/rules/agent-team-orchestrator.md +4 -1
  449. package/presets/opencode/nuxt/agents/accessibility-reviewer.md +2 -2
  450. package/presets/opencode/nuxt/agents/api-contract-reviewer.md +2 -2
  451. package/presets/opencode/nuxt/agents/build-verifier.md +2 -2
  452. package/presets/opencode/nuxt/agents/ci-investigator.md +2 -2
  453. package/presets/opencode/nuxt/agents/code-reviewer.md +2 -2
  454. package/presets/opencode/nuxt/agents/debugger.md +2 -2
  455. package/presets/opencode/nuxt/agents/feature-developer.md +2 -2
  456. package/presets/opencode/nuxt/agents/migration-specialist.md +2 -2
  457. package/presets/opencode/nuxt/agents/mockup-reviewer.md +2 -2
  458. package/presets/opencode/nuxt/agents/openspec-author.md +2 -2
  459. package/presets/opencode/nuxt/agents/performance-auditor.md +2 -2
  460. package/presets/opencode/nuxt/agents/qa-tester.md +2 -2
  461. package/presets/opencode/nuxt/agents/security-reviewer.md +2 -2
  462. package/presets/opencode/nuxt/agents/solution-architect.md +2 -2
  463. package/presets/opencode/nuxt/agents/task-analyst.md +1 -1
  464. package/presets/opencode/nuxt/agents/task-router.md +1 -1
  465. package/presets/opencode/nuxt/agents/tech-writer.md +2 -2
  466. package/presets/opencode/nuxt/agents/unit-test-generator.md +2 -2
  467. package/presets/opencode/nuxt/agents/unit-test-healer.md +2 -2
  468. package/presets/opencode/nuxt/agents/unit-test-planner.md +2 -2
  469. package/presets/opencode/nuxt/rules/agent-team-orchestrator.md +4 -1
  470. package/presets/opencode/php-hexagonal/agents/build-verifier.md +2 -2
  471. package/presets/opencode/php-hexagonal/agents/code-reviewer.md +2 -2
  472. package/presets/opencode/php-hexagonal/agents/feature-developer.md +2 -2
  473. package/presets/opencode/php-hexagonal/agents/openspec-author.md +2 -2
  474. package/presets/opencode/php-hexagonal/agents/task-analyst.md +1 -1
  475. package/presets/opencode/php-hexagonal/agents/task-router.md +1 -1
  476. package/presets/opencode/php-hexagonal/rules/agent-team-orchestrator.md +4 -1
  477. package/presets/opencode/php-laravel/agents/build-verifier.md +2 -2
  478. package/presets/opencode/php-laravel/agents/code-reviewer.md +2 -2
  479. package/presets/opencode/php-laravel/agents/feature-developer.md +2 -2
  480. package/presets/opencode/php-laravel/agents/openspec-author.md +2 -2
  481. package/presets/opencode/php-laravel/agents/task-analyst.md +1 -1
  482. package/presets/opencode/php-laravel/agents/task-router.md +1 -1
  483. package/presets/opencode/php-laravel/rules/agent-team-orchestrator.md +4 -1
  484. package/presets/opencode/svelte/agents/accessibility-reviewer.md +2 -2
  485. package/presets/opencode/svelte/agents/api-contract-reviewer.md +2 -2
  486. package/presets/opencode/svelte/agents/build-verifier.md +2 -2
  487. package/presets/opencode/svelte/agents/ci-investigator.md +2 -2
  488. package/presets/opencode/svelte/agents/code-reviewer.md +2 -2
  489. package/presets/opencode/svelte/agents/debugger.md +2 -2
  490. package/presets/opencode/svelte/agents/feature-developer.md +2 -2
  491. package/presets/opencode/svelte/agents/migration-specialist.md +2 -2
  492. package/presets/opencode/svelte/agents/mockup-reviewer.md +2 -2
  493. package/presets/opencode/svelte/agents/openspec-author.md +2 -2
  494. package/presets/opencode/svelte/agents/performance-auditor.md +2 -2
  495. package/presets/opencode/svelte/agents/qa-tester.md +2 -2
  496. package/presets/opencode/svelte/agents/security-reviewer.md +2 -2
  497. package/presets/opencode/svelte/agents/solution-architect.md +2 -2
  498. package/presets/opencode/svelte/agents/task-analyst.md +1 -1
  499. package/presets/opencode/svelte/agents/task-router.md +1 -1
  500. package/presets/opencode/svelte/agents/tech-writer.md +2 -2
  501. package/presets/opencode/svelte/agents/unit-test-generator.md +2 -2
  502. package/presets/opencode/svelte/agents/unit-test-healer.md +2 -2
  503. package/presets/opencode/svelte/agents/unit-test-planner.md +2 -2
  504. package/presets/opencode/svelte/rules/agent-team-orchestrator.md +4 -1
@@ -91,8 +91,8 @@ If a Sentry/Datadog (or similar) MCP is ready and the task is a production error
91
91
 
92
92
  ## Artifact contract
93
93
 
94
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition when present, failing evidence, and related prior artifacts.
95
- - **Owned outputs:** `debug-report.md` plus any minimal fix paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `debug`) and preserve all foreign entries.
94
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition when present, failing evidence, and related prior artifacts.
95
+ - **Owned outputs:** `debug-report.md` plus any minimal fix paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `debug`) and preserve all foreign items in `manifest.artifacts[]`.
96
96
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
97
97
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
98
98
 
@@ -129,7 +129,7 @@ Shipped browser split: Playwright MCP for e2e specs/selectors; Chrome DevTools M
129
129
 
130
130
  ## Artifact contract
131
131
 
132
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
133
- - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign entries.
132
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
133
+ - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign items in `manifest.artifacts[]`.
134
134
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
135
135
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -72,8 +72,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
72
72
 
73
73
  ## Artifact contract
74
74
 
75
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and stack/version context from the repo.
76
- - **Owned outputs:** `migration-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `migration-plan`) and preserve all foreign entries.
75
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and stack/version context from the repo.
76
+ - **Owned outputs:** `migration-plan.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `migration-plan`) and preserve all foreign items in `manifest.artifacts[]`.
77
77
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
78
78
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
79
79
 
@@ -62,8 +62,8 @@ Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-on
62
62
 
63
63
  ## Artifact contract
64
64
 
65
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for routing + analysis when present (standalone may have only the prompt + URL).
66
- - **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
65
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for routing + analysis when present (standalone may have only the prompt + URL).
66
+ - **Owned outputs:** `mockup-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign items in `manifest.artifacts[]`.
67
67
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed`, `changes_requested`, or `blocked` per the table above. Bind it to the supplied `attemptId` when present.
68
68
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
69
69
 
@@ -132,8 +132,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
132
132
 
133
133
  ## Artifact contract
134
134
 
135
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and available architecture/migration/review artifacts.
136
- - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign entries; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
135
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and available architecture/migration/review artifacts.
136
+ - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign items in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
137
137
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths under `openspec/changes/<change-id>/**`, attach `openspec validate <change-id> --type change --strict` exit code + deltas-only summary, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
138
138
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
139
139
 
@@ -71,8 +71,8 @@ If Chrome DevTools MCP is ready and the app is running, use it for console/netwo
71
71
 
72
72
  ## Artifact contract
73
73
 
74
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief when present and the scoped git diff / routes under audit.
75
- - **Owned outputs:** `perf-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `perf-report`) and preserve all foreign entries.
74
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief when present and the scoped git diff / routes under audit.
75
+ - **Owned outputs:** `perf-report.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `perf-report`) and preserve all foreign items in `manifest.artifacts[]`.
76
76
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
77
77
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
78
78
 
@@ -51,8 +51,8 @@ When the task is mostly e2e, prefer invoking the dedicated `playwright-test-plan
51
51
 
52
52
  ## Artifact contract
53
53
 
54
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, reviewer notes when present, and prior implementation/validation artifacts.
55
- - **Owned outputs:** changed/added test paths (and any QA notes written under the slug dir); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `qa-tester`) and preserve all foreign entries.
54
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, reviewer notes when present, and prior implementation/validation artifacts.
55
+ - **Owned outputs:** changed/added test paths (and any QA notes written under the slug dir); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `qa-tester`) and preserve all foreign items in `manifest.artifacts[]`.
56
56
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
57
57
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
58
58
 
@@ -61,8 +61,8 @@ PASS | PASS_WITH_NOTES | FAIL
61
61
 
62
62
  ## Artifact contract
63
63
 
64
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, prior `review.md` when present, and the scoped git diff.
65
- - **Owned outputs:** `security-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign entries.
64
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, prior `review.md` when present, and the scoped git diff.
65
+ - **Owned outputs:** `security-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign items in `manifest.artifacts[]`.
66
66
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
67
67
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
68
68
 
@@ -71,8 +71,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
71
71
 
72
72
  ## Artifact contract
73
73
 
74
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and applicable prior analysis artifacts.
75
- - **Owned outputs:** `architecture.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `architecture`) and preserve all foreign entries.
74
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and applicable prior analysis artifacts.
75
+ - **Owned outputs:** `architecture.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `architecture`) and preserve all foreign items in `manifest.artifacts[]`.
76
76
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
77
77
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
78
78
 
@@ -178,6 +178,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
178
178
  ## Artifact contract
179
179
 
180
180
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume `pipeline.json`, the manifest routing entry, user-approved decisions, and any authoritative architecture/approval entries.
181
- - **Owned outputs:** `brief.md` and `decomposition.md` (plus `ux-design.md` when produced); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign entries.
181
+ - **Owned outputs:** `brief.md` and `decomposition.md` (plus `ux-design.md` when produced); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign items in `manifest.artifacts[]`.
182
182
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
183
183
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -190,6 +190,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
190
190
  ## Artifact contract
191
191
 
192
192
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
193
- - **Owned outputs:** `pipeline.json` and the routing manifest entry; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign entries.
193
+ - **Owned outputs:** `pipeline.json` and the routing entry in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign items in `manifest.artifacts[]`.
194
194
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
195
195
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -64,8 +64,8 @@ Post-delivery: when behavior or public docs changed and `docs/specs/` is in play
64
64
 
65
65
  ## Artifact contract
66
66
 
67
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and available architecture/migration/review artifacts.
68
- - **Owned outputs:** `documentation.md` (and any explicitly requested docs paths); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `documentation`) and preserve all foreign entries.
67
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and available architecture/migration/review artifacts.
68
+ - **Owned outputs:** `documentation.md` (and any explicitly requested docs paths); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `documentation`) and preserve all foreign items in `manifest.artifacts[]`.
69
69
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
70
70
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
71
71
 
@@ -39,8 +39,8 @@ Run affected unit tests from repository root when feasible. Report files changed
39
39
 
40
40
  ## Artifact contract
41
41
 
42
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `unit-test-plan.md`, brief/decomposition when present, and target modules.
43
- - **Owned outputs:** generated/updated `*.spec.ts` paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-generator`) and preserve all foreign entries.
42
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `unit-test-plan.md`, brief/decomposition when present, and target modules.
43
+ - **Owned outputs:** generated/updated `*.spec.ts` paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-test-generator`) and preserve all foreign items in `manifest.artifacts[]`.
44
44
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
45
45
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
46
46
 
@@ -40,8 +40,8 @@ Report root cause, files changed, validation result, and remaining risk.
40
40
 
41
41
  ## Artifact contract
42
42
 
43
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for failing test evidence, `unit-test-plan.md` when present, and recent diff.
44
- - **Owned outputs:** healed `*.spec.ts` paths (and minimal production fixes only when evidenced); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-healer`) and preserve all foreign entries.
43
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for failing test evidence, `unit-test-plan.md` when present, and recent diff.
44
+ - **Owned outputs:** healed `*.spec.ts` paths (and minimal production fixes only when evidenced); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-test-healer`) and preserve all foreign items in `manifest.artifacts[]`.
45
45
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
46
46
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
47
47
 
@@ -60,8 +60,8 @@ Test titles in the plan must follow Russian capitalization rules from `tests-uni
60
60
 
61
61
  ## Artifact contract
62
62
 
63
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and target modules under `**`.
64
- - **Owned outputs:** `unit-test-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-planner`) and preserve all foreign entries.
63
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and target modules under `**`.
64
+ - **Owned outputs:** `unit-test-plan.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-test-planner`) and preserve all foreign items in `manifest.artifacts[]`.
65
65
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
66
66
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
67
67
 
@@ -109,7 +109,8 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Th
109
109
 
110
110
  - Read the manifest before broad prior-artifact discovery. Each step receives authoritative input entry IDs, owns named output entry IDs, and finishes with one terminal receipt linked to AC/task IDs.
111
111
  - Markdown remains detailed evidence; the manifest points to authoritative paths and records producer, status, timestamps, outcome, and evidence paths.
112
- - Agents upsert only entries they own and preserve foreign entries. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
112
+ -
113
+ Agents upsert only the items in `manifest.artifacts[]` they own and preserve foreign items. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
113
114
  - The orchestration runtime/hook is the single writer for `status.json` lifecycle fields and `metrics.json`. Agents read status for eligibility but never rewrite unrelated state, gate, retry, attempt, timestamp, or metrics fields.
114
115
  - Missing/stale manifests are reported as a handoff gap; fall back to `brief.md`, `decomposition.md`, and `pipeline.json` rather than inventing authority.
115
116
 
@@ -145,6 +146,8 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Th
145
146
  | `awaiting_approval` | Human gate; wait for `/task-continue` |
146
147
  | `changes_requested` | Reviewer blocked; re-run developer (`retryAfterFix`) |
147
148
  | `validation_failed` | build-verifier failed; re-run developer then build-verifier |
149
+ | `blocked` | Pipeline / step cannot proceed (e.g. `pipeline_parse_error`, completion of a parallel step whose producer's receipt was missing — see `agent-artifact-contracts.md` § Completion receipts) |
150
+ | `awaiting_artifact_receipt` | Producer stopped but the bound or assigned-output receipt was missing or stale; hook keeps the attempt active and does not advance. See `agent-artifact-contracts.md` (Schema field name + Receipt binding) for the silent-bug class that lands here. |
148
151
 
149
152
  On each `subagentStop`, the hook reconciles `status.state` from the completing producer's terminal `artifact-manifest.json` receipt (`completed` \| `changes_requested` \| `validation_failed`) when agents left lifecycle fields untouched. Parent orchestrators must wait for that handoff before invoking the next step.
150
153
 
@@ -76,8 +76,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
76
76
 
77
77
  ## Artifact contract
78
78
 
79
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation or UI diff scope, and prior review artifacts when present.
80
- - **Owned outputs:** `a11y-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `a11y-review`) and preserve all foreign entries.
79
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, implementation or UI diff scope, and prior review artifacts when present.
80
+ - **Owned outputs:** `a11y-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `a11y-review`) and preserve all foreign items in `manifest.artifacts[]`.
81
81
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
82
82
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
83
83
 
@@ -80,8 +80,8 @@ Write the owned terminal receipt described under **Artifact contract**.
80
80
 
81
81
  ## Artifact contract
82
82
 
83
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
84
- - **Owned outputs:** `api-contract-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `api-contract-review`) and preserve all foreign entries.
83
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
84
+ - **Owned outputs:** `api-contract-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `api-contract-review`) and preserve all foreign items in `manifest.artifacts[]`.
85
85
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
86
86
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
87
87
 
@@ -98,7 +98,7 @@ Write the owned validation receipt (`completed` or `validation_failed`). Do not
98
98
  ## Artifact contract
99
99
 
100
100
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied.
101
- - **Owned outputs:** `validation-report.md`; upsert only the assigned manifest entry; preserve foreign entries.
101
+ - **Owned outputs:** `validation-report.md`; upsert only the entry in `manifest.artifacts[]` assigned to you; preserve foreign items in `manifest.artifacts[]`.
102
102
  - **Terminal receipt:** cover applicable AC/task IDs; emit `completed` or `validation_failed`.
103
103
  - **Shared state:** never mutate `status.json` or `metrics.json`.
104
104
 
@@ -96,8 +96,8 @@ If a Sentry/Datadog (or similar) MCP is ready and the task is a production error
96
96
 
97
97
  ## Artifact contract
98
98
 
99
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
100
- - **Owned outputs:** `ci-report.md` plus any minimal CI fix paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `ci-report`) and preserve all foreign entries.
99
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
100
+ - **Owned outputs:** `ci-report.md` plus any minimal CI fix paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `ci-report`) and preserve all foreign items in `manifest.artifacts[]`.
101
101
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
102
102
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
103
103
 
@@ -95,7 +95,7 @@ Do not mix this output with retrospective facilitation — keep review and retro
95
95
 
96
96
  ## Artifact contract
97
97
 
98
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation, validation evidence, and the scoped git diff.
99
- - **Owned outputs:** `review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `review`) and preserve all foreign entries.
98
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, implementation, validation evidence, and the scoped git diff.
99
+ - **Owned outputs:** `review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `review`) and preserve all foreign items in `manifest.artifacts[]`.
100
100
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
101
101
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -98,8 +98,8 @@ If a Sentry/Datadog (or similar) MCP is ready and the task is a production error
98
98
 
99
99
  ## Artifact contract
100
100
 
101
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
102
- - **Owned outputs:** `debug-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `debug`) and preserve all foreign entries.
101
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
102
+ - **Owned outputs:** `debug-report.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `debug`) and preserve all foreign items in `manifest.artifacts[]`.
103
103
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
104
104
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
105
105
 
@@ -129,7 +129,7 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
129
129
 
130
130
  ## Artifact contract
131
131
 
132
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
133
- - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign entries.
132
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
133
+ - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign items in `manifest.artifacts[]`.
134
134
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
135
135
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -88,8 +88,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
88
88
 
89
89
  ## Artifact contract
90
90
 
91
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
92
- - **Owned outputs:** `migration-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `migration-plan`) and preserve all foreign entries.
91
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
92
+ - **Owned outputs:** `migration-plan.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `migration-plan`) and preserve all foreign items in `manifest.artifacts[]`.
93
93
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
94
94
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
95
95
 
@@ -72,8 +72,8 @@ Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-on
72
72
 
73
73
  ## Artifact contract
74
74
 
75
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for routing + analysis when present (standalone may have only the prompt + URL).
76
- - **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
75
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for routing + analysis when present (standalone may have only the prompt + URL).
76
+ - **Owned outputs:** `mockup-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign items in `manifest.artifacts[]`.
77
77
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed`, `changes_requested`, or `blocked` per the table above. Bind it to the supplied `attemptId` when present.
78
78
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
79
79
 
@@ -143,8 +143,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
143
143
 
144
144
  ## Artifact contract
145
145
 
146
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and available architecture/migration/review artifacts.
147
- - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign entries; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
146
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and available architecture/migration/review artifacts.
147
+ - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign items in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
148
148
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths under `openspec/changes/<change-id>/**`, attach `openspec validate <change-id> --type change --strict` exit code + deltas-only summary, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
149
149
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
150
150
 
@@ -79,8 +79,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
79
79
 
80
80
  ## Artifact contract
81
81
 
82
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief when present and the scoped git diff / screens under audit.
83
- - **Owned outputs:** `perf-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `perf-report`) and preserve all foreign entries.
82
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief when present and the scoped git diff / screens under audit.
83
+ - **Owned outputs:** `perf-report.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `perf-report`) and preserve all foreign items in `manifest.artifacts[]`.
84
84
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
85
85
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
86
86
 
@@ -69,8 +69,8 @@ Write the owned terminal receipt described under **Artifact contract**.
69
69
 
70
70
  ## Artifact contract
71
71
 
72
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
73
- - **Owned outputs:** updated JUnit / instrumentation tests and handoff summary; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `qa`) and preserve all foreign entries.
72
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
73
+ - **Owned outputs:** updated JUnit / instrumentation tests and handoff summary; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `qa`) and preserve all foreign items in `manifest.artifacts[]`.
74
74
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
75
75
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
76
76
 
@@ -75,8 +75,8 @@ PASS | PASS_WITH_NOTES | FAIL
75
75
 
76
76
  ## Artifact contract
77
77
 
78
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, prior `review.md` when present, and the scoped git diff.
79
- - **Owned outputs:** `security-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign entries.
78
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, prior `review.md` when present, and the scoped git diff.
79
+ - **Owned outputs:** `security-review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign items in `manifest.artifacts[]`.
80
80
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
81
81
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
82
82
 
@@ -114,6 +114,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
114
114
  ## Artifact contract
115
115
 
116
116
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume `pipeline.json`, the manifest routing entry, user-approved decisions, and any authoritative architecture/approval entries.
117
- - **Owned outputs:** `brief.md` and `decomposition.md` (plus `ux-design.md` when produced); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign entries.
117
+ - **Owned outputs:** `brief.md` and `decomposition.md` (plus `ux-design.md` when produced); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign items in `manifest.artifacts[]`.
118
118
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
119
119
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -166,6 +166,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
166
166
  ## Artifact contract
167
167
 
168
168
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
169
- - **Owned outputs:** `pipeline.json` and the routing manifest entry; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign entries.
169
+ - **Owned outputs:** `pipeline.json` and the routing entry in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign items in `manifest.artifacts[]`.
170
170
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
171
171
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -80,8 +80,8 @@ Post-delivery: when behavior or public docs changed and `docs/specs/` is in play
80
80
 
81
81
  ## Artifact contract
82
82
 
83
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
84
- - **Owned outputs:** `documentation.md` (and Docs paths only if the task explicitly requests); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `documentation`) and preserve all foreign entries.
83
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
84
+ - **Owned outputs:** `documentation.md` (and Docs paths only if the task explicitly requests); upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `documentation`) and preserve all foreign items in `manifest.artifacts[]`.
85
85
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
86
86
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
87
87
 
@@ -60,8 +60,8 @@ Write the owned terminal receipt described under **Artifact contract**.
60
60
 
61
61
  ## Artifact contract
62
62
 
63
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
64
- - **Owned outputs:** new/updated `*Test` sources under `src/test`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-tests`) and preserve all foreign entries.
63
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
64
+ - **Owned outputs:** new/updated `*Test` sources under `src/test`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-tests`) and preserve all foreign items in `manifest.artifacts[]`.
65
65
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
66
66
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
67
67
 
@@ -59,8 +59,8 @@ Write the owned terminal receipt described under **Artifact contract**.
59
59
 
60
60
  ## Artifact contract
61
61
 
62
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
63
- - **Owned outputs:** fixed test sources; optional `debug-report.md` when complex; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-heal`) and preserve all foreign entries.
62
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
63
+ - **Owned outputs:** fixed test sources; optional `debug-report.md` when complex; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-test-heal`) and preserve all foreign items in `manifest.artifacts[]`.
64
64
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
65
65
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
66
66
 
@@ -74,8 +74,8 @@ Write the owned terminal receipt described under **Artifact contract**.
74
74
 
75
75
  ## Artifact contract
76
76
 
77
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
78
- - **Owned outputs:** `unit-test-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-plan`) and preserve all foreign entries.
77
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
78
+ - **Owned outputs:** `unit-test-plan.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `unit-test-plan`) and preserve all foreign items in `manifest.artifacts[]`.
79
79
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
80
80
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
81
81
 
@@ -109,7 +109,8 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Th
109
109
 
110
110
  - Read the manifest before broad prior-artifact discovery. Each step receives authoritative input entry IDs, owns named output entry IDs, and finishes with one terminal receipt linked to AC/task IDs.
111
111
  - Markdown remains detailed evidence; the manifest points to authoritative paths and records producer, status, timestamps, outcome, and evidence paths.
112
- - Agents upsert only entries they own and preserve foreign entries. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
112
+ -
113
+ Agents upsert only the items in `manifest.artifacts[]` they own and preserve foreign items. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
113
114
  - The orchestration runtime/hook is the single writer for `status.json` lifecycle fields and `metrics.json`. Agents read status for eligibility but never rewrite unrelated state, gate, retry, attempt, timestamp, or metrics fields.
114
115
  - Missing/stale manifests are reported as a handoff gap; fall back to `brief.md`, `decomposition.md`, and `pipeline.json` rather than inventing authority.
115
116
 
@@ -145,6 +146,8 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Th
145
146
  | `awaiting_approval` | Human gate; wait for `/task-continue` |
146
147
  | `changes_requested` | Reviewer blocked; re-run developer (`retryAfterFix`) |
147
148
  | `validation_failed` | build-verifier failed; re-run developer then build-verifier |
149
+ | `blocked` | Pipeline / step cannot proceed (e.g. `pipeline_parse_error`, completion of a parallel step whose producer's receipt was missing — see `agent-artifact-contracts.md` § Completion receipts) |
150
+ | `awaiting_artifact_receipt` | Producer stopped but the bound or assigned-output receipt was missing or stale; hook keeps the attempt active and does not advance. See `agent-artifact-contracts.md` (Schema field name + Receipt binding) for the silent-bug class that lands here. |
148
151
 
149
152
  On each `subagentStop`, the hook reconciles `status.state` from the completing producer's terminal `artifact-manifest.json` receipt (`completed` \| `changes_requested` \| `validation_failed`) when agents left lifecycle fields untouched. Parent orchestrators must wait for that handoff before invoking the next step.
150
153
 
@@ -70,8 +70,8 @@ Document PASS/FAIL in `validation-report.md`.
70
70
 
71
71
  ## Artifact contract
72
72
 
73
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation evidence, pipeline scope, and changed files.
74
- - **Owned outputs:** `validation-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `validation`) and preserve all foreign entries.
73
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, implementation evidence, pipeline scope, and changed files.
74
+ - **Owned outputs:** `validation-report.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `validation`) and preserve all foreign items in `manifest.artifacts[]`.
75
75
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `validation_failed`. Bind it to the supplied `attemptId` when present.
76
76
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
77
77
 
@@ -66,8 +66,8 @@ Write `.ai.local/team/tasks/<slug>/review.md` with verdict APPROVE | REQUEST_CHA
66
66
 
67
67
  ## Artifact contract
68
68
 
69
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation, validation evidence, and the scoped git diff.
70
- - **Owned outputs:** `review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `review`) and preserve all foreign entries.
69
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition, implementation, validation evidence, and the scoped git diff.
70
+ - **Owned outputs:** `review.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `review`) and preserve all foreign items in `manifest.artifacts[]`.
71
71
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
72
72
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
73
73
 
@@ -117,8 +117,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
117
117
 
118
118
  ## Artifact contract
119
119
 
120
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
121
- - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign entries.
120
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
121
+ - **Owned outputs:** `implementation.md` plus changed implementation/test paths; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `implementation`) and preserve all foreign items in `manifest.artifacts[]`.
122
122
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
123
123
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
124
124
 
@@ -143,8 +143,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
143
143
 
144
144
  ## Artifact contract
145
145
 
146
- - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition and available architecture/migration/review artifacts.
147
- - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign entries; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
146
+ - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the items in `manifest.artifacts[]` for brief/decomposition and available architecture/migration/review artifacts.
147
+ - **Owned outputs:** `openspec/changes/<change-id>/**` (proposal.md, design.md, tasks.md, .openspec.yaml, specs/<capability>/spec.md delta) plus the team slot `openspec-change.md` in `.ai.local/team/tasks/<slug>/` when the orchestrator asks for a summary handoff. Preserve all foreign items in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `openspec-change`).
148
148
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths under `openspec/changes/<change-id>/**`, attach `openspec validate <change-id> --type change --strict` exit code + deltas-only summary, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
149
149
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
150
150
 
@@ -93,6 +93,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
93
93
  ## Artifact contract
94
94
 
95
95
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume `pipeline.json`, the manifest routing entry, user-approved decisions, and any authoritative architecture/approval entries.
96
- - **Owned outputs:** `brief.md` and `decomposition.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign entries.
96
+ - **Owned outputs:** `brief.md` and `decomposition.md`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign items in `manifest.artifacts[]`.
97
97
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
98
98
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -155,6 +155,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
155
155
  ## Artifact contract
156
156
 
157
157
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
158
- - **Owned outputs:** `pipeline.json` and the routing manifest entry; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign entries.
158
+ - **Owned outputs:** `pipeline.json` and the routing entry in `manifest.artifacts[]`; upsert only the entry in `manifest.artifacts[]` assigned by handoff (`artifactOutputId`; fallback `routing`) and preserve all foreign items in `manifest.artifacts[]`.
159
159
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
160
160
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.