@mmerterden/multi-agent-pipeline 20.2.1 → 20.3.1

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 (622) hide show
  1. package/CHANGELOG.md +919 -1
  2. package/README.md +104 -81
  3. package/README.tr.md +103 -62
  4. package/docs/FIGMA_PIPELINE.md +35 -35
  5. package/docs/adr/0006-skills-core-external-split.md +1 -1
  6. package/docs/adr/0007-multi-tool-adapter-framework.md +6 -0
  7. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +7 -0
  8. package/docs/architecture.md +50 -14
  9. package/docs/best-practices.md +1 -1
  10. package/docs/ecosystem.md +56 -32
  11. package/docs/facts.json +10 -10
  12. package/docs/features.md +97 -5
  13. package/docs/recovery-guide.md +7 -14
  14. package/docs/server-readiness.md +31 -24
  15. package/index.js +1 -1
  16. package/install/_common.mjs +3 -5
  17. package/install/_platform-filter.mjs +23 -1
  18. package/install/_unattended-profile.mjs +321 -75
  19. package/install/claude.mjs +51 -10
  20. package/install/codex.mjs +2 -0
  21. package/install/copilot.mjs +2 -0
  22. package/install/index.mjs +30 -17
  23. package/install/templates/claude-hooks.json +16 -5
  24. package/install/templates/copilot-instructions.md +1 -1
  25. package/install/templates/multi-agent-autopilot-awake.plist.template +48 -0
  26. package/install/templates/multi-agent-autopilot.plist.template +12 -5
  27. package/install/unattended-profile-legacy.json +80 -0
  28. package/manifest.json +617 -483
  29. package/package.json +8 -3
  30. package/pipeline/agents/code-reviewer.md +10 -0
  31. package/pipeline/agents/plan-critic.md +98 -0
  32. package/pipeline/agents/security-auditor.md +10 -0
  33. package/pipeline/agents/task-clarifier.md +10 -0
  34. package/pipeline/commands/multi-agent/SKILL.md +2 -2
  35. package/pipeline/commands/multi-agent/analysis/SKILL.md +6 -2
  36. package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +12 -1
  37. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +4 -0
  38. package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
  39. package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +36 -6
  40. package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +77 -12
  41. package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +29 -8
  42. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +4 -0
  43. package/pipeline/commands/multi-agent/channels/SKILL.md +9 -9
  44. package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +5 -1
  45. package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -0
  46. package/pipeline/commands/multi-agent/design-check/SKILL.md +16 -11
  47. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +4 -0
  48. package/pipeline/commands/multi-agent/doctor/SKILL.md +4 -0
  49. package/pipeline/commands/multi-agent/feedback/SKILL.md +5 -1
  50. package/pipeline/commands/multi-agent/forget/SKILL.md +4 -0
  51. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -0
  52. package/pipeline/commands/multi-agent/graph/SKILL.md +4 -0
  53. package/pipeline/commands/multi-agent/help/SKILL.md +37 -39
  54. package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +4 -0
  55. package/pipeline/commands/multi-agent/issue/SKILL.md +7 -1
  56. package/pipeline/commands/multi-agent/jira/SKILL.md +7 -1
  57. package/pipeline/commands/multi-agent/kill/SKILL.md +9 -3
  58. package/pipeline/commands/multi-agent/language/SKILL.md +4 -0
  59. package/pipeline/commands/multi-agent/log/SKILL.md +4 -0
  60. package/pipeline/commands/multi-agent/manual-test/SKILL.md +5 -0
  61. package/pipeline/commands/multi-agent/model/SKILL.md +4 -0
  62. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -0
  63. package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +4 -0
  64. package/pipeline/commands/multi-agent/purge/SKILL.md +4 -0
  65. package/pipeline/commands/multi-agent/refactor/SKILL.md +5 -0
  66. package/pipeline/commands/multi-agent/research/SKILL.md +49 -0
  67. package/pipeline/commands/multi-agent/resume/SKILL.md +29 -6
  68. package/pipeline/commands/multi-agent/review/SKILL.md +28 -9
  69. package/pipeline/commands/multi-agent/review-analysis/SKILL.md +5 -1
  70. package/pipeline/commands/multi-agent/review-issue/SKILL.md +4 -0
  71. package/pipeline/commands/multi-agent/review-jira/SKILL.md +4 -0
  72. package/pipeline/commands/multi-agent/route-off/SKILL.md +4 -0
  73. package/pipeline/commands/multi-agent/route-on/SKILL.md +4 -0
  74. package/pipeline/commands/multi-agent/route-status/SKILL.md +4 -0
  75. package/pipeline/commands/multi-agent/routines/SKILL.md +4 -0
  76. package/pipeline/commands/multi-agent/save/SKILL.md +6 -2
  77. package/pipeline/commands/multi-agent/scaffold/SKILL.md +47 -0
  78. package/pipeline/commands/multi-agent/scan/SKILL.md +4 -0
  79. package/pipeline/commands/multi-agent/search/SKILL.md +12 -8
  80. package/pipeline/commands/multi-agent/security-review/SKILL.md +4 -0
  81. package/pipeline/commands/multi-agent/serve/SKILL.md +62 -0
  82. package/pipeline/commands/multi-agent/setup/SKILL.md +27 -36
  83. package/pipeline/commands/multi-agent/stack/SKILL.md +4 -0
  84. package/pipeline/commands/multi-agent/status/SKILL.md +10 -9
  85. package/pipeline/commands/multi-agent/steer/SKILL.md +5 -1
  86. package/pipeline/commands/multi-agent/store-ready/SKILL.md +4 -0
  87. package/pipeline/commands/multi-agent/sync/SKILL.md +13 -13
  88. package/pipeline/commands/multi-agent/test/SKILL.md +4 -0
  89. package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +4 -0
  90. package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +4 -0
  91. package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +4 -0
  92. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +5 -1
  93. package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +4 -0
  94. package/pipeline/commands/multi-agent/uninstall/SKILL.md +5 -1
  95. package/pipeline/commands/multi-agent/update/SKILL.md +4 -0
  96. package/pipeline/contract/CHANGELOG.md +74 -0
  97. package/pipeline/contract/README.md +126 -0
  98. package/pipeline/contract/build.mjs +427 -0
  99. package/pipeline/contract/fixtures/answer-result.json +11 -0
  100. package/pipeline/contract/fixtures/error-invalid-request.json +8 -0
  101. package/pipeline/contract/fixtures/error-unauthorized.json +5 -0
  102. package/pipeline/contract/fixtures/error-unsigned.json +5 -0
  103. package/pipeline/contract/fixtures/issues-empty.json +18 -0
  104. package/pipeline/contract/fixtures/launch-plan.json +31 -0
  105. package/pipeline/contract/fixtures/runs-awaiting-question.json +70 -0
  106. package/pipeline/contract/fixtures/runs-empty.json +6 -0
  107. package/pipeline/contract/fixtures/runs-failed.json +84 -0
  108. package/pipeline/contract/fixtures/runs-old-schema.json +70 -0
  109. package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +101 -0
  110. package/pipeline/contract/fixtures/runs-pr-opened.json +106 -0
  111. package/pipeline/contract/fixtures/runs-running.json +84 -0
  112. package/pipeline/contract/fixtures/worktrees-empty.json +4 -0
  113. package/pipeline/contract/frozen/toolbox.json +107 -0
  114. package/pipeline/contract/manifest.json +263 -0
  115. package/pipeline/contract/types/index.d.ts +343 -0
  116. package/pipeline/lib/_jira-auth.sh +6 -2
  117. package/pipeline/lib/account-resolver.sh +1 -1
  118. package/pipeline/lib/autopilot-state.sh +19 -0
  119. package/pipeline/lib/context-link-extractor.sh +12 -5
  120. package/pipeline/lib/credential-inventory.sh +12 -5
  121. package/pipeline/lib/credential-store.sh +116 -185
  122. package/pipeline/lib/fetch-confluence.sh +44 -3
  123. package/pipeline/lib/fetch-document.sh +3 -4
  124. package/pipeline/lib/fetch-fortify.sh +1 -1
  125. package/pipeline/lib/figma-mcp-refresh.sh +2 -2
  126. package/pipeline/lib/figma-token.sh +5 -1
  127. package/pipeline/lib/issue-fetcher.sh +233 -16
  128. package/pipeline/lib/json-file-lock.mjs +172 -0
  129. package/pipeline/lib/model-dispatch.sh +21 -12
  130. package/pipeline/lib/model-rung.sh +6 -1
  131. package/pipeline/lib/multi-repo-pipeline.sh +1 -1
  132. package/pipeline/lib/outbound-gate.mjs +46 -16
  133. package/pipeline/lib/parse-complaints.sh +14 -7
  134. package/pipeline/lib/plan-todos.sh +3 -3
  135. package/pipeline/lib/post-pr-review.sh +9 -9
  136. package/pipeline/lib/pr-request-location.mjs +85 -0
  137. package/pipeline/lib/regular-file.mjs +153 -0
  138. package/pipeline/lib/repo-hygiene.sh +17 -0
  139. package/pipeline/lib/route-state.sh +5 -1
  140. package/pipeline/lib/run-paths.sh +3 -2
  141. package/pipeline/lib/stack-detect.sh +19 -1
  142. package/pipeline/lib/unattended-profile-check.mjs +178 -0
  143. package/pipeline/lib/unattended-settings-location.mjs +28 -0
  144. package/pipeline/lib/unattended.mjs +76 -0
  145. package/pipeline/lib/unattended.sh +32 -0
  146. package/pipeline/lib/untrusted.mjs +76 -0
  147. package/pipeline/lib/usage-endpoint.mjs +33 -0
  148. package/pipeline/lib/user-facing.mjs +82 -0
  149. package/pipeline/lib/user-facing.sh +58 -0
  150. package/pipeline/multi-agent-refs/_dev-context.md +1 -1
  151. package/pipeline/multi-agent-refs/analysis/evidence.md +4 -0
  152. package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
  153. package/pipeline/multi-agent-refs/analysis/render.md +4 -3
  154. package/pipeline/multi-agent-refs/analysis/resolve.md +3 -1
  155. package/pipeline/multi-agent-refs/analysis/synthesis.md +4 -5
  156. package/pipeline/multi-agent-refs/analysis-template.md +10 -17
  157. package/pipeline/multi-agent-refs/channels/jira.md +1 -1
  158. package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
  159. package/pipeline/multi-agent-refs/conventions-defaults.md +32 -32
  160. package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -17
  161. package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +37 -9
  162. package/pipeline/multi-agent-refs/features/autopilot-operations.md +277 -0
  163. package/pipeline/multi-agent-refs/features/constitution.md +196 -0
  164. package/pipeline/multi-agent-refs/features/doctor.md +6 -3
  165. package/pipeline/multi-agent-refs/features/external-context-injection.md +6 -1
  166. package/pipeline/multi-agent-refs/features/jira-context.md +1 -1
  167. package/pipeline/multi-agent-refs/features/maturity-followup.md +43 -23
  168. package/pipeline/multi-agent-refs/features/model-fallback.md +9 -0
  169. package/pipeline/multi-agent-refs/features/phone-api.md +306 -0
  170. package/pipeline/multi-agent-refs/features/plan-critic.md +159 -0
  171. package/pipeline/multi-agent-refs/features/research.md +150 -0
  172. package/pipeline/multi-agent-refs/features/review-decision.md +185 -0
  173. package/pipeline/multi-agent-refs/features/scaffold.md +160 -0
  174. package/pipeline/multi-agent-refs/features/security-audit.md +6 -2
  175. package/pipeline/multi-agent-refs/features/skill-conformance.md +4 -1
  176. package/pipeline/multi-agent-refs/features/stack-adapters.md +116 -0
  177. package/pipeline/multi-agent-refs/features/unattended-gates.md +316 -0
  178. package/pipeline/multi-agent-refs/features/unattended-security.md +731 -0
  179. package/pipeline/multi-agent-refs/features/url-enrichment.md +2 -2
  180. package/pipeline/multi-agent-refs/features/usage-reporting.md +127 -35
  181. package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
  182. package/pipeline/multi-agent-refs/features/visual-evidence.md +7 -7
  183. package/pipeline/multi-agent-refs/keychain.md +6 -11
  184. package/pipeline/multi-agent-refs/payload-contracts.md +2 -2
  185. package/pipeline/multi-agent-refs/phases/log-format.md +2 -3
  186. package/pipeline/multi-agent-refs/phases/modes.md +10 -12
  187. package/pipeline/multi-agent-refs/phases/operations.md +11 -5
  188. package/pipeline/multi-agent-refs/phases/phase-0-init.md +73 -81
  189. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +22 -22
  190. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +42 -66
  191. package/pipeline/multi-agent-refs/phases/phase-3-review.md +45 -79
  192. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +28 -38
  193. package/pipeline/multi-agent-refs/phases/phase-5-report.md +27 -25
  194. package/pipeline/multi-agent-refs/phases.md +1 -1
  195. package/pipeline/multi-agent-refs/picker-contract.md +1 -1
  196. package/pipeline/multi-agent-refs/progress-contract.md +13 -16
  197. package/pipeline/multi-agent-refs/readiness-review.md +1 -1
  198. package/pipeline/multi-agent-refs/research/engine.md +91 -0
  199. package/pipeline/multi-agent-refs/rules.md +6 -4
  200. package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
  201. package/pipeline/multi-agent-refs/tracker-contract.md +2 -2
  202. package/pipeline/multi-agent-refs/unattended-contract.md +68 -16
  203. package/pipeline/rules/figma-pipeline.md +12 -12
  204. package/pipeline/schemas/agent-state.schema.json +480 -18
  205. package/pipeline/schemas/analysis-spec.schema.json +4 -4
  206. package/pipeline/schemas/answer-request.schema.json +24 -0
  207. package/pipeline/schemas/answer-result.schema.json +28 -0
  208. package/pipeline/schemas/autopilot-config.schema.json +111 -13
  209. package/pipeline/schemas/command-parameters.schema.json +99 -0
  210. package/pipeline/schemas/constitution.schema.json +56 -0
  211. package/pipeline/schemas/contract-error.schema.json +52 -0
  212. package/pipeline/schemas/design-check-config.schema.json +5 -1
  213. package/pipeline/schemas/issues.schema.json +61 -0
  214. package/pipeline/schemas/launch-plan.schema.json +46 -0
  215. package/pipeline/schemas/launch-request.schema.json +45 -0
  216. package/pipeline/schemas/launch.json +61 -0
  217. package/pipeline/schemas/launch.schema.json +84 -0
  218. package/pipeline/schemas/phases.json +2 -2
  219. package/pipeline/schemas/phases.schema.json +68 -0
  220. package/pipeline/schemas/phone-devices.schema.json +61 -0
  221. package/pipeline/schemas/phone-signed-request.schema.json +67 -0
  222. package/pipeline/schemas/plan-critique.schema.json +99 -0
  223. package/pipeline/schemas/plan-todos.schema.json +7 -7
  224. package/pipeline/schemas/planning-output.schema.json +5 -0
  225. package/pipeline/schemas/pr-request.schema.json +46 -0
  226. package/pipeline/schemas/prefs.schema.json +79 -8
  227. package/pipeline/schemas/research-output.schema.json +118 -0
  228. package/pipeline/schemas/review-file-exclusions.schema.json +25 -0
  229. package/pipeline/schemas/reviewer-output.schema.json +40 -4
  230. package/pipeline/schemas/run-questions.json +392 -0
  231. package/pipeline/schemas/run-questions.schema.json +118 -0
  232. package/pipeline/schemas/runs-index.schema.json +189 -0
  233. package/pipeline/schemas/scaffold-manifest.schema.json +43 -0
  234. package/pipeline/schemas/secret-patterns.schema.json +28 -0
  235. package/pipeline/schemas/stack-adapters.json +527 -0
  236. package/pipeline/schemas/stack-adapters.schema.json +184 -0
  237. package/pipeline/schemas/token-budget.json +1 -1
  238. package/pipeline/schemas/token-budget.schema.json +26 -0
  239. package/pipeline/schemas/triage-output.schema.json +64 -3
  240. package/pipeline/schemas/unattended-policy.json +139 -0
  241. package/pipeline/schemas/unattended-policy.schema.json +73 -0
  242. package/pipeline/schemas/unattended-profile.json +248 -0
  243. package/pipeline/schemas/unattended-profile.schema.json +198 -0
  244. package/pipeline/schemas/worktrees.schema.json +51 -0
  245. package/pipeline/scripts/README.md +1 -0
  246. package/pipeline/scripts/_autopilot-config.mjs +130 -0
  247. package/pipeline/scripts/_autopilot-ops.mjs +567 -0
  248. package/pipeline/scripts/_autopilot-outcomes.mjs +174 -0
  249. package/pipeline/scripts/_command-contract.mjs +384 -0
  250. package/pipeline/scripts/_cost.mjs +40 -0
  251. package/pipeline/scripts/_notices.mjs +160 -0
  252. package/pipeline/scripts/_phone-auth.mjs +485 -0
  253. package/pipeline/scripts/_pre-existing.mjs +294 -0
  254. package/pipeline/scripts/_redact.mjs +77 -0
  255. package/pipeline/scripts/_run-paths.mjs +4 -2
  256. package/pipeline/scripts/_stack-adapter.mjs +678 -0
  257. package/pipeline/scripts/_stack-routing.mjs +1 -1
  258. package/pipeline/scripts/agent-guard.py +348 -37
  259. package/pipeline/scripts/agent-guard.sh +41 -13
  260. package/pipeline/scripts/analysis-story-tree.mjs +79 -3
  261. package/pipeline/scripts/answer-question.mjs +181 -0
  262. package/pipeline/scripts/audit-log-rotate.sh +1 -4
  263. package/pipeline/scripts/audit-log.sh +4 -4
  264. package/pipeline/scripts/autopilot-arming.mjs +389 -21
  265. package/pipeline/scripts/autopilot-awake.mjs +255 -0
  266. package/pipeline/scripts/autopilot-intake.mjs +137 -36
  267. package/pipeline/scripts/autopilot-menubar.swift +156 -44
  268. package/pipeline/scripts/autopilot-publish.mjs +1625 -0
  269. package/pipeline/scripts/autopilot-runner.mjs +1678 -222
  270. package/pipeline/scripts/autopilot-status.sh +198 -33
  271. package/pipeline/scripts/build-lock.sh +120 -0
  272. package/pipeline/scripts/build-references.mjs +4 -1
  273. package/pipeline/scripts/build-stack-plugins.mjs +59 -22
  274. package/pipeline/scripts/capture-flush.sh +1 -1
  275. package/pipeline/scripts/capture-resume.sh +13 -9
  276. package/pipeline/scripts/check-derived-drift.mjs +52 -11
  277. package/pipeline/scripts/commands.mjs +88 -0
  278. package/pipeline/scripts/constitution.mjs +362 -0
  279. package/pipeline/scripts/contract-server.mjs +776 -0
  280. package/pipeline/scripts/cost-analyze.mjs +89 -39
  281. package/pipeline/scripts/diff-explain.mjs +12 -1
  282. package/pipeline/scripts/doctor.mjs +77 -28
  283. package/pipeline/scripts/evidence-gate.mjs +192 -12
  284. package/pipeline/scripts/feedback-send.mjs +4 -2
  285. package/pipeline/scripts/gate-ledger.mjs +449 -0
  286. package/pipeline/scripts/gc-abandoned.sh +132 -13
  287. package/pipeline/scripts/gen-facts.mjs +31 -15
  288. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  289. package/pipeline/scripts/github-ssh-setup.sh +140 -29
  290. package/pipeline/scripts/graph-mermaid.mjs +4 -1
  291. package/pipeline/scripts/issues.mjs +236 -0
  292. package/pipeline/scripts/jira-attach.sh +6 -2
  293. package/pipeline/scripts/jira-search.sh +4 -3
  294. package/pipeline/scripts/keychain-save.sh +125 -24
  295. package/pipeline/scripts/keychain.py +63 -93
  296. package/pipeline/scripts/launch-request.mjs +747 -0
  297. package/pipeline/scripts/localize-commands.mjs +4 -10
  298. package/pipeline/scripts/log-metric.sh +6 -5
  299. package/pipeline/scripts/maturity-followup.mjs +13 -4
  300. package/pipeline/scripts/memory-save.sh +25 -0
  301. package/pipeline/scripts/migrate-prefs.mjs +4 -3
  302. package/pipeline/scripts/open-questions-gate.mjs +276 -0
  303. package/pipeline/scripts/phase-tracker.sh +41 -27
  304. package/pipeline/scripts/phase0-exit-gate.mjs +22 -4
  305. package/pipeline/scripts/phone-devices.mjs +224 -0
  306. package/pipeline/scripts/plan-coverage-gate.mjs +200 -66
  307. package/pipeline/scripts/plan-critique-gate.mjs +591 -0
  308. package/pipeline/scripts/pr-request.mjs +188 -0
  309. package/pipeline/scripts/pre-commit-check.sh +115 -4
  310. package/pipeline/scripts/probe-evidence-capability.sh +44 -5
  311. package/pipeline/scripts/record-phase.mjs +71 -0
  312. package/pipeline/scripts/render-agent-log-cost.sh +17 -2
  313. package/pipeline/scripts/render-cost-summary.sh +1 -1
  314. package/pipeline/scripts/render-work-summary.sh +1 -1
  315. package/pipeline/scripts/require-supported-version.sh +4 -1
  316. package/pipeline/scripts/research-gate.mjs +704 -0
  317. package/pipeline/scripts/review-decision-gate.mjs +403 -0
  318. package/pipeline/scripts/routine-registry.mjs +5 -2
  319. package/pipeline/scripts/runs-index.mjs +135 -27
  320. package/pipeline/scripts/scaffold-gate.mjs +393 -0
  321. package/pipeline/scripts/skill-conformance.mjs +25 -8
  322. package/pipeline/scripts/skill-siblings.mjs +2 -1
  323. package/pipeline/scripts/smoke-cross-cli-behavior.sh +32 -6
  324. package/pipeline/scripts/smoke-schema-validation.sh +6 -2
  325. package/pipeline/scripts/spec-consistency-gate.mjs +469 -0
  326. package/pipeline/scripts/symbol-existence-gate.mjs +450 -0
  327. package/pipeline/scripts/test-gap-scan.mjs +40 -2
  328. package/pipeline/scripts/test-integrity-gate.mjs +20 -4
  329. package/pipeline/scripts/test-strength.mjs +484 -0
  330. package/pipeline/scripts/test-summary.mjs +651 -0
  331. package/pipeline/scripts/triage-memory.mjs +49 -9
  332. package/pipeline/scripts/unattended_policy.py +2786 -0
  333. package/pipeline/scripts/uninstall.mjs +10 -10
  334. package/pipeline/scripts/update-issue-progress.sh +1 -1
  335. package/pipeline/scripts/usage-identity.mjs +288 -0
  336. package/pipeline/scripts/usage-register.mjs +187 -67
  337. package/pipeline/scripts/usage-report.mjs +232 -67
  338. package/pipeline/scripts/validate-complaint-doc.mjs +28 -10
  339. package/pipeline/scripts/validate-planning.mjs +6 -0
  340. package/pipeline/scripts/verify-citations.mjs +151 -38
  341. package/pipeline/scripts/verify.mjs +58 -18
  342. package/pipeline/scripts/worktree-prepare.sh +126 -0
  343. package/pipeline/scripts/worktrees.mjs +124 -0
  344. package/pipeline/scripts/write-state.mjs +48 -17
  345. package/pipeline/skills/.skill-manifest.json +222 -226
  346. package/pipeline/skills/.skills-index.json +77 -88
  347. package/pipeline/skills/shared/README.md +44 -45
  348. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +3 -2
  349. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +3 -2
  350. package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -9
  351. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +6 -5
  352. package/pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md +11 -3
  353. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +2 -1
  354. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -3
  355. package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +32 -6
  356. package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +66 -8
  357. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +27 -9
  358. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -1
  359. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +7 -4
  360. package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +3 -2
  361. package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +2 -1
  362. package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +7 -5
  363. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +2 -1
  364. package/pipeline/skills/shared/core/multi-agent-doctor/SKILL.md +3 -2
  365. package/pipeline/skills/shared/core/multi-agent-feedback/SKILL.md +2 -1
  366. package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +2 -1
  367. package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +2 -1
  368. package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +2 -1
  369. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -1
  370. package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -1
  371. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +3 -2
  372. package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -1
  373. package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +7 -4
  374. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -1
  375. package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +2 -1
  376. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +2 -1
  377. package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +2 -1
  378. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +2 -1
  379. package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +2 -1
  380. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +2 -1
  381. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +2 -1
  382. package/pipeline/skills/shared/core/multi-agent-research/SKILL.md +35 -0
  383. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +7 -3
  384. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +7 -5
  385. package/pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md +2 -1
  386. package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +3 -2
  387. package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +2 -1
  388. package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +2 -1
  389. package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +2 -1
  390. package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +2 -1
  391. package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +2 -1
  392. package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +3 -2
  393. package/pipeline/skills/shared/core/multi-agent-scaffold/SKILL.md +30 -0
  394. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -1
  395. package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +4 -3
  396. package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +2 -1
  397. package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +60 -0
  398. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +8 -8
  399. package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -1
  400. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +7 -8
  401. package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -1
  402. package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +2 -1
  403. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +10 -10
  404. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +2 -1
  405. package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +2 -1
  406. package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +2 -1
  407. package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +2 -1
  408. package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +2 -1
  409. package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +2 -1
  410. package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +3 -2
  411. package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +2 -1
  412. package/pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md +46 -0
  413. package/pipeline/skills/shared/external/NOTICE-dimillian-skills.md +9 -3
  414. package/pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md +54 -0
  415. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +9 -11
  416. package/pipeline/skills/shared/external/NOTICE-vibeship-spawner-skills.md +203 -0
  417. package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +10 -3
  418. package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +131 -25
  419. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -3
  420. package/pipeline/skills/shared/external/alarmkit/SKILL.md +2 -1
  421. package/pipeline/skills/shared/external/android-architecture/SKILL.md +85 -76
  422. package/pipeline/skills/shared/external/android-build-quality-gates/SKILL.md +51 -3
  423. package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +9 -0
  424. package/pipeline/skills/shared/external/android-datastore/SKILL.md +4 -3
  425. package/pipeline/skills/shared/external/android-design-tokens-codegen/SKILL.md +4 -3
  426. package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +106 -181
  427. package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +147 -0
  428. package/pipeline/skills/shared/external/android-mvi-viewmodel/SKILL.md +45 -4
  429. package/pipeline/skills/shared/external/android-performance/SKILL.md +27 -2
  430. package/pipeline/skills/shared/external/android-performance/references/patterns.md +37 -37
  431. package/pipeline/skills/shared/external/api-patterns/SKILL.md +111 -67
  432. package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +128 -0
  433. package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +136 -186
  434. package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +140 -0
  435. package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +207 -0
  436. package/pipeline/skills/shared/external/api-security-best-practices/references/operations.md +66 -0
  437. package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +175 -0
  438. package/pipeline/skills/shared/external/app-clips/SKILL.md +2 -0
  439. package/pipeline/skills/shared/external/app-intents/SKILL.md +2 -0
  440. package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +4 -3
  441. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +2 -0
  442. package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -0
  443. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +2 -0
  444. package/pipeline/skills/shared/external/architecture/SKILL.md +106 -39
  445. package/pipeline/skills/shared/external/architecture/references/adr-and-review.md +76 -0
  446. package/pipeline/skills/shared/external/authentication/SKILL.md +2 -0
  447. package/pipeline/skills/shared/external/avkit/SKILL.md +2 -0
  448. package/pipeline/skills/shared/external/background-processing/SKILL.md +2 -1
  449. package/pipeline/skills/shared/external/backlog/SKILL.md +3 -2
  450. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +2 -0
  451. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +1 -1
  452. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +3 -2
  453. package/pipeline/skills/shared/external/clean-code/SKILL.md +192 -90
  454. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +2 -1
  455. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +1 -1
  456. package/pipeline/skills/shared/external/compose-components/SKILL.md +4 -4
  457. package/pipeline/skills/shared/external/compose-navigation/SKILL.md +22 -22
  458. package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +10 -10
  459. package/pipeline/skills/shared/external/compose-testing/SKILL.md +13 -6
  460. package/pipeline/skills/shared/external/compose-testing/references/patterns.md +59 -59
  461. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +2 -0
  462. package/pipeline/skills/shared/external/context-compression/SKILL.md +118 -250
  463. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +2 -0
  464. package/pipeline/skills/shared/external/core-data/SKILL.md +2 -0
  465. package/pipeline/skills/shared/external/core-motion/SKILL.md +2 -0
  466. package/pipeline/skills/shared/external/core-nfc/SKILL.md +2 -0
  467. package/pipeline/skills/shared/external/coreml/SKILL.md +2 -1
  468. package/pipeline/skills/shared/external/council/SKILL.md +2 -1
  469. package/pipeline/skills/shared/external/cryptokit/SKILL.md +2 -0
  470. package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
  471. package/pipeline/skills/shared/external/database-patterns/SKILL.md +3 -2
  472. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +2 -0
  473. package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +130 -20
  474. package/pipeline/skills/shared/external/debugging-strategies/references/hard-cases.md +54 -0
  475. package/pipeline/skills/shared/external/device-integrity/SKILL.md +2 -0
  476. package/pipeline/skills/shared/external/docker-expert/SKILL.md +137 -381
  477. package/pipeline/skills/shared/external/docker-expert/references/patterns.md +98 -0
  478. package/pipeline/skills/shared/external/energykit/SKILL.md +2 -1
  479. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +3 -1
  480. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +2 -2
  481. package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +116 -185
  482. package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +235 -0
  483. package/pipeline/skills/shared/external/fastapi-pro/references/testing-and-deployment.md +69 -0
  484. package/pipeline/skills/shared/external/firebase/SKILL.md +4 -3
  485. package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +151 -293
  486. package/pipeline/skills/shared/external/github-actions-templates/references/patterns.md +96 -0
  487. package/pipeline/skills/shared/external/healthkit/SKILL.md +2 -0
  488. package/pipeline/skills/shared/external/hig-components-content/SKILL.md +69 -72
  489. package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +111 -0
  490. package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +77 -86
  491. package/pipeline/skills/shared/external/hig-components-layout/references/containers.md +98 -0
  492. package/pipeline/skills/shared/external/hig-components-status/SKILL.md +150 -78
  493. package/pipeline/skills/shared/external/hig-components-system/SKILL.md +76 -97
  494. package/pipeline/skills/shared/external/hig-components-system/references/surfaces.md +98 -0
  495. package/pipeline/skills/shared/external/hig-foundations/SKILL.md +48 -76
  496. package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +132 -0
  497. package/pipeline/skills/shared/external/hig-inputs/SKILL.md +147 -106
  498. package/pipeline/skills/shared/external/hig-patterns/SKILL.md +61 -77
  499. package/pipeline/skills/shared/external/hig-patterns/references/patterns.md +92 -0
  500. package/pipeline/skills/shared/external/hig-platforms/SKILL.md +147 -77
  501. package/pipeline/skills/shared/external/hig-technologies/SKILL.md +61 -121
  502. package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +108 -0
  503. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +2 -0
  504. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +1 -1
  505. package/pipeline/skills/shared/external/html-semantic/SKILL.md +3 -2
  506. package/pipeline/skills/shared/external/humanizer/SKILL.md +2 -1
  507. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +2 -0
  508. package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +2 -1
  509. package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +14 -2
  510. package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
  511. package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +4 -3
  512. package/pipeline/skills/shared/external/ios-localization/SKILL.md +8 -6
  513. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +2 -2
  514. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +11 -11
  515. package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +2 -1
  516. package/pipeline/skills/shared/external/ios-networking/SKILL.md +2 -0
  517. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +2 -0
  518. package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +102 -193
  519. package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +103 -0
  520. package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -2
  521. package/pipeline/skills/shared/external/live-activities/evals/evals.json +2 -2
  522. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +7 -9
  523. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +3 -3
  524. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +2 -2
  525. package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +4 -3
  526. package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +5 -3
  527. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +2 -0
  528. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +1 -1
  529. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +2 -0
  530. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +1 -1
  531. package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +149 -46
  532. package/pipeline/skills/shared/external/monorepo-architect/references/patterns.md +70 -0
  533. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +2 -0
  534. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +1 -1
  535. package/pipeline/skills/shared/external/natural-language/SKILL.md +2 -0
  536. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +3 -2
  537. package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +91 -21
  538. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +247 -0
  539. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md +57 -0
  540. package/pipeline/skills/shared/external/observability-engineer/SKILL.md +155 -232
  541. package/pipeline/skills/shared/external/observability-engineer/references/patterns.md +75 -0
  542. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +2 -0
  543. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +2 -2
  544. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +18 -18
  545. package/pipeline/skills/shared/external/pdfkit/SKILL.md +2 -1
  546. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -0
  547. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
  548. package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -0
  549. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +2 -1
  550. package/pipeline/skills/shared/external/push-notifications/SKILL.md +2 -0
  551. package/pipeline/skills/shared/external/python-patterns/SKILL.md +3 -2
  552. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +3 -2
  553. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +2 -2
  554. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
  555. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +3 -2
  556. package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +7 -7
  557. package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +69 -69
  558. package/pipeline/skills/shared/external/room-database/references/patterns.md +126 -126
  559. package/pipeline/skills/shared/external/search-first/SKILL.md +2 -1
  560. package/pipeline/skills/shared/external/security-review/SKILL.md +4 -3
  561. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +2 -2
  562. package/pipeline/skills/shared/external/signal-community/SKILL.md +1 -1
  563. package/pipeline/skills/shared/external/skill-creator/SKILL.md +2 -1
  564. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +2 -1
  565. package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +2 -0
  566. package/pipeline/skills/shared/external/storekit/SKILL.md +2 -0
  567. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +2 -0
  568. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +2 -1
  569. package/pipeline/skills/shared/external/swift-charts/SKILL.md +2 -1
  570. package/pipeline/skills/shared/external/swift-codable/SKILL.md +2 -0
  571. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +3 -1
  572. package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +5 -4
  573. package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -1
  574. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +2 -0
  575. package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -1
  576. package/pipeline/skills/shared/external/swift-security/SKILL.md +2 -1
  577. package/pipeline/skills/shared/external/swift-testing/SKILL.md +2 -0
  578. package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -1
  579. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +10 -0
  580. package/pipeline/skills/shared/external/swiftdata/SKILL.md +2 -0
  581. package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -1
  582. package/pipeline/skills/shared/external/swiftlint/SKILL.md +2 -0
  583. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +2 -0
  584. package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +3 -1
  585. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +2 -0
  586. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +2 -0
  587. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +2 -0
  588. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +2 -0
  589. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +3 -1
  590. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +3 -1
  591. package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +5 -4
  592. package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -1
  593. package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +5 -4
  594. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +2 -0
  595. package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +4 -3
  596. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +2 -0
  597. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
  598. package/pipeline/skills/shared/external/testing-backend/SKILL.md +3 -2
  599. package/pipeline/skills/shared/external/tipkit/SKILL.md +2 -0
  600. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +3 -2
  601. package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -0
  602. package/pipeline/skills/shared/external/vue-composition/SKILL.md +3 -2
  603. package/pipeline/skills/shared/external/weatherkit/SKILL.md +2 -0
  604. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +3 -2
  605. package/pipeline/skills/shared/external/web-performance/SKILL.md +3 -2
  606. package/pipeline/skills/shared/external/web-testing/SKILL.md +3 -2
  607. package/pipeline/skills/shared/external/widgetkit/SKILL.md +2 -0
  608. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +1 -1
  609. package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +2 -0
  610. package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +2 -0
  611. package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +2 -0
  612. package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +2 -0
  613. package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +2 -0
  614. package/pipeline/skills/skills-index.md +40 -41
  615. package/docs/token-budget-history.md +0 -24
  616. package/pipeline/skills/shared/external/agentflow/SKILL.md +0 -199
  617. package/pipeline/skills/shared/external/android-ui-verification/SKILL.md +0 -66
  618. package/pipeline/skills/shared/external/api-security-best-practices/references/auth.md +0 -299
  619. package/pipeline/skills/shared/external/api-security-best-practices/references/input-validation.md +0 -255
  620. package/pipeline/skills/shared/external/api-security-best-practices/references/rate-limiting.md +0 -167
  621. package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +0 -116
  622. package/pipeline/skills/shared/external/ios-developer/SKILL.md +0 -216
