buildanything 1.7.1 → 2.0.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 (633) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +9 -3
  3. package/CHANGELOG.md +112 -0
  4. package/README.md +2 -2
  5. package/agents/a11y-architect.md +166 -0
  6. package/agents/business-model.md +80 -29
  7. package/agents/code-architect.md +75 -0
  8. package/agents/code-reviewer.md +255 -0
  9. package/agents/code-simplifier.md +64 -0
  10. package/agents/design-brand-guardian.md +293 -53
  11. package/agents/design-critic.md +139 -0
  12. package/agents/design-inclusive-visuals-specialist.md +6 -19
  13. package/agents/design-ui-designer.md +335 -56
  14. package/agents/design-ux-architect.md +403 -55
  15. package/agents/design-ux-researcher.md +264 -49
  16. package/agents/engineering-ai-engineer.md +26 -36
  17. package/agents/engineering-backend-architect.md +185 -36
  18. package/agents/engineering-data-engineer.md +225 -43
  19. package/agents/engineering-devops-automator.md +227 -74
  20. package/agents/engineering-frontend-developer.md +210 -34
  21. package/agents/engineering-mobile-app-builder.md +6 -1
  22. package/agents/engineering-rapid-prototyper.md +30 -9
  23. package/agents/engineering-security-engineer.md +263 -61
  24. package/agents/engineering-senior-developer.md +128 -19
  25. package/agents/engineering-sre.md +84 -0
  26. package/agents/engineering-technical-writer.md +285 -41
  27. package/agents/feature-intel.md +110 -0
  28. package/agents/ios-app-review-guardian.md +66 -0
  29. package/agents/ios-foundation-models-specialist.md +64 -0
  30. package/agents/ios-storekit-specialist.md +59 -0
  31. package/agents/ios-swift-architect.md +129 -0
  32. package/agents/ios-swift-search.md +137 -0
  33. package/agents/ios-swift-ui-design.md +136 -0
  34. package/agents/marketing-app-store-optimizer.md +246 -64
  35. package/agents/planner.md +216 -0
  36. package/agents/pr-test-analyzer.md +63 -0
  37. package/agents/product-feedback-synthesizer.md +8 -2
  38. package/agents/refactor-cleaner.md +102 -0
  39. package/agents/security-reviewer.md +128 -0
  40. package/agents/silent-failure-hunter.md +54 -0
  41. package/agents/swift-build-resolver.md +119 -0
  42. package/agents/swift-reviewer.md +112 -0
  43. package/agents/tech-feasibility.md +21 -1
  44. package/agents/testing-api-tester.md +236 -59
  45. package/agents/testing-evidence-collector.md +26 -1
  46. package/agents/testing-performance-benchmarker.md +21 -1
  47. package/agents/testing-reality-checker.md +6 -1
  48. package/agents/visual-research.md +116 -0
  49. package/bin/adapters/cycle-counter-tool.ts +155 -0
  50. package/bin/adapters/scribe-tool.ts +71 -0
  51. package/bin/adapters/state-save-tool.ts +130 -0
  52. package/bin/adapters/write-lease-tool.ts +127 -0
  53. package/bin/buildanything-runtime.js +15 -0
  54. package/bin/buildanything-runtime.ts +328 -0
  55. package/bin/setup.js +83 -8
  56. package/commands/add-feature.md +2 -0
  57. package/commands/build.md +752 -332
  58. package/commands/fix.md +65 -0
  59. package/commands/self-check.md +121 -0
  60. package/commands/setup.md +114 -0
  61. package/commands/ux-review.md +63 -0
  62. package/commands/verify.md +69 -0
  63. package/docs/migration/agents.yaml +729 -0
  64. package/docs/migration/phase-graph.yaml +1088 -0
  65. package/docs/migration/sdk-host-compat.md +18 -0
  66. package/hooks/compile-writer-owner-cache.ts +171 -0
  67. package/hooks/hooks.json +36 -0
  68. package/hooks/pre-tool-use +19 -0
  69. package/hooks/pre-tool-use.ts +776 -0
  70. package/hooks/record-mode-transitions.ts +178 -0
  71. package/hooks/session-start +89 -2
  72. package/hooks/subagent-start +17 -0
  73. package/hooks/subagent-start.ts +471 -0
  74. package/hooks/subagent-stop +17 -0
  75. package/hooks/subagent-stop.ts +153 -0
  76. package/package.json +28 -5
  77. package/protocols/architecture-schema.md +171 -0
  78. package/protocols/build-fix.md +52 -0
  79. package/protocols/cleanup.md +54 -0
  80. package/protocols/decision-log.md +131 -0
  81. package/protocols/eval-harness.md +61 -0
  82. package/protocols/fake-data-detector.md +64 -0
  83. package/protocols/ios-context.md +234 -0
  84. package/protocols/ios-frameworks-map.md +323 -0
  85. package/protocols/ios-phase-branches.md +337 -0
  86. package/protocols/ios-preflight.md +27 -0
  87. package/protocols/launch-readiness.md +258 -0
  88. package/protocols/metric-loop.md +153 -0
  89. package/protocols/smoke-test.md +118 -0
  90. package/protocols/state-schema.json +388 -0
  91. package/protocols/state-schema.md +172 -0
  92. package/protocols/verify.md +127 -0
  93. package/protocols/visual-dna.md +185 -0
  94. package/protocols/web-phase-branches.md +351 -0
  95. package/skills/ios/_VENDORED.md +62 -0
  96. package/skills/ios/activitykit/LICENSE +131 -0
  97. package/skills/ios/activitykit/SKILL.md +505 -0
  98. package/skills/ios/activitykit/references/activitykit-patterns.md +868 -0
  99. package/skills/ios/app-intents/LICENSE +131 -0
  100. package/skills/ios/app-intents/SKILL.md +494 -0
  101. package/skills/ios/app-intents/references/appintents-advanced.md +1076 -0
  102. package/skills/ios/app-store-connect-metadata/SKILL.md +148 -0
  103. package/skills/ios/apple-on-device-ai/LICENSE +131 -0
  104. package/skills/ios/apple-on-device-ai/SKILL.md +505 -0
  105. package/skills/ios/apple-on-device-ai/references/coreml-conversion.md +425 -0
  106. package/skills/ios/apple-on-device-ai/references/coreml-optimization.md +344 -0
  107. package/skills/ios/apple-on-device-ai/references/foundation-models.md +508 -0
  108. package/skills/ios/apple-on-device-ai/references/mlx-swift.md +285 -0
  109. package/skills/ios/asc-privacy-manifest/SKILL.md +350 -0
  110. package/skills/ios/hig-components-content/SKILL.md +86 -0
  111. package/skills/ios/hig-components-content/references/activity-views.md +79 -0
  112. package/skills/ios/hig-components-content/references/charts.md +180 -0
  113. package/skills/ios/hig-components-content/references/collections.md +48 -0
  114. package/skills/ios/hig-components-content/references/color-wells.md +42 -0
  115. package/skills/ios/hig-components-content/references/image-views.md +82 -0
  116. package/skills/ios/hig-components-content/references/image-wells.md +34 -0
  117. package/skills/ios/hig-components-content/references/lockups.md +78 -0
  118. package/skills/ios/hig-components-content/references/web-views.md +36 -0
  119. package/skills/ios/hig-components-controls/SKILL.md +88 -0
  120. package/skills/ios/hig-components-controls/references/combo-boxes.md +40 -0
  121. package/skills/ios/hig-components-controls/references/controls.md +112 -0
  122. package/skills/ios/hig-components-controls/references/gauges.md +74 -0
  123. package/skills/ios/hig-components-controls/references/labels.md +92 -0
  124. package/skills/ios/hig-components-controls/references/pickers.md +128 -0
  125. package/skills/ios/hig-components-controls/references/rating-indicators.md +38 -0
  126. package/skills/ios/hig-components-controls/references/segmented-controls.md +94 -0
  127. package/skills/ios/hig-components-controls/references/sliders.md +92 -0
  128. package/skills/ios/hig-components-controls/references/steppers.md +40 -0
  129. package/skills/ios/hig-components-controls/references/text-fields.md +88 -0
  130. package/skills/ios/hig-components-controls/references/text-views.md +56 -0
  131. package/skills/ios/hig-components-controls/references/toggles.md +127 -0
  132. package/skills/ios/hig-components-controls/references/token-fields.md +48 -0
  133. package/skills/ios/hig-components-controls/references/virtual-keyboards.md +156 -0
  134. package/skills/ios/hig-components-dialogs/SKILL.md +76 -0
  135. package/skills/ios/hig-components-dialogs/references/action-sheets.md +74 -0
  136. package/skills/ios/hig-components-dialogs/references/alerts.md +158 -0
  137. package/skills/ios/hig-components-dialogs/references/digit-entry-views.md +32 -0
  138. package/skills/ios/hig-components-dialogs/references/popovers.md +81 -0
  139. package/skills/ios/hig-components-dialogs/references/sheets.md +157 -0
  140. package/skills/ios/hig-components-layout/SKILL.md +99 -0
  141. package/skills/ios/hig-components-layout/references/boxes.md +48 -0
  142. package/skills/ios/hig-components-layout/references/column-views.md +44 -0
  143. package/skills/ios/hig-components-layout/references/lists-and-tables.md +99 -0
  144. package/skills/ios/hig-components-layout/references/ornaments.md +56 -0
  145. package/skills/ios/hig-components-layout/references/outline-views.md +64 -0
  146. package/skills/ios/hig-components-layout/references/panels.md +75 -0
  147. package/skills/ios/hig-components-layout/references/scroll-views.md +123 -0
  148. package/skills/ios/hig-components-layout/references/sidebars.md +109 -0
  149. package/skills/ios/hig-components-layout/references/split-views.md +110 -0
  150. package/skills/ios/hig-components-layout/references/tab-bars.md +173 -0
  151. package/skills/ios/hig-components-layout/references/tab-views.md +68 -0
  152. package/skills/ios/hig-components-layout/references/windows.md +188 -0
  153. package/skills/ios/hig-components-menus/SKILL.md +81 -0
  154. package/skills/ios/hig-components-menus/references/action-button.md +61 -0
  155. package/skills/ios/hig-components-menus/references/buttons.md +261 -0
  156. package/skills/ios/hig-components-menus/references/context-menus.md +105 -0
  157. package/skills/ios/hig-components-menus/references/disclosure-controls.md +84 -0
  158. package/skills/ios/hig-components-menus/references/dock-menus.md +40 -0
  159. package/skills/ios/hig-components-menus/references/edit-menus.md +88 -0
  160. package/skills/ios/hig-components-menus/references/menus.md +171 -0
  161. package/skills/ios/hig-components-menus/references/pop-up-buttons.md +70 -0
  162. package/skills/ios/hig-components-menus/references/pull-down-buttons.md +77 -0
  163. package/skills/ios/hig-components-menus/references/the-menu-bar.md +303 -0
  164. package/skills/ios/hig-components-menus/references/toolbars.md +256 -0
  165. package/skills/ios/hig-components-search/SKILL.md +68 -0
  166. package/skills/ios/hig-components-search/references/page-controls.md +120 -0
  167. package/skills/ios/hig-components-search/references/path-controls.md +40 -0
  168. package/skills/ios/hig-components-search/references/search-fields.md +189 -0
  169. package/skills/ios/hig-components-status/SKILL.md +80 -0
  170. package/skills/ios/hig-components-status/references/activity-rings.md +105 -0
  171. package/skills/ios/hig-components-status/references/progress-indicators.md +116 -0
  172. package/skills/ios/hig-components-status/references/status-bars.md +38 -0
  173. package/skills/ios/hig-components-system/SKILL.md +88 -0
  174. package/skills/ios/hig-components-system/references/app-clips.md +387 -0
  175. package/skills/ios/hig-components-system/references/app-shortcuts.md +114 -0
  176. package/skills/ios/hig-components-system/references/complications.md +425 -0
  177. package/skills/ios/hig-components-system/references/home-screen-quick-actions.md +42 -0
  178. package/skills/ios/hig-components-system/references/live-activities.md +442 -0
  179. package/skills/ios/hig-components-system/references/notifications.md +153 -0
  180. package/skills/ios/hig-components-system/references/top-shelf.md +135 -0
  181. package/skills/ios/hig-components-system/references/watch-faces.md +40 -0
  182. package/skills/ios/hig-components-system/references/widgets.md +517 -0
  183. package/skills/ios/hig-foundations/SKILL.md +98 -0
  184. package/skills/ios/hig-foundations/references/accessibility.md +291 -0
  185. package/skills/ios/hig-foundations/references/app-icons.md +210 -0
  186. package/skills/ios/hig-foundations/references/branding.md +44 -0
  187. package/skills/ios/hig-foundations/references/color.md +274 -0
  188. package/skills/ios/hig-foundations/references/dark-mode.md +116 -0
  189. package/skills/ios/hig-foundations/references/icons.md +263 -0
  190. package/skills/ios/hig-foundations/references/images.md +176 -0
  191. package/skills/ios/hig-foundations/references/immersive-experiences.md +174 -0
  192. package/skills/ios/hig-foundations/references/inclusion.md +189 -0
  193. package/skills/ios/hig-foundations/references/layout.md +425 -0
  194. package/skills/ios/hig-foundations/references/materials.md +238 -0
  195. package/skills/ios/hig-foundations/references/motion.md +103 -0
  196. package/skills/ios/hig-foundations/references/privacy.md +231 -0
  197. package/skills/ios/hig-foundations/references/right-to-left.md +206 -0
  198. package/skills/ios/hig-foundations/references/sf-symbols.md +310 -0
  199. package/skills/ios/hig-foundations/references/spatial-layout.md +142 -0
  200. package/skills/ios/hig-foundations/references/typography.md +1146 -0
  201. package/skills/ios/hig-foundations/references/writing.md +91 -0
  202. package/skills/ios/hig-inputs/SKILL.md +94 -0
  203. package/skills/ios/hig-inputs/references/apple-pencil-and-scribble.md +148 -0
  204. package/skills/ios/hig-inputs/references/camera-control.md +107 -0
  205. package/skills/ios/hig-inputs/references/digital-crown.md +83 -0
  206. package/skills/ios/hig-inputs/references/eyes.md +120 -0
  207. package/skills/ios/hig-inputs/references/focus-and-selection.md +120 -0
  208. package/skills/ios/hig-inputs/references/game-controls.md +156 -0
  209. package/skills/ios/hig-inputs/references/gestures.md +208 -0
  210. package/skills/ios/hig-inputs/references/gyro-and-accelerometer.md +40 -0
  211. package/skills/ios/hig-inputs/references/keyboards.md +234 -0
  212. package/skills/ios/hig-inputs/references/nearby-interactions.md +70 -0
  213. package/skills/ios/hig-inputs/references/pointing-devices.md +237 -0
  214. package/skills/ios/hig-inputs/references/remotes.md +67 -0
  215. package/skills/ios/hig-inputs/references/spatial-interactions.md +70 -0
  216. package/skills/ios/hig-patterns/SKILL.md +104 -0
  217. package/skills/ios/hig-patterns/references/charting-data.md +81 -0
  218. package/skills/ios/hig-patterns/references/collaboration-and-sharing.md +86 -0
  219. package/skills/ios/hig-patterns/references/drag-and-drop.md +134 -0
  220. package/skills/ios/hig-patterns/references/entering-data.md +69 -0
  221. package/skills/ios/hig-patterns/references/feedback.md +67 -0
  222. package/skills/ios/hig-patterns/references/file-management.md +135 -0
  223. package/skills/ios/hig-patterns/references/going-full-screen.md +79 -0
  224. package/skills/ios/hig-patterns/references/launching.md +81 -0
  225. package/skills/ios/hig-patterns/references/live-viewing-apps.md +79 -0
  226. package/skills/ios/hig-patterns/references/loading.md +59 -0
  227. package/skills/ios/hig-patterns/references/managing-accounts.md +107 -0
  228. package/skills/ios/hig-patterns/references/managing-notifications.md +99 -0
  229. package/skills/ios/hig-patterns/references/modality.md +82 -0
  230. package/skills/ios/hig-patterns/references/multitasking.md +131 -0
  231. package/skills/ios/hig-patterns/references/offering-help.md +117 -0
  232. package/skills/ios/hig-patterns/references/onboarding.md +69 -0
  233. package/skills/ios/hig-patterns/references/playing-audio.md +124 -0
  234. package/skills/ios/hig-patterns/references/playing-haptics.md +280 -0
  235. package/skills/ios/hig-patterns/references/playing-video.md +180 -0
  236. package/skills/ios/hig-patterns/references/printing.md +50 -0
  237. package/skills/ios/hig-patterns/references/ratings-and-reviews.md +48 -0
  238. package/skills/ios/hig-patterns/references/searching.md +70 -0
  239. package/skills/ios/hig-patterns/references/settings.md +84 -0
  240. package/skills/ios/hig-patterns/references/undo-and-redo.md +58 -0
  241. package/skills/ios/hig-patterns/references/workouts.md +76 -0
  242. package/skills/ios/hig-platforms/SKILL.md +84 -0
  243. package/skills/ios/hig-platforms/references/designing-for-games.md +159 -0
  244. package/skills/ios/hig-platforms/references/designing-for-ios.md +66 -0
  245. package/skills/ios/hig-platforms/references/designing-for-ipados.md +64 -0
  246. package/skills/ios/hig-platforms/references/designing-for-macos.md +70 -0
  247. package/skills/ios/hig-platforms/references/designing-for-tvos.md +68 -0
  248. package/skills/ios/hig-platforms/references/designing-for-visionos.md +85 -0
  249. package/skills/ios/hig-platforms/references/designing-for-watchos.md +74 -0
  250. package/skills/ios/hig-project-context/SKILL.md +133 -0
  251. package/skills/ios/hig-technologies/SKILL.md +107 -0
  252. package/skills/ios/hig-technologies/references/airplay.md +125 -0
  253. package/skills/ios/hig-technologies/references/always-on.md +62 -0
  254. package/skills/ios/hig-technologies/references/apple-pay.md +441 -0
  255. package/skills/ios/hig-technologies/references/augmented-reality.md +247 -0
  256. package/skills/ios/hig-technologies/references/carekit.md +224 -0
  257. package/skills/ios/hig-technologies/references/carplay.md +119 -0
  258. package/skills/ios/hig-technologies/references/game-center.md +343 -0
  259. package/skills/ios/hig-technologies/references/generative-ai.md +110 -0
  260. package/skills/ios/hig-technologies/references/healthkit.md +120 -0
  261. package/skills/ios/hig-technologies/references/homekit.md +343 -0
  262. package/skills/ios/hig-technologies/references/icloud.md +52 -0
  263. package/skills/ios/hig-technologies/references/id-verifier.md +73 -0
  264. package/skills/ios/hig-technologies/references/imessage-apps-and-stickers.md +105 -0
  265. package/skills/ios/hig-technologies/references/in-app-purchase.md +263 -0
  266. package/skills/ios/hig-technologies/references/live-photos.md +54 -0
  267. package/skills/ios/hig-technologies/references/mac-catalyst.md +216 -0
  268. package/skills/ios/hig-technologies/references/machine-learning.md +394 -0
  269. package/skills/ios/hig-technologies/references/maps.md +221 -0
  270. package/skills/ios/hig-technologies/references/nfc.md +51 -0
  271. package/skills/ios/hig-technologies/references/photo-editing.md +40 -0
  272. package/skills/ios/hig-technologies/references/researchkit.md +134 -0
  273. package/skills/ios/hig-technologies/references/shareplay.md +142 -0
  274. package/skills/ios/hig-technologies/references/shazamkit.md +47 -0
  275. package/skills/ios/hig-technologies/references/sign-in-with-apple.md +288 -0
  276. package/skills/ios/hig-technologies/references/siri.md +523 -0
  277. package/skills/ios/hig-technologies/references/tap-to-pay-on-iphone.md +208 -0
  278. package/skills/ios/hig-technologies/references/voiceover.md +90 -0
  279. package/skills/ios/hig-technologies/references/wallet.md +420 -0
  280. package/skills/ios/ios-26-platform/SKILL.md +53 -0
  281. package/skills/ios/ios-26-platform/references/automatic-adoption.md +161 -0
  282. package/skills/ios/ios-26-platform/references/backward-compat.md +238 -0
  283. package/skills/ios/ios-26-platform/references/liquid-glass.md +255 -0
  284. package/skills/ios/ios-26-platform/references/swiftui-apis.md +277 -0
  285. package/skills/ios/ios-26-platform/references/toolbar-navigation.md +250 -0
  286. package/skills/ios/ios-bootstrap/SKILL.md +107 -0
  287. package/skills/ios/ios-bootstrap/references/apple-docs-mcp-config.md +28 -0
  288. package/skills/ios/ios-bootstrap/references/new-project-dialog.md +41 -0
  289. package/skills/ios/ios-bootstrap/references/xcode-mcp-config.md +29 -0
  290. package/skills/ios/ios-debugger-agent/LICENSE +21 -0
  291. package/skills/ios/ios-debugger-agent/SKILL.md +58 -0
  292. package/skills/ios/ios-debugger-agent/agents/openai.yaml +4 -0
  293. package/skills/ios/ios-entitlements-generator/SKILL.md +47 -0
  294. package/skills/ios/ios-info-plist-hardening/SKILL.md +130 -0
  295. package/skills/ios/ios-maestro-flow-author/SKILL.md +68 -0
  296. package/skills/ios/ios-maestro-flow-author/references/input-and-scroll.yaml +17 -0
  297. package/skills/ios/ios-maestro-flow-author/references/modal-and-dismiss.yaml +14 -0
  298. package/skills/ios/ios-maestro-flow-author/references/onboarding-flow.yaml +16 -0
  299. package/skills/ios/ios-maestro-flow-author/references/tab-navigation.yaml +13 -0
  300. package/skills/ios/ios-maestro-flow-author/references/tap-and-assert.yaml +9 -0
  301. package/skills/ios/swift-accessibility/LICENSE +21 -0
  302. package/skills/ios/swift-accessibility/SKILL.md +371 -0
  303. package/skills/ios/swift-accessibility/examples/before-after-appkit.md +446 -0
  304. package/skills/ios/swift-accessibility/examples/before-after-swiftui.md +441 -0
  305. package/skills/ios/swift-accessibility/examples/before-after-uikit.md +464 -0
  306. package/skills/ios/swift-accessibility/references/assistive-access.md +441 -0
  307. package/skills/ios/swift-accessibility/references/display-settings.md +491 -0
  308. package/skills/ios/swift-accessibility/references/dynamic-type.md +420 -0
  309. package/skills/ios/swift-accessibility/references/media-accessibility.md +421 -0
  310. package/skills/ios/swift-accessibility/references/motor-input.md +393 -0
  311. package/skills/ios/swift-accessibility/references/nutrition-labels.md +362 -0
  312. package/skills/ios/swift-accessibility/references/platform-specifics.md +515 -0
  313. package/skills/ios/swift-accessibility/references/semantic-structure.md +585 -0
  314. package/skills/ios/swift-accessibility/references/testing-auditing.md +507 -0
  315. package/skills/ios/swift-accessibility/references/voice-control.md +317 -0
  316. package/skills/ios/swift-accessibility/references/voiceover-swiftui.md +584 -0
  317. package/skills/ios/swift-accessibility/references/voiceover-uikit.md +519 -0
  318. package/skills/ios/swift-accessibility/references/wcag-mapping.md +167 -0
  319. package/skills/ios/swift-accessibility/resources/audit-template.swift +128 -0
  320. package/skills/ios/swift-accessibility/resources/qa-checklist.md +258 -0
  321. package/skills/ios/swift-actor-persistence/SKILL.md +143 -0
  322. package/skills/ios/swift-concurrency/LICENSE +21 -0
  323. package/skills/ios/swift-concurrency/SKILL.md +171 -0
  324. package/skills/ios/swift-concurrency/references/_index.md +50 -0
  325. package/skills/ios/swift-concurrency/references/actors.md +660 -0
  326. package/skills/ios/swift-concurrency/references/async-algorithms.md +847 -0
  327. package/skills/ios/swift-concurrency/references/async-await-basics.md +266 -0
  328. package/skills/ios/swift-concurrency/references/async-sequences.md +710 -0
  329. package/skills/ios/swift-concurrency/references/core-data.md +560 -0
  330. package/skills/ios/swift-concurrency/references/glossary.md +135 -0
  331. package/skills/ios/swift-concurrency/references/linting.md +155 -0
  332. package/skills/ios/swift-concurrency/references/memory-management.md +569 -0
  333. package/skills/ios/swift-concurrency/references/migration.md +1104 -0
  334. package/skills/ios/swift-concurrency/references/performance.md +593 -0
  335. package/skills/ios/swift-concurrency/references/sendable.md +598 -0
  336. package/skills/ios/swift-concurrency/references/tasks.md +636 -0
  337. package/skills/ios/swift-concurrency/references/testing.md +592 -0
  338. package/skills/ios/swift-concurrency/references/threading.md +495 -0
  339. package/skills/ios/swift-concurrency-6-2/SKILL.md +216 -0
  340. package/skills/ios/swift-protocol-di-testing/SKILL.md +190 -0
  341. package/skills/ios/swift-security-expert/LICENSE +21 -0
  342. package/skills/ios/swift-security-expert/SKILL.md +470 -0
  343. package/skills/ios/swift-security-expert/references/biometric-authentication.md +565 -0
  344. package/skills/ios/swift-security-expert/references/certificate-trust.md +592 -0
  345. package/skills/ios/swift-security-expert/references/common-anti-patterns.md +690 -0
  346. package/skills/ios/swift-security-expert/references/compliance-owasp-mapping.md +537 -0
  347. package/skills/ios/swift-security-expert/references/credential-storage-patterns.md +721 -0
  348. package/skills/ios/swift-security-expert/references/cryptokit-public-key.md +505 -0
  349. package/skills/ios/swift-security-expert/references/cryptokit-symmetric.md +497 -0
  350. package/skills/ios/swift-security-expert/references/keychain-access-control.md +508 -0
  351. package/skills/ios/swift-security-expert/references/keychain-fundamentals.md +596 -0
  352. package/skills/ios/swift-security-expert/references/keychain-item-classes.md +476 -0
  353. package/skills/ios/swift-security-expert/references/keychain-sharing.md +458 -0
  354. package/skills/ios/swift-security-expert/references/migration-legacy-stores.md +727 -0
  355. package/skills/ios/swift-security-expert/references/secure-enclave.md +539 -0
  356. package/skills/ios/swift-security-expert/references/testing-security-code.md +781 -0
  357. package/skills/ios/swift-testing-expert/LICENSE +21 -0
  358. package/skills/ios/swift-testing-expert/SKILL.md +79 -0
  359. package/skills/ios/swift-testing-expert/references/_index.md +12 -0
  360. package/skills/ios/swift-testing-expert/references/async-testing-and-waiting.md +127 -0
  361. package/skills/ios/swift-testing-expert/references/expectations.md +145 -0
  362. package/skills/ios/swift-testing-expert/references/fundamentals.md +141 -0
  363. package/skills/ios/swift-testing-expert/references/migration-from-xctest.md +127 -0
  364. package/skills/ios/swift-testing-expert/references/parallelization-and-isolation.md +95 -0
  365. package/skills/ios/swift-testing-expert/references/parameterized-testing.md +284 -0
  366. package/skills/ios/swift-testing-expert/references/performance-and-best-practices.md +187 -0
  367. package/skills/ios/swift-testing-expert/references/traits-and-tags.md +114 -0
  368. package/skills/ios/swift-testing-expert/references/xcode-workflows.md +70 -0
  369. package/skills/ios/swiftdata-pro/LICENSE +21 -0
  370. package/skills/ios/swiftdata-pro/SKILL.md +102 -0
  371. package/skills/ios/swiftdata-pro/agents/openai.yaml +10 -0
  372. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.png +0 -0
  373. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.svg +29 -0
  374. package/skills/ios/swiftdata-pro/references/class-inheritance.md +104 -0
  375. package/skills/ios/swiftdata-pro/references/cloudkit.md +10 -0
  376. package/skills/ios/swiftdata-pro/references/core-rules.md +20 -0
  377. package/skills/ios/swiftdata-pro/references/indexing.md +27 -0
  378. package/skills/ios/swiftdata-pro/references/predicates.md +73 -0
  379. package/skills/ios/swiftui-design-principles/AGENTS.md +21 -0
  380. package/skills/ios/swiftui-design-principles/LICENSE +21 -0
  381. package/skills/ios/swiftui-design-principles/README.md +41 -0
  382. package/skills/ios/swiftui-design-principles/SKILL.md +605 -0
  383. package/skills/ios/swiftui-design-principles/metadata.json +10 -0
  384. package/skills/ios/swiftui-design-tokens/SKILL.md +475 -0
  385. package/skills/ios/swiftui-liquid-glass/LICENSE +21 -0
  386. package/skills/ios/swiftui-liquid-glass/SKILL.md +95 -0
  387. package/skills/ios/swiftui-liquid-glass/agents/openai.yaml +4 -0
  388. package/skills/ios/swiftui-liquid-glass/references/liquid-glass.md +280 -0
  389. package/skills/ios/swiftui-performance-audit/LICENSE +21 -0
  390. package/skills/ios/swiftui-performance-audit/SKILL.md +111 -0
  391. package/skills/ios/swiftui-performance-audit/agents/openai.yaml +4 -0
  392. package/skills/ios/swiftui-performance-audit/references/code-smells.md +150 -0
  393. package/skills/ios/swiftui-performance-audit/references/demystify-swiftui-performance-wwdc23.md +46 -0
  394. package/skills/ios/swiftui-performance-audit/references/optimizing-swiftui-performance-instruments.md +29 -0
  395. package/skills/ios/swiftui-performance-audit/references/profiling-intake.md +44 -0
  396. package/skills/ios/swiftui-performance-audit/references/report-template.md +47 -0
  397. package/skills/ios/swiftui-performance-audit/references/understanding-hangs-in-your-app.md +33 -0
  398. package/skills/ios/swiftui-performance-audit/references/understanding-improving-swiftui-performance.md +52 -0
  399. package/skills/ios/swiftui-pro/LICENSE +21 -0
  400. package/skills/ios/swiftui-pro/SKILL.md +108 -0
  401. package/skills/ios/swiftui-pro/agents/openai.yaml +10 -0
  402. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
  403. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
  404. package/skills/ios/swiftui-pro/references/accessibility.md +13 -0
  405. package/skills/ios/swiftui-pro/references/api.md +39 -0
  406. package/skills/ios/swiftui-pro/references/data.md +43 -0
  407. package/skills/ios/swiftui-pro/references/design.md +31 -0
  408. package/skills/ios/swiftui-pro/references/hygiene.md +9 -0
  409. package/skills/ios/swiftui-pro/references/navigation.md +14 -0
  410. package/skills/ios/swiftui-pro/references/performance.md +46 -0
  411. package/skills/ios/swiftui-pro/references/swift.md +56 -0
  412. package/skills/ios/swiftui-pro/references/views.md +35 -0
  413. package/skills/ios/swiftui-ui-patterns/LICENSE +21 -0
  414. package/skills/ios/swiftui-ui-patterns/SKILL.md +100 -0
  415. package/skills/ios/swiftui-ui-patterns/agents/openai.yaml +4 -0
  416. package/skills/ios/swiftui-ui-patterns/references/app-wiring.md +201 -0
  417. package/skills/ios/swiftui-ui-patterns/references/async-state.md +96 -0
  418. package/skills/ios/swiftui-ui-patterns/references/components-index.md +50 -0
  419. package/skills/ios/swiftui-ui-patterns/references/controls.md +57 -0
  420. package/skills/ios/swiftui-ui-patterns/references/deeplinks.md +66 -0
  421. package/skills/ios/swiftui-ui-patterns/references/focus.md +90 -0
  422. package/skills/ios/swiftui-ui-patterns/references/form.md +97 -0
  423. package/skills/ios/swiftui-ui-patterns/references/grids.md +71 -0
  424. package/skills/ios/swiftui-ui-patterns/references/haptics.md +71 -0
  425. package/skills/ios/swiftui-ui-patterns/references/input-toolbar.md +51 -0
  426. package/skills/ios/swiftui-ui-patterns/references/lightweight-clients.md +93 -0
  427. package/skills/ios/swiftui-ui-patterns/references/list.md +86 -0
  428. package/skills/ios/swiftui-ui-patterns/references/loading-placeholders.md +38 -0
  429. package/skills/ios/swiftui-ui-patterns/references/macos-settings.md +71 -0
  430. package/skills/ios/swiftui-ui-patterns/references/matched-transitions.md +59 -0
  431. package/skills/ios/swiftui-ui-patterns/references/media.md +73 -0
  432. package/skills/ios/swiftui-ui-patterns/references/menu-bar.md +101 -0
  433. package/skills/ios/swiftui-ui-patterns/references/navigationstack.md +159 -0
  434. package/skills/ios/swiftui-ui-patterns/references/overlay.md +45 -0
  435. package/skills/ios/swiftui-ui-patterns/references/performance.md +62 -0
  436. package/skills/ios/swiftui-ui-patterns/references/previews.md +48 -0
  437. package/skills/ios/swiftui-ui-patterns/references/scroll-reveal.md +133 -0
  438. package/skills/ios/swiftui-ui-patterns/references/scrollview.md +87 -0
  439. package/skills/ios/swiftui-ui-patterns/references/searchable.md +71 -0
  440. package/skills/ios/swiftui-ui-patterns/references/sheets.md +155 -0
  441. package/skills/ios/swiftui-ui-patterns/references/split-views.md +72 -0
  442. package/skills/ios/swiftui-ui-patterns/references/tabview.md +114 -0
  443. package/skills/ios/swiftui-ui-patterns/references/theming.md +71 -0
  444. package/skills/ios/swiftui-ui-patterns/references/title-menus.md +93 -0
  445. package/skills/ios/swiftui-ui-patterns/references/top-bar.md +49 -0
  446. package/skills/ios/swiftui-view-refactor/LICENSE +21 -0
  447. package/skills/ios/swiftui-view-refactor/SKILL.md +207 -0
  448. package/skills/ios/swiftui-view-refactor/agents/openai.yaml +4 -0
  449. package/skills/ios/swiftui-view-refactor/references/mv-patterns.md +161 -0
  450. package/skills/ios/widgetkit/LICENSE +131 -0
  451. package/skills/ios/widgetkit/SKILL.md +502 -0
  452. package/skills/ios/widgetkit/references/widgetkit-advanced.md +871 -0
  453. package/skills/ios/writing-for-interfaces/SKILL.md +75 -0
  454. package/skills/web/accessibility/SKILL.md +146 -0
  455. package/skills/web/aceternity-ui/SKILL.md +719 -0
  456. package/skills/web/aceternity-ui/metadata.json +10 -0
  457. package/skills/web/api-design/SKILL.md +523 -0
  458. package/skills/web/chart-accessibility/SKILL.md +332 -0
  459. package/skills/web/composition-patterns/AGENTS.md +946 -0
  460. package/skills/web/composition-patterns/README.md +60 -0
  461. package/skills/web/composition-patterns/SKILL.md +89 -0
  462. package/skills/web/composition-patterns/metadata.json +11 -0
  463. package/skills/web/composition-patterns/rules/_sections.md +29 -0
  464. package/skills/web/composition-patterns/rules/_template.md +24 -0
  465. package/skills/web/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  466. package/skills/web/composition-patterns/rules/architecture-compound-components.md +112 -0
  467. package/skills/web/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  468. package/skills/web/composition-patterns/rules/patterns-explicit-variants.md +100 -0
  469. package/skills/web/composition-patterns/rules/react19-no-forwardref.md +42 -0
  470. package/skills/web/composition-patterns/rules/state-context-interface.md +191 -0
  471. package/skills/web/composition-patterns/rules/state-decouple-implementation.md +113 -0
  472. package/skills/web/composition-patterns/rules/state-lift-state.md +125 -0
  473. package/skills/web/cost-aware-llm-pipeline/SKILL.md +183 -0
  474. package/skills/web/database-migrations/SKILL.md +429 -0
  475. package/skills/web/deployment-patterns/SKILL.md +427 -0
  476. package/skills/web/docker-patterns/SKILL.md +364 -0
  477. package/skills/web/e2e-testing/SKILL.md +326 -0
  478. package/skills/web/lighthouse-ci/SKILL.md +361 -0
  479. package/skills/web/mcp-server-patterns/SKILL.md +69 -0
  480. package/skills/web/next-best-practices/SKILL.md +153 -0
  481. package/skills/web/next-best-practices/async-patterns.md +87 -0
  482. package/skills/web/next-best-practices/bundling.md +180 -0
  483. package/skills/web/next-best-practices/data-patterns.md +297 -0
  484. package/skills/web/next-best-practices/debug-tricks.md +105 -0
  485. package/skills/web/next-best-practices/directives.md +73 -0
  486. package/skills/web/next-best-practices/error-handling.md +227 -0
  487. package/skills/web/next-best-practices/file-conventions.md +140 -0
  488. package/skills/web/next-best-practices/font.md +245 -0
  489. package/skills/web/next-best-practices/functions.md +108 -0
  490. package/skills/web/next-best-practices/hydration-error.md +91 -0
  491. package/skills/web/next-best-practices/image.md +173 -0
  492. package/skills/web/next-best-practices/metadata.md +301 -0
  493. package/skills/web/next-best-practices/parallel-routes.md +287 -0
  494. package/skills/web/next-best-practices/route-handlers.md +146 -0
  495. package/skills/web/next-best-practices/rsc-boundaries.md +159 -0
  496. package/skills/web/next-best-practices/runtime-selection.md +39 -0
  497. package/skills/web/next-best-practices/scripts.md +141 -0
  498. package/skills/web/next-best-practices/self-hosting.md +371 -0
  499. package/skills/web/next-best-practices/suspense-boundaries.md +67 -0
  500. package/skills/web/next-cache-components/SKILL.md +411 -0
  501. package/skills/web/postgres-best-practices/SKILL.md +14 -0
  502. package/skills/web/postgres-best-practices/references/schema-design.md +9 -0
  503. package/skills/web/react-best-practices/AGENTS.md +3810 -0
  504. package/skills/web/react-best-practices/README.md +123 -0
  505. package/skills/web/react-best-practices/SKILL.md +149 -0
  506. package/skills/web/react-best-practices/metadata.json +15 -0
  507. package/skills/web/react-best-practices/rules/_sections.md +46 -0
  508. package/skills/web/react-best-practices/rules/_template.md +28 -0
  509. package/skills/web/react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  510. package/skills/web/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  511. package/skills/web/react-best-practices/rules/advanced-init-once.md +42 -0
  512. package/skills/web/react-best-practices/rules/advanced-use-latest.md +39 -0
  513. package/skills/web/react-best-practices/rules/async-api-routes.md +38 -0
  514. package/skills/web/react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  515. package/skills/web/react-best-practices/rules/async-defer-await.md +82 -0
  516. package/skills/web/react-best-practices/rules/async-dependencies.md +51 -0
  517. package/skills/web/react-best-practices/rules/async-parallel.md +28 -0
  518. package/skills/web/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  519. package/skills/web/react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  520. package/skills/web/react-best-practices/rules/bundle-barrel-imports.md +60 -0
  521. package/skills/web/react-best-practices/rules/bundle-conditional.md +31 -0
  522. package/skills/web/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  523. package/skills/web/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  524. package/skills/web/react-best-practices/rules/bundle-preload.md +50 -0
  525. package/skills/web/react-best-practices/rules/client-event-listeners.md +74 -0
  526. package/skills/web/react-best-practices/rules/client-localstorage-schema.md +71 -0
  527. package/skills/web/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  528. package/skills/web/react-best-practices/rules/client-swr-dedup.md +56 -0
  529. package/skills/web/react-best-practices/rules/js-batch-dom-css.md +107 -0
  530. package/skills/web/react-best-practices/rules/js-cache-function-results.md +80 -0
  531. package/skills/web/react-best-practices/rules/js-cache-property-access.md +28 -0
  532. package/skills/web/react-best-practices/rules/js-cache-storage.md +70 -0
  533. package/skills/web/react-best-practices/rules/js-combine-iterations.md +32 -0
  534. package/skills/web/react-best-practices/rules/js-early-exit.md +50 -0
  535. package/skills/web/react-best-practices/rules/js-flatmap-filter.md +60 -0
  536. package/skills/web/react-best-practices/rules/js-hoist-regexp.md +45 -0
  537. package/skills/web/react-best-practices/rules/js-index-maps.md +37 -0
  538. package/skills/web/react-best-practices/rules/js-length-check-first.md +49 -0
  539. package/skills/web/react-best-practices/rules/js-min-max-loop.md +82 -0
  540. package/skills/web/react-best-practices/rules/js-request-idle-callback.md +105 -0
  541. package/skills/web/react-best-practices/rules/js-set-map-lookups.md +24 -0
  542. package/skills/web/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  543. package/skills/web/react-best-practices/rules/rendering-activity.md +26 -0
  544. package/skills/web/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  545. package/skills/web/react-best-practices/rules/rendering-conditional-render.md +40 -0
  546. package/skills/web/react-best-practices/rules/rendering-content-visibility.md +38 -0
  547. package/skills/web/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  548. package/skills/web/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  549. package/skills/web/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  550. package/skills/web/react-best-practices/rules/rendering-resource-hints.md +85 -0
  551. package/skills/web/react-best-practices/rules/rendering-script-defer-async.md +68 -0
  552. package/skills/web/react-best-practices/rules/rendering-svg-precision.md +28 -0
  553. package/skills/web/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  554. package/skills/web/react-best-practices/rules/rerender-defer-reads.md +39 -0
  555. package/skills/web/react-best-practices/rules/rerender-dependencies.md +45 -0
  556. package/skills/web/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  557. package/skills/web/react-best-practices/rules/rerender-derived-state.md +29 -0
  558. package/skills/web/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  559. package/skills/web/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  560. package/skills/web/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  561. package/skills/web/react-best-practices/rules/rerender-memo.md +44 -0
  562. package/skills/web/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  563. package/skills/web/react-best-practices/rules/rerender-no-inline-components.md +82 -0
  564. package/skills/web/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  565. package/skills/web/react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  566. package/skills/web/react-best-practices/rules/rerender-transitions.md +40 -0
  567. package/skills/web/react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  568. package/skills/web/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  569. package/skills/web/react-best-practices/rules/server-after-nonblocking.md +73 -0
  570. package/skills/web/react-best-practices/rules/server-auth-actions.md +96 -0
  571. package/skills/web/react-best-practices/rules/server-cache-lru.md +41 -0
  572. package/skills/web/react-best-practices/rules/server-cache-react.md +76 -0
  573. package/skills/web/react-best-practices/rules/server-dedup-props.md +65 -0
  574. package/skills/web/react-best-practices/rules/server-hoist-static-io.md +149 -0
  575. package/skills/web/react-best-practices/rules/server-no-shared-module-state.md +50 -0
  576. package/skills/web/react-best-practices/rules/server-parallel-fetching.md +83 -0
  577. package/skills/web/react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  578. package/skills/web/react-best-practices/rules/server-serialization.md +38 -0
  579. package/skills/web/seo/SKILL.md +154 -0
  580. package/skills/web/web-design-guidelines/SKILL.md +39 -0
  581. package/skills/web/zap-scan-config/SKILL.md +444 -0
  582. package/skills/web/zap-scan-config/assets/.gitkeep +9 -0
  583. package/skills/web/zap-scan-config/assets/github_action.yml +207 -0
  584. package/skills/web/zap-scan-config/assets/gitlab_ci.yml +226 -0
  585. package/skills/web/zap-scan-config/assets/zap_automation.yaml +196 -0
  586. package/skills/web/zap-scan-config/assets/zap_context.xml +192 -0
  587. package/skills/web/zap-scan-config/references/EXAMPLE.md +40 -0
  588. package/skills/web/zap-scan-config/references/api_testing_guide.md +475 -0
  589. package/skills/web/zap-scan-config/references/authentication_guide.md +431 -0
  590. package/skills/web/zap-scan-config/references/false_positive_handling.md +427 -0
  591. package/skills/web/zap-scan-config/references/owasp_mapping.md +255 -0
  592. package/src/lrr/aggregator.ts +80 -0
  593. package/src/orchestrator/hooks/context-header.ts +95 -0
  594. package/src/orchestrator/hooks/token-accounting-emitter.ts +77 -0
  595. package/src/orchestrator/hooks/token-accounting.ts +101 -0
  596. package/src/orchestrator/mcp/cycle-counter.ts +129 -0
  597. package/src/orchestrator/mcp/scribe.ts +283 -0
  598. package/src/orchestrator/mcp/state-save.ts +149 -0
  599. package/src/orchestrator/mcp/write-lease.ts +167 -0
  600. package/src/orchestrator/phase4-shared-context.ts +41 -0
  601. package/src/orchestrator/schemas/backward-edge.ts +46 -0
  602. package/agents/agentic-identity-trust.md +0 -121
  603. package/agents/data-consolidation-agent.md +0 -39
  604. package/agents/design-image-prompt-engineer.md +0 -105
  605. package/agents/design-visual-storyteller.md +0 -147
  606. package/agents/design-whimsy-injector.md +0 -89
  607. package/agents/engineering-autonomous-optimization-architect.md +0 -105
  608. package/agents/market-intel.md +0 -35
  609. package/agents/marketing-instagram-curator.md +0 -111
  610. package/agents/marketing-reddit-community-builder.md +0 -121
  611. package/agents/marketing-social-media-strategist.md +0 -74
  612. package/agents/marketing-tiktok-strategist.md +0 -123
  613. package/agents/marketing-twitter-engager.md +0 -124
  614. package/agents/marketing-wechat-official-account.md +0 -143
  615. package/agents/marketing-xiaohongshu-specialist.md +0 -136
  616. package/agents/marketing-zhihu-strategist.md +0 -160
  617. package/agents/product-behavioral-nudge-engine.md +0 -78
  618. package/agents/project-management-experiment-tracker.md +0 -102
  619. package/agents/report-distribution-agent.md +0 -43
  620. package/agents/risk-analysis.md +0 -45
  621. package/agents/sales-data-extraction-agent.md +0 -46
  622. package/agents/specialized-cultural-intelligence-strategist.md +0 -65
  623. package/agents/specialized-developer-advocate.md +0 -146
  624. package/agents/support-analytics-reporter.md +0 -133
  625. package/agents/support-executive-summary-generator.md +0 -64
  626. package/agents/support-finance-tracker.md +0 -145
  627. package/agents/support-legal-compliance-checker.md +0 -129
  628. package/agents/support-support-responder.md +0 -91
  629. package/agents/testing-accessibility-auditor.md +0 -110
  630. package/agents/testing-test-results-analyzer.md +0 -97
  631. package/agents/testing-tool-evaluator.md +0 -76
  632. package/agents/testing-workflow-optimizer.md +0 -99
  633. package/agents/user-research.md +0 -40
