@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
@@ -67,8 +67,8 @@ PASS | PASS_WITH_NOTES | FAIL
67
67
 
68
68
  ## Artifact contract
69
69
 
70
- - **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.
71
- - **Owned outputs:** `security-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign entries.
70
+ - **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.
71
+ - **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[]`.
72
72
  - **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.
73
73
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
74
74
 
@@ -77,8 +77,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
77
77
 
78
78
  ## Artifact contract
79
79
 
80
- - **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.
81
- - **Owned outputs:** `architecture.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `architecture`) and preserve all foreign entries.
80
+ - **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.
81
+ - **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[]`.
82
82
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
83
83
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
84
84
 
@@ -184,6 +184,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
184
184
  ## Artifact contract
185
185
 
186
186
  - **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.
187
- - **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.
187
+ - **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[]`.
188
188
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
189
189
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -197,6 +197,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
197
197
  ## Artifact contract
198
198
 
199
199
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
200
- - **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.
200
+ - **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[]`.
201
201
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
202
202
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -70,8 +70,8 @@ Post-delivery: when behavior or public docs changed and `docs/specs/` is in play
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 and available architecture/migration/review artifacts.
74
- - **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.
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 and available architecture/migration/review artifacts.
74
+ - **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[]`.
75
75
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. 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
 
@@ -45,8 +45,8 @@ Run affected unit tests from repository root when feasible. Report files changed
45
45
 
46
46
  ## Artifact contract
47
47
 
48
- - **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.
49
- - **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.
48
+ - **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.
49
+ - **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[]`.
50
50
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
51
51
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
52
52
 
@@ -46,8 +46,8 @@ Report root cause, files changed, validation result, and remaining risk.
46
46
 
47
47
  ## Artifact contract
48
48
 
49
- - **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.
50
- - **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.
49
+ - **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.
50
+ - **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[]`.
51
51
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
52
52
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
53
53
 
@@ -66,8 +66,8 @@ Test titles in the plan must follow Russian capitalization rules from `rules/tes
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 and target modules under `**`.
70
- - **Owned outputs:** `unit-test-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-planner`) 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 and target modules under `**`.
70
+ - **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[]`.
71
71
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. 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
 
@@ -97,7 +97,8 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Sc
97
97
 
98
98
  - 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.
99
99
  - Markdown remains detailed evidence; the manifest records producer, status, authoritative paths, timestamps, outcome, and evidence paths.
100
- - Agents upsert only entries they own and preserve foreign entries. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
100
+ -
101
+ 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.
101
102
  - The orchestration runtime/hook is the single writer for `status.json` lifecycle fields and `metrics.json`. Agents read status for eligibility but never rewrite state, gate, retry, attempt, timestamp, or metrics fields.
102
103
  - Missing/stale manifests are reported as a handoff gap; fall back to `brief.md`, `decomposition.md`, and `pipeline.json` rather than inventing authority.
103
104
 
@@ -135,6 +136,8 @@ On each `subagentStop`, the hook reconciles `status.state` from the completing p
135
136
  | `awaiting_approval` | Human gate; wait for `/task-continue` |
136
137
  | `changes_requested` | Reviewer blocked; re-run developer (`retryAfterFix`) |
137
138
  | `validation_failed` | build-verifier failed; re-run developer then build-verifier |
139
+ | `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) |
140
+ | `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. |
138
141
 
139
142
  ## Pipeline step options
140
143
 
@@ -56,8 +56,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
56
56
 
57
57
  ## Artifact contract
58
58
 
59
- - **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.
60
- - **Owned outputs:** `a11y-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `a11y-review`) and preserve all foreign entries.
59
+ - **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.
60
+ - **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[]`.
61
61
  - **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.
62
62
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
63
63
 
@@ -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:** `api-contract-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `api-contract-review`) 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:** `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[]`.
64
64
  - **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.
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
 
@@ -76,7 +76,7 @@ Write the owned validation receipt (`completed` or `validation_failed`). Do not
76
76
  ## Artifact contract
77
77
 
78
78
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied.
79
- - **Owned outputs:** `validation-report.md`; upsert only the assigned manifest entry; preserve foreign entries.
79
+ - **Owned outputs:** `validation-report.md`; upsert only the entry in `manifest.artifacts[]` assigned to you; preserve foreign items in `manifest.artifacts[]`.
80
80
  - **Terminal receipt:** cover applicable AC/task IDs; emit `completed` or `validation_failed`.
81
81
  - **Shared state:** never mutate `status.json` or `metrics.json`.
82
82
 
