@mmerterden/multi-agent-pipeline 12.6.0 → 12.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +18 -18
  3. package/docs/FIGMA_PIPELINE.md +34 -34
  4. package/docs/adr/0001-three-model-triage.md +12 -12
  5. package/docs/adr/0002-instruction-driven-flag.md +5 -5
  6. package/docs/adr/0003-unified-shared-skills.md +5 -5
  7. package/docs/adr/0004-zero-dependency-philosophy.md +5 -5
  8. package/docs/adr/0005-lazy-phase-docs.md +2 -2
  9. package/docs/adr/0006-skills-core-external-split.md +6 -6
  10. package/docs/adr/0007-multi-tool-adapter-framework.md +19 -19
  11. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +19 -19
  12. package/docs/adr/README.md +1 -1
  13. package/docs/best-practices.md +3 -3
  14. package/docs/features.md +28 -28
  15. package/docs/performance.md +16 -16
  16. package/docs/recovery-guide.md +39 -39
  17. package/index.js +4 -4
  18. package/install/_common.mjs +53 -11
  19. package/install/_copilot-instructions.mjs +2 -2
  20. package/install/_dev-only-files.mjs +126 -6
  21. package/install/_platform-filter.mjs +1 -1
  22. package/install/_telemetry.mjs +1 -1
  23. package/install/claude.mjs +20 -13
  24. package/install/copilot.mjs +11 -23
  25. package/install/index.mjs +7 -15
  26. package/install/templates/copilot-instructions.md +54 -54
  27. package/install.js +1 -1
  28. package/package.json +29 -11
  29. package/pipeline/commands/multi-agent/SKILL.md +1 -1
  30. package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -2
  31. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -1
  32. package/pipeline/commands/multi-agent/autopilot/SKILL.md +1 -1
  33. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +1 -1
  34. package/pipeline/commands/multi-agent/create-jira/SKILL.md +1 -1
  35. package/pipeline/commands/multi-agent/design-check/SKILL.md +1 -1
  36. package/pipeline/commands/multi-agent/dev/SKILL.md +1 -1
  37. package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -1
  38. package/pipeline/commands/multi-agent/dev-local/SKILL.md +1 -1
  39. package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -1
  40. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +1 -1
  41. package/pipeline/commands/multi-agent/finish/SKILL.md +6 -6
  42. package/pipeline/commands/multi-agent/forget/SKILL.md +1 -1
  43. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
  44. package/pipeline/commands/multi-agent/help/SKILL.md +3 -3
  45. package/pipeline/commands/multi-agent/issue/SKILL.md +1 -1
  46. package/pipeline/commands/multi-agent/jira/SKILL.md +1 -1
  47. package/pipeline/commands/multi-agent/kill/SKILL.md +1 -1
  48. package/pipeline/commands/multi-agent/language/SKILL.md +1 -1
  49. package/pipeline/commands/multi-agent/local/SKILL.md +1 -1
  50. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +1 -1
  51. package/pipeline/commands/multi-agent/log/SKILL.md +1 -1
  52. package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
  53. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +1 -1
  54. package/pipeline/commands/multi-agent/purge/SKILL.md +1 -1
  55. package/pipeline/commands/multi-agent/refactor/SKILL.md +16 -8
  56. package/pipeline/commands/multi-agent/resume/SKILL.md +2 -2
  57. package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
  58. package/pipeline/commands/multi-agent/review-issue/SKILL.md +1 -1
  59. package/pipeline/commands/multi-agent/review-jira/SKILL.md +1 -1
  60. package/pipeline/commands/multi-agent/routines/SKILL.md +1 -1
  61. package/pipeline/commands/multi-agent/save/SKILL.md +1 -1
  62. package/pipeline/commands/multi-agent/scan/SKILL.md +1 -1
  63. package/pipeline/commands/multi-agent/search/SKILL.md +1 -1
  64. package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
  65. package/pipeline/commands/multi-agent/stack/SKILL.md +3 -3
  66. package/pipeline/commands/multi-agent/status/SKILL.md +1 -1
  67. package/pipeline/commands/multi-agent/sync/SKILL.md +5 -5
  68. package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
  69. package/pipeline/commands/multi-agent/uninstall/SKILL.md +1 -1
  70. package/pipeline/commands/multi-agent/update/SKILL.md +3 -3
  71. package/pipeline/lib/account-resolver.sh +1 -1
  72. package/pipeline/lib/channels-multi-repo.sh +1 -1
  73. package/pipeline/lib/context-link-extractor.sh +1 -1
  74. package/pipeline/lib/credential-store.sh +21 -1
  75. package/pipeline/lib/fetch-confluence.sh +1 -1
  76. package/pipeline/lib/fetch-crashlytics.sh +1 -1
  77. package/pipeline/lib/fetch-fortify.sh +1 -1
  78. package/pipeline/lib/fetch-graylog.sh +1 -1
  79. package/pipeline/lib/fetch-swagger.sh +1 -1
  80. package/pipeline/lib/issue-fetcher.sh +1 -1
  81. package/pipeline/lib/multi-repo-pipeline.sh +1 -1
  82. package/pipeline/lib/repo-cache.sh +1 -1
  83. package/pipeline/lib/submodule-detector.sh +1 -1
  84. package/pipeline/multi-agent-refs/_account-picker.md +1 -1
  85. package/pipeline/multi-agent-refs/_dev-context.md +1 -1
  86. package/pipeline/multi-agent-refs/_repo-picker.md +1 -1
  87. package/pipeline/multi-agent-refs/component-dispatch.md +1 -1
  88. package/pipeline/multi-agent-refs/component-generation.md +121 -0
  89. package/pipeline/multi-agent-refs/cross-cli-contract.md +1 -1
  90. package/pipeline/multi-agent-refs/features/model-fallback.md +2 -2
  91. package/pipeline/multi-agent-refs/phases/operations.md +28 -0
  92. package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -0
  93. package/pipeline/multi-agent-refs/phases/phase-2-planning.md +1 -1
  94. package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -2
  95. package/pipeline/multi-agent-refs/phases/phase-4-review.md +50 -5
  96. package/pipeline/preferences-template.json +5 -11
  97. package/pipeline/schemas/agent-state.schema.json +39 -9
  98. package/pipeline/schemas/analysis-output.schema.json +18 -4
  99. package/pipeline/schemas/analysis-spec.schema.json +120 -32
  100. package/pipeline/schemas/clarify-output.schema.json +15 -5
  101. package/pipeline/schemas/design-check-config.schema.json +32 -11
  102. package/pipeline/schemas/dev-critic-output.schema.json +20 -5
  103. package/pipeline/schemas/figma-project-config.schema.json +42 -10
  104. package/pipeline/schemas/learnings-ledger.schema.json +10 -2
  105. package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +1 -4
  106. package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +24 -7
  107. package/pipeline/schemas/plan-todos.schema.json +6 -3
  108. package/pipeline/schemas/planning-output.schema.json +5 -1
  109. package/pipeline/schemas/prefs.schema.json +97 -229
  110. package/pipeline/schemas/test-gap.schema.json +5 -5
  111. package/pipeline/schemas/token-budget.json +8 -8
  112. package/pipeline/schemas/triage-corpus.schema.json +1 -1
  113. package/pipeline/scripts/_smoke-root.sh +61 -0
  114. package/pipeline/scripts/aggregate-metrics.mjs +18 -6
  115. package/pipeline/scripts/audit-log.sh +25 -0
  116. package/pipeline/scripts/build-skills-index.mjs +6 -2
  117. package/pipeline/scripts/build-stack-plugins.mjs +142 -39
  118. package/pipeline/scripts/check-derived-drift.mjs +196 -0
  119. package/pipeline/scripts/classify-plan-safety.mjs +20 -7
  120. package/pipeline/scripts/cost-budget-check.mjs +2 -1
  121. package/pipeline/scripts/cost-table.json +1 -1
  122. package/pipeline/scripts/diff-explain.mjs +7 -3
  123. package/pipeline/scripts/diff-risk-score.mjs +13 -3
  124. package/pipeline/scripts/evidence-gate.mjs +7 -2
  125. package/pipeline/scripts/gen-mode-dispatch.mjs +38 -21
  126. package/pipeline/scripts/gen-skills-index.mjs +18 -3
  127. package/pipeline/scripts/learning-curve.mjs +13 -3
  128. package/pipeline/scripts/learnings-ledger.mjs +103 -36
  129. package/pipeline/scripts/localize-commands.mjs +6 -1
  130. package/pipeline/scripts/match-skills.mjs +15 -4
  131. package/pipeline/scripts/migrate-prefs.mjs +33 -16
  132. package/pipeline/scripts/phase-tracker.sh +3 -1
  133. package/pipeline/scripts/repo-map.mjs +110 -64
  134. package/pipeline/scripts/review-scope.mjs +7 -1
  135. package/pipeline/scripts/routine-registry.mjs +4 -9
  136. package/pipeline/scripts/run-aggregator.mjs +11 -5
  137. package/pipeline/scripts/run-metrics.mjs +13 -8
  138. package/pipeline/scripts/smoke-cross-cli-behavior.sh +21 -7
  139. package/pipeline/scripts/test-gap-scan.mjs +44 -12
  140. package/pipeline/scripts/test-integrity-gate.mjs +5 -1
  141. package/pipeline/scripts/token-budget-report.mjs +44 -21
  142. package/pipeline/scripts/triage-memory.mjs +126 -34
  143. package/pipeline/scripts/uninstall.mjs +74 -30
  144. package/pipeline/scripts/validate-analysis-doc.mjs +15 -5
  145. package/pipeline/scripts/validate-diff-risk.mjs +32 -18
  146. package/pipeline/scripts/validate-test-gap.mjs +17 -7
  147. package/pipeline/scripts/validate-triage.mjs +17 -5
  148. package/pipeline/scripts/write-state.mjs +32 -9
  149. package/pipeline/skills/.skills-index.json +91 -91
  150. package/pipeline/skills/shared/README.md +57 -57
  151. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -1
  152. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +1 -1
  153. package/pipeline/skills/shared/core/multi-agent/SKILL.md +26 -279
  154. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +1 -1
  155. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +1 -1
  156. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +1 -1
  157. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  158. package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
  159. package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +1 -1
  160. package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +1 -1
  161. package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +1 -1
  162. package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +1 -1
  163. package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +1 -1
  164. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +1 -1
  165. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  166. package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +1 -1
  167. package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +1 -1
  168. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  169. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +1 -1
  170. package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +1 -1
  171. package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +1 -1
  172. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +1 -1
  173. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +1 -1
  174. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +1 -1
  175. package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +1 -1
  176. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +1 -1
  177. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +1 -1
  178. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +1 -1
  179. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +16 -8
  180. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +1 -1
  181. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +1 -1
  182. package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +1 -1
  183. package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +1 -1
  184. package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +1 -1
  185. package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +1 -1
  186. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +1 -1
  187. package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +1 -1
  188. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +1 -1
  189. package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +3 -3
  190. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +1 -1
  191. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +1 -1
  192. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +1 -1
  193. package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +1 -1
  194. package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +1 -1
  195. package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +1 -1
  196. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -4
  197. package/pipeline/skills/shared/external/agentflow/SKILL.md +1 -1
  198. package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +1 -1
  199. package/pipeline/skills/shared/external/android_ui_verification/SKILL.md +1 -1
  200. package/pipeline/skills/shared/external/api-patterns/SKILL.md +1 -1
  201. package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +1 -1
  202. package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +1 -1
  203. package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
  204. package/pipeline/skills/shared/external/backlog/SKILL.md +12 -12
  205. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -1
  206. package/pipeline/skills/shared/external/context-compression/SKILL.md +1 -1
  207. package/pipeline/skills/shared/external/council/SKILL.md +3 -3
  208. package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -1
  209. package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -1
  210. package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +1 -1
  211. package/pipeline/skills/shared/external/docker-expert/SKILL.md +1 -1
  212. package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +1 -1
  213. package/pipeline/skills/shared/external/firebase/SKILL.md +1 -1
  214. package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +1 -1
  215. package/pipeline/skills/shared/external/help-skills/SKILL.md +1 -1
  216. package/pipeline/skills/shared/external/hig-components-content/SKILL.md +1 -1
  217. package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +1 -1
  218. package/pipeline/skills/shared/external/hig-components-status/SKILL.md +1 -1
  219. package/pipeline/skills/shared/external/hig-components-system/SKILL.md +1 -1
  220. package/pipeline/skills/shared/external/hig-foundations/SKILL.md +1 -1
  221. package/pipeline/skills/shared/external/hig-inputs/SKILL.md +1 -1
  222. package/pipeline/skills/shared/external/hig-patterns/SKILL.md +1 -1
  223. package/pipeline/skills/shared/external/hig-platforms/SKILL.md +1 -1
  224. package/pipeline/skills/shared/external/hig-technologies/SKILL.md +1 -1
  225. package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -1
  226. package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -1
  227. package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +1 -1
  228. package/pipeline/skills/shared/external/ios-developer/SKILL.md +1 -1
  229. package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +1 -1
  230. package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +1 -1
  231. package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +1 -1
  232. package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +1 -1
  233. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -1
  234. package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +1 -1
  235. package/pipeline/skills/shared/external/observability-engineer/SKILL.md +1 -1
  236. package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -1
  237. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -1
  238. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -1
  239. package/pipeline/skills/shared/external/search-first/SKILL.md +2 -2
  240. package/pipeline/skills/shared/external/skill-creator/SKILL.md +12 -12
  241. package/pipeline/skills/shared/external/skill-creator/audit.md +21 -21
  242. package/pipeline/skills/shared/external/skill-creator/checklist.md +3 -3
  243. package/pipeline/skills/shared/external/skill-creator/examples.md +10 -10
  244. package/pipeline/skills/shared/external/skill-creator/label-check.md +17 -17
  245. package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +86 -50
  246. package/pipeline/skills/shared/external/skill-creator/template.md +9 -9
  247. package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +1 -1
  248. package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +1 -1
  249. package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +1 -1
  250. package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +1 -1
  251. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -1
  252. package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -1
  253. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -1
  254. package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -1
  255. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -1
  256. package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -1
  257. package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -1
  258. package/pipeline/skills/shared/external/xcode-build-benchmark/schemas/build-benchmark.schema.json +9 -49
  259. package/pipeline/skills/skills-index.md +57 -57
  260. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +0 -25
  261. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-2-plan.json +0 -30
  262. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +0 -20
  263. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +0 -15
  264. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +0 -14
  265. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/task.json +0 -12
  266. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +0 -29
  267. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-2-plan.json +0 -43
  268. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +0 -35
  269. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +0 -35
  270. package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +0 -14
  271. package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +0 -12
  272. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-1-analysis.json +0 -29
  273. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-2-plan.json +0 -42
  274. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-review.json +0 -20
  275. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-triage.json +0 -15
  276. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/metadata.json +0 -14
  277. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/task.json +0 -12
  278. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-1-analysis.json +0 -29
  279. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-2-plan.json +0 -40
  280. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-review.json +0 -20
  281. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-triage.json +0 -15
  282. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/metadata.json +0 -14
  283. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/task.json +0 -12
  284. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-1-analysis.json +0 -29
  285. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-2-plan.json +0 -42
  286. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-review.json +0 -28
  287. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-triage.json +0 -27
  288. package/pipeline/eval/golden-tasks/05-ios-security-keychain/metadata.json +0 -14
  289. package/pipeline/eval/golden-tasks/05-ios-security-keychain/task.json +0 -12
  290. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-1-analysis.json +0 -29
  291. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-2-plan.json +0 -41
  292. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-review.json +0 -12
  293. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-triage.json +0 -6
  294. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/metadata.json +0 -14
  295. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/task.json +0 -12
  296. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-1-analysis.json +0 -29
  297. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-2-plan.json +0 -42
  298. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-review.json +0 -28
  299. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-triage.json +0 -27
  300. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/metadata.json +0 -14
  301. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/task.json +0 -12
  302. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-1-analysis.json +0 -25
  303. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-2-plan.json +0 -31
  304. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-review.json +0 -12
  305. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-triage.json +0 -18
  306. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/metadata.json +0 -14
  307. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/task.json +0 -12
  308. package/pipeline/eval/golden-tasks/README.md +0 -65
  309. package/pipeline/eval/intent-cases.json +0 -40
  310. package/pipeline/eval/run-metrics-fixture.json +0 -46
  311. package/pipeline/eval/triage/01-empty-findings/expected.json +0 -6
  312. package/pipeline/eval/triage/01-empty-findings/input.json +0 -5
  313. package/pipeline/eval/triage/01-empty-findings/notes.md +0 -7
  314. package/pipeline/eval/triage/02-real-blocker/expected.json +0 -15
  315. package/pipeline/eval/triage/02-real-blocker/input.json +0 -14
  316. package/pipeline/eval/triage/02-real-blocker/notes.md +0 -7
  317. package/pipeline/eval/triage/03-out-of-scope-defer/expected.json +0 -18
  318. package/pipeline/eval/triage/03-out-of-scope-defer/input.json +0 -14
  319. package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +0 -10
  320. package/pipeline/eval/triage/04-false-positive-reject/expected.json +0 -18
  321. package/pipeline/eval/triage/04-false-positive-reject/input.json +0 -14
  322. package/pipeline/eval/triage/04-false-positive-reject/notes.md +0 -10
  323. package/pipeline/eval/triage/05-mixed-classification/expected.json +0 -43
  324. package/pipeline/eval/triage/05-mixed-classification/input.json +0 -38
  325. package/pipeline/eval/triage/05-mixed-classification/notes.md +0 -17
  326. package/pipeline/eval/triage/06-severity-mismatch/expected.json +0 -15
  327. package/pipeline/eval/triage/06-severity-mismatch/input.json +0 -14
  328. package/pipeline/eval/triage/06-severity-mismatch/notes.md +0 -9
  329. package/pipeline/eval/triage/07-duplicate-reviewers/expected.json +0 -27
  330. package/pipeline/eval/triage/07-duplicate-reviewers/input.json +0 -22
  331. package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +0 -9
  332. package/pipeline/eval/triage/08-style-misclassified/expected.json +0 -18
  333. package/pipeline/eval/triage/08-style-misclassified/input.json +0 -14
  334. package/pipeline/eval/triage/08-style-misclassified/notes.md +0 -9
  335. package/pipeline/eval/triage/09-cascading-finding/expected.json +0 -23
  336. package/pipeline/eval/triage/09-cascading-finding/input.json +0 -22
  337. package/pipeline/eval/triage/09-cascading-finding/notes.md +0 -9
  338. package/pipeline/eval/triage/10-deferred-crossref/expected.json +0 -18
  339. package/pipeline/eval/triage/10-deferred-crossref/input.json +0 -14
  340. package/pipeline/eval/triage/10-deferred-crossref/notes.md +0 -9
  341. package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +0 -27
  342. package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +0 -22
  343. package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +0 -14
  344. package/pipeline/eval/triage/README.md +0 -54
  345. package/pipeline/scripts/benchmark-phase-0.sh +0 -128
  346. package/pipeline/scripts/check-md-links.mjs +0 -84
  347. package/pipeline/scripts/eval-golden-tasks-live.mjs +0 -297
  348. package/pipeline/scripts/eval-golden-tasks.mjs +0 -212
  349. package/pipeline/scripts/eval-intent.mjs +0 -103
  350. package/pipeline/scripts/eval-mine-corpus.mjs +0 -201
  351. package/pipeline/scripts/eval-triage.mjs +0 -171
  352. package/pipeline/scripts/fixtures/diff-risk-android.diff +0 -40
  353. package/pipeline/scripts/fixtures/diff-risk-ios.diff +0 -48
  354. package/pipeline/scripts/fixtures/diff-risk-test-removal.diff +0 -40
  355. package/pipeline/scripts/fixtures/install-layout.tsv +0 -19
  356. package/pipeline/scripts/fixtures/pack-expected-count.txt +0 -1
  357. package/pipeline/scripts/fixtures/test-gap-node.diff +0 -30
  358. package/pipeline/scripts/fixtures/test-gap-python.diff +0 -32
  359. package/pipeline/scripts/lint-mcp-refs.mjs +0 -207
  360. package/pipeline/scripts/lint-skills.mjs +0 -143
  361. package/pipeline/scripts/run-smokes.mjs +0 -76
  362. package/pipeline/scripts/smoke-add-detail.sh +0 -137
  363. package/pipeline/scripts/smoke-agent-guard.sh +0 -74
  364. package/pipeline/scripts/smoke-agent-log-cost.sh +0 -262
  365. package/pipeline/scripts/smoke-agent-model-routing.sh +0 -87
  366. package/pipeline/scripts/smoke-ask-choice.sh +0 -42
  367. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +0 -36
  368. package/pipeline/scripts/smoke-bitbucket-contract.sh +0 -255
  369. package/pipeline/scripts/smoke-changelog-version.sh +0 -47
  370. package/pipeline/scripts/smoke-channels-approval-gate.sh +0 -60
  371. package/pipeline/scripts/smoke-channels-flow.sh +0 -130
  372. package/pipeline/scripts/smoke-ci-workflows.sh +0 -88
  373. package/pipeline/scripts/smoke-clarify.sh +0 -148
  374. package/pipeline/scripts/smoke-command-inventory.sh +0 -81
  375. package/pipeline/scripts/smoke-commands-skills-parity.sh +0 -87
  376. package/pipeline/scripts/smoke-community-gates.sh +0 -75
  377. package/pipeline/scripts/smoke-compliance-skills.sh +0 -119
  378. package/pipeline/scripts/smoke-config-hygiene.sh +0 -58
  379. package/pipeline/scripts/smoke-cost-budget.sh +0 -70
  380. package/pipeline/scripts/smoke-cost-summary.sh +0 -139
  381. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +0 -128
  382. package/pipeline/scripts/smoke-description-tr.sh +0 -82
  383. package/pipeline/scripts/smoke-dev-critic.sh +0 -144
  384. package/pipeline/scripts/smoke-diff-explain.sh +0 -147
  385. package/pipeline/scripts/smoke-diff-risk.sh +0 -190
  386. package/pipeline/scripts/smoke-dynamic-skill-loading.sh +0 -160
  387. package/pipeline/scripts/smoke-eval-live.sh +0 -136
  388. package/pipeline/scripts/smoke-evidence-gate.sh +0 -93
  389. package/pipeline/scripts/smoke-extract-conventions.sh +0 -163
  390. package/pipeline/scripts/smoke-fetchers-offline.sh +0 -448
  391. package/pipeline/scripts/smoke-figma-dispatch.sh +0 -112
  392. package/pipeline/scripts/smoke-gate-hooks.sh +0 -74
  393. package/pipeline/scripts/smoke-gc-tmp.sh +0 -130
  394. package/pipeline/scripts/smoke-gc-worktrees.sh +0 -125
  395. package/pipeline/scripts/smoke-generate-issue.sh +0 -120
  396. package/pipeline/scripts/smoke-handoff-contract.sh +0 -92
  397. package/pipeline/scripts/smoke-identity-isolation.sh +0 -70
  398. package/pipeline/scripts/smoke-install-layout.sh +0 -248
  399. package/pipeline/scripts/smoke-intent-guard.sh +0 -86
  400. package/pipeline/scripts/smoke-issue-comment-template.sh +0 -86
  401. package/pipeline/scripts/smoke-issue-jira-triad.sh +0 -120
  402. package/pipeline/scripts/smoke-keychain.sh +0 -158
  403. package/pipeline/scripts/smoke-language-axis.sh +0 -109
  404. package/pipeline/scripts/smoke-learning-curve.sh +0 -61
  405. package/pipeline/scripts/smoke-learnings-ledger.sh +0 -86
  406. package/pipeline/scripts/smoke-lib-scripts.sh +0 -448
  407. package/pipeline/scripts/smoke-mcp-gate.sh +0 -68
  408. package/pipeline/scripts/smoke-md-links.sh +0 -8
  409. package/pipeline/scripts/smoke-md2confluence.sh +0 -126
  410. package/pipeline/scripts/smoke-metrics-cache-ratio.sh +0 -72
  411. package/pipeline/scripts/smoke-migrate-state.sh +0 -102
  412. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +0 -161
  413. package/pipeline/scripts/smoke-model-fallback.sh +0 -89
  414. package/pipeline/scripts/smoke-multi-repo-integration.sh +0 -116
  415. package/pipeline/scripts/smoke-multi-repo-worktree.sh +0 -61
  416. package/pipeline/scripts/smoke-no-mcp-in-dev-phases.sh +0 -115
  417. package/pipeline/scripts/smoke-no-token-prompt.sh +0 -85
  418. package/pipeline/scripts/smoke-pack-contents.sh +0 -140
  419. package/pipeline/scripts/smoke-pat-audit.sh +0 -128
  420. package/pipeline/scripts/smoke-per-repo-memory.sh +0 -156
  421. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +0 -170
  422. package/pipeline/scripts/smoke-phase-6-multi.sh +0 -79
  423. package/pipeline/scripts/smoke-phase-banner.sh +0 -101
  424. package/pipeline/scripts/smoke-phase-tracker.sh +0 -324
  425. package/pipeline/scripts/smoke-phase0-bridge-contract.sh +0 -241
  426. package/pipeline/scripts/smoke-phase4-gates.sh +0 -45
  427. package/pipeline/scripts/smoke-phase4-triage.sh +0 -229
  428. package/pipeline/scripts/smoke-plan-approval-gate.sh +0 -71
  429. package/pipeline/scripts/smoke-plan-safety.sh +0 -139
  430. package/pipeline/scripts/smoke-plan-todos.sh +0 -196
  431. package/pipeline/scripts/smoke-plugin-validate.sh +0 -64
  432. package/pipeline/scripts/smoke-pr-review-actions.sh +0 -152
  433. package/pipeline/scripts/smoke-pre-commit.sh +0 -170
  434. package/pipeline/scripts/smoke-pref-migration.sh +0 -226
  435. package/pipeline/scripts/smoke-prefs-language.sh +0 -134
  436. package/pipeline/scripts/smoke-progress-contract.sh +0 -127
  437. package/pipeline/scripts/smoke-prune-logs.sh +0 -137
  438. package/pipeline/scripts/smoke-purge.sh +0 -138
  439. package/pipeline/scripts/smoke-push-retry.sh +0 -75
  440. package/pipeline/scripts/smoke-repo-map.sh +0 -300
  441. package/pipeline/scripts/smoke-review-readiness.sh +0 -92
  442. package/pipeline/scripts/smoke-review-watch.sh +0 -146
  443. package/pipeline/scripts/smoke-routines.sh +0 -84
  444. package/pipeline/scripts/smoke-run-aggregator.sh +0 -216
  445. package/pipeline/scripts/smoke-run-metrics.sh +0 -50
  446. package/pipeline/scripts/smoke-search.sh +0 -187
  447. package/pipeline/scripts/smoke-shadow-git.sh +0 -224
  448. package/pipeline/scripts/smoke-skill-authoring.sh +0 -137
  449. package/pipeline/scripts/smoke-skill-language.sh +0 -83
  450. package/pipeline/scripts/smoke-skill-manifest.sh +0 -138
  451. package/pipeline/scripts/smoke-skill-scan.sh +0 -198
  452. package/pipeline/scripts/smoke-source-parity.sh +0 -85
  453. package/pipeline/scripts/smoke-subagent-validators.sh +0 -108
  454. package/pipeline/scripts/smoke-sync-parity.sh +0 -92
  455. package/pipeline/scripts/smoke-tasklist-ordering.sh +0 -112
  456. package/pipeline/scripts/smoke-telemetry.sh +0 -147
  457. package/pipeline/scripts/smoke-test-gap.sh +0 -183
  458. package/pipeline/scripts/smoke-token-budget.sh +0 -67
  459. package/pipeline/scripts/smoke-token-preflight.sh +0 -82
  460. package/pipeline/scripts/smoke-tracker-contract.sh +0 -191
  461. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +0 -73
  462. package/pipeline/scripts/smoke-triage-memory.sh +0 -174
  463. package/pipeline/scripts/smoke-update-check.sh +0 -135
  464. package/pipeline/scripts/smoke-url-enrichment.sh +0 -70
  465. package/pipeline/scripts/smoke-validate-analysis-doc.sh +0 -161
  466. package/pipeline/scripts/smoke-validator-contradiction.sh +0 -67
  467. package/pipeline/scripts/smoke-validator-gates.sh +0 -164
  468. package/pipeline/scripts/smoke-vercel-deploy-redact.sh +0 -129
  469. package/pipeline/scripts/smoke-verify-by-test.sh +0 -148
  470. package/pipeline/scripts/smoke-wiki-integration.sh +0 -122
  471. package/pipeline/scripts/smoke-work-summary.sh +0 -163
  472. package/pipeline/scripts/smoke-workflow-audit.sh +0 -69
  473. package/pipeline/scripts/smoke-worktree-path-convention.sh +0 -86
  474. package/pipeline/scripts/smoke-wrapper-preservation.sh +0 -68
  475. package/pipeline/scripts/smoke-write-state.sh +0 -115
  476. package/pipeline/scripts/sync-parity-check.sh +0 -135
  477. package/pipeline/scripts/test-gap-rules/android.json +0 -25
  478. package/pipeline/scripts/test-gap-rules/ios.json +0 -29
  479. package/pipeline/scripts/test-gap-rules/node.json +0 -17
  480. package/pipeline/scripts/test-gap-rules/python.json +0 -19
  481. package/pipeline/scripts/validate-schemas.mjs +0 -88