@@ -0,0 +1,1088 @@
1
+ # Default-deny for unknown paths activates in Stage 2 (Task 2.1.3 of sdk-hybrid migration).
2
+ version: 1
3
+ source_prose: docs/migration/phase-graph.md
4
+ generated_at: 2026-04-18
5
+ policy: |
6
+ Mirror of docs/migration/phase-graph.md. Prose is source of truth until the SDK
7
+ orchestrator flips polarity. If prose changes, this file changes in the same
8
+ commit. A drift-lint script (eval/lint_phase_graph.py — TBD) will fail CI if
9
+ structured data diverges from prose tables.
10
+
11
+ # ---------------------------------------------------------------------------
12
+ # 1. Artifact writer-owner table
13
+ # ---------------------------------------------------------------------------
14
+ artifacts:
15
+ - path: CLAUDE.md
16
+ writer: phase-1
17
+ readers: [all-subagents-auto]
18
+ - path: docs/plans/design-doc.md
19
+ alias: PRD
20
+ writer: phase-1
21
+ readers: [phase-2, phase-3, phase-4, phase-5, phase-6, phase-7]
22
+ - path: docs/plans/architecture.md
23
+ writer: phase-2
24
+ readers: [phase-3, phase-4, phase-5, phase-6, phase-7]
25
+ - path: docs/plans/sprint-tasks.md
26
+ writer: phase-2
27
+ readers: [phase-4, phase-5, phase-6]
28
+ - path: docs/plans/quality-targets.json
29
+ writer: phase-2
30
+ readers: [phase-4, phase-5, phase-6]
31
+ - path: docs/plans/visual-design-spec.md
32
+ platform: web
33
+ writer: phase-3
34
+ readers: [phase-4, phase-5, phase-6]
35
+ - path: docs/plans/ios-design-board.md
36
+ platform: ios
37
+ writer: phase-3
38
+ readers: [phase-4, phase-5, phase-6]
39
+ - path: docs/plans/component-manifest.md
40
+ platform: web
41
+ writer: phase-3
42
+ readers: [phase-4]
43
+ notes: HARD-GATE import source
44
+ - path: docs/plans/visual-dna.md
45
+ platform: web
46
+ writer: phase-3
47
+ readers: [phase-3, phase-4, phase-5, phase-6]
48
+ - path: docs/plans/refs.json
49
+ writer: phase-2
50
+ extended_by: phase-3
51
+ readers: [phase-4-briefing-officer]
52
+ - path: docs/plans/decisions.jsonl
53
+ writer: orchestrator-scribe
54
+ write_mode: append-only
55
+ readers: [phase-0-resume, phase-5-reality-checker, phase-6-lrr-aggregator]
56
+ hard_gate: Subagents return deviation_row in structured result; they never write this file directly.
57
+ - path: docs/plans/learnings.jsonl
58
+ writers: [phase-5, phase-7]
59
+ readers: [phase-0-learnings-loader, phase-5-reality-sweep]
60
+ - path: docs/plans/evidence/*.json
61
+ writer: phase-5
62
+ contributors: [phase-4]
63
+ readers: [phase-6, phase-7]
64
+ - path: docs/plans/evidence/lrr/*.json
65
+ writers: [code-reviewer, security-reviewer, engineering-sre, a11y-architect, design-brand-guardian]
66
+ readers: [phase-6-aggregator, orchestrator]
67
+ notes: |
68
+ One file per LRR chapter. Writer set = the 5 chapter subagents (aka
69
+ "chapter-judge" role per MIGRATION-PLAN-FINAL §Stage 5). Aggregator and
70
+ orchestrator are READ-ONLY on chapter files. Enforced agent-role match
71
+ in hooks/pre-tool-use.ts against subagent_type staged by subagent-start.
72
+ - path: docs/plans/evidence/lrr-aggregate.json
73
+ writer: phase-6-aggregator
74
+ readers: [phase-7]
75
+ - path: docs/plans/.build-state.json
76
+ writer: orchestrator
77
+ write_frequency: every-phase-boundary
78
+ readers: [all-phases, resume-handler]
79
+ - path: docs/plans/.build-state.md
80
+ writer: auto-rendered-view
81
+ readers: [read-only]
82
+ notes: regenerated from .build-state.json on every update
83
+ - path: docs/plans/.task-outputs/[task-id].json
84
+ writer: phase-4
85
+ readers: [phase-5, phase-6]
86
+ - path: docs/plans/build-log.md
87
+ writer: every-phase
88
+ write_mode: append-on-transition
89
+ readers: [user, resume]
90
+
91
+ phase_internal_scratch:
92
+ path_glob: docs/plans/phase1-scratch/*.{md,json}
93
+ files:
94
+ - idea-draft.md
95
+ - feature-intel.md
96
+ - tech-feasibility.md
97
+ - ux-research.md
98
+ - business-model.md
99
+ - findings-digest.md
100
+ - suggested-questions.md
101
+ - user-decisions.md
102
+ - prereqs.json
103
+ readers: [phase-1-only]
104
+ notes: Never read by phase 3+.
105
+
106
+ # ---------------------------------------------------------------------------
107
+ # 2. Classification matrix
108
+ # ---------------------------------------------------------------------------
109
+ classifications:
110
+ project_type:
111
+ values: [web, ios]
112
+ default: web
113
+ rules:
114
+ - signal: "iOS keywords in prompt (iOS, iPhone, SwiftUI, Xcode, App Store, TestFlight, Apple, SwiftData, HIG, Liquid Glass, watchOS, visionOS)"
115
+ mode: interactive_confirm_or_autonomous_infer
116
+ value: ios
117
+ - signal: ".xcodeproj OR Package.swift OR *.swift in repo"
118
+ mode: auto
119
+ value: ios
120
+ branch_load:
121
+ ios: [protocols/ios-phase-branches.md, protocols/ios-context.md]
122
+ web: [protocols/web-phase-branches.md]
123
+
124
+ ios_features:
125
+ platform: ios
126
+ resolved_at: end-of-phase-2
127
+ flags:
128
+ - widgets
129
+ - liveActivities
130
+ - appIntents
131
+ - foundationModels
132
+ - storekit
133
+ - healthkit
134
+ - push
135
+ - cloudkit
136
+ - siri
137
+ - location
138
+ - background
139
+ - cameraPhoto
140
+ - microphone
141
+ - contacts
142
+ - calendar
143
+ - appleWatch
144
+ gates: [phase-4-skill-bundles, entitlement-generation]
145
+
146
+ # ---------------------------------------------------------------------------
147
+ # 3. Phase graph
148
+ # ---------------------------------------------------------------------------
149
+ phases:
150
+ - id: "0"
151
+ name: Pre-flight
152
+ kind: classify-only
153
+ skip_conditions: []
154
+ steps:
155
+ - id: resume-check
156
+ name: Resume handler
157
+ kind: internal
158
+ fires_on: [--resume, post-compaction-SessionStart-hook]
159
+ writes: []
160
+ reads: [.build-state.json, decisions.jsonl top-5, TodoWrite]
161
+ - id: "0.1"
162
+ name: Read the Room
163
+ kind: classify
164
+ writes_state: context_level
165
+ value_domain: [full-design, decision-brief, partial, raw-idea]
166
+ reads: [$ARGUMENTS, docs/plans/, docs/briefs/]
167
+ - id: "0.1b"
168
+ name: Project Type Classification
169
+ kind: classify
170
+ writes_state: project_type
171
+ value_domain: [web, ios]
172
+ - id: "0.1d"
173
+ name: Learnings Loader
174
+ kind: read
175
+ reads: [learnings.jsonl, ~/.claude/buildanything/learnings.jsonl]
176
+ writes: [docs/plans/.active-learnings.md]
177
+ - id: "0.2"
178
+ name: Initialize
179
+ kind: write
180
+ writes: [docs/plans/.build-state.json, TodoWrite]
181
+ notes:
182
+ - No prereq collection here; stack decision happens in phase 1 step 1.4.
183
+
184
+ - id: "-1"
185
+ name: iOS Bootstrap
186
+ kind: bootstrap
187
+ skip_conditions:
188
+ - project_type != ios
189
+ - .xcodeproj exists
190
+ steps:
191
+ - id: "-1.1"
192
+ name: Environment Check
193
+ kind: internal
194
+ verifies: [Xcode 26.3+, XcodeBuildMCP, apple-docs-mcp, Maestro CLI]
195
+ on_failure: hard-fail
196
+ - id: "-1.2"
197
+ name: Xcode Project Creation
198
+ kind: dispatch-single-internal
199
+ constraints: [iOS 26.0+, Swift 6.2+, SwiftUI, SwiftData, no Tuist, no XcodeGen]
200
+ - id: "-1.2b"
201
+ name: Overwrite Apple template tests
202
+ kind: write
203
+ writes: ["<target>Tests/<target>Tests.swift", "<target>UITests/<target>UITests.swift"]
204
+ notes: inserts AUTOGENERATED HARNESS marker so stub detector treats as MARKER not STUB
205
+ - id: "-1.3"
206
+ name: Bootstrap Verification
207
+ kind: internal
208
+ verifies: [xcode-ok, xcodeproj-exists, mcp-servers-respond, maestro-installed, first-build-launch-succeeded]
209
+ on_failure: HARD-STOP
210
+
211
+ - id: "1"
212
+ name: Discover
213
+ kind: sequential-with-parallel-research
214
+ skip_conditions: [context_level == full-design]
215
+ decision_rows_written: 3
216
+ backward_edges:
217
+ - from: GATE-1-NO
218
+ to: phase-1.step-1.0
219
+ steps:
220
+ - id: "1.0"
221
+ name: Initial Brainstorm
222
+ kind: dispatch-single-internal
223
+ role: brainstorm-facilitator-round-1
224
+ reads: [$ARGUMENTS, conversation]
225
+ writes: [phase1-scratch/idea-draft.md]
226
+ - id: "1.1"
227
+ name: Research (4 parallel)
228
+ kind: dispatch-parallel
229
+ dispatch_mode: single-message
230
+ dispatches:
231
+ - feature-intel
232
+ - tech-feasibility
233
+ - design-ux-researcher
234
+ - business-model
235
+ reads: [idea-draft.md]
236
+ writes:
237
+ - phase1-scratch/feature-intel.md
238
+ - phase1-scratch/tech-feasibility.md
239
+ - phase1-scratch/ux-research.md
240
+ - phase1-scratch/business-model.md
241
+ - id: "1.2"
242
+ name: Research Digest
243
+ kind: dispatch-single-internal
244
+ role: research-synthesizer
245
+ reads: [4-raw-research-files]
246
+ writes: [phase1-scratch/findings-digest.md, phase1-scratch/suggested-questions.md]
247
+ - id: "1.3"
248
+ name: Informed Brainstorm
249
+ kind: dispatch-single-internal
250
+ role: brainstorm-facilitator-round-2
251
+ reads: [phase1-scratch/findings-digest.md, phase1-scratch/suggested-questions.md]
252
+ writes: [phase1-scratch/user-decisions.md]
253
+ - id: "1.4"
254
+ name: Design Doc + CLAUDE.md
255
+ kind: dispatch-single-internal
256
+ role: design-doc-writer
257
+ writes: [docs/plans/design-doc.md, CLAUDE.md]
258
+ hard_gates:
259
+ - CLAUDE.md < 200 lines
260
+ emits_decision_rows: [tech-stack, data-model, scope-boundary]
261
+ - id: GATE-1
262
+ name: Quality Gate 1
263
+ kind: gate
264
+ interactive: user-approves-design
265
+ autonomous: auto-approve
266
+ - id: "1.5"
267
+ name: Prereq Collector
268
+ kind: dispatch-single-internal
269
+ reads: [design-doc.md#tech-stack]
270
+ writes: [phase1-scratch/prereqs.json]
271
+ ios_branch:
272
+ applies_to: phase-1
273
+ changes:
274
+ - prompt_additions: [App Store category landscape, TestFlight constraints, iOS 26 API availability]
275
+ - conditional_dispatch:
276
+ when: AI-or-Foundation-Models-build
277
+ agent: ios-foundation-models-specialist
278
+
279
+ - id: "2"
280
+ name: Plan / Architect
281
+ kind: team-then-sequence
282
+ skip_conditions: []
283
+ decision_rows_written: 4
284
+ backward_edges:
285
+ - from: GATE-2-NO
286
+ to: phase-2
287
+ - from: LRR-BLOCK-decided_by==architect
288
+ to: phase-2
289
+ template: re-entry
290
+ steps:
291
+ - id: "2.1"
292
+ name: Explore existing codebase
293
+ kind: dispatch-single-internal
294
+ conditional_on: existing-code-detected
295
+ - id: "2.2a"
296
+ name: Team create
297
+ kind: internal
298
+ call: 'TeamCreate(team_name: "phase-2-architects")'
299
+ - id: "2.2b"
300
+ name: 6 architects as teammates
301
+ kind: dispatch-team
302
+ dispatch_mode: single-message
303
+ parallel_count: 6
304
+ teammates:
305
+ - slot: backend-architect
306
+ subagent_type: engineering-backend-architect
307
+ domain: services, API contracts, DB schema
308
+ - slot: frontend-architect
309
+ subagent_type: engineering-frontend-developer
310
+ domain: component hierarchy, state mgmt, routing
311
+ - slot: data-engineer
312
+ subagent_type: engineering-data-engineer
313
+ domain: ETL/ELT, schema versioning, query patterns
314
+ - slot: security-engineer
315
+ subagent_type: engineering-security-engineer
316
+ domain: auth model, input validation, threat model
317
+ - slot: accessibility-auditor
318
+ subagent_type: a11y-architect
319
+ domain: WCAG 2.2 AA constraints on component/nav choice
320
+ - slot: performance-benchmarker
321
+ subagent_type: testing-performance-benchmarker
322
+ domain: quality-targets.json, bundle + latency budgets
323
+ cross_check_pairings:
324
+ - [backend, frontend, API contract shape]
325
+ - [security, backend, auth flow]
326
+ - [accessibility, frontend, component patterns]
327
+ - [performance, "backend+data", query shapes]
328
+ - id: "2.2c"
329
+ name: Wait for all idle
330
+ kind: internal
331
+ - id: "2.2d"
332
+ name: Team teardown
333
+ kind: internal
334
+ call: 'TeamDelete("phase-2-architects")'
335
+ - id: "2.3.1"
336
+ name: Implementation Blueprint
337
+ kind: dispatch-single
338
+ subagent_type: code-architect
339
+ reads: [6-post-debate-contracts]
340
+ writes: [architecture.md]
341
+ - id: "2.3.2"
342
+ name: Sprint Breakdown
343
+ kind: dispatch-single
344
+ subagent_type: planner
345
+ writes: [sprint-tasks.md]
346
+ required_fields: [Dependencies, Behavioral Test]
347
+ - id: "2.3.3"
348
+ name: Task DAG Validator
349
+ kind: dispatch-single-internal
350
+ validates: [no-circular-deps, IDs-exist, sizing-consistent, behavioral-tests-present]
351
+ - id: "2.3.4"
352
+ name: Refs Indexer
353
+ kind: dispatch-single-internal
354
+ writes: [refs.json]
355
+ - id: "2.3.loop"
356
+ name: Architecture Metric Loop
357
+ kind: loop
358
+ service: metric-loop
359
+ metric: PRD-coverage + specificity + simplicity
360
+ max_iterations: 3
361
+ - id: GATE-2
362
+ name: Quality Gate 2
363
+ kind: gate
364
+ interactive: approval
365
+ autonomous: auto-approve
366
+ - id: "2.ios-flags"
367
+ name: iOS Feature Flag Resolution
368
+ kind: classify
369
+ platform: ios
370
+ source: protocols/ios-phase-branches.md
371
+ ios_branch:
372
+ applies_to: phase-2
373
+ overrides:
374
+ - description: replaces Backend+Frontend architect dispatches with a single ios-swift-architect dispatch
375
+ covers: [SwiftUI view hierarchy + navigation, SwiftData schema + CloudKit, Swift Concurrency / actor isolation, iOS security (Keychain, entitlements, ATS)]
376
+ - security: engineering-security-engineer
377
+ writes:
378
+ - docs/plans/phase-2-contracts/*.md
379
+ - architecture.md
380
+ - sprint-tasks.md
381
+ - quality-targets.json
382
+ - refs.json
383
+ re_entry_rule: |
384
+ Only the architect whose domain matches decision_row.author re-runs.
385
+ Synthesizer re-runs once. Unaffected domains NOT re-run.
386
+
387
+ - id: "3"
388
+ name: Design
389
+ kind: dna-first-sequence
390
+ skip_conditions:
391
+ - project has no user-facing frontend (CLI tools, pure APIs, backend services)
392
+ backward_edges:
393
+ - from: LRR-BLOCK-decided_by==design-brand-guardian-or-phase-3-writer
394
+ to: phase-3
395
+ precision: re-entry to specific step by decision_row.author
396
+ web_branch:
397
+ source: protocols/web-phase-branches.md
398
+ steps:
399
+ - id: "3.0"
400
+ name: Visual DNA Selection
401
+ kind: dispatch-single
402
+ subagent_type: design-brand-guardian
403
+ produces: 6-axis DNA card (Scope, Density, Character, Material, Motion, Type)
404
+ source: protocols/visual-dna.md
405
+ - id: "3.1"
406
+ name: Visual Research (2 parallel, Playwright-driven)
407
+ kind: dispatch-parallel
408
+ dispatches:
409
+ - {subagent_type: visual-research, mode: competitive-audit}
410
+ - {subagent_type: visual-research, mode: inspiration-mining}
411
+ - id: "3.2"
412
+ name: Component Library Mapping (HARD-GATE source)
413
+ kind: dispatch-single
414
+ subagent_type: design-ui-designer
415
+ writes: [component-manifest.md]
416
+ - id: "3.2b"
417
+ name: DNA Persona Check
418
+ kind: dispatch-single
419
+ subagent_type: design-ux-researcher
420
+ may_route_to: "3.0"
421
+ - id: "3.3"
422
+ name: UX Architecture
423
+ kind: dispatch-single
424
+ subagent_type: design-ux-architect
425
+ writes: [ux-architecture.md]
426
+ - id: "3.4"
427
+ name: Visual Design Spec
428
+ kind: dispatch-single
429
+ subagent_type: design-ui-designer
430
+ role: writer
431
+ writes: [visual-design-spec.md]
432
+ contains: [tokens, material, motion, typography, state-matrix]
433
+ - id: "3.5"
434
+ name: Inclusive Visuals Check
435
+ kind: dispatch-single
436
+ subagent_type: design-inclusive-visuals-specialist
437
+ writes: [inclusive-visuals-audit.md]
438
+ - id: "3.6"
439
+ name: Style Guide Implementation
440
+ kind: loop
441
+ service: metric-loop
442
+ generator: engineering-frontend-developer
443
+ critic: design-critic
444
+ metric: 6-DNA-axes x 5-craft-dims = /220
445
+ target: 180
446
+ max_iterations: 5
447
+ - id: "3.7"
448
+ name: A11y Design Review
449
+ kind: dispatch-single
450
+ subagent_type: a11y-architect
451
+ scope: /design-system + key pages
452
+ - id: "3.8"
453
+ name: Autonomous Quality Gate
454
+ kind: gate
455
+ action: log-summary-to-build-log.md
456
+ user_pause: false
457
+ hard_gates:
458
+ - UI/UX IS THE PRODUCT — do NOT skip this phase.
459
+ - Compositional not reconstructive — every element with a library variant MUST be mapped to that variant in component-manifest.md.
460
+ phase_4_entry_requirements:
461
+ - visual-dna.md
462
+ - visual-design-spec.md
463
+ - component-manifest.md
464
+ ios_branch:
465
+ source: protocols/ios-phase-branches.md
466
+ steps:
467
+ - id: "3.1-ios"
468
+ name: Visual research
469
+ kind: dispatch-single
470
+ subagent_type: visual-research
471
+ tooling: agent-browser -p desktop
472
+ sources: [screenlane.com, App Store web listings, Apple HIG pages, SF Symbols browser]
473
+ constraints: [no paid sources]
474
+ - id: "3.2-ios"
475
+ name: iOS Design Board
476
+ kind: dispatch-single
477
+ subagent_type: ios-swift-ui-design
478
+ writes: [ios-design-board.md]
479
+ grounded_in: [HIG, Liquid Glass, SF Symbols]
480
+ - id: "3.4-ios"
481
+ name: Visual QA loop
482
+ kind: loop
483
+ service: metric-loop
484
+ generator: ios-swift-ui-design
485
+ critic: design-critic
486
+ tooling: XcodeBuildMCP SwiftUI Preview captures
487
+ max_iterations: 3
488
+ phase_4_entry_requirements:
489
+ - ios-design-board.md
490
+
491
+ - id: "4"
492
+ name: Build
493
+ kind: scaffold-then-parallel-task-batches
494
+ skip_conditions: []
495
+ scaffold:
496
+ steps:
497
+ - id: "4.0.a"
498
+ name: Project scaffolding
499
+ kind: dispatch-single
500
+ web: {subagent_type: engineering-rapid-prototyper}
501
+ ios: {notes: done by Phase -1; XcodeBuildMCP creates Views/ Models/ Services/ Resources/}
502
+ - id: "4.0.b"
503
+ name: Design system setup
504
+ kind: dispatch-single
505
+ web: {subagent_type: engineering-frontend-developer, produces: CSS tokens from visual-design-spec}
506
+ ios: {subagent_type: engineering-senior-developer, produces: SwiftUI Color/Font/ShapeStyle tokens from ios-design-board.md}
507
+ - id: "4.0.c"
508
+ name: Acceptance test scaffolding
509
+ kind: dispatch-single-internal
510
+ web: {produces: Playwright stubs in tests/e2e/acceptance/ (one per sprint-task Behavioral Test)}
511
+ ios:
512
+ produces: Maestro YAML stubs in maestro/
513
+ hard_gate: "find maestro -name '*.yaml' | wc -l >= 2"
514
+ - id: "4.0.d"
515
+ name: Scaffold metric loop (iOS only)
516
+ kind: loop
517
+ platform: ios
518
+ metric: clean build + @Test pass
519
+ max_iterations: 3
520
+ fix_agent: swift-build-resolver
521
+ - id: "4.0.e"
522
+ name: Verify gate
523
+ kind: gate
524
+ service: verify-protocol
525
+ notes: 7 checks must PASS before Step 4.1
526
+ per_task_flow:
527
+ executes: every task in every dependency-ordered batch
528
+ parallelism: Independent sibling tasks run in parallel (~30-50% wall-clock saving)
529
+ sub_steps:
530
+ - id: briefing
531
+ kind: dispatch-single
532
+ subagent_type: briefing-officer-internal
533
+ reads: [refs.json, task-row]
534
+ writes: ~40-line CONTEXT MAP
535
+ - id: impl
536
+ kind: dispatch-single
537
+ dispatch_table:
538
+ web:
539
+ ui_SM: engineering-frontend-developer
540
+ ui_L: engineering-senior-developer
541
+ backend: engineering-backend-architect OR engineering-senior-developer
542
+ ai_ml: engineering-ai-engineer
543
+ ios:
544
+ ui_planner: ios-swift-ui-design
545
+ ui_impl: [engineering-senior-developer, engineering-mobile-app-builder]
546
+ foundation_models: ios-foundation-models-specialist
547
+ storekit: ios-storekit-specialist
548
+ - id: impl.re-entry
549
+ kind: dispatch-single
550
+ trigger: LRR backward-routing
551
+ inputs: [blocking_finding, prior_output, decision_row]
552
+ constraint: revise ONLY what finding requires
553
+ - id: sec-review
554
+ kind: dispatch-single
555
+ subagent_type: security-reviewer
556
+ conditional_on: [auth, PII, Keychain, credential tasks]
557
+ - id: swift-review
558
+ kind: dispatch-single
559
+ platform: ios
560
+ subagent_type: swift-reviewer
561
+ checklist: [Swift concurrency 6.2, SwiftUI, protocol DI, Foundation Models]
562
+ - id: cleanup
563
+ kind: dispatch-parallel
564
+ parallel_count: 2
565
+ dispatches:
566
+ - code-simplifier
567
+ - refactor-cleaner
568
+ scope: changeset-only
569
+ - id: review
570
+ kind: dispatch-parallel
571
+ parallel_count: 2
572
+ dispatch_mode: single-message
573
+ dispatches:
574
+ - code-reviewer
575
+ - silent-failure-hunter
576
+ confidence_threshold: 80
577
+ - id: metric-loop
578
+ kind: loop
579
+ service: metric-loop
580
+ max_iterations: 5
581
+ notes: THIS IS THE AUTHORITATIVE BEHAVIORAL VERIFICATION
582
+ ui_tooling:
583
+ web: agent-browser
584
+ ios: SwiftUI Preview captures
585
+ - id: smoke
586
+ kind: dispatch-single
587
+ platform: ios
588
+ tooling: Maestro flow against booted simulator
589
+ preconditions: [Maestro CLI installed, flow files exist, booted simulator available]
590
+ on_precondition_fail: BLOCKED
591
+ - id: verify
592
+ kind: gate
593
+ service: verify-protocol
594
+ scope: static-only
595
+ checks: [type-check, lint, build]
596
+ max_fix_attempts: 3
597
+ build_fix:
598
+ ios: swift-build-resolver
599
+ - id: scribe
600
+ kind: internal
601
+ role: orchestrator-scribe
602
+ action: |
603
+ Walks batch_results, collects non-null deviation_row objects, and
604
+ invokes the scribe_decision MCP tool once per row. The MCP is the
605
+ single writer for decisions.jsonl — it allocates D-{phase}-<seq>
606
+ IDs, stamps timestamp + status, validates against
607
+ decisions.schema.json, and atomically appends. The orchestrator
608
+ MUST NOT Write/Edit decisions.jsonl directly and MUST NOT
609
+ pre-compute IDs. .build-state.json.decisions_next_id is
610
+ deprecated under Stage 2 and removed at Stage 4 A7.
611
+ hard_gates:
612
+ - decisions.jsonl is orchestrator-scribe ONLY. Subagents return deviation_row objects.
613
+ - "Web compositional: component-manifest.md variants MUST be imported; writing from scratch triggers cleanup revert."
614
+ writes_per_task:
615
+ - source-code
616
+ - docs/plans/.task-outputs/[task-id].json
617
+ backward_edges:
618
+ - from: LRR-NEEDS_WORK-code-level
619
+ to: phase-4.target-task
620
+ - from: phase-5-dogfood-feedback-synthesizer
621
+ to: phase-4.target-task
622
+
623
+ - id: "5"
624
+ name: Audit
625
+ kind: team-then-eval-then-parallel-then-synth
626
+ skip_conditions: []
627
+ precondition: verify-protocol passes
628
+ web_branch:
629
+ steps:
630
+ - id: "5.1"
631
+ name: TEAM of 6 parallel auditors
632
+ kind: dispatch-parallel
633
+ dispatch_mode: single-message
634
+ parallel_count: 6
635
+ dispatches:
636
+ - subagent_type: testing-api-tester
637
+ focus: API validation, edge cases, error responses, auth flows
638
+ - subagent_type: testing-performance-benchmarker
639
+ focus: response times, bottlenecks, Per-Scope bundle budgets
640
+ bundle_budgets:
641
+ Marketing: 500KB
642
+ Product: 300KB
643
+ Dashboard: 400KB
644
+ Internal: 200KB
645
+ block_threshold: ">25% over -> auto-blocks LRR SRE"
646
+ - subagent_type: a11y-architect
647
+ focus: WCAG 2.2 AA runtime
648
+ checks: [contrast, keyboard, focus, touch-targets>=44px, reduced-motion]
649
+ - subagent_type: engineering-security-engineer
650
+ focus: auth, input validation, data exposure, dependency vulns
651
+ - subagent_type: design-ux-researcher
652
+ focus: loading/error/empty states, mobile@375px, form validation, visual consistency vs style guide
653
+ - subagent_type: design-brand-guardian
654
+ focus: DNA drift check
655
+ notes: Phase 5 re-invite, does NOT issue verdict — feeds LRR Brand Guardian chapter
656
+ - id: "5.2"
657
+ name: Eval Harness -> Metric Loop
658
+ kind: loop
659
+ service: metric-loop
660
+ eval_case_count: 8-15
661
+ max_iterations: 4
662
+ fix_routing:
663
+ security: security-reviewer
664
+ a11y: engineering-frontend-developer
665
+ perf: testing-performance-benchmarker
666
+ post_loop: re-run-eval
667
+ - id: "5.3"
668
+ name: TEAM of 3 parallel
669
+ kind: dispatch-parallel
670
+ dispatch_mode: single-message
671
+ parallel_count: 3
672
+ dispatches:
673
+ - e2e-runner: Playwright, 3 iters mandatory
674
+ - dogfood-runner: agent-browser
675
+ - fake-data-detector
676
+ - id: "5.4"
677
+ name: Feedback Synthesizer
678
+ kind: dispatch-single
679
+ subagent_type: product-feedback-synthesizer
680
+ classifies_to: [phase-4-code, phase-3-visual, phase-2-structural]
681
+ max_fix_cycles: 2
682
+ ios_branch:
683
+ replaces: web-6+3
684
+ mode: three-slash-commands-in-sequence
685
+ sequence:
686
+ - /buildanything:verify
687
+ - /buildanything:ux-review
688
+ - /buildanything:fix
689
+ required_artifacts:
690
+ - docs/plans/ios-verify-report.md
691
+ - docs/plans/ios-ux-review-report.md
692
+ - "maestro/*.yaml (>=1)"
693
+ - "docs/plans/evidence/maestro-runs/*.png (>=1)"
694
+ writes:
695
+ - docs/plans/evidence/*.json
696
+ - evidence/fake-data-audit.md
697
+ - evidence/dogfood/classified-findings.json
698
+ - "learnings.jsonl (reality sweep PITFALL/PATTERN rows)"
699
+
700
+ - id: "6"
701
+ name: Launch Readiness Review
702
+ kind: evidence-sweep-then-5-parallel-chapters-then-aggregator
703
+ skip_conditions: []
704
+ reality_check:
705
+ id: "6.0"
706
+ hard_gate_preconditions:
707
+ all_projects: [".build-state.json exists + has recent VERIFY:PASS"]
708
+ web:
709
+ - eval-harness/baseline.json
710
+ - eval-harness/final.json
711
+ - e2e/iter-3-results.json
712
+ - dogfood/findings.md
713
+ - dogfood/classified-findings.json
714
+ - fake-data-audit.md
715
+ - manifest.json
716
+ ios:
717
+ - ios-verify-report.md
718
+ - ios-ux-review-report.md
719
+ - maestro/*.yaml (>=1)
720
+ - maestro-runs/*.png (>=1)
721
+ - manifest.json
722
+ dispatch:
723
+ subagent_type: testing-reality-checker
724
+ role: evidence-sweep-only
725
+ evidence_ref_mode: by-PATH-only-never-paste
726
+ tools: [Read, Glob, Grep]
727
+ writes:
728
+ - evidence/reality-check-manifest.json
729
+ manifest_fields: [file_path, sha256, byte_count, modified_time, verdict_contribution]
730
+ dissent_log_revisit:
731
+ reads: decisions.jsonl
732
+ filter: status==open AND revisit_criterion non-empty
733
+ action: semantically evaluate criterion vs current evidence
734
+ on_trigger:
735
+ - structural-finding
736
+ - "PITFALL row appended to learnings.jsonl with provenance.decision_id"
737
+ - flag-for-LRR
738
+ authority: Reality Checker does NOT issue combined_verdict — moved to LRR Aggregator.
739
+ chapters:
740
+ id: "6.1"
741
+ parallel_count: 5
742
+ dispatch_mode: single-message
743
+ panel:
744
+ - number: 1
745
+ name: Eng-Quality
746
+ merged_from: [Engineering, QA, PM]
747
+ subagent_types:
748
+ primary: code-reviewer
749
+ parallel_sub_dispatch: pr-test-analyzer
750
+ verdicts: [PASS, CONCERNS, BLOCK]
751
+ extra_fields: [requirements_coverage]
752
+ follow_up_allowed: false
753
+ - number: 2
754
+ name: Security
755
+ subagent_type: security-reviewer
756
+ verdicts: [PASS, CONCERNS, BLOCK]
757
+ follow_up_allowed: true
758
+ follow_up_caps: {mode: read-only, tool_calls_max: 15, only_if_verdict_would_be: BLOCK}
759
+ - number: 3
760
+ name: SRE
761
+ includes: [Performance]
762
+ subagent_type: engineering-sre
763
+ verdicts: [PASS, CONCERNS, BLOCK]
764
+ auto_block: bundle >25% over Scope budget
765
+ follow_up_allowed: true
766
+ follow_up_caps: {mode: read-only, tool_calls_max: 15, only_if_verdict_would_be: BLOCK}
767
+ - number: 4
768
+ name: A11y
769
+ subagent_type: a11y-architect
770
+ verdict_rules:
771
+ PASS: 0 Serious + 0 Critical
772
+ CONCERNS: 1-3 Serious + 0 Critical
773
+ BLOCK: any Critical OR >3 Serious
774
+ follow_up_allowed: false
775
+ status: NEW_SEAT
776
+ - number: 5
777
+ name: Brand Guardian
778
+ replaces: old-Design-mechanical-check
779
+ subagent_type: design-brand-guardian
780
+ verdicts: [PASS, CONCERNS, BLOCK]
781
+ axes: 6 DNA axes + 5 craft dims
782
+ follow_up_allowed: false
783
+ every_chapter_writes:
784
+ path: docs/plans/evidence/lrr/<chapter>.json
785
+ schema_source: protocols/launch-readiness.md
786
+ fields: [chapter, verdict, override_blocks_launch, evidence_files_read, findings, follow_up_spawned, follow_up_findings]
787
+ finding_fields: [severity, description, evidence_ref, related_decision_id]
788
+ pm_coverage_fold_in:
789
+ id: "6.1a"
790
+ location: sub-input of Eng-Quality chapter
791
+ field: requirements_coverage
792
+ notes: Chapter count stays 5.
793
+ aggregator:
794
+ id: "6.2"
795
+ kind: internal-inline-role-string
796
+ sequential: true
797
+ runs_after: all-5-chapter-files-exist
798
+ may_self_approve: false
799
+ must_cite: triggering-rule-number
800
+ step_1_file_completeness:
801
+ glob: evidence/lrr/*.json
802
+ on_missing_or_malformed: [log INCOMPLETE, write evidence/lrr-incomplete.json, STOP]
803
+ step_2_rules:
804
+ - id: 1
805
+ trigger: ANY override_blocks_launch == true
806
+ verdict: BLOCKED
807
+ - id: 2
808
+ trigger: ALL verdicts PASS AND 0 follow-ups
809
+ verdict: PRODUCTION READY
810
+ - id: 3
811
+ trigger: ANY verdict BLOCK (without override)
812
+ verdict: NEEDS WORK
813
+ action: route findings to fix loop
814
+ - id: 4
815
+ trigger: ANY CONCERNS
816
+ verdict: NEEDS WORK
817
+ action: concerns logged
818
+ - id: 5
819
+ trigger: follow_up_spawned AND follow_up.confirmed == true
820
+ action: treat parent chapter as BLOCK
821
+ - id: 6
822
+ trigger: contradictions between chapters on typed fields
823
+ verdict: BLOCKED
824
+ action: emit cross-chapter contradiction finding
825
+ step_3_star_rule:
826
+ symbol: ⭐⭐
827
+ name: backward routing on BLOCK
828
+ procedure:
829
+ - for each BLOCK finding, read related_decision_id
830
+ - look up row in decisions.jsonl
831
+ - read decided_by
832
+ - route BACKWARD to authoring phase
833
+ known_decided_by:
834
+ architect: phase-2
835
+ design-brand-guardian: phase-3
836
+ implementer: phase-4
837
+ human: gates-1-and-2
838
+ step_4_needs_work_classification:
839
+ code: phase-4
840
+ structural: phase-2
841
+ visual: phase-3
842
+ step_5_ready_writes:
843
+ path: evidence/lrr-aggregate.json
844
+ fields: [combined_verdict, chapter_verdicts, triggered_rule, findings, follow_ups_spawned, backward_routing, timestamp]
845
+ forward_to: phase-7
846
+ verdict_resolution:
847
+ PRODUCTION_READY:
848
+ action: advance-to-phase-7
849
+ NEEDS_WORK:
850
+ action: apply lrr-routing.json via re-entry template
851
+ max_cycles: 2
852
+ on_cycle_cap:
853
+ interactive: present-remaining-issues-ask-direction
854
+ autonomous: log-remaining-proceed-to-7-with-warning
855
+ BLOCKED:
856
+ action: apply backward routing
857
+ never_proceed_to: phase-7
858
+ hard_gates:
859
+ - LRR Aggregator is the ONLY agent that may emit combined_verdict.
860
+ re_entry_template: |
861
+ INPUT: {blocking_finding, prior_output, decision_row}
862
+ TASK: Revise prior_output to address blocking_finding ONLY.
863
+ Do NOT redo unaffected work. Emit new decision_row.
864
+
865
+ - id: "7"
866
+ name: Ship
867
+ kind: sequential-ship-pipeline
868
+ skip_conditions: []
869
+ precondition:
870
+ gate: verify-protocol
871
+ checks: 7
872
+ max_fix_attempts: 2
873
+ steps:
874
+ - id: "7.1.1"
875
+ name: Technical Writer
876
+ kind: dispatch-single
877
+ subagent_type: engineering-technical-writer
878
+ writes: [README, API docs, deploy notes]
879
+ target_from: PRD
880
+ - id: "7.1.2"
881
+ name: Documentation Metric Loop
882
+ kind: loop
883
+ service: metric-loop
884
+ metric: new-dev-can-follow-readme-end-to-end
885
+ max_iterations: 3
886
+ - id: "7.1.3"
887
+ name: App Store Optimizer
888
+ kind: dispatch-single
889
+ platform: ios
890
+ conditional_on: ship
891
+ subagent_type: marketing-app-store-optimizer
892
+ skills_granted: [asc-metadata-generator, asc-screenshot-generator, asc-privacy-manifest]
893
+ also_dispatch: ios-app-review-guardian
894
+ notes: Review guardian sanity check before TestFlight.
895
+ - id: "7.1.4"
896
+ name: Deploy
897
+ kind: dispatch-single
898
+ subagent_type: engineering-devops-automator
899
+ actions: [pre-deploy-checks, execute-deploy, verify-200-at-deploy-URL]
900
+ - id: "7.1.5"
901
+ name: Completion Report
902
+ kind: dispatch-single-internal
903
+ reads: [lrr-aggregate.json, reality-check-manifest.json]
904
+ surfaces_before_write: Verification Gap if declared != passing OR stub-flagged > 0
905
+ ios_ship:
906
+ optional: true
907
+ notes: simulator-only is valid end-state; separate from web ship
908
+ writes:
909
+ - docs/plans/learnings.jsonl
910
+
911
+ # ---------------------------------------------------------------------------
912
+ # 4. Cross-cutting callable services
913
+ # ---------------------------------------------------------------------------
914
+ callable_services:
915
+ metric_loop:
916
+ source: protocols/metric-loop.md
917
+ callers:
918
+ - phase-2 (architecture)
919
+ - phase-3.step-3.6 (design critic web)
920
+ - phase-3.step-3.4-ios (visual QA)
921
+ - phase-4 (per-task)
922
+ - phase-4.step-4.0.d (iOS scaffold)
923
+ - phase-5.step-5.2 (hardening)
924
+ - phase-7 (documentation)
925
+ contract:
926
+ metric_defined_by: orchestrator
927
+ measure_and_fix_isolation: separate-dispatches-never-share-context
928
+ fix_input_scope: top-issue + file-paths + acceptance-criteria (NOT full findings)
929
+ fix_cadence: one fix per iteration; measure impact before next fix
930
+ findings_persistence: each measurement is fresh; do not accumulate
931
+ state_tracking: .build-state.json (survives compaction)
932
+ iter_1_short_circuit: first measurement >= target + 10 -> exit, log exit_reason=short_circuit_iter1
933
+ exit_conditions: [target-met, iter>=max, stall (2 consecutive delta<=0), short-circuit-iter1]
934
+ autonomous_stall:
935
+ accept_at: ">= 60% target (warning)"
936
+ halt_below: "< 60% OR any CRITICAL remaining"
937
+
938
+ verify_protocol:
939
+ source: protocols/verify.md
940
+ callers: [phase-2, phase-4-scaffold-gate, phase-4-per-task, phase-5-pre-audit, phase-7-pre-ship]
941
+ contract:
942
+ sequential_checks: [Build, Type-Check, Lint, Test, Security, Diff-Review, Artifacts]
943
+ stop_on: first-FAIL
944
+ dispatch_mode: INTERNAL-inline role string "Verify scaffolding"
945
+ phase_4_per_task_scope: static-only (behavioral already done in metric loop)
946
+
947
+ decision_log:
948
+ source: protocols/decision-log.md
949
+ schema: docs/migration/decisions.schema.json
950
+ validator: eval/validate_decisions.py
951
+ writers:
952
+ - {phase: "1", agent: brainstorm-synthesis, row_count: 3}
953
+ - {phase: "2.2", agent: architecture-synthesizer, row_count: 4}
954
+ - {phase: "3", agent: DEFERRED, row_count: 0}
955
+ - {phase: "4", agent: implementer, condition: deviation-only}
956
+ readers: [phase-0-resume, phase-5-reality-checker, phase-6-lrr-aggregator]
957
+ constraints:
958
+ file: docs/plans/decisions.jsonl
959
+ mode: append-only
960
+ writer_authority: orchestrator-scribe-ONLY
961
+ max_rejected_alternatives_per_row: 3
962
+ max_sentences_per_reason: 2
963
+ max_sentences_per_revisit_criterion: 1
964
+ max_rows_per_phase: 5
965
+ total_rows_per_build: 15-25
966
+ linkage:
967
+ finding_field: related_decision_id
968
+ location: on-finding-object-inside-chapter-verdict
969
+
970
+ learnings:
971
+ file: learnings.jsonl
972
+ writers: [phase-5-reality-sweep, phase-7-late-learnings]
973
+ readers: [phase-0-learnings-loader (step-0.1d), phase-5-reality-sweep]
974
+ row_schema:
975
+ - run_id
976
+ - timestamp
977
+ - project_type
978
+ - phase_where_learning_surfaced
979
+ - metric
980
+ - top_issue
981
+ - fix_applied
982
+ - score_delta
983
+ - pattern_type: [PITFALL, PATTERN, HEURISTIC]
984
+ cross_run_injection: phase-4 implementer reads .active-learnings.md (top-3 filtered at phase-0)
985
+
986
+ briefing_officer:
987
+ kind: INTERNAL
988
+ callable_per: phase-4-task
989
+ contract:
990
+ reads: [refs.json, task-row]
991
+ writes: CONTEXT MAP (~40 lines)
992
+ mode: refs-not-pastes
993
+ excluded: [CLAUDE.md (auto-loaded), phase1-scratch (SPENT)]
994
+ context_map_shape:
995
+ persona_jtbd: design-doc.md#persona
996
+ product_scope: design-doc.md#scope
997
+ visual_tokens: visual-design-spec.md#tokens
998
+ component_variants: component-manifest.md#[category]
999
+ auth_model: architecture.md#auth
1000
+ data_schema: architecture.md#data-model
1001
+ sibling_task_deps: "sprint-tasks.md#[dep-id-1], #[dep-id-2]"
1002
+ prior_decisions: "decisions.jsonl rows [row-id-1], [row-id-2]"
1003
+ quality_targets: quality-targets.json (full file)
1004
+
1005
+ # ---------------------------------------------------------------------------
1006
+ # 5. Backward routing edges
1007
+ # ---------------------------------------------------------------------------
1008
+ backward_routing:
1009
+ - from: GATE-1-NO
1010
+ to: phase-1.step-1.0
1011
+ note: Brainstorm Facilitator r1 with feedback
1012
+ - from: GATE-2-NO
1013
+ to: phase-2
1014
+ note: with user feedback
1015
+ - from: phase-3.step-3.2b-DNA-persona-mismatch
1016
+ to: phase-3.step-3.0
1017
+ note: re-lock DNA
1018
+ - from: phase-5-audit-code-issue
1019
+ to: phase-4.target-task
1020
+ - from: phase-5-audit-design-issue
1021
+ to: phase-3.target-step
1022
+ - from: phase-5-audit-spec-issue
1023
+ to: phase-2
1024
+ note: re-architect
1025
+ - from: phase-5-dogfood-classified
1026
+ to: target_phase-per-classified-findings.json
1027
+ - from: phase-6-LRR-BLOCK
1028
+ via: star-star-rule
1029
+ to: authoring-phase (per decisions.jsonl.decided_by)
1030
+ - from: phase-6-LRR-NEEDS_WORK-code
1031
+ to: phase-4.target-task
1032
+ via: related_decision_id
1033
+ - from: phase-6-LRR-NEEDS_WORK-structural
1034
+ to: phase-2-or-phase-3
1035
+ note: by-finding-classification
1036
+
1037
+ re_entry_template: |
1038
+ INPUT: {blocking_finding: {...}, prior_output: <path>, decision_row: <row>}
1039
+ TASK: Revise prior_output to address blocking_finding ONLY.
1040
+ Do NOT redo unaffected work. Emit new decision_row.
1041
+
1042
+ re_entry_rules:
1043
+ phase-2: "Only the architect whose domain matches decision_row.author re-runs. Synthesizer re-runs once."
1044
+ phase-3: "Only the step named by decision_row.author re-runs (DNA lock, component manifest, or visual spec)."
1045
+ phase-4: "Target task only. Reads prior_output + changed files. Revises ONLY what blocking_finding requires. Does NOT re-run acceptance tests that passed. Does NOT touch files outside finding blast radius."
1046
+
1047
+ needs_work_loop_cap:
1048
+ max_cycles: 2
1049
+ on_third_needs_work:
1050
+ interactive: present-all-remaining-issues-ask-direction
1051
+ autonomous: log-remaining-proceed-to-phase-7-with-warning
1052
+
1053
+ # ---------------------------------------------------------------------------
1054
+ # 6. State schema (.build-state.json top-level)
1055
+ # ---------------------------------------------------------------------------
1056
+ state_schema:
1057
+ file: docs/plans/.build-state.json
1058
+ rendered_view: docs/plans/.build-state.md
1059
+ rendered_policy: regenerated-from-json-on-every-update-never-edit-markdown-directly
1060
+ compaction_trigger:
1061
+ check_at: every-phase-boundary
1062
+ field: dispatch_count
1063
+ threshold: 8
1064
+ action: save-all-state-reset-counter-regenerate-markdown-view
1065
+ note: TodoWrite does NOT survive compaction; rebuild from JSON on resume.
1066
+ fields:
1067
+ project_type: {type: enum, values: [web, ios]}
1068
+ ios_features: {type: object, when: project_type==ios, flags_count: 16}
1069
+ phase: {type: integer, range: [0, 7]}
1070
+ step: {type: string, pattern: "X.Y"}
1071
+ input: {type: string, value: $ARGUMENTS}
1072
+ context_level: {type: enum, values: [full-design, decision-brief, partial, raw-idea]}
1073
+ prerequisites: {type: object, populated_at: step-1.5}
1074
+ dispatch_count: {type: integer, reset_after_save: true}
1075
+ last_save_phase: {type: string}
1076
+ autonomous: {type: boolean}
1077
+ session_id: {type: string}
1078
+ session_started: {type: string, format: ISO-8601}
1079
+ completed_tasks: {type: array, items: task-id}
1080
+ metric_loop_scores: {type: array, items: per-loop-per-iter}
1081
+ decisions_next_id: {type: object, pattern: "{phase: next_seq}", example: {"1": 4, "2": 5, "4": 12}}
1082
+ resume_point:
1083
+ type: object
1084
+ fields:
1085
+ phase: {type: integer, range: [0, 7]}
1086
+ step: {type: string}
1087
+ completed_tasks: {type: array}
1088
+ git_branch: {type: string}