@@ -0,0 +1,62 @@
1
+ ---
2
+ description: "Start the local contract server a client (the macOS toolbox, a web page) reads runs, commands, questions, issues and worktrees from, on 127.0.0.1 behind a per-start token. It stops by itself after 15 idle minutes. Use when a client asks for the HTTP carrier instead of the CLI."
3
+ description-tr: "Bir istemcinin (macOS toolbox, bir web sayfası) run, komut, soru, issue ve worktree okuduğu yerel sözleşme sunucusunu 127.0.0.1 üzerinde, her başlatmada yeni bir token ile başlatır. 15 dakika boşta kalınca kendiliğinden durur."
4
+ allowed-tools: Bash, Read
5
+ argument-hint: "[--port <n>] [--idle-minutes <n>] [--allow-origin <origin>] [--print-token] - all optional, --allow-origin may repeat; binds 127.0.0.1 only"
6
+ parameters: [{"name":"--port","kind":"text"},{"name":"--idle-minutes","kind":"text"},{"name":"--allow-origin","kind":"text","repeat":true},{"name":"--print-token","kind":"flag"}]
7
+ gui: hidden
8
+ destructive: false
9
+ confirm: none
10
+ not-for: status, autopilot-on
11
+ ---
12
+
13
+ # multi-agent serve - the contract over HTTP, on demand
14
+
15
+ **Input**: $ARGUMENTS
16
+
17
+ Starts `contract-server.mjs`: the same JSON the CLI prints (`runs-index.mjs`,
18
+ `commands.mjs`, `issues.mjs`, `worktrees.mjs`, `launch-request.mjs`,
19
+ `answer-question.mjs`), served over HTTP on `127.0.0.1` for a client that would
20
+ rather hold a socket than spawn a process per read. Routes, schemas and the
21
+ versioning rule are in the package's `pipeline/contract/README.md` and
22
+ `manifest.json`.
23
+
24
+ It is never a service. It runs until 15 minutes pass without a request
25
+ (`--idle-minutes`) or it gets SIGTERM, and removes its token file either way.
26
+
27
+ ## Start it
28
+
29
+ Run it in the background (it keeps running), then read its first stdout line:
30
+
31
+ ```bash
32
+ node "$HOME/.claude/scripts/contract-server.mjs" $ARGUMENTS
33
+ ```
34
+
35
+ The ready line is one JSON object: `url`, `port`, `pid`, `tokenFile`,
36
+ `idleMinutes`. Report `url`, `pid` and `tokenFile` in `outputLanguage`.
37
+
38
+ - **Never print the token**, and do not pass `--print-token` yourself: it puts
39
+ the token on stdout, which lands in this transcript. It exists for a client
40
+ that spawns the server as its own child. The token is in `tokenFile` (0600).
41
+ - `--host` accepts only `127.0.0.1`; anything else (0.0.0.0, ::, a LAN address)
42
+ exits 2. Say so rather than retrying another address.
43
+ - `--allow-origin` is for a browser page the user named; without it no Origin
44
+ is accepted. A request that carries an Origin is always served redacted.
45
+
46
+ ## Stop it
47
+
48
+ Send SIGTERM to the `pid` from the ready line, and only that pid:
49
+
50
+ ```bash
51
+ kill -TERM <pid>
52
+ ```
53
+
54
+ Or leave it: it exits on its own when idle.
55
+
56
+ ## What it will not do
57
+
58
+ There is no route that merges, marks ready, runs a command or starts a host.
59
+ `POST /v1/launch` validates a launch request, writes it (0600) and returns the
60
+ argv and environment `launch.json` declares; the client starts the process.
61
+ `POST /v1/runs/{id}/answer` accepts only an option the run's pending question
62
+ offered.
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  description: "First-run setup wizard: keychain token discovery, Git Identity onboarding, and pipeline preparation. Use when the pipeline is being set up for the first time, or tokens and git identity need onboarding."
3
3
  description-tr: "İlk kurulum sihirbazı: keychain token keşfi, Git Identity kaydı ve pipeline hazırlığı."