@@ -70,8 +70,8 @@ If a Sentry/Datadog (or similar) MCP is ready and the task is a production error
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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
74
- - **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.
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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
74
+ - **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[]`.
75
75
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. 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
 
@@ -74,7 +74,7 @@ Do not mix this output with retrospective facilitation — keep review and retro
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/decomposition, implementation, validation evidence, and the scoped git diff.
78
- - **Owned outputs:** `review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `review`) 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/decomposition, implementation, validation evidence, and the scoped git diff.
78
+ - **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[]`.
79
79
  - **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.
80
80
  - **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 @@ If a Sentry/Datadog (or similar) MCP is ready and the task is a production error
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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
76
- - **Owned outputs:** `debug-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `debug`) 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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
76
+ - **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[]`.
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
 
@@ -103,7 +103,7 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
103
103
 
104
104
  ## Artifact contract
105
105
 
106
- - **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.
107
- - **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.
106
+ - **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.
107
+ - **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[]`.
108
108
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
109
109
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -68,8 +68,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
68
68
 
69
69
  ## Artifact contract
70
70
 
71
- - **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.
72
- - **Owned outputs:** `migration-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `migration-plan`) and preserve all foreign entries.
71
+ - **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.
72
+ - **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[]`.
73
73
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
74
74
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
75
75
 
@@ -52,8 +52,8 @@ Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-on
52
52
 
53
53
  ## Artifact contract
54
54
 
55
- - **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).
56
- - **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
55
+ - **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).
56
+ - **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[]`.
57
57
  - **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.
58
58
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
59
59
 
@@ -122,8 +122,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
122
122
 
123
123
  ## Artifact contract
124
124
 
125
- - **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.
126
- - **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`).
125
+ - **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.
126
+ - **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`).
127
127
  - **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.
128
128
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
129
129
 
@@ -59,8 +59,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
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 when present and the scoped git diff / screens under audit.
63
- - **Owned outputs:** `perf-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `perf-report`) 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 when present and the scoped git diff / screens under audit.
63
+ - **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[]`.
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
 
@@ -51,8 +51,8 @@ Write the owned terminal receipt described under **Artifact contract**.
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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
55
- - **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.
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.md`, `decomposition.md`, and other authoritative prior artifacts for this step.
55
+ - **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[]`.
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
 
@@ -55,8 +55,8 @@ PASS | PASS_WITH_NOTES | FAIL
55
55
 
56
56
  ## Artifact contract
57
57
 
58
- - **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.
59
- - **Owned outputs:** `security-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `security-review`) and preserve all foreign entries.
58
+ - **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.
59
+ - **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[]`.
60
60
  - **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.
61
61
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
62
62
 
@@ -94,6 +94,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
94
94
  ## Artifact contract
95
95
 
96
96
  - **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.
97
- - **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.
97
+ - **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[]`.
98
98
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
99
99
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -146,6 +146,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
146
146
  ## Artifact contract
147
147
 
148
148
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
149
- - **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.
149
+ - **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[]`.
150
150
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
151
151
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -59,8 +59,8 @@ Post-delivery: when behavior or public docs changed and `docs/specs/` is in play
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:** `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.
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:** `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[]`.
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
 
@@ -43,8 +43,8 @@ Write the owned terminal receipt described under **Artifact contract**.
43
43
 
44
44
  ## Artifact contract
45
45
 
46
- - **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.
47
- - **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.
46
+ - **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.
47
+ - **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[]`.
48
48
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
49
49
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
50
50
 
@@ -42,8 +42,8 @@ Write the owned terminal receipt described under **Artifact contract**.
42
42
 
43
43
  ## Artifact contract
44
44
 
45
- - **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.
46
- - **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.
45
+ - **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.
46
+ - **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[]`.
47
47
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
48
48
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
49
49
 
@@ -53,8 +53,8 @@ Write the owned terminal receipt described under **Artifact contract**.
53
53
 
54
54
  ## Artifact contract
55
55
 
56
- - **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.
57
- - **Owned outputs:** `unit-test-plan.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `unit-test-plan`) and preserve all foreign entries.
56
+ - **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.
57
+ - **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[]`.
58
58
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
59
59
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
60
60
 
@@ -74,7 +74,7 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Sc
74
74
 
75
75
  - 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.
76
76
  - Markdown remains detailed evidence; the manifest records producer, status, authoritative paths, timestamps, outcome, and evidence paths.
77
- - Agents upsert only entries they own and preserve foreign entries. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
77
+ - 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.
78
78
  - The orchestration runtime/hook is the single writer for `status.json` lifecycle fields and `metrics.json`. Agents read status for eligibility but never rewrite state, gate, retry, attempt, timestamp, or metrics fields.
79
79
  - Missing/stale manifests are reported as a handoff gap; fall back to `brief.md`, `decomposition.md`, and `pipeline.json` rather than inventing authority.
80
80
 
@@ -48,8 +48,8 @@ Document PASS/FAIL in `validation-report.md`.
48
48
 
49
49
  ## Artifact contract
50
50
 
51
- - **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.
52
- - **Owned outputs:** `validation-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `validation`) and preserve all foreign entries.
51
+ - **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.
52
+ - **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[]`.
53
53
  - **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.
54
54
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
55
55
 
@@ -45,8 +45,8 @@ Write `.ai.local/team/tasks/<slug>/review.md` with verdict APPROVE | REQUEST_CHA
45
45
 