@@ -8,13 +8,7 @@
8
8
  * @module install/copilot
9
9
  */
10
10
 
11
- import {
12
- existsSync,
13
- mkdirSync,
14
- readdirSync,
15
- readFileSync,
16
- rmSync,
17
- } from "fs";
11
+ import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync } from "fs";
18
12
  import { join } from "path";
19
13
 
20
14
  import {
@@ -29,7 +23,7 @@ import {
29
23
  writeFile,
30
24
  } from "./_common.mjs";
31
25
  import { copyExternalSkillsFiltered } from "./_platform-filter.mjs";
32
- import { DEV_ONLY_SCRIPTS } from "./_dev-only-files.mjs";
26
+ import { DEV_ONLY_SCRIPTS, countDevOnlyFiles } from "./_dev-only-files.mjs";
33
27
  import { generateCopilotInstructions } from "./_copilot-instructions.mjs";
34
28
 
35
29
  /**
@@ -72,8 +66,7 @@ export const INSTRUCTIONS_START_MARKER = "# Multi-Agent Development Pipeline";
72
66
  * pipeline section survives. Pre-marker files fall back to
73
67
  * `legacyTrailingContent` bounding.
74
68
  */
75
- export const INSTRUCTIONS_END_MARKER =
76
- "<!-- multi-agent-pipeline:copilot-instructions:end -->";
69
+ export const INSTRUCTIONS_END_MARKER = "<!-- multi-agent-pipeline:copilot-instructions:end -->";
77
70
 
78
71
  /**
79
72
  * Legacy files (written before the end marker existed) have no explicit
@@ -101,8 +94,7 @@ export function legacyTrailingContent(section) {
101
94
 
102
95
  function writeInstructionsFile(path) {
103
96
  const pipelineSection = generateCopilotInstructions();
104
- const managedBlock =
105
- pipelineSection.trimEnd() + "\n\n" + INSTRUCTIONS_END_MARKER + "\n";
97
+ const managedBlock = pipelineSection.trimEnd() + "\n\n" + INSTRUCTIONS_END_MARKER + "\n";
106
98
 
107
99
  if (!existsSync(path)) {
108
100
  writeFile(path, managedBlock);
@@ -118,7 +110,7 @@ function writeInstructionsFile(path) {
118
110
  // Orchestrator", "## Instruction Sync") were written by older install
119
111
  // scripts and now contradict the current generator output.
120
112
  //
121
- // Match strategy: end at EXPLICIT next-section markers either the
113
+ // Match strategy: end at EXPLICIT next-section markers - either the
122
114
  // pipeline marker itself, or a known user-preserved heading. Using a
123
115
  // generic `\n## ` sentinel is unsafe because bash code fences inside the
124
116
  // body contain lines like `# Personal repos` which would be mistaken for
@@ -128,9 +120,7 @@ function writeInstructionsFile(path) {
128
120
  const orchestratorRe = new RegExp(
129
121
  "\\n---\\n+## Multi-Agent Task Orchestrator[\\s\\S]*?" + nextSectionEnd,
130
122
  );
131
- const instructionSyncRe = new RegExp(
132
- "\\n---\\n+## Instruction Sync[\\s\\S]*?" + nextSectionEnd,
133
- );
123
+ const instructionSyncRe = new RegExp("\\n---\\n+## Instruction Sync[\\s\\S]*?" + nextSectionEnd);
134
124
 
135
125
  let cleaned = false;
136
126
  if (orchestratorRe.test(existing)) {
@@ -176,14 +166,12 @@ function installScripts(pipelineSrc, dest, useSymlinks) {
176
166
  if (!useSymlinks) ensureRealDir(dest);
177
167
  wipeDir(dest);
178
168
  copyDir(scriptsSrc, dest, { exclude: DEV_ONLY_SCRIPTS, useSymlinks });
179
- // Count files actually excluded, not the array length: DEV_ONLY_SCRIPTS mixes
180
- // individual .sh files with the `fixtures` directory (many files), so the
181
- // array length under-counts the real exclusion.
182
- const excludedCount = DEV_ONLY_SCRIPTS.reduce((n, name) => n + countFiles(join(scriptsSrc, name)), 0);
169
+ // Count files actually excluded by walking the tree: DEV_ONLY_SCRIPTS mixes
170
+ // literal names, whole directories, and regexes (the maintainer-smoke rule),
171
+ // so summing countFiles() over the array reported 0 for every regex entry.
172
+ const excludedCount = countDevOnlyFiles(scriptsSrc);
183
173
  const scriptCount = countFiles(scriptsSrc) - excludedCount;
184
- console.log(
185
- ` -> ${scriptCount} files copied to ${dest} (${excludedCount} dev-only excluded)`,
186
- );
174
+ console.log(` -> ${scriptCount} files copied to ${dest} (${excludedCount} dev-only excluded)`);
187
175
  }
188
176
 
189
177
  function installAgents(pipelineSrc, dest, useSymlinks) {
package/install/index.mjs CHANGED
@@ -39,18 +39,12 @@ export async function runInstall(argv) {
39
39
  process.exit(1);
40
40
  }
41
41
 
42
- // Parse flags tolerate both invocation styles:
42
+ // Parse flags - tolerate both invocation styles:
43
43
  // `node install.js --all` (direct, argv[2]="--all")
44
44
  // `multi-agent-pipeline install --all` (via bin, argv[2]="install")
45
45
  const flags = argv.slice(2).filter((a) => a !== "install");
46
46
 
47
- const KNOWN_FLAGS = [
48
- ...TOOL_FLAGS,
49
- "--all",
50
- "--link",
51
- "--index-only",
52
- "--dry-run",
53
- ];
47
+ const KNOWN_FLAGS = [...TOOL_FLAGS, "--all", "--link", "--index-only", "--dry-run"];
54
48
  const KNOWN_PREFIXES = ["--target=", "--platform="];
55
49
  const unknown = flags.filter(
56
50
  (f) =>
@@ -69,11 +63,9 @@ export async function runInstall(argv) {
69
63
  const dryRun = flags.includes("--dry-run");
70
64
  setDryRun(dryRun);
71
65
 
72
- const isExplicitlyTargeted =
73
- flags.some((f) => TOOL_FLAGS.includes(f)) || flags.includes("--all");
66
+ const isExplicitlyTargeted = flags.some((f) => TOOL_FLAGS.includes(f)) || flags.includes("--all");
74
67
 
75
- const forClaude =
76
- flags.includes("--claude") || flags.includes("--all") || !isExplicitlyTargeted;
68
+ const forClaude = flags.includes("--claude") || flags.includes("--all") || !isExplicitlyTargeted;
77
69
 
78
70
  const forCopilot = flags.includes("--copilot") || flags.includes("--all");
79
71
 
@@ -104,7 +96,7 @@ export async function runInstall(argv) {
104
96
 
105
97
  if (dryRun) {
106
98
  console.log("");
107
- console.log(" Dry-run complete nothing was written. Re-run without --dry-run to install.");
99
+ console.log(" Dry-run complete - nothing was written. Re-run without --dry-run to install.");
108
100
  console.log("");
109
101
  return;
110
102
  }
@@ -151,7 +143,7 @@ function parsePlatformFlag(flags) {
151
143
  const value = raw.slice("--platform=".length).toLowerCase();
152
144
  if (value === "ios" || value === "android" || value === "all") return value;
153
145
  console.error(
154
- ` [warn] unrecognized --platform value: "${value}" falling back to "all". ` +
146
+ ` [warn] unrecognized --platform value: "${value}" - falling back to "all". ` +
155
147
  `Accepted: ios | android | all.`,
156
148
  );
157
149
  return "all";
@@ -173,7 +165,7 @@ function printSummary(opts) {
173
165
  if (forCopilot) {
174
166
  console.log(" Copilot CLI:");
175
167
  console.log(" Pipeline instructions loaded into ~/.copilot/copilot-instructions.md");
176
- console.log(" Just describe your task Copilot will follow the pipeline");
168
+ console.log(" Just describe your task - Copilot will follow the pipeline");
177
169
  console.log("");
178
170
  }
179
171
 
@@ -8,20 +8,20 @@
8
8
 
9
9
  8-phase development workflow (Phase 0 through Phase 7). Describe your task and follow the phases:
10
10
 
11
- 0. **Init** Project setup, worktree, branch creation, identity binding
12
- 1. **Analysis** Stack detection, codebase exploration
13
- 2. **Planning** Task decomposition, architecture review, user approval
14
- 3. **Dev** TDD cycle: test -> code -> build
15
- 4. **Review** Deterministic gates + CLI-aware parallel review + Opus triage.
11
+ 0. **Init** - Project setup, worktree, branch creation, identity binding
12
+ 1. **Analysis** - Stack detection, codebase exploration
13
+ 2. **Planning** - Task decomposition, architecture review, user approval
14
+ 3. **Dev** - TDD cycle: test -> code -> build
15
+ 4. **Review** - Deterministic gates + CLI-aware parallel review + Opus triage.
16
16
  Copilot CLI dispatches **3 reviewers in parallel**: GPT-5.4 (edge cases +
17
17
  cross-provider diversity) + Opus (security + architecture) + Sonnet (quality +
18
18
  correctness). Findings flow into an Opus triage pass that filters false-positives
19
19
  and out-of-scope items before looping back to Phase 3. Claude Code drops GPT-5.4
20
- (not natively reachable there) and runs a 2-model set this is the only
20
+ (not natively reachable there) and runs a 2-model set - this is the only
21
21
  intentional cross-CLI asymmetry for Phase 4.
22
- 5. **Test** Optional manual testing + on-demand device audits
23
- 6. **Commit** Secret scan · commit · push · PR creation
24
- 7. **Report** Jira comment · Wiki + Figma screenshots · Confluence · log · knowledge + memory
22
+ 5. **Test** - Optional manual testing + on-demand device audits
23
+ 6. **Commit** - Secret scan · commit · push · PR creation
24
+ 7. **Report** - Jira comment · Wiki + Figma screenshots · Confluence · log · knowledge + memory
25
25
 
26
26
  ## Modes
27
27
 
@@ -29,21 +29,21 @@
29
29
  - **Fast (multi-agent-dev)**: Init -> Dev(Opus) -> Commit -> Report
30
30
  - **Autopilot (multi-agent-autopilot)**: Skip confirmations, auto commit/PR
31
31
  - **Fastest (multi-agent-dev-autopilot)**: Combine dev + autopilot
32
- - **Local (multi-agent-local)**: Full 8 phases on current branch no worktree
33
- - **Fast + Local (multi-agent-dev-local)**: Dev on current branch no worktree
32
+ - **Local (multi-agent-local)**: Full 8 phases on current branch - no worktree
33
+ - **Fast + Local (multi-agent-dev-local)**: Dev on current branch - no worktree
34
34
  - **Fastest + Local (multi-agent-dev-local-autopilot)**: Dev + autopilot, no worktree
35
35
 
36
36
  ## Prompt Language (en/tr)
37
37
 
38
38
  The pipeline honors `prefs.global.promptLanguage` (set via `/multi-agent:setup` or
39
39
  `/multi-agent:language en|tr`). This controls the language of **interactive prompts
40
- only** e.g. the Phase 6 pre-commit local-checkout test prompt, Plan Approval Gate
40
+ only** - e.g. the Phase 6 pre-commit local-checkout test prompt, Plan Approval Gate
41
41
  questions, multi-repo branch picker labels, and phase-banner.sh banners (when
42
42
  PHASE_LANG env is unset, it auto-reads prefs).
43
43
 
44
44
  Default: `en`. Supported: `en`, `tr`. Commit messages, PR bodies, Jira comments,
45
45
  and any external-facing payload **always stay in English** regardless of this
46
- setting only the user-facing prompts change.
46
+ setting - only the user-facing prompts change.
47
47
 
48
48
  When writing TR prompts, use the same keyword/menu numbers as EN (e.g. `[1-4]`)
49
49
  so the user's input pattern stays language-agnostic.
@@ -51,7 +51,7 @@ so the user's input pattern stays language-agnostic.
51
51
  ## Sub-Agent Personas
52
52
 
53
53
  Phase 1 (Analysis) and Phase 4 (Review) dispatch sub-agents for parallel exploration
54
- and review. The persona prompts live at `~/.copilot/agents/*.md` installed by the
54
+ and review. The persona prompts live at `~/.copilot/agents/*.md` - installed by the
55
55
  pipeline installer alongside the Claude Code equivalents at `~/.claude/agents/`.
56
56
 
57
57
  | Agent | File | Used in |
@@ -63,37 +63,37 @@ pipeline installer alongside the Claude Code equivalents at `~/.claude/agents/`.
63
63
  | Backend Architect | `~/.copilot/agents/backend-architect.md` | Phase 4 API/backend review |
64
64
  | Security Auditor | `~/.copilot/agents/security-auditor.md` | Phase 4 security audit (OWASP-based) |
65
65
 
66
- Load the matching persona file before dispatching each reviewer the prompt defines
66
+ Load the matching persona file before dispatching each reviewer - the prompt defines
67
67
  the model's focus area, severity rubric, and output format the triage pass expects.
68
68
 
69
- ## Phase 0 Interactive Steps (required)
69
+ ## Phase 0 - Interactive Steps (required)
70
70
 
71
71
  The orchestrator skill (`multi-agent/SKILL.md`) shows a condensed Phase 0 for brevity,
72
72
  but the actual contract is **8 interactive steps** from `refs/phases/phase-0-init.md`.
73
73
  Copilot CLI has no slash-command infrastructure to auto-route through the full ref file,
74
74
  so execute ALL of these explicitly before touching code:
75
75
 
76
- 1. **Bootstrap tracker** `bash ~/.copilot/scripts/phase-tracker.sh init 8` (once, before Step 0)
77
- 2. **Load prefs** read `~/.claude/multi-agent-preferences.json`; warn + stop if setup never ran
78
- 3. **Parse input** classify (Jira ID, GitHub URL, free-text) + fetch issue via `gh` / Jira API
79
- 4. **Select project(s) single OR multi-repo** scan `$HOME`, present numbered list,
76
+ 1. **Bootstrap tracker** - `bash ~/.copilot/scripts/phase-tracker.sh init 8` (once, before Step 0)
77
+ 2. **Load prefs** - read `~/.claude/multi-agent-preferences.json`; warn + stop if setup never ran
78
+ 3. **Parse input** - classify (Jira ID, GitHub URL, free-text) + fetch issue via `gh` / Jira API
79
+ 4. **Select project(s) - single OR multi-repo** - scan `$HOME`, present numbered list,
80
80
  honor `global.recentProjects`. Picker accepts space-separated numbers (`1 3 4`) for
81
81
  multi-select. Surface `global.recentGroups` at top of list. Component/refactor tasks
82
82
  commonly span repos (component repo + consumer app). **Never auto-pick one repo when
83
- the task could touch more than one** ask user to confirm single vs multi.
84
- 5. **Pick base branch PER REPO** REQUIRED INTERACTIVE STEP. Single repo: run
83
+ the task could touch more than one** - ask user to confirm single vs multi.
84
+ 5. **Pick base branch - PER REPO** - REQUIRED INTERACTIVE STEP. Single repo: run
85
85
  `git ls-remote --heads origin` on that repo, present sorted list (develop* / release/*
86
86
  / main/master first), suggest top of `global.recentBranches[{projectKey}]`.
87
- **Multiple repos selected: fire the branch picker SEPARATELY for each repo**
87
+ **Multiple repos selected: fire the branch picker SEPARATELY for each repo** -
88
88
  per phase-0-init.md the prompt fires per-repo, because different repos often have
89
89
  different base branches (e.g. component repo on `iteration/develop`, consumer app on
90
90
  `develop`). Skip the picker ONLY if user's input explicitly specified a branch.
91
- 6. **Branch name confirm** `feature/PROJ-{id}-{kebab}` or `bugfix/...`. In multi-repo
91
+ 6. **Branch name confirm** - `feature/PROJ-{id}-{kebab}` or `bugfix/...`. In multi-repo
92
92
  mode, branch name is shared across all selected repos (collision check per-repo;
93
93
  any collision applies the suffix to all, keeping cross-repo uniformity).
94
- 7. **Git identity per repo** route via `prefs.global.platformIdentityRouting`;
94
+ 7. **Git identity - per repo** - route via `prefs.global.platformIdentityRouting`;
95
95
  resolves independently for each repo in multi-repo mode.
96
- 8. **Workspace creation serially per repo** detect `.instructions/figma/` etc.;
96
+ 8. **Workspace creation - serially per repo** - detect `.instructions/figma/` etc.;
97
97
  in multi-repo mode loop worktree creation per repo serially; any failure rolls back
98
98
  previously-created worktrees (no partial state). Write `agent-state.json` with
99
99
  `state.projects[]` array; scalar `project`/`projectRoot`/`branch` mirror `projects[0]`
@@ -104,19 +104,19 @@ https://github.com/mmerterden/multi-agent-pipeline/blob/main/pipeline/multi-agen
104
104
  or, on machines with Claude Code also installed:
105
105
  `~/.claude/multi-agent-refs/phases/phase-0-init.md`
106
106
 
107
- ## Progress Tracking required
107
+ ## Progress Tracking - required
108
108
 
109
109
  Every phase boundary MUST call the cross-CLI tracker. The tracker is the single source of truth
110
110
  for user-visible phase progress on Copilot CLI (no TaskCreate native UI here). Banner is optional flair.
111
111
 
112
112
  ```bash
113
- # Bootstrap once at Phase 0 start initialize all 8 phase tiles:
113
+ # Bootstrap once at Phase 0 start - initialize all 8 phase tiles:
114
114
  bash ~/.copilot/scripts/phase-tracker.sh init "$TASK_ID"
115
115
  for p in 0:Init 1:Analysis 2:Planning 3:Dev 4:Review 5:Test 6:Commit 7:Report; do
116
116
  bash ~/.copilot/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
117
117
  done
118
118
 
119
- # At each phase boundary update status. Tracker stamps started_at on first
119
+ # At each phase boundary - update status. Tracker stamps started_at on first
120
120
  # transition to in_progress, completed_at on terminal status (completed/failed/skipped).
121
121
  # Render now shows a 16-char ASCII progress bar + elapsed time + per-phase token
122
122
  # usage + Total footer (v5.5.0):
@@ -128,16 +128,16 @@ bash ~/.copilot/scripts/phase-tracker.sh update <N> completed # or failed / s
128
128
  # After every LLM dispatch, record its token cost against the active phase (v5.5.0):
129
129
  bash ~/.copilot/scripts/phase-tracker.sh tokens <N> <input_tokens> <output_tokens>
130
130
 
131
- # v8.3+ single-call-site token forwarder (preferred). Mirrors tokens_in/out/model
131
+ # v8.3+ - single-call-site token forwarder (preferred). Mirrors tokens_in/out/model
132
132
  # into both metrics.jsonl AND the phase tracker, so the agent-log Cost Breakdown
133
133
  # stays in sync without two calls. Best-effort.
134
134
  LOG_METRIC_FORWARD_TO_TRACKER=1 bash ~/.copilot/scripts/log-metric.sh "$TASK_ID" <N> <event> \
135
135
  model=<opus|sonnet|haiku|gpt-5.4> tokens_in=$IN tokens_out=$OUT duration_ms=$DUR
136
136
 
137
- # v8.3+ phase model tag (used by render-agent-log-cost.sh):
137
+ # v8.3+ - phase model tag (used by render-agent-log-cost.sh):
138
138
  bash ~/.copilot/scripts/phase-tracker.sh model <N> <opus|sonnet|haiku|gpt-5.4>
139
139
 
140
- # Phase 7 sub-step enforcement (v5.4.1) register all 5 steps up front so
140
+ # Phase 7 sub-step enforcement (v5.4.1) - register all 5 steps up front so
141
141
  # wiki/confluence skips are VISIBLE, not silent. User reported prior silent-skip
142
142
  # behaviour losing visibility of component wiki generation:
143
143
  bash ~/.copilot/scripts/phase-tracker.sh update 7 in_progress
@@ -145,7 +145,7 @@ for s in 1:Jira-Comment 2:Wiki+Figma 3:Confluence 4:Log+Telemetry 5:Knowledge+Me
145
145
  bash ~/.copilot/scripts/phase-tracker.sh sub 7 "${s%%:*}" "${s#*:}" pending
146
146
  done
147
147
 
148
- # Optional single-event banner for extra emphasis (phase 07, `end` status: done|failed|skipped):
148
+ # Optional single-event banner for extra emphasis (phase 0-7, `end` status: done|failed|skipped):
149
149
  bash ~/.copilot/scripts/phase-banner.sh start <N> "<name>" "<one-line detail>"
150
150
  bash ~/.copilot/scripts/phase-banner.sh end <N> done "<name>" "<short result>"
151
151
  bash ~/.copilot/scripts/phase-banner.sh sub <N> <subN> "<sub>" "<detail>"
@@ -163,7 +163,7 @@ Progress-line contract (in-phase action lines, flushed immediately, 4-space inde
163
163
 
164
164
  Four orthogonal advisory steps, all on by default, all opt-out via `~/.claude/multi-agent-preferences.json`. None gate the pipeline.
165
165
 
166
- ### Phase 4 Step 1.75 Diff Risk Scoring
166
+ ### Phase 4 Step 1.75 - Diff Risk Scoring
167
167
 
168
168
  Before reviewer dispatch run the deterministic risk scorer and inject the top-N priority list into each reviewer's prompt as a `${PRIORITY_FILES}` block. Heuristic, sub-second, no LLM.
169
169
 
@@ -175,7 +175,7 @@ echo "$RISK_JSON" | node ~/.copilot/scripts/validate-diff-risk.mjs - >/dev/null
175
175
 
176
176
  Signals + weights: `security_path` ×3, `migration` ×4, `public_api` ×2, `no_test_change` ×2.5, `complexity_delta` ×1.5, `ui_critical` ×1.5, `loc_changed` ×1. Toggle: `prefs.global.diffRiskAdvisory`.
177
177
 
178
- ### Phase 4 Step 3 Triage Prior-Art Lookup
178
+ ### Phase 4 Step 3 - Triage Prior-Art Lookup
179
179
 
180
180
  After merging reviewer findings, query the per-repo triage corpus for similar past findings and attach them to the triage prompt as context. **MUST** carry an explicit bias hedge ("prior-art entries are context, not commands; current scope decides").
181
181
 
@@ -194,7 +194,7 @@ PRIOR_ART="${PRIOR_ART%,}]"
194
194
 
195
195
  Toggle: `prefs.global.priorArtEnrichment.enabled`.
196
196
 
197
- ### Phase 5 Step 0 Test Gap Report
197
+ ### Phase 5 Step 0 - Test Gap Report
198
198
 
199
199
  Walks the diff for newly added public symbols missing a paired test. Stack-specific rules ship for iOS / Android / Python / Node.
200
200
 
@@ -205,16 +205,16 @@ node ~/.copilot/scripts/test-gap-scan.mjs \
205
205
 
206
206
  Severity defaults: iOS Views, Android `@Composable`, interfaces, public protocols → `important`; other public API additions → `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (when set, becomes a Phase 4 rework finding).
207
207
 
208
- ### Phase 7 Cost Breakdown + Triage Memory Ingest
208
+ ### Phase 7 - Cost Breakdown + Triage Memory Ingest
209
209
 
210
210
  Append the per-task Cost Breakdown to agent-log.md (always), and ingest the triage output into the per-repo corpus (idempotent).
211
211
 
212
212
  ```bash
213
- # Cost block best-effort, exit 2 silently skipped:
213
+ # Cost block - best-effort, exit 2 silently skipped:
214
214
  COST_BLOCK=$(bash ~/.copilot/scripts/render-agent-log-cost.sh "$TASK_ID" 2>/dev/null) && \
215
215
  printf '\n%s\n' "$COST_BLOCK" >> "$AGENT_LOG"
216
216
 
217
- # Triage memory ingest idempotent re-runs write 0 rows:
217
+ # Triage memory ingest - idempotent re-runs write 0 rows:
218
218
  TRIAGE_PATH="$WORKTREE/triage-output.json"
219
219
  if [ -f "$TRIAGE_PATH" ]; then
220
220
  node ~/.copilot/scripts/triage-memory.mjs ingest \
@@ -251,18 +251,18 @@ multi-agent-stack [ios|android|mobile|backend|frontend|fullstack|all]
251
251
  ## UI Bug Hunter
252
252
 
253
253
  For visual testing, use the dev-toolkit MCP server tools:
254
- - ios_screenshot / android_screenshot capture screen
255
- - ios_tap / android_tap interact with UI
256
- - ios_set_appearance toggle dark mode
257
- - ios_get_ui_tree / android_get_ui_tree accessibility tree
254
+ - ios_screenshot / android_screenshot - capture screen
255
+ - ios_tap / android_tap - interact with UI
256
+ - ios_set_appearance - toggle dark mode
257
+ - ios_get_ui_tree / android_get_ui_tree - accessibility tree
258
258
 
259
259
  Requires: @mmerterden/dev-toolkit-mcp MCP server running
260
260
 
261
- ## Post-Development Integration Build (Multi-Repo) required
261
+ ## Post-Development Integration Build (Multi-Repo) - required
262
262
 
263
263
  When a task touches multiple repositories that have a producer→consumer dependency
264
264
  (e.g. shared codegen library + consuming UI library), the pipeline MUST build the
265
- **host project** that integrates them after all changes are complete before commit/PR.
265
+ **host project** that integrates them after all changes are complete - before commit/PR.
266
266
 
267
267
  ### When this applies
268
268
 
@@ -270,12 +270,12 @@ When a task touches multiple repositories that have a producer→consumer depend
270
270
  - Repo B is consumed as a submodule or SPM/Gradle dependency by a host project (Repo C)
271
271
  - Changes in Repo A or B can silently break Repo C if key structures diverge (e.g. nested enum vs flat access pattern)
272
272
 
273
- ### Required steps (Phase 6 · Step 0 before pre-commit checkout)
273
+ ### Required steps (Phase 6 · Step 0 - before pre-commit checkout)
274
274
 
275
- 1. **Identify the host project** check `prefs.global.multiRepoIntegrationHosts` for a matching `repoSet` combo. If no match, ASK the user once (record the answer to skip re-asking); autopilot refuses to prompt, skips visibly.
276
- 2. **Update submodules** refresh each listed submodule path inside `hostPath` to pick up this task's feature branch / merged commits.
277
- 3. **Resolve package dependencies** flush stale SPM/Gradle/CocoaPods cache.
278
- 4. **Build the host scheme/module** capture error lines from stderr.
275
+ 1. **Identify the host project** - check `prefs.global.multiRepoIntegrationHosts` for a matching `repoSet` combo. If no match, ASK the user once (record the answer to skip re-asking); autopilot refuses to prompt, skips visibly.
276
+ 2. **Update submodules** - refresh each listed submodule path inside `hostPath` to pick up this task's feature branch / merged commits.
277
+ 3. **Resolve package dependencies** - flush stale SPM/Gradle/CocoaPods cache.
278
+ 4. **Build the host scheme/module** - capture error lines from stderr.
279
279
  5. **Evaluate**:
280
280
  - Zero new errors → sub-step `completed`, proceed to commit/PR.
281
281
  - New errors from our changes → sub-step `failed`, STOP. Offer: return to Phase 3 for auto-fix / pause for manual fix / override with warning.
@@ -286,12 +286,12 @@ When a task touches multiple repositories that have a producer→consumer depend
286
286
  Codegen mismatches only surface when the full dependency chain builds together. Building repos in
287
287
  isolation gives false confidence. Skipping this step has caused post-merge build failures that required
288
288
  additional fix PRs and wasted review cycles. The pipeline **learns** each combo's host project on first
289
- encounter and auto-applies on subsequent runs no repeated configuration.
289
+ encounter and auto-applies on subsequent runs - no repeated configuration.
290
290
 
291
291
  ### Tracker integration
292
292
 
293
293
  ```bash
294
- # Phase 6 entry if multi-repo, register the integration-build sub-step:
294
+ # Phase 6 entry - if multi-repo, register the integration-build sub-step:
295
295
  if [ "$(jq '.projects | length' "$STATE_FILE")" -ge 2 ]; then
296
296
  bash ~/.copilot/scripts/phase-tracker.sh sub 6 0 "Integration build" in_progress
297
297
  # ... run the build per refs/multi-repo-integration-build.md ...
@@ -305,7 +305,7 @@ Full contract: `~/.copilot/skills/multi-agent/refs/multi-repo-integration-build.
305
305
  ## Permissions Expectation
306
306
 
307
307
  Copilot CLI reads `~/.copilot/permissions-config.json` for its allowlist. The pipeline
308
- regularly uses these command groups ensure they are present in `tools.allow` to avoid
308
+ regularly uses these command groups - ensure they are present in `tools.allow` to avoid
309
309
  prompt fatigue during long pipeline runs:
310
310
 
311
311
  - Shell basics: `cd`, `ls`, `cat`, `grep`, `find`, `mkdir`, `rm`, `mv`, `cp`
@@ -316,4 +316,4 @@ prompt fatigue during long pipeline runs:
316
316
  - Pipeline scripts: `bash` (invokes phase-tracker.sh, phase-banner.sh, etc.)
317
317
 
318
318
  Destructive commands (`rm -rf /`, `git push --force` to main, `chmod 777`) remain in `deny`
319
- or `ask` by design do not broaden these.
319
+ or `ask` by design - do not broaden these.
package/install.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * v8.0.0 split the monolithic 1246-LOC installer into focused modules under
7
7
  * `install/`. This file remains as the entry point npm exposes via the
8
8
  * `multi-agent-pipeline` bin and the `./install` package export, so existing
9
- * `node install.js …` and `npx multi-agent-pipeline install …` invocations
9
+ * `node install.js ...` and `npx multi-agent-pipeline install ...` invocations
10
10
  * continue to work without API changes.
11
11
  *
12
12
  * @module multi-agent-pipeline/install
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "12.6.0",
3
+ "version": "12.8.0",
4
4
  "description": "8-phase AI development pipeline with full orchestration on Claude Code and Copilot CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -14,16 +14,17 @@
14
14
  },
15
15
  "scripts": {
16
16
  "start": "node index.js",
17
- "test": "node --test test/*.test.mjs && node pipeline/scripts/run-smokes.mjs && node pipeline/scripts/lint-skills.mjs && node pipeline/scripts/lint-mcp-refs.mjs && node pipeline/scripts/eval-triage.mjs && node pipeline/scripts/eval-golden-tasks.mjs && node pipeline/scripts/eval-intent.mjs && node pipeline/scripts/validate-schemas.mjs && node pipeline/scripts/validate-prefs.mjs",
17
+ "test": "node --test test/*.test.mjs && node pipeline/scripts/run-smokes.mjs && node pipeline/scripts/lint-skills.mjs && node pipeline/scripts/lint-mcp-refs.mjs && node pipeline/scripts/eval-triage.mjs && node pipeline/scripts/eval-golden-tasks.mjs && node pipeline/scripts/eval-intent.mjs && node pipeline/scripts/validate-schemas.mjs && node pipeline/scripts/validate-prefs.mjs && node pipeline/scripts/scorecard.mjs",
18
18
  "test:unit": "node --test test/*.test.mjs",
19
19
  "test:smoke": "node pipeline/scripts/run-smokes.mjs",
20
20
  "lint:skills": "node pipeline/scripts/lint-skills.mjs",
21
21
  "test:quick": "node --test test/*.test.mjs && node pipeline/scripts/lint-skills.mjs && node pipeline/scripts/lint-mcp-refs.mjs",
22
- "test:coverage": "c8 --check-coverage --reporter=text --reporter=lcov node --test test/*.test.mjs && c8 report",
22
+ "test:coverage": "c8 --clean --reporter=none node --test test/*.test.mjs && c8 --clean=false --check-coverage --reporter=text --reporter=lcov node pipeline/scripts/run-smokes.mjs",
23
23
  "lint": "eslint .",
24
24
  "lint:fix": "eslint . --fix",
25
- "format": "prettier --write \"**/*.{js,mjs,json,md,yml}\" --ignore-path .gitignore",
26
- "format:check": "prettier --check \"**/*.{js,mjs,json,md,yml}\" --ignore-path .gitignore"
25
+ "format": "prettier --write \"**/*.{js,mjs,json,yml}\" --ignore-path .gitignore",
26
+ "format:check": "prettier --check \"**/*.{js,mjs,json,yml}\" --ignore-path .gitignore",
27
+ "scorecard": "node pipeline/scripts/scorecard.mjs"
27
28
  },