4
+ argument-hint: "[jira-keys | hosts | accounts] - optional; no argument runs the whole onboarding"
5
+ parameters: [{"name":"section","kind":"enum","enum":["jira-keys","hosts","accounts"]}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
4
9
  allowed-tools: Bash, Read, Write, AskUserQuestion, WebFetch
5
10
  ---
6
11
 
@@ -10,26 +15,15 @@ allowed-tools: Bash, Read, Write, AskUserQuestion, WebFetch
10
15
  node "$HOME/.claude/scripts/doctor.mjs"
11
16
  ```
12
17
 
13
- Run it before the first question and again at the end. The first run turns setup
14
- from a fixed script into a targeted one: there is no point asking for a token
15
- that is already mapped and answering. The second run is the only honest way to
16
- end - "setup complete" is a claim, and the doctor's exit code is the evidence for
17
- or against it. Report both in `outputLanguage`, and if the second run still shows
18
- a BLOCK, say so plainly rather than closing on the word "complete".
18
+ Run it before the first question and again at the end. The first run turns setup from a fixed script into a targeted one: there is no point asking for a token that is already mapped and answering. The second run is the only honest way to end - "setup complete" is a claim, and the doctor's exit code is the evidence for or against it. Report both in `outputLanguage`, and if the second run still shows a BLOCK, say so plainly rather than closing on the word "complete".
19
19
 
20
20
  ## Setup (Credential Store + Git Identity Onboarding)
21
21
 
22
- Cross-platform setup - uses `$HOME/.claude/lib/credential-store.sh` to read/write secrets in the platform-native credential store:
22
+ Uses `$HOME/.claude/lib/credential-store.sh` to read/write secrets in the macOS Keychain (`security`, built in). The pipeline is macOS only (ADR-0012).
23
23
 
24
- | Platform | Backend | Built-in? |
25
- |----------|---------|-----------|
26
- | macOS | Keychain (`security`) | Yes |
27
- | Windows | Credential Manager (PowerShell `CredentialManager` module) | Module install required |
28
- | Linux | libsecret (`secret-tool`) | Distro package required |
24
+ Run `~/.claude/lib/credential-store.sh doctor` first - it prints the platform and whether the backend is usable.
29
25
 
30
- Run `~/.claude/lib/credential-store.sh doctor` first - it prints platform + missing dependencies with the exact install command.
31
-
32
- On macOS and Linux the shell driver auto-delegates `get`/`set`/`delete` to the deterministic Python helper at `$HOME/.claude/scripts/keychain.py` (Python 3 stdlib only, no external deps). The Python path writes both `-l` (label) and `-s` (service) attributes so items are findable regardless of how callers look them up. Set `KEYCHAIN_DELEGATE=0` to force the raw shell path.
26
+ The shell driver auto-delegates `get`/`set`/`delete` to the deterministic Python helper at `$HOME/.claude/scripts/keychain.py` (Python 3 stdlib only, no external deps). The Python path writes both `-l` (label) and `-s` (service) attributes so items are findable regardless of how callers look them up. Set `KEYCHAIN_DELEGATE=0` to force the raw shell path.
33
27
 
34
28
  ### Step 0 - Language Selection
35
29
 
@@ -85,10 +79,8 @@ command -v pdftotext >/dev/null 2>&1 || echo "pdftotext: MISSING"
85
79
  | Output | Action |
86
80
  |--------|--------|
87
81
  | `Backend: ✓` | Continue to Step 1 |
88
- | Linux: `secret-tool ✗ MISSING` | Prompt: `sudo apt install libsecret-tools` (Debian/Ubuntu) or `sudo dnf install libsecret` (Fedora). Re-run setup after install. |
89
- | Windows: `CredentialManager ✗ MISSING` | Prompt: `Install-Module CredentialManager -Scope CurrentUser -Force` in an elevated PowerShell. Re-run setup. |
90
- | Platform `unknown` | Halt - credential storage cannot proceed. |
91
- | `pdftotext: MISSING` | Advisory. Print `brew install poppler` (or distro equivalent), continue. `.docx` needs nothing. |
82
+ | Platform `unknown` or `ERR: macOS only` | Halt - the pipeline runs on macOS only (ADR-0012). |
83
+ | `pdftotext: MISSING` | Advisory. Print `brew install poppler`, continue. `.docx` needs nothing. |
92
84
 
93
85
  ### Credential Key Naming Rule
94
86
 
@@ -97,7 +89,7 @@ command -v pdftotext >/dev/null 2>&1 || echo "pdftotext: MISSING"
97
89
 
98
90
  ### Step 1 - Dynamic Credential Discovery
99
91
 
100
- Instead of checking only hardcoded key names, discover ALL user keys and intelligently map them to services. Uses cross-platform `credential-store.sh list`:
92
+ Instead of checking only hardcoded key names, discover ALL user keys and intelligently map them to services. Uses `credential-store.sh list`:
101
93
 
102
94
  **1a. Discover all keys:**
103
95
  ```bash
@@ -223,7 +215,8 @@ git or any synced tree - under the standard per-user name, so it is revocable on
223
215
  its own:
224
216
 
225
217
  ```bash
226
- ~/.claude/lib/credential-store.sh set "${USER}_Usage_Ingest_Token" "<pasted-token>"
218
+ pbpaste | ~/.claude/lib/credential-store.sh set "${USER}_Usage_Ingest_Token" -
219
+ pbcopy < /dev/null
227
220
  ```
228
221
 
229
222
  Then, **whether they pasted or skipped**, run:
@@ -347,11 +340,11 @@ For PAT / API key / username:
347
340
 
348
341
  Pipeline runs silently - value is piped via stdin (`-` sentinel) so it never lands on argv / shell history:
349
342
  ```bash
350
- pbpaste | ~/.claude/lib/credential-store.sh set "<KEY_NAME>" "$(cat)"
343
+ pbpaste | ~/.claude/lib/credential-store.sh set "<KEY_NAME>" -
351
344
  pbcopy < /dev/null
352
345
  ```
353
346
 
354
- (The shell driver auto-delegates to `~/.claude/scripts/keychain.py` on macOS / Linux, which writes both `-l` (label) and `-s` (service) attributes so callers using either convention find the same entry.)
347
+ (The shell driver auto-delegates to `~/.claude/scripts/keychain.py`, which writes both `-l` (label) and `-s` (service) attributes so callers using either convention find the same entry.)
355
348
 
356
349
  For JSON file (Firebase) - same clipboard flow, JSON content never lands in argv or shell history:
357
350
  ```
@@ -364,12 +357,10 @@ For JSON file (Firebase) - same clipboard flow, JSON content never lands in ar
364
357
 
365
358
  Pipeline runs silently:
366
359
  ```bash
367
- pbpaste | ~/.claude/lib/credential-store.sh set "<KEY_NAME>" "$(cat)"
360
+ pbpaste | ~/.claude/lib/credential-store.sh set "<KEY_NAME>" -
368
361
  pbcopy < /dev/null # clear clipboard
369
362
  ```
370
363
 
371
- Linux substitutes: `xclip -selection clipboard -o` or `wl-paste` for `pbpaste`; matching clear command for `pbcopy < /dev/null`. The shell driver detects platform and routes accordingly (see `~/.claude/lib/credential-store.sh`).
372
-
373
364
  **Firebase repeats per project.** Teams own several Firebase projects (legacy plus redesign, staging plus prod), each with its own key, and a crash URL from the second one used to fail the `project_id` check as if it were misconfigured. After each saved key, read `project_id` from the stored JSON (never ask) and offer another round: `Saved: <project_id>. Add another Firebase project? [y/N]`.
374
365
 
375
366
  - Every key appends `{projectId, keychainKey, label?}` to `prefs.global.firebase.accounts`; the first one also fills `keychainMapping.firebase`, so a one-project setup is unchanged.
@@ -598,10 +589,10 @@ Auto-skipped if Step 5 was skipped or fewer than 2 repos were selected.
598
589
  **Prompt:**
599
590
  ```
600
591
  Step 6 - Remember as a multi-repo group (optional)
601
- You picked 2 repos: Booking, UIComponents.
592
+ You picked 2 repos: Checkout, UIComponents.
602
593
 
603
594
  Save this combo for one-tap selection in Phase 0?
604
- Group name (Enter for auto): [Booking + UIComponents]
595
+ Group name (Enter for auto): [Checkout + UIComponents]
605
596
  Skip with 'n'.
606
597
  ```
607
598
 
@@ -619,8 +610,8 @@ Repo identifiers in the label are the human label from `recentProjects` (basenam
619
610
  "global": {
620
611
  "recentGroups": [
621
612
  {
622
- "label": "Booking + UIComponents",
623
- "repos": ["~/dev/Booking", "~/dev/UIComponents"],
613
+ "label": "Checkout + UIComponents",
614
+ "repos": ["~/dev/Checkout", "~/dev/UIComponents"],
624
615
  "count": 1,
625
616
  "lastUsed": "2026-04-15T21:08:00Z"
626
617
  }
@@ -702,7 +693,7 @@ Glob matching semantics (Phase 0 implementation):
702
693
 
703
694
  ### Cross-Platform Notes (Step 1-9)
704
695
 
705
- Every read and write goes through `~/.claude/lib/credential-store.sh`, which dispatches to the right backend per platform; stay on the helper rather than the native commands. The backend table, the Linux clipboard substitutes for `pbpaste` / `pbcopy`, and what happens when no backend exists: `$HOME/.claude/multi-agent-refs/keychain.md` "Cross-platform mechanics".
696
+ Every read and write goes through `~/.claude/lib/credential-store.sh`, which wraps the macOS Keychain; stay on the helper rather than calling `security` directly. The clipboard handling and what happens when no backend exists: `$HOME/.claude/multi-agent-refs/keychain.md` "Credential store mechanics".
706
697
 
707
698
  ### Token -> Source Mapping
708
699
 
@@ -710,22 +701,22 @@ Standard key names are a convention for NEW tokens; discovery may find existing
710
701
 
711
702
  ### Inline Token Save Pattern
712
703
 
713
- All tokens go through `~/.claude/lib/credential-store.sh`, which auto-delegates to the deterministic Python helper (`~/.claude/scripts/keychain.py`) on macOS / Linux and to the PowerShell `CredentialManager` module on Windows. The Python path writes both `-l` (label) and `-s` (service) attributes so existing manually-added entries with either convention remain findable.
704
+ All tokens go through `~/.claude/lib/credential-store.sh`, which auto-delegates to the deterministic Python helper (`~/.claude/scripts/keychain.py`). The Python path writes both `-l` (label) and `-s` (service) attributes so existing manually-added entries with either convention remain findable.
714
705
 
715
706
  ```bash
716
707
  # PAT / API Key (from clipboard)
717
- pbpaste | ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" "$(cat)"
708
+ pbpaste | ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" -
718
709
  pbcopy < /dev/null # clear clipboard
719
710
 
720
- # Plain text (direct value)
711
+ # Non-secret value typed inline (a secret on argv is visible to ps and lands in shell history)
721
712
  ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" "<VALUE>"
722
713
 
723
714
  # JSON file from clipboard (preferred - no file path leaks into history)
724
- pbpaste | ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" "$(cat)"
715
+ pbpaste | ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" -
725
716
  pbcopy < /dev/null
726
717
 
727
718
  # JSON file from disk (fallback when clipboard backend unavailable)
728
- ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" "$(cat /path/to/file.json)"
719
+ ~/.claude/lib/credential-store.sh set "<SERVICE_NAME>" - < /path/to/file.json
729
720
 
730
721
  # Read - a JSON value comes back exactly as it was stored, newlines included
731
722
  ~/.claude/lib/credential-store.sh get "<SERVICE_NAME>"
@@ -2,6 +2,10 @@
2
2
  description: "Select the active stack(s) for this repo by enabling the matching marketplace plugin(s) in .claude/settings.json. Multi-select: pass several stacks (ios backend) or pick them in the native picker. Use when a repo's stack changed or the wrong plugins are enabled for it."
3
3
  description-tr: "Bu repo için aktif stack'leri seçer: eşleşen marketplace plugin'lerini .claude/settings.json'da etkinleştirir. Çoklu seçim: birden fazla stack yazılabilir (ios backend) ya da native picker'dan seçilir."
4
4
  argument-hint: "[ios|android|web|frontend|backend|mobile|fullstack|all ...]"
5
+ parameters: [{"name":"stacks","kind":"enum","repeat":true,"enum":["ios","android","web","frontend","backend","mobile","fullstack","all"]}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  allowed-tools: Bash, Read, Edit, Write, AskUserQuestion
6
10
  ---
7
11
 
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  description: "Show every multi-agent task's ID, phase, branch, and status. Use when asked what is running, or for an overview of every task."
3
3
  description-tr: "Tüm multi-agent görevlerinin ID, faz, branch ve durumunu gösterir."
4
+ parameters: []
5
+ gui: button
6
+ destructive: false
7
+ confirm: none
4
8
  ---
5
9
 
6
10
  # multi-agent status - Task Status Dashboard
@@ -21,11 +25,9 @@ Show every active and completed task as a table.
21
25
  so it sees both directory layouts (`<project>/<id>/` and the flat `<id>/`),
22
26
  the salvaged `artifacts/` copy Phase 4 leaves behind, and every spelling of a
23
27
  task id - and it counts a run that exists in both layouts once. Do NOT
24
- re-scan the tree by hand: the earlier instruction here listed three
25
- hard-coded `.worktrees/` paths and a single `find` depth, and on a real
26
- install that combination missed a quarter of the runs and double-counted
27
- others. It also scanned worktrees for `agent-state.json`, which Phase 0 has
28
- never written there ("never inside the worktree", `phases/phase-0-init.md`).
28
+ re-scan the tree by hand: fixed `.worktrees/` paths and a single `find`
29
+ depth miss runs and double-count others, and `agent-state.json` never lives
30
+ inside a worktree (`phases/phase-0-init.md`).
29
31
 
30
32
  The JSON and the table are rendered from the same records, so a dashboard and
31
33
  this command cannot disagree.
@@ -37,14 +39,13 @@ Show every active and completed task as a table.
37
39
 
38
40
  3. **Groups are computed, not judged.** `runs-index.mjs` assigns `group` by the
39
41
  table below; report what it returns rather than re-deriving it. `in_progress`
40
- alone cannot tell a run that is waiting for you from one that died, and on
41
- this machine that difference covered 21 runs.
42
+ alone cannot tell a run that is waiting for you from one that died.
42
43
 
43
44
  | Group | Test | Action offered |
44
45
  |---|---|---|
45
- | `waiting` - Waiting on you | `status == "awaiting_input"`, or a `pr.url`, or phase >= 4 | `resume #N` - the work landed, it needs your answer |
46
+ | `waiting` - Waiting on you | `status == "awaiting_input"`, or `waitingFor` set, or a `pr.url`, or phase >= 4 | `resume #N` - the work landed, it needs your answer |
46
47
  | `stopped` - Stopped mid-development | anything else past phase 0 | `resume #N` or `kill #N` |
47
- | `question` - Left at a question | phase 0 | `garbage-collect --abandoned` - nothing was built |
48
+ | `question` - Left at a question | phase 0, nothing pending | `garbage-collect --abandoned` - nothing was built |
48
49
  | `unknown` - Status not recorded | no `status` field | say so; offer nothing |
49
50
 
50
51
  A run with no `status` is **not** placed in an actionable group. Unknown is
@@ -1,7 +1,11 @@
1
1
  ---
2
2
  description: "Queue an instruction for a task that is already running. It is applied at the next phase boundary, not mid-phase. Use when a run is going the wrong way and killing it would throw away good work."
3
3
  description-tr: "Zaten koşmakta olan bir göreve talimat bırakır. Talimat faz ortasında değil, bir sonraki faz sınırında uygulanır. Koşu yanlış yöne gidiyorsa ve kill etmek iyi işi de çöpe atacaksa kullanılır."
4
- argument-hint: "#id \"<instruction>\" - e.g. #3 \"the field is called web, not frontend\". With no instruction, you are asked for it."
4
+ argument-hint: "#id [\"<instruction>\"] - e.g. #3 \"the field is called web, not frontend\". With no instruction, you are asked for it."
5
+ parameters: [{"name":"task","kind":"run-id","required":true},{"name":"instruction","kind":"text"}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # multi-agent steer - correct a run without stopping it
@@ -2,6 +2,10 @@
2
2
  description: "Pre-submission store readiness for a built package, iOS and Android, local-only. Three symmetric gates per platform: a static package audit, the store's own authoritative validation, and a policy review against repo source. Separate verdict per gate, a skipped gate never counted as a pass. Validates only, never uploads. Use when a build is about to go to TestFlight or a Play track, or when a submission was rejected and the reason is not obvious."
3
3
  description-tr: "Üretilmiş paketin yükleme öncesi store hazırlığı, iOS + Android, yalnızca lokal. Platform başına üç simetrik kapı: statik paket denetimi, store'un kendi doğrulayıcısı, ve kaynağa karşı politika incelemesi. Kapı başına ayrı verdict, atlanan kapı asla pass sayılmaz. Sadece doğrular, asla yüklemez."
4
4
  argument-hint: "[repo] - empty = pick; repo name or path; --ipa= | --archive= | --aab= | --apk=; --skip-sweep; --resume"
5
+ parameters: [{"name":"repo","kind":"text"},{"name":"--ipa","kind":"path"},{"name":"--archive","kind":"path"},{"name":"--aab","kind":"path"},{"name":"--apk","kind":"path"},{"name":"--skip-sweep","kind":"flag"},{"name":"--resume","kind":"flag"}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, AskUserQuestion, Skill, mcp__multi-agent-toolkit__ios_app_store_audit, mcp__multi-agent-toolkit__ios_export_ipa, mcp__multi-agent-toolkit__ios_testflight_validate, mcp__multi-agent-toolkit__ios_xcodebuild, mcp__multi-agent-toolkit__ios_xcresult, mcp__multi-agent-toolkit__android_apk_audit, mcp__multi-agent-toolkit__ios_screenshot, mcp__multi-agent-toolkit__ios_get_ui_tree, mcp__multi-agent-toolkit__ios_set_appearance, mcp__multi-agent-toolkit__ios_set_content_size, mcp__multi-agent-toolkit__android_screenshot, mcp__multi-agent-toolkit__android_get_ui_tree, mcp__multi-agent-toolkit__android_set_dark_mode, mcp__multi-agent-toolkit__android_set_font_scale
6
10
  ---
7
11
 
@@ -2,6 +2,10 @@
2
2
  description: "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, website, and the multi-agent-toolkit MCP server. Use when work is finished and should be propagated across Claude Code, Copilot CLI, the repos, the website and the multi-agent-toolkit server."
3
3
  description-tr: "Tüm multi-agent ekosisteminin tek atımlık senkronu: Claude Code, Copilot CLI, pipeline repo, website ve multi-agent-toolkit MCP sunucusu."
4
4
  argument-hint: "[release] [multi-agent-toolkit]"
5
+ parameters: [{"name":"release","kind":"flag"},{"name":"multi-agent-toolkit","kind":"flag"}]
6
+ gui: hidden
7
+ destructive: false
8
+ confirm: required
5
9
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
6
10
  ---
7
11
 
@@ -33,10 +37,7 @@ When invoked, it synchronizes all targets in order. It detects what changed, upd
33
37
 
34
38
  ## Platform Support (macOS only)
35
39
 
36
- v17.0.0 removed Linux and Windows (ADR-0012). `package.json` declares
37
- `os: ["darwin"]`, which npm enforces on the root package, so this tree cannot be
38
- installed elsewhere - a detection table for hosts that cannot run the installer
39
- would be a table the agent executes against a case that no longer exists.
40
+ Only macOS is supported (ADR-0012). `package.json` declares `os: ["darwin"]`, which npm enforces on the root package, so this tree cannot be installed elsewhere, and a detection table for other hosts would describe a case that cannot occur.
40
41
 
41
42
  **Contract for synced shell scripts.** The runtime is BSD userland and bash 3.2,
42
43
  and that is a stricter constraint than "cross-platform", not a looser one:
@@ -65,8 +66,8 @@ Run every step automatically:
65
66
  ```
66
67
  Step 0: DOCTOR doctor.mjs - exit 2 or 4 stops the sync
67
68
  Step 1.5: DETECT Compare timestamps, find stale targets
68
- Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 58 sub-command skills)
69
- Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 57 specs as refs + 8 agent TOML)
69
+ Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 61 sub-command skills)
70
+ Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + sub-command specs as refs + agent TOML)
70
71
  Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub, bash -n on all sh)
71
72
  Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
72
73
  bump changed plugins' patch version, commit + push the plugins repo)
@@ -94,7 +95,6 @@ Step 0 gate rules and why: `features/doctor.md`.
94
95
  - Project detection (URL-based + cwd-based)
95
96
  - Figma pipeline flow
96
97
  - Git conventions (author, branch, commit format)
97
- - Short-run model info (Opus)
98
98
  - Keychain management (registry, naming convention, multi-agent pattern)
99
99
  4. **Do not duplicate** - summary in Copilot, full spec in Claude. Keep this distinction.
100
100
  5. **Report** - show a short diff summary after sync
@@ -172,11 +172,11 @@ Step 0 gate rules and why: `features/doctor.md`.
172
172
  Unlike the Copilot step, this one does **not** hand-copy files. The Codex tree is a
173
173
  *transform* of the Claude tree, not a mirror of it, and the transform is real work:
174
174
 
175
- - the 56 sub-command specs become reference files, because Codex silently truncates
175
+ - the sub-command specs become reference files, because Codex silently truncates
176
176
  its skills block (see `cross-cli-contract.md` 2.6 for the measurement)
177
177
  - every `$HOME/.claude/...` reference to a CLI-owned tree is retargeted, with
178
178
  `agents/<persona>.md` becoming `.toml` and the dispatcher becoming the router skill
179
- - the 8 personas are regenerated as TOML with a model + reasoning-effort mapping
179
+ - the personas under `agents/` are regenerated as TOML with a model + reasoning-effort mapping
180
180
  - shared state (`logs/`, prefs, `knowledge/`) is deliberately NOT retargeted
181
181
 
182
182
  That logic lives in `install/codex.mjs` and is gate-locked by
@@ -487,22 +487,22 @@ When invoked with the `release` argument:
487
487
  ## Sub-Command Sync (Claude Code <-> Copilot CLI Skills)
488
488
 
489
489
  This runs on the Claude <-> Copilot axis. Codex is NOT synced here: it receives the
490
- same 56 specs as reference files rather than as peer skills, via Step 2b - see
490
+ same specs as reference files rather than as peer skills, via Step 2b - see
491
491
  `cross-cli-contract.md` 2.6 for why the parity axis differs per host.
492
492
 
493
493
  | Claude Code | Copilot CLI |
494
494
  |-------------|-------------|
495
495
  | `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
496
496
 
497
- **58 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
497
+ **61 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
498
498
 
499
499
  ```
500
500
  analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off, autopilot-on,
501
501
  autopilot-status, build-optimize, channels, complaint-analysis, create-jira,
502
502
  design-check, diff-explain, doctor, feedback, forget, garbage-collect, graph, help,
503
503
  ios-coding-standard, issue, jira, kill, language, log,
504
- manual-test, model, prune-logs, prune-prompts, purge, refactor, resume, review, review-analysis, review-issue, review-jira, route-off, route-on, route-status,
505
- routines, save, scan, search, security-review, setup, stack, status, steer, store-ready, sync, test,
504
+ manual-test, model, prune-logs, prune-prompts, purge, refactor, research, resume, review, review-analysis, review-issue, review-jira, route-off, route-on, route-status,
505
+ routines, save, scaffold, scan, search, security-review, serve, setup, stack, status, steer, store-ready, sync, test,
506
506
  test-accessibility, test-dark-mode, test-dynamic-type, test-screenshots,
507
507
  testflight-validation, uninstall, update
508
508
  ```
@@ -2,6 +2,10 @@
2
2
  description: "UI Bug Hunter - iOS Simulator (simctl) + Android Emulator (adb). Auto-detects platform. Screenshot + tap + analyze on the booted device. The Phase 5 Manual Test flow lives at /multi-agent:manual-test. Use when a running app should be driven on a simulator or emulator to hunt UI bugs."
3
3
  description-tr: "UI Bug Hunter - iOS Simulator (simctl) + Android Emulator (adb). Platformu otomatik algılar. Açık cihazda screenshot + tap + analiz. Faz 3 Manuel Test akışı /multi-agent:manual-test'te."
4
4
  argument-hint: '[scenario] - e.g. "dark mode" | "accessibility" | "dynamic type" | "screenshot tr" | "store-ready" | (empty = full sweep)'
5
+ parameters: [{"name":"scenario","kind":"text"}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # /multi-agent:test - UI Bug Hunter
@@ -2,6 +2,10 @@
2
2
  description: "Accessibility audit on a booted simulator / emulator: VoiceOver labels, sub-44pt tap targets, contrast, traits. Alias pinning the accessibility scenario. Use when auditing a screen for assistive-technology support."
3
3
  description-tr: "Booted simulator / emulator üzerinde erişilebilirlik denetimi: VoiceOver label'ları, 44x44pt altı tap target'lar, kontrast oranları ve trait'ler; her ekranda canlı UI tree'ye karşı denetlenir. /multi-agent:test \"accessibility\" için sabit-senaryo alias'ı."
4
4
  argument-hint: "(argümansız - senaryo sabit)"
5
+ parameters: []
6
+ gui: button
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # /multi-agent:test-accessibility - Accessibility audit
@@ -2,6 +2,10 @@
2
2
  description: "Dark mode UI test on a booted simulator / emulator: walk every screen light then dark, report contrast + colour bugs. Alias pinning the dark-mode scenario. Use when a dark-mode rendering bug is suspected."
3
3
  description-tr: "Booted simulator / emulator üzerinde dark mode UI testi. Her ekranı light'ta gezer, görünümü değiştirir, tekrar gezer; farktan kontrast + renk + sabit-palet buglarını raporlar. /multi-agent:test \"dark mode\" için sabit-senaryo alias'ı."
4
4
  argument-hint: "(argümansız - senaryo sabit)"
5
+ parameters: []
6
+ gui: button
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # /multi-agent:test-dark-mode - Dark mode UI test
@@ -2,6 +2,10 @@
2
2
  description: "Dynamic Type layout test on a booted simulator / emulator: re-walk every screen at XL through accessibility-extra-large, report truncation and clipping. Alias pinning the dynamic-type scenario. Use when checking a layout survives large text."
3
3
  description-tr: "Booted simulator / emulator üzerinde Dynamic Type layout testi. Her ekranı XL'den accessibility-extra-large'a kadar yeniden gezer; kırpılma, taşma, üst üste binme ve ölçeklenmeyi bırakan sabit yükseklikli container'ları raporlar. /multi-agent:test \"dynamic type\" için sabit-senaryo alias'ı."
4
4
  argument-hint: "(argümansız - senaryo sabit)"
5
+ parameters: []
6
+ gui: button
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # /multi-agent:test-dynamic-type - Dynamic Type layout test
@@ -1,7 +1,11 @@
1
1
  ---
2
2
  description: "App Store screenshot set from a booted simulator / emulator in a given locale, taken as an argument and defaulting to tr. Alias pinning the screenshot scenario. Use when generating store screenshots or checking a localised build renders."
3
- description-tr: "Booted simulator / emulator'dan belirtilen dilde App Store screenshot seti: temiz status bar, her ekran gezilip yakalanır. Dili isim içine gömmek yerine argüman olarak alır (default tr). /multi-agent:test \"screenshot <lang>\" için sabit-senaryo alias'ı."
3
+ description-tr: "Booted simulator / emulator'dan belirtilen dilde App Store screenshot seti: temiz status bar, her ekran gezilip yakalanır. Dili isim içine gömmek yerine argüman olarak alır (default tr). /multi-agent:test \"screenshot {lang}\" için sabit-senaryo alias'ı."
4
4
  argument-hint: "[locale] - boş = tr; örn. tr | en | de | ar"
5
+ parameters: [{"name":"locale","kind":"text"}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  # /multi-agent:test-screenshots - Locale screenshot set
@@ -2,6 +2,10 @@
2
2
  description: "iOS-pinned alias of store-ready: same three gates on an iOS build, one implementation. Validates a TestFlight / App Store package, never uploads. Use when an iOS build is about to go to TestFlight, or a submission was rejected and you need why."
3
3
  description-tr: "store-ready komutunun iOS'a sabitlenmiş alias'ı: iOS build'inde aynı üç kapı, tek implementasyon. TestFlight / App Store paketini doğrular, asla yüklemez."
4
4
  argument-hint: "[repo] - empty = pick from prefs; repo name or path; --ipa=<path>; --archive=<path>; --resume"
5
+ parameters: [{"name":"repo","kind":"text"},{"name":"--ipa","kind":"path"},{"name":"--archive","kind":"path"},{"name":"--resume","kind":"flag"}]
6
+ gui: form
7
+ destructive: false
8
+ confirm: none
5
9
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, AskUserQuestion, Skill, mcp__multi-agent-toolkit__ios_app_store_audit, mcp__multi-agent-toolkit__ios_export_ipa, mcp__multi-agent-toolkit__ios_testflight_validate, mcp__multi-agent-toolkit__ios_xcodebuild, mcp__multi-agent-toolkit__ios_xcresult
6
10
  ---
7
11
 
@@ -3,6 +3,10 @@ description: "Uninstall the pipeline from Claude Code + Copilot CLI. Keychain ac
3
3
  disable-model-invocation: true
4
4
  description-tr: "Pipeline'ı Claude Code + Copilot CLI'dan kaldırır. Keychain erişim token'larına asla dokunulmaz; --all-data ayrıca pipeline ayarlarını, loglarını, repo bazlı hafızayı ve bilgi tabanını da siler. Çift onay ister."
5
5
  argument-hint: "[--dry-run] [--all-data] [--claude] [--copilot] [--target=<path>]"
6
+ parameters: [{"name":"--dry-run","kind":"flag"},{"name":"--all-data","kind":"flag"},{"name":"--claude","kind":"flag"},{"name":"--copilot","kind":"flag"},{"name":"--target","kind":"path"}]
7
+ gui: button
8
+ destructive: true
9
+ confirm: required
6
10
  ---
7
11
 
8
12
  # multi-agent uninstall - Token-Preserving Uninstall
@@ -27,7 +31,7 @@ Tokens in the OS credential store are NEVER removed by either mode.
27
31
 
28
32
  ## Never deleted (either mode)
29
33
 
30
- - **Keychain / Credential Manager / libsecret** personal access tokens (GitHub, Jira, Bitbucket, Confluence, Telegram, Vercel, Firebase, etc.)
34
+ - **Keychain** personal access tokens (GitHub, Jira, Bitbucket, Confluence, Telegram, Vercel, Firebase, etc.)
31
35
  - `~/.claude/lib/credential-store.sh` - the only way to READ those tokens. Deleting it while keeping the secrets preserves a locked box and throws away the key, and the closing message below used to advise a command uninstall had just removed.
32
36
  - `global.keychainMapping` inside `multi-agent-preferences.json`, even under `--all-data`. It carries no secret, only logical-name -> credential-store key; without it the preserved tokens sit under names the user never chose and no longer has a record of. Everything else in that file is removed.
33
37
  - The **`multi-agent-toolkit` MCP registration**. Its device, accessibility and store-audit tools work with no pipeline at all - the same reason the tokens stay. The retired `dev-toolkit` name IS deregistered: it points at a registration nothing maintains, so leaving it is litter, not preservation.
@@ -2,6 +2,10 @@
2
2
  description: "Update the pipeline to the latest published npm release: registry check, npm pack, install, migrate. Use when the installed pipeline is behind and should be brought to the latest version."
3
3
  description-tr: "Pipeline'ı npm'deki son yayına günceller: registry kontrolü, npm pack, install, migrate."
4
4
  allowed-tools: Bash, Read, Write, AskUserQuestion
5
+ parameters: []
6
+ gui: button
7
+ destructive: false
8
+ confirm: none
5
9
  ---
6
10
 
7
11
  ## After the install, check it
@@ -0,0 +1,74 @@
1
+ # Client contract changelog
2
+
3
+ Versions of the client contract (`manifest.json` `contractVersion`), separate
4
+ from the package version. See `README.md` for what counts as minor and major.
5
+
6
+ ## 1.2.0
7
+
8
+ Added, plus one narrowing of the launch input, which no released pipeline
9
+ version served before this one.
10
+
11
+ - Phone routes under `/v1/phone/`: `GET /v1/phone/runs`, `GET /v1/phone/runs/{id}`,
12
+ `POST /v1/phone/runs/{id}/answer` and `POST /v1/phone/launch`. Each request
13
+ is signed with an enrolled device's Ed25519 key (`phone-signed-request.schema.json`);
14
+ the bearer token does not open them and a signature opens no desktop route.
15
+ Responses are always redacted, and launch is refused until it is enabled
16
+ locally. `manifest.json` `phone` names the headers, the signed fields, the
17
+ window and the scopes, so a client hardcodes none of them.
18
+ - `phone-devices.schema.json`: the device registry `phone-devices.mjs` writes.
19
+ - `contract-error.schema.json`: `unsigned`, `unknown-device`, `revoked-device`,
20
+ `bad-signature`, `stale-request`, `replayed`, `replay-store-full`,
21
+ `unknown-verb`, `forbidden-scope` and `launch-disabled`. A desktop request
22
+ never receives one of them. `repo-not-allowed` (403) answers a launch on
23
+ either route whose `repo` is neither a configured autopilot repo nor one
24
+ registered with `launch-request.mjs register-repo`.
25
+ - `manifest.json` `phone.signature.futureSkewSeconds` (5): how far ahead of
26
+ the server's clock a timestamp may be. `windowSeconds` (60) is how far
27
+ behind.
28
+ - Launch input. `input` is a structured reference (Jira key, GitHub issue URL,
29
+ `repo#N`, `#N`, Jira URL on the configured host) or, on the desktop channel
30
+ only, free text that the plan renders as one quoted argument. A newline, a
31
+ control or format character, a leading `-`, a flag-like token or a first
32
+ token that is a pipeline op or mode keyword rejects the request
33
+ (`400 invalid-request`); free text may use those words after its first
34
+ token. A client that sent free text to `/v1/phone/launch`, or an input
35
+ carrying one of those, now sends a structured reference instead.
36
+ - `launch-request.mjs plan --channel desktop|phone` (default `desktop`) applies
37
+ that channel's input rule, so `plan --channel phone --redact` prints what
38
+ `POST /v1/phone/launch` returns for the same request file.
39
+ - `manifest.json`: the `launch-spec` surface carries `launch.json`'s own
40
+ version, 1.1.0.
41
+ - `runs-index` `group`: a run with `waitingFor` set is `waiting` at any phase.
42
+ A run paused on a question at phase 0 is no longer grouped `question`, the
43
+ group whose action is garbage-collecting an abandoned intake.
44
+
45
+ ## 1.1.0
46
+
47
+ Added; nothing a 1.0 client decodes changed.
48
+
49
+ - HTTP carrier: `contract-server.mjs` serves every surface on `127.0.0.1`
50
+ behind a per-start bearer token, byte-for-byte what the CLI prints.
51
+ - `runs-index` 1.1.0: each run carries `sessionId`, `waitingFor` and
52
+ `pendingQuestion`, so a client can find the run it launched and answer the
53
+ question it stopped on without reading `agent-state.json`.
54
+ - `runs-index`: `schemaVersion` is always a string or null (agent-state.schema.json
55
+ already declares a string) and token counts are always integers. The
56
+ producer now coerces both and the schema says so; the toolbox decodes exactly
57
+ these types.
58
+ - `launch-request.mjs plan` and `POST /v1/launch`: the launch plan
59
+ (`launch-plan.schema.json`). `launch-request.mjs questions` and `spec` print
60
+ `run-questions.json` and `launch.json`.
61
+ - `answer-question.mjs --question <id>` and `POST /v1/runs/{id}/answer`
62
+ (`answer-request.schema.json`): an answer names the question it answers.
63
+ - `credential-inventory.sh --json` carries `probed` in every envelope,
64
+ including `empty` and `no-backend`.
65
+ - `contract-error.schema.json` for every non-2xx HTTP body.
66
+ - The kit itself: `manifest.json`, generated `types/index.d.ts`, fixtures and
67
+ the frozen toolbox fields.
68
+
69
+ ## 1.0.0
70
+
71
+ The first declared contract: `commands.mjs --json`, `run-questions.json`,
72
+ launch requests (`launch-request.mjs validate|resolve`), `answer-question.mjs`,
73
+ `issues.mjs --json`, `worktrees.mjs --json`, `runs-index.mjs --json` with
74
+ `--redact`, and `launch.json`.