46
46
  ## Artifact contract
47
47
 
48
- - **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.
49
- - **Owned outputs:** `review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `review`) and preserve all foreign entries.
48
+ - **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.
49
+ - **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[]`.
50
50
  - **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.
51
51
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
52
52
 
@@ -86,8 +86,8 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
86
86
 
87
87
  ## Artifact contract
88
88
 
89
- - **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.
90
- - **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.
89
+ - **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.
90
+ - **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[]`.
91
91
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
92
92
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
93
93
 
@@ -122,8 +122,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
122
122
 
123
123
  ## Artifact contract
124
124
 
125
- - **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.
126
- - **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`).
125
+ - **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.
126
+ - **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`).
127
127
  - **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.
128
128
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
129
129
 
@@ -73,6 +73,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
73
73
  ## Artifact contract
74
74
 
75
75
  - **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.
76
- - **Owned outputs:** `brief.md` and `decomposition.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign entries.
76
+ - **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[]`.
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.
@@ -135,6 +135,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
135
135
  ## Artifact contract
136
136
 
137
137
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
138
- - **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.
138
+ - **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[]`.
139
139
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
140
140
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -72,7 +72,7 @@ Each slug has one `artifact-manifest.json` at `.ai.local/team/tasks/<slug>/`. Sc
72
72
 
73
73
  - 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.
74
74
  - Markdown remains detailed evidence; the manifest records producer, status, authoritative paths, timestamps, outcome, and evidence paths.
75
- - Agents upsert only entries they own and preserve foreign entries. Parallel agents use distinct IDs; the parent/orchestrator serializes manifest merges.
75
+ - 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.
76
76
  - The orchestration runtime/hook is the single writer for `status.json` lifecycle fields and `metrics.json`. Agents read status for eligibility but never rewrite state, gate, retry, attempt, timestamp, or metrics fields.
77
77
  - Missing/stale manifests are reported as a handoff gap; fall back to `brief.md`, `decomposition.md`, and `pipeline.json` rather than inventing authority.
78
78
 
@@ -110,6 +110,8 @@ On each `subagentStop`, the hook reconciles `status.state` from the completing p
110
110
  | `awaiting_approval` | Human gate; wait for `/task-continue` |
111
111
  | `changes_requested` | Reviewer blocked; re-run developer (`retryAfterFix`) |
112
112
  | `validation_failed` | build-verifier failed; re-run developer then build-verifier |
113
+ | `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) |
114
+ | `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. |
113
115
 
114
116
  ## Pipeline step options
115
117
 
@@ -93,8 +93,8 @@ Write the owned validation receipt (`completed` or `validation_failed`). Do not
93
93
 
94
94
  ## Artifact contract
95
95
 
96
- - **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.
97
- - **Owned outputs:** `validation-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `validation`) and preserve all foreign entries.
96
+ - **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.
97
+ - **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[]`.
98
98
  - **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.
99
99
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
100
100
 
@@ -74,7 +74,7 @@ Do not mix this output with retrospective facilitation — keep review and retro
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/decomposition, implementation, validation evidence, and the scoped git diff.
78
- - **Owned outputs:** `review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `review`) 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/decomposition, implementation, validation evidence, and the scoped git diff.
78
+ - **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[]`.
79
79
  - **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.
80
80
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -103,7 +103,7 @@ Load requestable rule `mcp-usage` when verifying third-party library APIs (Conte
103
103
 
104
104
  ## Artifact contract
105
105
 
106
- - **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.
107
- - **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.
106
+ - **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.
107
+ - **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[]`.
108
108
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
109
109
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -52,8 +52,8 @@ Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-on
52
52
 
53
53
  ## Artifact contract
54
54
 
55
- - **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).
56
- - **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
55
+ - **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).
56
+ - **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[]`.
57
57
  - **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.
58
58
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
59
59
 
@@ -122,8 +122,8 @@ If `scope` carries multiple phases (e.g. `openspec:<change-id>:propose+apply`),
122
122
 
123
123
  ## Artifact contract
124
124
 
125
- - **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.
126
- - **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`).
125
+ - **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.
126
+ - **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`).
127
127
  - **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.
128
128
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
129
129
 
@@ -94,6 +94,6 @@ If the prompt/brief has a tracker URL (Linear/Jira/Notion/…) and that MCP is r
94
94
  ## Artifact contract
95
95
 
96
96
  - **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.
97
- - **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.
97
+ - **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[]`.
98
98
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
99
99
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
@@ -146,6 +146,6 @@ Return the routing receipt to the orchestrator. The orchestration runtime/hook e
146
146
  ## Artifact contract
147
147
 
148
148
  - **Authoritative inputs:** read `.ai.local/team/tasks/<slug>/artifact-manifest.json` first; consume the user request and any existing authoritative task/decision entries.
149
- - **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.
149
+ - **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[]`.
150
150
  - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
151
151
  - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.