28
29
  "keywords": [
29
30
  "multi-agent",
@@ -51,14 +52,14 @@
51
52
  },
52
53
  "repository": {
53
54
  "type": "git",
54
- "url": "https://github.com/mmerterden/multi-agent-pipeline.git"
55
+ "url": "git+https://github.com/mmerterden/multi-agent-pipeline.git"
55
56
  },
56
57
  "homepage": "https://github.com/mmerterden/multi-agent-pipeline#readme",
57
58
  "bugs": {
58
59
  "url": "https://github.com/mmerterden/multi-agent-pipeline/issues"
59
60
  },
60
61
  "engines": {
61
- "node": ">=20.0.0"
62
+ "node": ">=20.11.0"
62
63
  },
63
64
  "files": [
64
65
  "index.js",
@@ -74,15 +75,32 @@
74
75
  "!pipeline/scripts/smoke-personal-data.sh",
75
76
  "!pipeline/scripts/validate-prefs.mjs",
76
77
  "!pipeline/scripts/smoke-install-leak-gate.sh",
77
- "!docs/internal/**"
78
+ "!docs/internal/**",
79
+ "!pipeline/scripts/smoke-*.sh",
80
+ "!pipeline/scripts/run-smokes.mjs",
81
+ "!pipeline/scripts/eval-*.mjs",
82
+ "!pipeline/scripts/scorecard.mjs",
83
+ "!pipeline/scripts/lint-skills.mjs",
84
+ "!pipeline/scripts/lint-mcp-refs.mjs",
85
+ "!pipeline/scripts/check-md-links.mjs",
86
+ "!pipeline/scripts/validate-schemas.mjs",
87
+ "!pipeline/scripts/sync-parity-check.sh",
88
+ "!pipeline/scripts/benchmark-phase-0.sh",
89
+ "!pipeline/scripts/fixtures/**",
90
+ "!pipeline/scripts/test-gap-rules/**",
91
+ "!pipeline/eval/**",
92
+ "pipeline/scripts/smoke-schema-validation.sh",
93
+ "pipeline/scripts/smoke-cross-cli-behavior.sh"
78
94
  ],
