@mmerterden/multi-agent-pipeline 20.2.1 → 20.3.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 (621) hide show
  1. package/CHANGELOG.md +912 -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 +616 -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/user-facing.mjs +82 -0
  148. package/pipeline/lib/user-facing.sh +58 -0
  149. package/pipeline/multi-agent-refs/_dev-context.md +1 -1
  150. package/pipeline/multi-agent-refs/analysis/evidence.md +4 -0
  151. package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
  152. package/pipeline/multi-agent-refs/analysis/render.md +4 -3
  153. package/pipeline/multi-agent-refs/analysis/resolve.md +3 -1
  154. package/pipeline/multi-agent-refs/analysis/synthesis.md +4 -5
  155. package/pipeline/multi-agent-refs/analysis-template.md +10 -17
  156. package/pipeline/multi-agent-refs/channels/jira.md +1 -1
  157. package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
  158. package/pipeline/multi-agent-refs/conventions-defaults.md +32 -32
  159. package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -17
  160. package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +37 -9
  161. package/pipeline/multi-agent-refs/features/autopilot-operations.md +277 -0
  162. package/pipeline/multi-agent-refs/features/constitution.md +196 -0
  163. package/pipeline/multi-agent-refs/features/doctor.md +6 -3
  164. package/pipeline/multi-agent-refs/features/external-context-injection.md +6 -1
  165. package/pipeline/multi-agent-refs/features/jira-context.md +1 -1
  166. package/pipeline/multi-agent-refs/features/maturity-followup.md +43 -23
  167. package/pipeline/multi-agent-refs/features/model-fallback.md +9 -0
  168. package/pipeline/multi-agent-refs/features/phone-api.md +306 -0
  169. package/pipeline/multi-agent-refs/features/plan-critic.md +159 -0
  170. package/pipeline/multi-agent-refs/features/research.md +150 -0
  171. package/pipeline/multi-agent-refs/features/review-decision.md +185 -0
  172. package/pipeline/multi-agent-refs/features/scaffold.md +160 -0
  173. package/pipeline/multi-agent-refs/features/security-audit.md +6 -2
  174. package/pipeline/multi-agent-refs/features/skill-conformance.md +4 -1
  175. package/pipeline/multi-agent-refs/features/stack-adapters.md +116 -0
  176. package/pipeline/multi-agent-refs/features/unattended-gates.md +316 -0
  177. package/pipeline/multi-agent-refs/features/unattended-security.md +731 -0
  178. package/pipeline/multi-agent-refs/features/url-enrichment.md +2 -2
  179. package/pipeline/multi-agent-refs/features/usage-reporting.md +127 -35
  180. package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
  181. package/pipeline/multi-agent-refs/features/visual-evidence.md +7 -7
  182. package/pipeline/multi-agent-refs/keychain.md +6 -11
  183. package/pipeline/multi-agent-refs/payload-contracts.md +2 -2
  184. package/pipeline/multi-agent-refs/phases/log-format.md +2 -3
  185. package/pipeline/multi-agent-refs/phases/modes.md +10 -12
  186. package/pipeline/multi-agent-refs/phases/operations.md +11 -5
  187. package/pipeline/multi-agent-refs/phases/phase-0-init.md +73 -81
  188. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +22 -22
  189. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +42 -66
  190. package/pipeline/multi-agent-refs/phases/phase-3-review.md +45 -79
  191. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +28 -38
  192. package/pipeline/multi-agent-refs/phases/phase-5-report.md +27 -25
  193. package/pipeline/multi-agent-refs/phases.md +1 -1
  194. package/pipeline/multi-agent-refs/picker-contract.md +1 -1
  195. package/pipeline/multi-agent-refs/progress-contract.md +13 -16
  196. package/pipeline/multi-agent-refs/readiness-review.md +1 -1
  197. package/pipeline/multi-agent-refs/research/engine.md +91 -0
  198. package/pipeline/multi-agent-refs/rules.md +6 -4
  199. package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
  200. package/pipeline/multi-agent-refs/tracker-contract.md +2 -2
  201. package/pipeline/multi-agent-refs/unattended-contract.md +68 -16
  202. package/pipeline/rules/figma-pipeline.md +12 -12
  203. package/pipeline/schemas/agent-state.schema.json +480 -18
  204. package/pipeline/schemas/analysis-spec.schema.json +4 -4
  205. package/pipeline/schemas/answer-request.schema.json +24 -0
  206. package/pipeline/schemas/answer-result.schema.json +28 -0
  207. package/pipeline/schemas/autopilot-config.schema.json +111 -13
  208. package/pipeline/schemas/command-parameters.schema.json +99 -0
  209. package/pipeline/schemas/constitution.schema.json +56 -0
  210. package/pipeline/schemas/contract-error.schema.json +52 -0
  211. package/pipeline/schemas/design-check-config.schema.json +5 -1
  212. package/pipeline/schemas/issues.schema.json +61 -0
  213. package/pipeline/schemas/launch-plan.schema.json +46 -0
  214. package/pipeline/schemas/launch-request.schema.json +45 -0
  215. package/pipeline/schemas/launch.json +61 -0
  216. package/pipeline/schemas/launch.schema.json +84 -0
  217. package/pipeline/schemas/phases.json +2 -2
  218. package/pipeline/schemas/phases.schema.json +68 -0
  219. package/pipeline/schemas/phone-devices.schema.json +61 -0
  220. package/pipeline/schemas/phone-signed-request.schema.json +67 -0
  221. package/pipeline/schemas/plan-critique.schema.json +99 -0
  222. package/pipeline/schemas/plan-todos.schema.json +7 -7
  223. package/pipeline/schemas/planning-output.schema.json +5 -0
  224. package/pipeline/schemas/pr-request.schema.json +46 -0
  225. package/pipeline/schemas/prefs.schema.json +79 -8
  226. package/pipeline/schemas/research-output.schema.json +118 -0
  227. package/pipeline/schemas/review-file-exclusions.schema.json +25 -0
  228. package/pipeline/schemas/reviewer-output.schema.json +40 -4
  229. package/pipeline/schemas/run-questions.json +392 -0
  230. package/pipeline/schemas/run-questions.schema.json +118 -0
  231. package/pipeline/schemas/runs-index.schema.json +189 -0
  232. package/pipeline/schemas/scaffold-manifest.schema.json +43 -0
  233. package/pipeline/schemas/secret-patterns.schema.json +28 -0
  234. package/pipeline/schemas/stack-adapters.json +527 -0
  235. package/pipeline/schemas/stack-adapters.schema.json +184 -0
  236. package/pipeline/schemas/token-budget.json +1 -1
  237. package/pipeline/schemas/token-budget.schema.json +26 -0
  238. package/pipeline/schemas/triage-output.schema.json +64 -3
  239. package/pipeline/schemas/unattended-policy.json +139 -0
  240. package/pipeline/schemas/unattended-policy.schema.json +73 -0
  241. package/pipeline/schemas/unattended-profile.json +248 -0
  242. package/pipeline/schemas/unattended-profile.schema.json +198 -0
  243. package/pipeline/schemas/worktrees.schema.json +51 -0
  244. package/pipeline/scripts/README.md +1 -0
  245. package/pipeline/scripts/_autopilot-config.mjs +130 -0
  246. package/pipeline/scripts/_autopilot-ops.mjs +567 -0
  247. package/pipeline/scripts/_autopilot-outcomes.mjs +174 -0
  248. package/pipeline/scripts/_command-contract.mjs +384 -0
  249. package/pipeline/scripts/_cost.mjs +40 -0
  250. package/pipeline/scripts/_notices.mjs +160 -0
  251. package/pipeline/scripts/_phone-auth.mjs +485 -0
  252. package/pipeline/scripts/_pre-existing.mjs +294 -0
  253. package/pipeline/scripts/_redact.mjs +77 -0
  254. package/pipeline/scripts/_run-paths.mjs +4 -2
  255. package/pipeline/scripts/_stack-adapter.mjs +678 -0
  256. package/pipeline/scripts/_stack-routing.mjs +1 -1
  257. package/pipeline/scripts/agent-guard.py +348 -37
  258. package/pipeline/scripts/agent-guard.sh +41 -13
  259. package/pipeline/scripts/analysis-story-tree.mjs +79 -3
  260. package/pipeline/scripts/answer-question.mjs +181 -0
  261. package/pipeline/scripts/audit-log-rotate.sh +1 -4
  262. package/pipeline/scripts/audit-log.sh +4 -4
  263. package/pipeline/scripts/autopilot-arming.mjs +389 -21
  264. package/pipeline/scripts/autopilot-awake.mjs +255 -0
  265. package/pipeline/scripts/autopilot-intake.mjs +137 -36
  266. package/pipeline/scripts/autopilot-menubar.swift +156 -44
  267. package/pipeline/scripts/autopilot-publish.mjs +1625 -0
  268. package/pipeline/scripts/autopilot-runner.mjs +1678 -222
  269. package/pipeline/scripts/autopilot-status.sh +198 -33
  270. package/pipeline/scripts/build-lock.sh +120 -0
  271. package/pipeline/scripts/build-references.mjs +4 -1
  272. package/pipeline/scripts/build-stack-plugins.mjs +59 -22
  273. package/pipeline/scripts/capture-flush.sh +1 -1
  274. package/pipeline/scripts/capture-resume.sh +13 -9
  275. package/pipeline/scripts/check-derived-drift.mjs +52 -11
  276. package/pipeline/scripts/commands.mjs +88 -0
  277. package/pipeline/scripts/constitution.mjs +362 -0
  278. package/pipeline/scripts/contract-server.mjs +776 -0
  279. package/pipeline/scripts/cost-analyze.mjs +89 -39
  280. package/pipeline/scripts/diff-explain.mjs +12 -1
  281. package/pipeline/scripts/doctor.mjs +77 -28
  282. package/pipeline/scripts/evidence-gate.mjs +192 -12
  283. package/pipeline/scripts/feedback-send.mjs +4 -2
  284. package/pipeline/scripts/gate-ledger.mjs +449 -0
  285. package/pipeline/scripts/gc-abandoned.sh +132 -13
  286. package/pipeline/scripts/gen-facts.mjs +31 -15
  287. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  288. package/pipeline/scripts/github-ssh-setup.sh +140 -29
  289. package/pipeline/scripts/graph-mermaid.mjs +4 -1
  290. package/pipeline/scripts/issues.mjs +236 -0
  291. package/pipeline/scripts/jira-attach.sh +6 -2
  292. package/pipeline/scripts/jira-search.sh +4 -3
  293. package/pipeline/scripts/keychain-save.sh +125 -24
  294. package/pipeline/scripts/keychain.py +63 -93
  295. package/pipeline/scripts/launch-request.mjs +747 -0
  296. package/pipeline/scripts/localize-commands.mjs +4 -10
  297. package/pipeline/scripts/log-metric.sh +6 -5
  298. package/pipeline/scripts/maturity-followup.mjs +13 -4
  299. package/pipeline/scripts/memory-save.sh +25 -0
  300. package/pipeline/scripts/migrate-prefs.mjs +4 -3
  301. package/pipeline/scripts/open-questions-gate.mjs +276 -0
  302. package/pipeline/scripts/phase-tracker.sh +41 -27
  303. package/pipeline/scripts/phase0-exit-gate.mjs +22 -4
  304. package/pipeline/scripts/phone-devices.mjs +224 -0
  305. package/pipeline/scripts/plan-coverage-gate.mjs +200 -66
  306. package/pipeline/scripts/plan-critique-gate.mjs +591 -0
  307. package/pipeline/scripts/pr-request.mjs +188 -0
  308. package/pipeline/scripts/pre-commit-check.sh +115 -4
  309. package/pipeline/scripts/probe-evidence-capability.sh +44 -5
  310. package/pipeline/scripts/record-phase.mjs +71 -0
  311. package/pipeline/scripts/render-agent-log-cost.sh +17 -2
  312. package/pipeline/scripts/render-cost-summary.sh +1 -1
  313. package/pipeline/scripts/render-work-summary.sh +1 -1
  314. package/pipeline/scripts/require-supported-version.sh +4 -1
  315. package/pipeline/scripts/research-gate.mjs +704 -0
  316. package/pipeline/scripts/review-decision-gate.mjs +403 -0
  317. package/pipeline/scripts/routine-registry.mjs +5 -2
  318. package/pipeline/scripts/runs-index.mjs +135 -27
  319. package/pipeline/scripts/scaffold-gate.mjs +393 -0
  320. package/pipeline/scripts/skill-conformance.mjs +25 -8
  321. package/pipeline/scripts/skill-siblings.mjs +2 -1
  322. package/pipeline/scripts/smoke-cross-cli-behavior.sh +32 -6
  323. package/pipeline/scripts/smoke-schema-validation.sh +6 -2
  324. package/pipeline/scripts/spec-consistency-gate.mjs +469 -0
  325. package/pipeline/scripts/symbol-existence-gate.mjs +450 -0
  326. package/pipeline/scripts/test-gap-scan.mjs +40 -2
  327. package/pipeline/scripts/test-integrity-gate.mjs +20 -4
  328. package/pipeline/scripts/test-strength.mjs +484 -0
  329. package/pipeline/scripts/test-summary.mjs +651 -0
  330. package/pipeline/scripts/triage-memory.mjs +49 -9
  331. package/pipeline/scripts/unattended_policy.py +2786 -0
  332. package/pipeline/scripts/uninstall.mjs +10 -10
  333. package/pipeline/scripts/update-issue-progress.sh +1 -1
  334. package/pipeline/scripts/usage-identity.mjs +288 -0
  335. package/pipeline/scripts/usage-register.mjs +185 -65
  336. package/pipeline/scripts/usage-report.mjs +230 -66
  337. package/pipeline/scripts/validate-complaint-doc.mjs +28 -10
  338. package/pipeline/scripts/validate-planning.mjs +6 -0
  339. package/pipeline/scripts/verify-citations.mjs +151 -38
  340. package/pipeline/scripts/verify.mjs +58 -18
  341. package/pipeline/scripts/worktree-prepare.sh +126 -0
  342. package/pipeline/scripts/worktrees.mjs +124 -0
  343. package/pipeline/scripts/write-state.mjs +48 -17
  344. package/pipeline/skills/.skill-manifest.json +222 -226
  345. package/pipeline/skills/.skills-index.json +77 -88
  346. package/pipeline/skills/shared/README.md +44 -45
  347. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +3 -2
  348. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +3 -2
  349. package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -9
  350. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +6 -5
  351. package/pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md +11 -3
  352. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +2 -1
  353. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -3
  354. package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +32 -6
  355. package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +66 -8
  356. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +27 -9
  357. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -1
  358. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +7 -4
  359. package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +3 -2
  360. package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +2 -1
  361. package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +7 -5
  362. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +2 -1
  363. package/pipeline/skills/shared/core/multi-agent-doctor/SKILL.md +3 -2
  364. package/pipeline/skills/shared/core/multi-agent-feedback/SKILL.md +2 -1
  365. package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +2 -1
  366. package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +2 -1
  367. package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +2 -1
  368. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -1
  369. package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -1
  370. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +3 -2
  371. package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -1
  372. package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +7 -4
  373. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -1
  374. package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +2 -1
  375. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +2 -1
  376. package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +2 -1
  377. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +2 -1
  378. package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +2 -1
  379. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +2 -1
  380. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +2 -1
  381. package/pipeline/skills/shared/core/multi-agent-research/SKILL.md +35 -0
  382. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +7 -3
  383. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +7 -5
  384. package/pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md +2 -1
  385. package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +3 -2
  386. package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +2 -1
  387. package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +2 -1
  388. package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +2 -1
  389. package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +2 -1
  390. package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +2 -1
  391. package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +3 -2
  392. package/pipeline/skills/shared/core/multi-agent-scaffold/SKILL.md +30 -0
  393. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -1
  394. package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +4 -3
  395. package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +2 -1
  396. package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +60 -0
  397. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +8 -8
  398. package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -1
  399. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +7 -8
  400. package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -1
  401. package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +2 -1
  402. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +10 -10
  403. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +2 -1
  404. package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +2 -1
  405. package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +2 -1
  406. package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +2 -1
  407. package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +2 -1
  408. package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +2 -1
  409. package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +3 -2
  410. package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +2 -1
  411. package/pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md +46 -0
  412. package/pipeline/skills/shared/external/NOTICE-dimillian-skills.md +9 -3
  413. package/pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md +54 -0
  414. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +9 -11
  415. package/pipeline/skills/shared/external/NOTICE-vibeship-spawner-skills.md +203 -0
  416. package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +10 -3
  417. package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +131 -25
  418. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -3
  419. package/pipeline/skills/shared/external/alarmkit/SKILL.md +2 -1
  420. package/pipeline/skills/shared/external/android-architecture/SKILL.md +85 -76
  421. package/pipeline/skills/shared/external/android-build-quality-gates/SKILL.md +51 -3
  422. package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +9 -0
  423. package/pipeline/skills/shared/external/android-datastore/SKILL.md +4 -3
  424. package/pipeline/skills/shared/external/android-design-tokens-codegen/SKILL.md +4 -3
  425. package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +106 -181
  426. package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +147 -0
  427. package/pipeline/skills/shared/external/android-mvi-viewmodel/SKILL.md +45 -4
  428. package/pipeline/skills/shared/external/android-performance/SKILL.md +27 -2
  429. package/pipeline/skills/shared/external/android-performance/references/patterns.md +37 -37
  430. package/pipeline/skills/shared/external/api-patterns/SKILL.md +111 -67
  431. package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +128 -0
  432. package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +136 -186
  433. package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +140 -0
  434. package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +207 -0
  435. package/pipeline/skills/shared/external/api-security-best-practices/references/operations.md +66 -0
  436. package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +175 -0
  437. package/pipeline/skills/shared/external/app-clips/SKILL.md +2 -0
  438. package/pipeline/skills/shared/external/app-intents/SKILL.md +2 -0
  439. package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +4 -3
  440. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +2 -0
  441. package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -0
  442. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +2 -0
  443. package/pipeline/skills/shared/external/architecture/SKILL.md +106 -39
  444. package/pipeline/skills/shared/external/architecture/references/adr-and-review.md +76 -0
  445. package/pipeline/skills/shared/external/authentication/SKILL.md +2 -0
  446. package/pipeline/skills/shared/external/avkit/SKILL.md +2 -0
  447. package/pipeline/skills/shared/external/background-processing/SKILL.md +2 -1
  448. package/pipeline/skills/shared/external/backlog/SKILL.md +3 -2
  449. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +2 -0
  450. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +1 -1
  451. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +3 -2
  452. package/pipeline/skills/shared/external/clean-code/SKILL.md +192 -90
  453. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +2 -1
  454. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +1 -1
  455. package/pipeline/skills/shared/external/compose-components/SKILL.md +4 -4
  456. package/pipeline/skills/shared/external/compose-navigation/SKILL.md +22 -22
  457. package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +10 -10
  458. package/pipeline/skills/shared/external/compose-testing/SKILL.md +13 -6
  459. package/pipeline/skills/shared/external/compose-testing/references/patterns.md +59 -59
  460. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +2 -0
  461. package/pipeline/skills/shared/external/context-compression/SKILL.md +118 -250
  462. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +2 -0
  463. package/pipeline/skills/shared/external/core-data/SKILL.md +2 -0
  464. package/pipeline/skills/shared/external/core-motion/SKILL.md +2 -0
  465. package/pipeline/skills/shared/external/core-nfc/SKILL.md +2 -0
  466. package/pipeline/skills/shared/external/coreml/SKILL.md +2 -1
  467. package/pipeline/skills/shared/external/council/SKILL.md +2 -1
  468. package/pipeline/skills/shared/external/cryptokit/SKILL.md +2 -0
  469. package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
  470. package/pipeline/skills/shared/external/database-patterns/SKILL.md +3 -2
  471. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +2 -0
  472. package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +130 -20
  473. package/pipeline/skills/shared/external/debugging-strategies/references/hard-cases.md +54 -0
  474. package/pipeline/skills/shared/external/device-integrity/SKILL.md +2 -0
  475. package/pipeline/skills/shared/external/docker-expert/SKILL.md +137 -381
  476. package/pipeline/skills/shared/external/docker-expert/references/patterns.md +98 -0
  477. package/pipeline/skills/shared/external/energykit/SKILL.md +2 -1
  478. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +3 -1
  479. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +2 -2
  480. package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +116 -185
  481. package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +235 -0
  482. package/pipeline/skills/shared/external/fastapi-pro/references/testing-and-deployment.md +69 -0
  483. package/pipeline/skills/shared/external/firebase/SKILL.md +4 -3
  484. package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +151 -293
  485. package/pipeline/skills/shared/external/github-actions-templates/references/patterns.md +96 -0
  486. package/pipeline/skills/shared/external/healthkit/SKILL.md +2 -0
  487. package/pipeline/skills/shared/external/hig-components-content/SKILL.md +69 -72
  488. package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +111 -0
  489. package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +77 -86
  490. package/pipeline/skills/shared/external/hig-components-layout/references/containers.md +98 -0
  491. package/pipeline/skills/shared/external/hig-components-status/SKILL.md +150 -78
  492. package/pipeline/skills/shared/external/hig-components-system/SKILL.md +76 -97
  493. package/pipeline/skills/shared/external/hig-components-system/references/surfaces.md +98 -0
  494. package/pipeline/skills/shared/external/hig-foundations/SKILL.md +48 -76
  495. package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +132 -0
  496. package/pipeline/skills/shared/external/hig-inputs/SKILL.md +147 -106
  497. package/pipeline/skills/shared/external/hig-patterns/SKILL.md +61 -77
  498. package/pipeline/skills/shared/external/hig-patterns/references/patterns.md +92 -0
  499. package/pipeline/skills/shared/external/hig-platforms/SKILL.md +147 -77
  500. package/pipeline/skills/shared/external/hig-technologies/SKILL.md +61 -121
  501. package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +108 -0
  502. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +2 -0
  503. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +1 -1
  504. package/pipeline/skills/shared/external/html-semantic/SKILL.md +3 -2
  505. package/pipeline/skills/shared/external/humanizer/SKILL.md +2 -1
  506. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +2 -0
  507. package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +2 -1
  508. package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +14 -2
  509. package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
  510. package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +4 -3
  511. package/pipeline/skills/shared/external/ios-localization/SKILL.md +8 -6
  512. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +2 -2
  513. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +11 -11
  514. package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +2 -1
  515. package/pipeline/skills/shared/external/ios-networking/SKILL.md +2 -0
  516. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +2 -0
  517. package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +102 -193
  518. package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +103 -0
  519. package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -2
  520. package/pipeline/skills/shared/external/live-activities/evals/evals.json +2 -2
  521. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +7 -9
  522. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +3 -3
  523. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +2 -2
  524. package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +4 -3
  525. package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +5 -3
  526. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +2 -0
  527. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +1 -1
  528. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +2 -0
  529. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +1 -1
  530. package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +149 -46
  531. package/pipeline/skills/shared/external/monorepo-architect/references/patterns.md +70 -0
  532. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +2 -0
  533. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +1 -1
  534. package/pipeline/skills/shared/external/natural-language/SKILL.md +2 -0
  535. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +3 -2
  536. package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +91 -21
  537. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +247 -0
  538. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md +57 -0
  539. package/pipeline/skills/shared/external/observability-engineer/SKILL.md +155 -232
  540. package/pipeline/skills/shared/external/observability-engineer/references/patterns.md +75 -0
  541. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +2 -0
  542. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +2 -2
  543. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +18 -18
  544. package/pipeline/skills/shared/external/pdfkit/SKILL.md +2 -1
  545. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -0
  546. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
  547. package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -0
  548. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +2 -1
  549. package/pipeline/skills/shared/external/push-notifications/SKILL.md +2 -0
  550. package/pipeline/skills/shared/external/python-patterns/SKILL.md +3 -2
  551. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +3 -2
  552. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +2 -2
  553. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
  554. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +3 -2
  555. package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +7 -7
  556. package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +69 -69
  557. package/pipeline/skills/shared/external/room-database/references/patterns.md +126 -126
  558. package/pipeline/skills/shared/external/search-first/SKILL.md +2 -1
  559. package/pipeline/skills/shared/external/security-review/SKILL.md +4 -3
  560. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +2 -2
  561. package/pipeline/skills/shared/external/signal-community/SKILL.md +1 -1
  562. package/pipeline/skills/shared/external/skill-creator/SKILL.md +2 -1
  563. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +2 -1
  564. package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +2 -0
  565. package/pipeline/skills/shared/external/storekit/SKILL.md +2 -0
  566. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +2 -0
  567. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +2 -1
  568. package/pipeline/skills/shared/external/swift-charts/SKILL.md +2 -1
  569. package/pipeline/skills/shared/external/swift-codable/SKILL.md +2 -0
  570. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +3 -1
  571. package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +5 -4
  572. package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -1
  573. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +2 -0
  574. package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -1
  575. package/pipeline/skills/shared/external/swift-security/SKILL.md +2 -1
  576. package/pipeline/skills/shared/external/swift-testing/SKILL.md +2 -0
  577. package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -1
  578. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +10 -0
  579. package/pipeline/skills/shared/external/swiftdata/SKILL.md +2 -0
  580. package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -1
  581. package/pipeline/skills/shared/external/swiftlint/SKILL.md +2 -0
  582. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +2 -0
  583. package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +3 -1
  584. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +2 -0
  585. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +2 -0
  586. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +2 -0
  587. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +2 -0
  588. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +3 -1
  589. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +3 -1
  590. package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +5 -4
  591. package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -1
  592. package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +5 -4
  593. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +2 -0
  594. package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +4 -3
  595. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +2 -0
  596. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
  597. package/pipeline/skills/shared/external/testing-backend/SKILL.md +3 -2
  598. package/pipeline/skills/shared/external/tipkit/SKILL.md +2 -0
  599. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +3 -2
  600. package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -0
  601. package/pipeline/skills/shared/external/vue-composition/SKILL.md +3 -2
  602. package/pipeline/skills/shared/external/weatherkit/SKILL.md +2 -0
  603. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +3 -2
  604. package/pipeline/skills/shared/external/web-performance/SKILL.md +3 -2
  605. package/pipeline/skills/shared/external/web-testing/SKILL.md +3 -2
  606. package/pipeline/skills/shared/external/widgetkit/SKILL.md +2 -0
  607. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +1 -1
  608. package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +2 -0
  609. package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +2 -0
  610. package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +2 -0
  611. package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +2 -0
  612. package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +2 -0
  613. package/pipeline/skills/skills-index.md +40 -41
  614. package/docs/token-budget-history.md +0 -24
  615. package/pipeline/skills/shared/external/agentflow/SKILL.md +0 -199
  616. package/pipeline/skills/shared/external/android-ui-verification/SKILL.md +0 -66
  617. package/pipeline/skills/shared/external/api-security-best-practices/references/auth.md +0 -299
  618. package/pipeline/skills/shared/external/api-security-best-practices/references/input-validation.md +0 -255
  619. package/pipeline/skills/shared/external/api-security-best-practices/references/rate-limiting.md +0 -167
  620. package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +0 -116
  621. package/pipeline/skills/shared/external/ios-developer/SKILL.md +0 -216