79
95
  "devDependencies": {
80
96
  "@eslint/js": "^10.0.1",
81
97
  "ajv": "^8.20.0",
82
98
  "ajv-formats": "^3.0.1",
83
- "c8": "^11.0.0",
84
- "eslint": "^10.2.0",
99
+ "c8": "^12.0.0",
100
+ "eslint": "^10.8.0",
85
101
  "eslint-config-prettier": "^10.1.8",
86
- "prettier": "^3.8.2"
102
+ "eslint-plugin-n": "^18.2.2",
103
+ "prettier": "^3.9.6",
104
+ "publint": "0.3.22"
87
105
  }
88
106
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Task orchestrator - full pipeline via Jira ID + branch or GitHub Issue URL: analysis, plan, TDD development, parallel review + Fable triage (CLI-aware: 2-model on Claude Code, 3-model on Copilot CLI), commit, log"
2
+ description: "Task orchestrator - full pipeline via Jira ID + branch or GitHub Issue URL: analysis, plan, TDD development, parallel review + Fable triage (CLI-aware: 2-model on Claude Code, 3-model on Copilot CLI), commit, log. Use when given a Jira ID, a GitHub issue or a free-text task and the whole pipeline should run."
3
3
  description-tr: "Görev orkestratörü - Jira ID + branch veya GitHub Issue URL ile tam pipeline: analiz, plan, TDD geliştirme, paralel review + Fable triyajı (CLI'ya göre: Claude Code'da 2, Copilot CLI'da 3 model), commit, log"
4
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, NotebookEdit, Skill
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Standalone feature-spec analysis. Platform-agnostic concept layer with repo-driven convention extraction (Phase 1c) and per-platform Pass B render. 23 main sections + 3 footer in Full mode; 7 sections in Lite mode (auto for small features). Collects Figma / Swagger / Confluence / Jira / Standards (Confluence + Wiki + local file) / Firebase / repo inputs. Stops after emit - does not chain into /multi-agent:dev."
2
+ description: "Standalone feature-spec analysis. Platform-agnostic concept layer with repo-driven convention extraction (Phase 1c) and per-platform Pass B render. 23 main sections + 3 footer in Full mode; 7 sections in Lite mode (auto for small features). Collects Figma / Swagger / Confluence / Jira / Standards (Confluence + Wiki + local file) / Firebase / repo inputs. Stops after emit - does not chain into /multi-agent:dev. Use when a feature needs a written specification before any code, from Figma, Swagger, Confluence, Jira or repo inputs."
3
3
  description-tr: "Bağımsız özellik-spesifikasyonu analizi. Repo'dan konvansiyon çıkarımıyla (Faz 1c) platform-bağımsız kavram katmanı ve platform başına Pass B render. Full modda 23 ana + 3 dipnot bölümü; Lite modda 7 bölüm (küçük işlerde otomatik). Figma / Swagger / Confluence / Jira / Standartlar (Confluence + Wiki + yerel dosya) / Firebase / repo girdilerini toplar. Çıktıyı üretince durur - /multi-agent:dev'e zincirlenmez."