@@ -22,27 +22,27 @@ SKILL.md sections.
22
22
 
23
23
  ```kotlin
24
24
  @Entity(
25
- tableName = "flights",
25
+ tableName = "orders",
26
26
  indices = [
27
- Index(value = ["origin_code", "destination_code"]),
28
- Index(value = ["departure_time"]),
27
+ Index(value = ["store_code", "region_code"]),
28
+ Index(value = ["placed_at"]),
29
29
  ],
30
30
  )
31
- data class FlightEntity(
31
+ data class OrderEntity(
32
32
  @PrimaryKey
33
33
  val id: String,
34
- @ColumnInfo(name = "origin_code")
35
- val originCode: String,
36
- @ColumnInfo(name = "origin_name")
37
- val originName: String,
38
- @ColumnInfo(name = "destination_code")
39
- val destinationCode: String,
40
- @ColumnInfo(name = "destination_name")
41
- val destinationName: String,
42
- @ColumnInfo(name = "departure_time")
43
- val departureTime: String,
44
- @ColumnInfo(name = "arrival_time")
45
- val arrivalTime: String,
34
+ @ColumnInfo(name = "store_code")
35
+ val storeCode: String,
36
+ @ColumnInfo(name = "store_name")
37
+ val storeName: String,
38
+ @ColumnInfo(name = "region_code")
39
+ val regionCode: String,
40
+ @ColumnInfo(name = "region_name")
41
+ val regionName: String,
42
+ @ColumnInfo(name = "placed_at")
43
+ val placedAt: String,
44
+ @ColumnInfo(name = "delivered_at")
45
+ val deliveredAt: String,
46
46
  @ColumnInfo(name = "price_amount")
47
47
  val priceAmount: Double,
48
48
  @ColumnInfo(name = "price_currency")
@@ -57,16 +57,16 @@ data class FlightEntity(
57
57
 
58
58
  ```kotlin