4
4
  argument-hint: "[\"<analysis-name>\"] [--lite | --full] [--no-cache] [--preview-conventions]"
5
5
  ---
@@ -65,7 +65,7 @@ When citing a Locked decision in code or docs, prefer `Locked <n> (<short label>
65
65
  27. **Evidence digest caches Phase 1b and 1c.** `evidence_digest = sha256(featureName || sorted(platforms) || repoEvidence.summary || conventions.summary)`. When the same feature name is invoked again against the same set of repos and the digest matches, Phase 1b and 1c are skipped and the cached `evidence.repoEvidence` / `evidence.conventions` is reused. Cache TTL is 24 hours; manual invalidation via `--no-cache` flag.
66
66
  28. **SwiftUI Preview block mandatory (iOS projection, SwiftUI only).** When the iOS file is produced AND the affected view is a SwiftUI view (detected via `import SwiftUI` + `: View` protocol conformance in `evidence.repoEvidence[<repo>].buckets.uiComponents`), Section 13.6 renders a Preview block table covering at minimum: canonical default (LTR Light), Dark, RTL, Dynamic Type accessibilityLarge, and one error variant. Loading state and edge-case variants are added when distinct from canonical. UIKit-only features (no SwiftUI view artefact) drop Section 13.6 with note `(N/A: UIKit-only feature)`. Preview macro convention (`#Preview` for Swift 5.9+ vs legacy `PreviewProvider`) is read from `evidence.conventions[<repo>].previewMacro`. Each Preview variant listed in Section 13.6 must have a matching row in Section 15.2 Snapshot Tests; a Preview without a snapshot row triggers a Section 20 Risk.