59
59
  @Entity(
60
- tableName = "booking_passengers",
61
- primaryKeys = ["booking_id", "passenger_id"],
60
+ tableName = "shipment_packages",
61
+ primaryKeys = ["shipment_id", "package_id"],
62
62
  )
63
- data class BookingPassengerEntity(
64
- @ColumnInfo(name = "booking_id")
65
- val bookingId: String,
66
- @ColumnInfo(name = "passenger_id")
67
- val passengerId: String,
68
- @ColumnInfo(name = "seat_number")
69
- val seatNumber: String?,
63
+ data class ShipmentPackageEntity(
64
+ @ColumnInfo(name = "shipment_id")
65
+ val shipmentId: String,
66
+ @ColumnInfo(name = "package_id")
67
+ val packageId: String,
68
+ @ColumnInfo(name = "tracking_number")
69
+ val trackingNumber: String?,
70
70
  )
71
71
  ```
72
72
 
@@ -74,49 +74,49 @@ data class BookingPassengerEntity(
74
74
 
75
75
  ```kotlin
76
76
  @Dao
77
- interface FlightDao {
77
+ interface OrderDao {
78
78
 
79
- @Query("SELECT * FROM flights WHERE origin_code = :origin AND destination_code = :destination ORDER BY departure_time ASC")
80
- fun getFlights(origin: String, destination: String): Flow<List<FlightEntity>>
79
+ @Query("SELECT * FROM orders WHERE store_code = :store AND region_code = :region ORDER BY placed_at ASC")
80
+ fun getOrders(store: String, region: String): Flow<List<OrderEntity>>
81
81
 
82
- @Query("SELECT * FROM flights WHERE id = :id")
83
- fun getFlightById(id: String): Flow<FlightEntity?>
82
+ @Query("SELECT * FROM orders WHERE id = :id")
83
+ fun getOrderById(id: String): Flow<OrderEntity?>
84
84
 
85
- @Query("SELECT * FROM flights WHERE id = :id")
86
- suspend fun getFlightByIdOnce(id: String): FlightEntity?
85
+ @Query("SELECT * FROM orders WHERE id = :id")
86
+ suspend fun getOrderByIdOnce(id: String): OrderEntity?
87
87
 
88
88
  @Insert(onConflict = OnConflictStrategy.REPLACE)
89
- suspend fun insertFlight(flight: FlightEntity)
89
+ suspend fun insertOrder(order: OrderEntity)
90
90
 
91
91
  @Insert(onConflict = OnConflictStrategy.REPLACE)
92
- suspend fun insertFlights(flights: List<FlightEntity>)
92
+ suspend fun insertOrders(orders: List<OrderEntity>)
93
93
 
94
94
  @Upsert
95
- suspend fun upsertFlights(flights: List<FlightEntity>)
95
+ suspend fun upsertOrders(orders: List<OrderEntity>)
96
96
 
97
97
  @Update
98
- suspend fun updateFlight(flight: FlightEntity)
98
+ suspend fun updateOrder(order: OrderEntity)
99
99
 
100
100
  @Delete
101
- suspend fun deleteFlight(flight: FlightEntity)
101
+ suspend fun deleteOrder(order: OrderEntity)
102
102
 
103
- @Query("DELETE FROM flights WHERE id = :id")
104
- suspend fun deleteFlightById(id: String)
103
+ @Query("DELETE FROM orders WHERE id = :id")
104
+ suspend fun deleteOrderById(id: String)
105
105
 
106
- @Query("DELETE FROM flights WHERE updated_at < :threshold")
107
- suspend fun deleteStaleFlights(threshold: Long)
106
+ @Query("DELETE FROM orders WHERE updated_at < :threshold")
107
+ suspend fun deleteStaleOrders(threshold: Long)
108
108
 
109
- @Query("SELECT COUNT(*) FROM flights")
110
- fun getFlightCount(): Flow<Int>
109
+ @Query("SELECT COUNT(*) FROM orders")
110
+ fun getOrderCount(): Flow<Int>
111
111
 
112
112
  @Transaction
113
- suspend fun replaceAllFlights(flights: List<FlightEntity>) {
114
- deleteAllFlights()
115
- insertFlights(flights)
113
+ suspend fun replaceAllOrders(orders: List<OrderEntity>) {
114
+ deleteAllOrders()
115
+ insertOrders(orders)
116
116
  }
117
117
 
118
- @Query("DELETE FROM flights")
119
- suspend fun deleteAllFlights()
118
+ @Query("DELETE FROM orders")
119
+ suspend fun deleteAllOrders()
120
120
  }
121
121
  ```
122
122
 
@@ -133,9 +133,9 @@ interface FlightDao {
133
133
  ```kotlin
134
134
  @Database(
135
135
  entities = [
136
- FlightEntity::class,
137
- BookingEntity::class,
138
- BookingPassengerEntity::class,
136
+ OrderEntity::class,
137
+ ShipmentEntity::class,
138
+ ShipmentPackageEntity::class,
139
139
  ],
140
140
  version = 2,
141
141
  autoMigrations = [
@@ -145,8 +145,8 @@ interface FlightDao {
145
145
  )
146
146
  @TypeConverters(Converters::class)
147
147
  abstract class AppDatabase : RoomDatabase() {
148
- abstract fun flightDao(): FlightDao
149
- abstract fun bookingDao(): BookingDao
148
+ abstract fun orderDao(): OrderDao
149
+ abstract fun shipmentDao(): ShipmentDao
150
150
  }
151
151
  ```
152
152
 
@@ -166,28 +166,28 @@ table changes.
166
166
 
167
167
  ```kotlin
168
168
  // DAO returns Flow
169
- @Query("SELECT * FROM flights WHERE origin_code = :origin")
170
- fun getFlightsByOrigin(origin: String): Flow<List<FlightEntity>>
169
+ @Query("SELECT * FROM orders WHERE store_code = :store")
170
+ fun getOrdersByStore(store: String): Flow<List<OrderEntity>>
171
171
 
172
172
  // Repository maps to domain models
173
- class FlightRepositoryImpl @Inject constructor(
174
- private val dao: FlightDao,
175
- private val mapper: FlightMapper,
176
- ) : FlightRepository {
173
+ class OrderRepositoryImpl @Inject constructor(
174
+ private val dao: OrderDao,
175
+ private val mapper: OrderMapper,
176
+ ) : OrderRepository {
177
177
 
178
- override fun getFlights(origin: String): Flow<List<Flight>> =
179
- dao.getFlightsByOrigin(origin)
178
+ override fun getOrders(store: String): Flow<List<Order>> =
179
+ dao.getOrdersByStore(store)
180
180
  .map { entities -> entities.map(mapper::toDomain) }
181
181
  .flowOn(Dispatchers.IO)
182
182
  }
183
183
 
184
184
  // ViewModel collects in viewModelScope
185
185
  @HiltViewModel
186
- class FlightListViewModel @Inject constructor(
187
- private val repository: FlightRepository,
186
+ class OrderListViewModel @Inject constructor(
187
+ private val repository: OrderRepository,
188
188
  ) : ViewModel() {
189
189
 
190
- val flights: StateFlow<List<Flight>> = repository.getFlights("IST")
190
+ val orders: StateFlow<List<Order>> = repository.getOrders("LDN")
191
191
  .stateIn(
192
192
  scope = viewModelScope,
193
193
  started = SharingStarted.WhileSubscribed(5_000),
@@ -197,11 +197,11 @@ class FlightListViewModel @Inject constructor(
197
197
 
198
198
  // Compose collects as state
199
199
  @Composable
200
- fun FlightListScreen(viewModel: FlightListViewModel = hiltViewModel()) {
201
- val flights by viewModel.flights.collectAsStateWithLifecycle()
200
+ fun OrderListScreen(viewModel: OrderListViewModel = hiltViewModel()) {
201
+ val orders by viewModel.orders.collectAsStateWithLifecycle()
202
202
  LazyColumn {
203
- items(flights, key = { it.id }) { flight ->
204
- FlightCard(flight = flight)
203
+ items(orders, key = { it.id }) { order ->
204
+ OrderCard(order = order)
205
205
  }
206
206
  }
207
207
  }
@@ -231,10 +231,10 @@ class Converters {
231
231
  fun toInstant(value: Long?): Instant? = value?.let { Instant.fromEpochMilliseconds(it) }
232
232
 
233
233
  @TypeConverter
234
- fun fromFlightStatus(value: FlightStatus): String = value.name
234
+ fun fromOrderStatus(value: OrderStatus): String = value.name
235
235
 
236
236
  @TypeConverter
237
- fun toFlightStatus(value: String): FlightStatus = FlightStatus.valueOf(value)
237
+ fun toOrderStatus(value: String): OrderStatus = OrderStatus.valueOf(value)
238
238
  }
239
239
  ```
240
240
 
@@ -259,8 +259,8 @@ data class AddressEntity(
259
259
  val country: String,
260
260
  )
261
261
 
262
- @Entity(tableName = "passengers")
263
- data class PassengerEntity(
262
+ @Entity(tableName = "customers")
263
+ data class CustomerEntity(
264
264
  @PrimaryKey val id: String,
265
265
  val name: String,
266
266
  @Embedded(prefix = "address_")
@@ -272,20 +272,20 @@ data class PassengerEntity(
272
272
  ### @Relation (One-to-Many)
273
273
 
274
274
  ```kotlin
275
- data class BookingWithPassengers(
276
- @Embedded val booking: BookingEntity,
275
+ data class ShipmentWithPackages(
276
+ @Embedded val shipment: ShipmentEntity,
277
277
  @Relation(
278
278
  parentColumn = "id",
279
- entityColumn = "booking_id",
279
+ entityColumn = "shipment_id",
280
280
  )
281
- val passengers: List<BookingPassengerEntity>,
281
+ val packages: List<ShipmentPackageEntity>,
282
282
  )
283
283
 
284
284
  @Dao
285
- interface BookingDao {
285
+ interface ShipmentDao {
286
286
  @Transaction
287
- @Query("SELECT * FROM bookings WHERE id = :bookingId")
288
- fun getBookingWithPassengers(bookingId: String): Flow<BookingWithPassengers?>
287
+ @Query("SELECT * FROM shipments WHERE id = :shipmentId")
288
+ fun getShipmentWithPackages(shipmentId: String): Flow<ShipmentWithPackages?>
289
289
  }
290
290
  ```
291
291
 
@@ -293,22 +293,22 @@ interface BookingDao {
293
293
 
294
294
  ```kotlin
295
295
  @Entity(
296
- tableName = "flight_tags",
297
- primaryKeys = ["flight_id", "tag_id"],
296
+ tableName = "order_tags",
297
+ primaryKeys = ["order_id", "tag_id"],
298
298
  )
299
- data class FlightTagCrossRef(
300
- @ColumnInfo(name = "flight_id") val flightId: String,
299
+ data class OrderTagCrossRef(
300
+ @ColumnInfo(name = "order_id") val orderId: String,
301
301
  @ColumnInfo(name = "tag_id") val tagId: String,
302
302
  )
303
303
 
304
- data class FlightWithTags(
305
- @Embedded val flight: FlightEntity,
304
+ data class OrderWithTags(
305
+ @Embedded val order: OrderEntity,
306
306
  @Relation(
307
307
  parentColumn = "id",
308
308
  entityColumn = "id",
309
309
  associateBy = Junction(
310
- value = FlightTagCrossRef::class,
311
- parentColumn = "flight_id",
310
+ value = OrderTagCrossRef::class,
311
+ parentColumn = "order_id",
312
312
  entityColumn = "tag_id",
313
313
  ),
314
314
  )
@@ -326,7 +326,7 @@ For simple schema changes (add column, add table, add index):
326
326
 
327
327
  ```kotlin
328
328
  @Database(
329
- entities = [FlightEntity::class],
329
+ entities = [OrderEntity::class],
330
330
  version = 3,
331
331
  autoMigrations = [
332
332
  AutoMigration(from = 1, to = 2),
@@ -336,7 +336,7 @@ For simple schema changes (add column, add table, add index):
336
336
  abstract class AppDatabase : RoomDatabase()
337
337
 
338
338
  // Spec needed for column/table renames or deletes
339
- @RenameColumn(tableName = "flights", fromColumnName = "price", toColumnName = "price_amount")
339
+ @RenameColumn(tableName = "orders", fromColumnName = "price", toColumnName = "price_amount")
340
340
  class Migration2To3 : AutoMigrationSpec
341
341
  ```
342
342
 
@@ -348,20 +348,20 @@ For complex changes (data transformation, merging tables):
348
348
  val MIGRATION_3_4 = object : Migration(3, 4) {
349
349
  override fun migrate(db: SupportSQLiteDatabase) {
350
350
  db.execSQL("""
351
- CREATE TABLE IF NOT EXISTS bookings_new (
351
+ CREATE TABLE IF NOT EXISTS shipments_new (
352
352
  id TEXT NOT NULL PRIMARY KEY,
353
- flight_id TEXT NOT NULL,
353
+ order_id TEXT NOT NULL,
354
354
  status TEXT NOT NULL DEFAULT 'PENDING',
355
355
  created_at INTEGER NOT NULL DEFAULT 0,
356
- FOREIGN KEY (flight_id) REFERENCES flights(id) ON DELETE CASCADE
356
+ FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
357
357
  )
358
358
  """)
359
359
  db.execSQL("""
360
- INSERT INTO bookings_new (id, flight_id, status, created_at)
361
- SELECT id, flight_id, status, 0 FROM bookings
360
+ INSERT INTO shipments_new (id, order_id, status, created_at)
361
+ SELECT id, order_id, status, 0 FROM shipments
362
362
  """)
363
- db.execSQL("DROP TABLE bookings")
364
- db.execSQL("ALTER TABLE bookings_new RENAME TO bookings")
363
+ db.execSQL("DROP TABLE shipments")
364
+ db.execSQL("ALTER TABLE shipments_new RENAME TO shipments")
365
365
  }
366
366
  }
367
367
 
@@ -400,22 +400,22 @@ object DatabaseModule {
400
400
  .build()
401
401
 
402
402
  @Provides
403
- fun provideFlightDao(database: AppDatabase): FlightDao =
404
- database.flightDao()
403
+ fun provideOrderDao(database: AppDatabase): OrderDao =
404
+ database.orderDao()
405
405
 
406
406
  @Provides
407
- fun provideBookingDao(database: AppDatabase): BookingDao =
408
- database.bookingDao()
407
+ fun provideShipmentDao(database: AppDatabase): ShipmentDao =
408
+ database.shipmentDao()
409
409
  }
410
410
  ```
411
411
 
412
412
  ## Testing with In-Memory Database
413
413
 
414
414
  ```kotlin
415
- class FlightDaoTest {
415
+ class OrderDaoTest {
416
416
 
417
417
  private lateinit var database: AppDatabase
418
- private lateinit var dao: FlightDao
418
+ private lateinit var dao: OrderDao
419
419
 
420
420
  @Before
421
421
  fun setup() {
@@ -426,7 +426,7 @@ class FlightDaoTest {
426
426
  .allowMainThreadQueries() // OK for tests only
427
427
  .build()
428
428
 
429
- dao = database.flightDao()
429
+ dao = database.orderDao()
430
430
  }
431
431
 
432
432
  @After
@@ -435,33 +435,33 @@ class FlightDaoTest {
435
435
  }
436
436
 
437
437
  @Test
438
- fun insertAndQuery_returnsCorrectFlight() = runTest {
439
- val flight = FlightEntity(
440
- id = "TK1",
441
- originCode = "IST",
442
- originName = "Istanbul",
443
- destinationCode = "JFK",
444
- destinationName = "New York",
445
- departureTime = "2025-01-15T10:00:00Z",
446
- arrivalTime = "2025-01-15T18:00:00Z",
438
+ fun insertAndQuery_returnsCorrectOrder() = runTest {
439
+ val order = OrderEntity(
440
+ id = "ORD-101",
441
+ storeCode = "LDN",
442
+ storeName = "London",
443
+ regionCode = "NYC",
444
+ regionName = "New York",
445
+ placedAt = "2025-01-15T10:00:00Z",
446
+ deliveredAt = "2025-01-15T18:00:00Z",
447
447
  priceAmount = 799.0,
448
448
  priceCurrency = "USD",
449
- status = "SCHEDULED",
449
+ status = "PLACED",
450
450
  )
451
451
 
452
- dao.insertFlight(flight)
452
+ dao.insertOrder(order)
453
453
 
454
- val result = dao.getFlightByIdOnce("TK1")
454
+ val result = dao.getOrderByIdOnce("ORD-101")
455
455
  assertThat(result).isNotNull()
456
- assertThat(result?.originCode).isEqualTo("IST")
456
+ assertThat(result?.storeCode).isEqualTo("LDN")
457
457
  }
458
458
 
459
459
  @Test
460
460
  fun flowQuery_emitsUpdates() = runTest {
461
- dao.getFlights("IST", "JFK").test {
461
+ dao.getOrders("LDN", "NYC").test {
462
462
  assertThat(awaitItem()).isEmpty()
463
463
 
464
- dao.insertFlight(testFlight)
464
+ dao.insertOrder(testOrder)
465
465
 
466
466
  val updated = awaitItem()
467
467
  assertThat(updated).hasSize(1)
@@ -471,13 +471,13 @@ class FlightDaoTest {
471
471
  }
472
472
 
473
473
  @Test
474
- fun upsert_updatesExistingFlight() = runTest {
475
- dao.insertFlight(testFlight)
476
- val updated = testFlight.copy(status = "DELAYED")
477
- dao.upsertFlights(listOf(updated))
474
+ fun upsert_updatesExistingOrder() = runTest {
475
+ dao.insertOrder(testOrder)
476
+ val updated = testOrder.copy(status = "SHIPPED")
477
+ dao.upsertOrders(listOf(updated))
478
478
 
479
- val result = dao.getFlightByIdOnce(testFlight.id)
480
- assertThat(result?.status).isEqualTo("DELAYED")
479
+ val result = dao.getOrderByIdOnce(testOrder.id)
480
+ assertThat(result?.status).isEqualTo("SHIPPED")
481
481
  }
482
482
  }
483
483
  ```
@@ -498,13 +498,13 @@ class MigrationTest {
498
498
  fun migrate3To4() {
499
499
  // Create database at version 3
500
500
  helper.createDatabase("test-db", 3).apply {
501
- execSQL("INSERT INTO bookings (id, flight_id, status) VALUES ('B1', 'F1', 'CONFIRMED')")
501
+ execSQL("INSERT INTO shipments (id, order_id, status) VALUES ('S1', 'O1', 'CONFIRMED')")
502
502
  close()
503
503
  }
504
504
 
505
505
  // Run migration and validate
506
506
  val db = helper.runMigrationsAndValidate("test-db", 4, true, MIGRATION_3_4)
507
- val cursor = db.query("SELECT * FROM bookings WHERE id = 'B1'")
507
+ val cursor = db.query("SELECT * FROM shipments WHERE id = 'S1'")
508
508
  assertThat(cursor.moveToFirst()).isTrue()
509
509
  assertThat(cursor.getColumnIndex("created_at")).isAtLeast(0)
510
510
  }
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: search-first
3
- version: 1.0.0
4
3
  description: |
5
4
  Research-before-coding workflow. Before writing a custom implementation,
6
5
  check what already exists (repo utilities, installed libraries, packages,
7
6
  internal components) and decide adopt / extend / compose / build on evidence.
8
7
  Use at the start of any non-trivial feature or utility, especially when you
9
8
  are about to reach for a new dependency or hand-roll something common.
9
+ metadata:
10
+ version: 1.0.0
10
11
  ---
11
12
 
12
13
  # Search-First
@@ -1,9 +1,10 @@
1
1
  ---
2
2
  name: security-review
3
3
  description: "Run a defensive, static security review of a diff or a repo: build a run-scoped threat model, find vulnerabilities joined to OWASP + CWE with CVSS scoring and evidence, and emit reviewer-shaped findings with before/after fixes. Use when reviewing code for security, auditing a dependency set, preparing a release for a security sign-off, or when a diff touches auth, crypto, input handling, networking or secrets."
4
- risk: low
5
- source: multi-agent-pipeline
6
- date_added: "2026-09-21"
4
+ metadata:
5
+ risk: low
6
+ source: multi-agent-pipeline
7
+ date_added: "2026-09-21"
7
8
  ---
8
9
 
9
10
  # Security Review (defensive, static)
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: shareplay-activities
3
3
  description: "Build shared real-time experiences using GroupActivities and SharePlay. Use when implementing shared media playback, collaborative app features, synchronized game state, or any FaceTime, Messages, AirDrop, or nearby visionOS group activity on iOS, macOS, tvOS, or visionOS."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
-
6
7
  # GroupActivities / SharePlay
7
-
8
8
  Build shared real-time experiences using the GroupActivities framework. SharePlay
9
9
  connects people over FaceTime, Messages, AirDrop, and nearby visionOS sharing,
10
10
  synchronizing media playback, app state, or custom data. Targets Swift 6.3 / iOS 26+.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: signal-community
3
- description: Check whether other people hit the same problem, via Stack Overflow and Hacker News (keyless) plus opt-in Reddit and X. Use when a bug report or complaint needs corroboration beyond one user. Advisory only: it belongs in a risks section, never in a business rule.
3
+ description: "Check whether other people hit the same problem, via Stack Overflow and Hacker News (keyless) plus opt-in Reddit and X. Use when a bug report or complaint needs corroboration beyond one user. Advisory only: it belongs in a risks section, never in a business rule."
4
4
  ---
5
5
 
6
6
  # Community signal
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: skill-creator
3
- version: 1.0.0
4
3
  description: "Author and refine skills for a plugin/toolkit efficiently. Use when creating a new skill, trimming or splitting an existing one, writing a skill's description, or choosing skill vs command vs agent vs CLAUDE.md. Encodes the house rules - lean SKILL.md as an index, progressive disclosure into bundled files, the reference (descriptive) vs workflow (imperative) split, no-prefix naming, and growing a skill from observed failures. Bundles a template, a pre-ship checklist, and good/bad description examples."
5
4
  user-invocable: true
6
5
  argument-hint: [new | trim | description]
7
6
  allowed-tools: Read, Write, Edit, Glob
7
+ metadata:
8
+ version: 1.0.0
8
9
  ---
9
10
 
10
11
  # skill-creator - how to write skills here
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: speech-recognition
3
3
  description: "Transcribe speech to text using Apple's Speech framework. Use when implementing live microphone transcription with AVAudioEngine, recognizing recorded audio files, handling speech and microphone authorization, choosing on-device vs server-backed SFSpeechRecognizer behavior, or adopting SpeechAnalyzer, SpeechTranscriber, DictationTranscriber, AssetInventory, and async result streams on iOS 26+."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
-
6
7
  # Speech Recognition
7
8
 
8
9
  Transcribe live and pre-recorded audio to text using Apple's Speech framework.
@@ -2,6 +2,8 @@
2
2
  name: spm-build-analysis
3
3
  description: Analyze Swift Package Manager dependencies, package plugins, module variants, and CI-oriented build overhead that slow Xcode builds. Use when a developer suspects packages, plugins, or dependency graph shape are hurting clean or incremental build performance, mentions SPM slowness, package resolution time, build plugin overhead, duplicate module builds from configuration drift, circular dependencies between modules, oversized modules needing splitting, or modularization best practices.
4
4
  user-invocable: false
5
+ metadata:
6
+ source: "AvdLee/Xcode-Build-Optimization-Agent-Skill (MIT)"
5
7
  ---
6
8
 
7
9
  # SPM Build Analysis
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: storekit
3
3
  description: "Implement, review, or improve in-app purchases and subscriptions using StoreKit 2. Use when building paywalls with SubscriptionStoreView or ProductView, processing transactions with Product and Transaction APIs, verifying entitlements, handling purchase flows (consumable, non-consumable, auto-renewable), implementing offer codes or promotional/win-back/introductory offers, managing subscription status and renewal state, setting up StoreKit testing with configuration files, or integrating Family Sharing, Ask to Buy, refund handling, and billing retry logic."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
7
 
6
8
  # StoreKit 2 In-App Purchases and Subscriptions
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: swift-api-design-guidelines
3
3
  description: "Swift API Design Guidelines: clarity at the point of use, naming for readability over brevity, argument labels and prepositional phrases, method vs property choice, mutating/nonmutating pairs, protocol naming, generic parameter names, and documentation comment conventions. Use when naming a type, method or parameter, deciding between a method and a property, writing doc comments, or reviewing an API surface for consistency with the standard library."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
7
 
6
8
  # Swift API Design Guidelines
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: swift-architecture
3
3
  description: "Select, implement, or migrate between app architecture patterns for Apple platform apps. Use when choosing between MV (Model-View with @Observable), MVVM, MVI, TCA (The Composable Architecture), Clean Architecture, VIPER, or Coordinator patterns; when evaluating architecture fit for a feature's complexity; when migrating from one pattern to another; or when reviewing whether an app's current architecture is appropriate. Scoped to Apple-platform patterns using Swift 6.3, SwiftUI, and UIKit."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
-
6
7
  # Swift Architecture
7
8
 
8
9
  Select and implement the right architecture pattern for Apple platform apps built with Swift 6.3 and SwiftUI or UIKit.
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: swift-charts
3
3
  description: "Implement, review, or improve data visualizations using Swift Charts. Use when building bar, line, area, point, pie, donut, or iOS 26 3D charts; when adding chart selection, scrolling, annotations, axes, scales, legends, or foregroundStyle grouping; when plotting functions with BarPlot, LinePlot, AreaPlot, PointPlot, Chart3D, or SurfacePlot; or when creating heat maps, Gantt charts, grouped bars, sparklines, threshold lines, or spatial visualizations."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
-
6
7
  # Swift Charts
7
8
 
8
9
  Build data visualizations with Swift Charts targeting iOS 26+. Compose marks
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: swift-codable
3
3
  description: "Implement Swift Codable models for JSON and property-list encoding and decoding with JSONDecoder, JSONEncoder, CodingKeys, and custom init(from:) or encode(to:). Use when parsing API responses, remapping keys, flattening nested JSON, handling date or data decoding strategies, decoding heterogeneous arrays, or integrating Codable with URLSession, SwiftData, or UserDefaults."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
7
 
6
8
  # Swift Codable
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: swift-concurrency
3
- description: "Resolve Swift concurrency compiler errors, adopt approachable concurrency (SE-0466), and write data-race-safe async code. Use when fixing Sendable conformance errors, actor isolation warnings, or strict concurrency diagnostics; when adopting default MainActor isolation, @concurrent, nonisolated(nonsending), or Task.immediate; when designing actor-based architectures, structured concurrency with TaskGroup, or background work offloading; or when migrating from @preconcurrency to full Swift 6 strict concurrency."
3
+ description: "Swift concurrency language reference and migration: Sendable and actor-isolation diagnostics, approachable concurrency (SE-0466 default MainActor, @concurrent, nonisolated(nonsending), Task.immediate), actors, TaskGroup and the Swift 6 strict-mode migration. Use when fixing strict-concurrency errors or migrating; for the smallest fix to one diagnostic use swift-concurrency-expert, for a file-by-file review swift-concurrency-pro."
4
+ metadata:
5
+ source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
4
6
  ---
5
7
 
6
8
  # Swift Concurrency
@@ -1,9 +1,10 @@
1
1
  ---
2
2
  name: swift-concurrency-expert
3
- description: "Review and fix Swift concurrency issues such as actor isolation and Sendable violations. Use when a Swift concurrency problem needs diagnosing, such as actor isolation or a Sendable violation."
4
- risk: safe
5
- source: "Dimillian/Skills (MIT)"
6
- date_added: "2026-03-25"
3
+ description: "Review and fix Swift concurrency issues such as actor isolation and Sendable violations. Use when a Swift concurrency problem needs diagnosing, such as actor isolation or a Sendable violation; for Swift 6 migration use swift-concurrency, for a file-by-file review swift-concurrency-pro."
4
+ metadata:
5
+ risk: safe
6
+ source: "Dimillian/Skills (MIT)"
7
+ date_added: "2026-03-25"
7
8
  ---
8
9
 
9
10
  # Swift Concurrency Expert