67
67
  29. **Variant usage explicit and bounded.** Section 6 inventory rows list which variants this feature consumes per component (concrete enum case + bool value). New Section 6.X (Variant Usage Matrix) catalogues the full variant axis vs. used subset with a rationale per excluded variant. Sections 13.6 (Preview) and 15.2 (Snapshot) cover only the used subset; expanding the variant set requires updating Section 6.X first.
68
- 30. **Analysis as self-contained design bridge - no MCP outside analysis phase (BLOCKING, pipeline-wide, v9.0.0; legacy soft-skip v9.1.0).** The analysis document is the sole design source for every downstream phase. After Phase 1 of `/multi-agent:analysis` produces `analysis/<feature>-<platform>.md`, Phase 2 Planning, Phase 3 Dev, Phase 4 Review, Phase 5 Test, Phase 6 Commit, and Phase 7 Report consume only the analysis document plus repo Code Connect mappings (`*.figma.swift` / `*.figma.kt`). Calling `mcp__claude_ai_Figma__*`, hitting `api.figma.com`, or fetching a `figma.com/design/...` URL during Phase 2+ is a violation. Applies to every mode that runs Phase 2+: `/multi-agent`, `/multi-agent:autopilot`, `/multi-agent:local`, `/multi-agent:local-autopilot`, `/multi-agent:dev`, `/multi-agent:dev-autopilot`, `/multi-agent:dev-local`, `/multi-agent:dev-local-autopilot`. Hard requirement (v9.0.0): Phase 2 Pre-item and Phase 3 Pre-item (BLOCKING) abort the run when the analysis document is missing. **Legacy soft-skip (v9.1.0+):** existing v2 analyses (`template_version: v2`) emit `WARN: legacy v2 analysis doc detected; v3 expected. Re-run /multi-agent:analysis to regenerate. Continuing with reduced binding strength.` and the run continues when `prefs.global.legacyV2AnalysisAllowed == true` OR env `MULTI_AGENT_LEGACY_V2_ANALYSIS=allow` is set. The soft-skip degrades Pass B footnote enforcement to warning level and skips Phase 1c convention extraction (no `conventions[]` data in v2 docs). The escape hatch is removed in v9.2.0; users must regenerate v3 docs by then. Smoke gate `pipeline/scripts/smoke-no-mcp-in-dev-phases.sh` reads `state.telemetry.mcpCalls[]` and fails on any entry with `phase >= 2`. Halt condition: if a downstream phase needs design information not present in the analysis document, the run halts and the user re-runs `/multi-agent:analysis` to regenerate. Memory: `[[mcp-only-in-analysis]]`. Generic rule rationale and access matrix: see `pipeline/rules/figma-pipeline.md` "MUST: No MCP outside analysis phase".
68
+ 30. **Analysis as self-contained design bridge - no MCP outside analysis phase (BLOCKING, pipeline-wide).** The analysis document is the sole design source for every downstream phase. After Phase 1 of `/multi-agent:analysis` produces `analysis/<feature>-<platform>.md`, Phase 2 Planning, Phase 3 Dev, Phase 4 Review, Phase 5 Test, Phase 6 Commit, and Phase 7 Report consume only the analysis document plus repo Code Connect mappings (`*.figma.swift` / `*.figma.kt`). Calling `mcp__claude_ai_Figma__*`, hitting `api.figma.com`, or fetching a `figma.com/design/...` URL during Phase 2+ is a violation. Applies to every mode that runs Phase 2+: `/multi-agent`, `/multi-agent:autopilot`, `/multi-agent:local`, `/multi-agent:local-autopilot`, `/multi-agent:dev`, `/multi-agent:dev-autopilot`, `/multi-agent:dev-local`, `/multi-agent:dev-local-autopilot`. Hard requirement (v9.0.0): Phase 2 Pre-item and Phase 3 Pre-item (BLOCKING) abort the run when the analysis document is missing. Memory: `[[mcp-only-in-analysis]]`. Generic rule rationale and access matrix: see `pipeline/rules/figma-pipeline.md` "MUST: No MCP outside analysis phase".
69
69
  31. **Business-rule to acceptance-criterion to test traceability (AI + human spine).** The analysis is a development handoff that both an AI implementer and a human reviewer must act on, so it is bound by one shared-ID vocabulary. Every business rule carries a stable id `BR-<slug>-NN` (Section 4.4). Each rule maps to at least one acceptance criterion written Given / When / Then (binary - two readers must not be able to disagree on pass/fail). Each acceptance criterion maps to unit-test scenarios in Section 15.1, one row per case across happy / boundary / error / empty-nil (enumerate at least the failure modes; agents hallucinate error handling when it is omitted). The same ids thread onward: Section 15.6 UI-test flows reference the `BR-` ids and use stable selectors (accessibilityIdentifier / testTag), Section 16 accessibility items reuse those identifiers, Section 11 analytics events cite their triggering rule or story, and Section 5/7 layout cells carry token + Figma node refs. Never invent copy or values (blank beats a guess; a missing source becomes a Section 20 Open Question). **Mode-aware gate:** in Full mode a business rule with no acceptance criterion, or an acceptance criterion with no Section 15.1 scenario, fails the dispatch gate. In **Lite mode Section 15 is not rendered**, so the rule-to-test half does not apply - Section 4.4 still lists each rule with its Given/When/Then acceptance criterion (the acceptance criterion is itself the testable statement), and the 15.1 mapping is deferred to whenever the feature is later analyzed in Full or implemented via `/multi-agent:dev`. The rule-to-acceptance-criterion half always holds, in both modes.
70
70
 
71
71
  ## Input
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time. Proposes up to 3 source-labeled answer candidates per row (from evidence / from repo / AI reasoned), merges the chosen answer into the target body section, and updates the doc in place with a Section 23 changelog bump. Companion to /multi-agent:analysis - same Locked decisions apply (citation discipline, humanizer punctuation, no MCP, no auto-commit). Optional sibling propagation for per-platform file sets."
2
+ description: "Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time. Proposes up to 3 source-labeled answer candidates per row (from evidence / from repo / AI reasoned), merges the chosen answer into the target body section, and updates the doc in place with a Section 23 changelog bump. Companion to /multi-agent:analysis - same Locked decisions apply (citation discipline, humanizer punctuation, no MCP, no auto-commit). Optional sibling propagation for per-platform file sets. Use when an analysis document's open questions and risks need answering row by row before development starts."
3
3
  description-tr: "Analiz v3 dokümanının Bölüm 20 Riskler ve Açık Sorular satırlarını tek tek çözer. Satır başına en fazla 3 kaynak-etiketli cevap adayı önerir (kanıttan / repodan / AI çıkarımı), seçilen cevabı ilgili gövde bölümüne işler ve dokümanı Bölüm 23 changelog artışıyla yerinde günceller. /multi-agent:analysis'in eşlikçisi - aynı Kilitli kararlar geçerli (alıntı disiplini, humanizer noktalama, MCP yok, otomatik commit yok). Platform bazlı dosya setleri için isteğe bağlı kardeş yayılımı."
4
4
  argument-hint: "[path/to/analysis/<feature>-<platform>.md] [--autonomous]"
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously."
2
+ description: "Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously. Use when a task should run end to end with no confirmation prompts."
3
3
  description-tr: "Herhangi bir görevi autopilot modunda başlatır: tüm onayları atlar, uçtan uca otonom çalışır."
4
4
  argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Thin wrapper that dispatches to xcode-build-orchestrator on iOS projects. Benchmarks current Xcode build, runs compilation / project / SPM analyzers, produces a recommend-first optimization plan, and re-benchmarks after the developer approves changes."
2
+ description: "Thin wrapper that dispatches to xcode-build-orchestrator on iOS projects. Benchmarks current Xcode build, runs compilation / project / SPM analyzers, produces a recommend-first optimization plan, and re-benchmarks after the developer approves changes. Use when an iOS build is slow and needs measuring before anything is changed."
3
3
  description-tr: "iOS projelerinde xcode-build-orchestrator'a delege eden ince sarmalayıcı. Mevcut Xcode build'ini ölçer, derleme / proje / SPM analizlerini koşar, önce-öneri yaklaşımlı bir optimizasyon planı üretir ve geliştirici onayından sonra yeniden ölçer."
4
4
  argument-hint: "(none - operates on current repo)"
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with auto-sizing sections, full preview + explicit approval before create."
2
+ description: "Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with auto-sizing sections, full preview + explicit approval before create. Use when a Jira Task, Bug or Story has to be written to the project's own conventions."
3
3
  description-tr: "Standartlara uygun Jira issue oluşturur (Task / Bug / Story): türü sorar, proje konvansiyonlarını çıkarır, otomatik boyutlanan bölümlerle standart şablondan taslak hazırlar, oluşturmadan önce tam önizleme + açık onay alır."
4
4
  argument-hint: "[\"<free-text description>\"] [figma-url] [swagger-url] - all optional, asked interactively when missing"
5
5
  ---
@@ -28,7 +28,7 @@ The scope decides which **inventory targets** (Phase 0 step 5) the run must audi
28
28
  | screen name | `boarding-pass` | Every target whose `screen` matches (case/separator-insensitive) |
29
29
  | `screen@variant` | `boarding-pass@expired` | One target |
30
30
  | target id | `scenario-case:boardingpassoutcome-expired` | One target, exactly |
31
- | Figma URL(s) | `https://figma.com/design/…?node-id=1-2` | Only the frames those URLs name |
31
+ | Figma URL(s) | `https://figma.com/design/...?node-id=1-2` | Only the frames those URLs name |
32
32
  | `--resume` | `/multi-agent:design-check --resume` | The unaudited remainder of the most recent run for this repo + module |
33
33
  | combinations | `seat-map summary@semi-success` | Union of the above, space- or newline-separated |
34
34
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis, planning, and review phases are skipped."
2
+ description: "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis, planning, and review phases are skipped. Use when the work is already scoped and only development, test and commit are needed."
3
3
  description-tr: "Hızlı geliştirme modu: Init → Dev (Opus) → Test → Commit → Report. Analiz, planlama ve review fazları atlanır."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations."
2
+ description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations. Use when a change is well understood and should go from start to commit with no questions asked."
3
3
  description-tr: "En hızlı mod: Dev (Opus) + Autopilot. Init → Dev → Commit → Report, sıfır onay."
4
4
  ---
5
5