buildanything 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +55 -0
  4. package/README.md +71 -61
  5. package/agents/ios-app-review-guardian.md +49 -0
  6. package/agents/ios-foundation-models-specialist.md +46 -0
  7. package/agents/ios-storekit-specialist.md +52 -0
  8. package/agents/ios-swift-architect.md +102 -0
  9. package/agents/ios-swift-search.md +130 -0
  10. package/agents/ios-swift-ui-design.md +104 -0
  11. package/commands/build.md +80 -176
  12. package/commands/fix.md +65 -0
  13. package/commands/setup.md +73 -0
  14. package/commands/ux-review.md +63 -0
  15. package/commands/verify.md +72 -0
  16. package/hooks/session-start +18 -1
  17. package/package.json +5 -2
  18. package/protocols/brainstorm.md +99 -0
  19. package/protocols/build-fix.md +52 -0
  20. package/protocols/cleanup.md +54 -0
  21. package/protocols/design.md +269 -0
  22. package/protocols/eval-harness.md +61 -0
  23. package/protocols/fake-data-detector.md +64 -0
  24. package/protocols/ios-context.md +235 -0
  25. package/protocols/ios-frameworks-map.md +323 -0
  26. package/protocols/ios-phase-branches.md +162 -0
  27. package/protocols/ios-preflight.md +27 -0
  28. package/protocols/metric-loop.md +93 -0
  29. package/protocols/planning.md +87 -0
  30. package/protocols/smoke-test.md +110 -0
  31. package/protocols/verify.md +67 -0
  32. package/protocols/web-phase-branches.md +201 -0
  33. package/skills/ios/_VENDORED.md +60 -0
  34. package/skills/ios/activitykit/LICENSE +131 -0
  35. package/skills/ios/activitykit/SKILL.md +505 -0
  36. package/skills/ios/activitykit/references/activitykit-patterns.md +868 -0
  37. package/skills/ios/app-intents/LICENSE +131 -0
  38. package/skills/ios/app-intents/SKILL.md +494 -0
  39. package/skills/ios/app-intents/references/appintents-advanced.md +1076 -0
  40. package/skills/ios/apple-on-device-ai/LICENSE +131 -0
  41. package/skills/ios/apple-on-device-ai/SKILL.md +505 -0
  42. package/skills/ios/apple-on-device-ai/references/coreml-conversion.md +425 -0
  43. package/skills/ios/apple-on-device-ai/references/coreml-optimization.md +344 -0
  44. package/skills/ios/apple-on-device-ai/references/foundation-models.md +508 -0
  45. package/skills/ios/apple-on-device-ai/references/mlx-swift.md +285 -0
  46. package/skills/ios/ios-26-platform/SKILL.md +53 -0
  47. package/skills/ios/ios-26-platform/references/automatic-adoption.md +161 -0
  48. package/skills/ios/ios-26-platform/references/backward-compat.md +238 -0
  49. package/skills/ios/ios-26-platform/references/liquid-glass.md +255 -0
  50. package/skills/ios/ios-26-platform/references/swiftui-apis.md +277 -0
  51. package/skills/ios/ios-26-platform/references/toolbar-navigation.md +250 -0
  52. package/skills/ios/ios-bootstrap/SKILL.md +98 -0
  53. package/skills/ios/ios-bootstrap/references/apple-docs-mcp-config.md +28 -0
  54. package/skills/ios/ios-bootstrap/references/new-project-dialog.md +41 -0
  55. package/skills/ios/ios-bootstrap/references/xcode-mcp-config.md +29 -0
  56. package/skills/ios/ios-debugger-agent/LICENSE +21 -0
  57. package/skills/ios/ios-debugger-agent/SKILL.md +58 -0
  58. package/skills/ios/ios-debugger-agent/agents/openai.yaml +4 -0
  59. package/skills/ios/ios-entitlements-generator/SKILL.md +47 -0
  60. package/skills/ios/ios-hig/SKILL.md +41 -0
  61. package/skills/ios/ios-hig/references/accessibility.md +81 -0
  62. package/skills/ios/ios-hig/references/content.md +142 -0
  63. package/skills/ios/ios-hig/references/feedback.md +123 -0
  64. package/skills/ios/ios-hig/references/interaction.md +199 -0
  65. package/skills/ios/ios-hig/references/performance-platform.md +129 -0
  66. package/skills/ios/ios-hig/references/privacy-permissions.md +181 -0
  67. package/skills/ios/ios-hig/references/visual-design.md +84 -0
  68. package/skills/ios/ios-info-plist-hardening/SKILL.md +130 -0
  69. package/skills/ios/ios-maestro-flow-author/SKILL.md +68 -0
  70. package/skills/ios/ios-maestro-flow-author/references/input-and-scroll.yaml +17 -0
  71. package/skills/ios/ios-maestro-flow-author/references/modal-and-dismiss.yaml +14 -0
  72. package/skills/ios/ios-maestro-flow-author/references/onboarding-flow.yaml +16 -0
  73. package/skills/ios/ios-maestro-flow-author/references/tab-navigation.yaml +13 -0
  74. package/skills/ios/ios-maestro-flow-author/references/tap-and-assert.yaml +9 -0
  75. package/skills/ios/swift-accessibility/LICENSE +21 -0
  76. package/skills/ios/swift-accessibility/SKILL.md +371 -0
  77. package/skills/ios/swift-accessibility/examples/before-after-appkit.md +446 -0
  78. package/skills/ios/swift-accessibility/examples/before-after-swiftui.md +441 -0
  79. package/skills/ios/swift-accessibility/examples/before-after-uikit.md +464 -0
  80. package/skills/ios/swift-accessibility/references/assistive-access.md +441 -0
  81. package/skills/ios/swift-accessibility/references/display-settings.md +491 -0
  82. package/skills/ios/swift-accessibility/references/dynamic-type.md +420 -0
  83. package/skills/ios/swift-accessibility/references/media-accessibility.md +421 -0
  84. package/skills/ios/swift-accessibility/references/motor-input.md +393 -0
  85. package/skills/ios/swift-accessibility/references/nutrition-labels.md +362 -0
  86. package/skills/ios/swift-accessibility/references/platform-specifics.md +515 -0
  87. package/skills/ios/swift-accessibility/references/semantic-structure.md +585 -0
  88. package/skills/ios/swift-accessibility/references/testing-auditing.md +507 -0
  89. package/skills/ios/swift-accessibility/references/voice-control.md +317 -0
  90. package/skills/ios/swift-accessibility/references/voiceover-swiftui.md +584 -0
  91. package/skills/ios/swift-accessibility/references/voiceover-uikit.md +519 -0
  92. package/skills/ios/swift-accessibility/references/wcag-mapping.md +167 -0
  93. package/skills/ios/swift-accessibility/resources/audit-template.swift +128 -0
  94. package/skills/ios/swift-accessibility/resources/qa-checklist.md +258 -0
  95. package/skills/ios/swift-concurrency/LICENSE +21 -0
  96. package/skills/ios/swift-concurrency/SKILL.md +171 -0
  97. package/skills/ios/swift-concurrency/references/_index.md +50 -0
  98. package/skills/ios/swift-concurrency/references/actors.md +660 -0
  99. package/skills/ios/swift-concurrency/references/async-algorithms.md +847 -0
  100. package/skills/ios/swift-concurrency/references/async-await-basics.md +266 -0
  101. package/skills/ios/swift-concurrency/references/async-sequences.md +710 -0
  102. package/skills/ios/swift-concurrency/references/core-data.md +560 -0
  103. package/skills/ios/swift-concurrency/references/glossary.md +135 -0
  104. package/skills/ios/swift-concurrency/references/linting.md +155 -0
  105. package/skills/ios/swift-concurrency/references/memory-management.md +569 -0
  106. package/skills/ios/swift-concurrency/references/migration.md +1104 -0
  107. package/skills/ios/swift-concurrency/references/performance.md +593 -0
  108. package/skills/ios/swift-concurrency/references/sendable.md +598 -0
  109. package/skills/ios/swift-concurrency/references/tasks.md +636 -0
  110. package/skills/ios/swift-concurrency/references/testing.md +592 -0
  111. package/skills/ios/swift-concurrency/references/threading.md +495 -0
  112. package/skills/ios/swift-security-expert/LICENSE +21 -0
  113. package/skills/ios/swift-security-expert/SKILL.md +470 -0
  114. package/skills/ios/swift-security-expert/references/biometric-authentication.md +565 -0
  115. package/skills/ios/swift-security-expert/references/certificate-trust.md +592 -0
  116. package/skills/ios/swift-security-expert/references/common-anti-patterns.md +690 -0
  117. package/skills/ios/swift-security-expert/references/compliance-owasp-mapping.md +537 -0
  118. package/skills/ios/swift-security-expert/references/credential-storage-patterns.md +721 -0
  119. package/skills/ios/swift-security-expert/references/cryptokit-public-key.md +505 -0
  120. package/skills/ios/swift-security-expert/references/cryptokit-symmetric.md +497 -0
  121. package/skills/ios/swift-security-expert/references/keychain-access-control.md +508 -0
  122. package/skills/ios/swift-security-expert/references/keychain-fundamentals.md +596 -0
  123. package/skills/ios/swift-security-expert/references/keychain-item-classes.md +476 -0
  124. package/skills/ios/swift-security-expert/references/keychain-sharing.md +458 -0
  125. package/skills/ios/swift-security-expert/references/migration-legacy-stores.md +727 -0
  126. package/skills/ios/swift-security-expert/references/secure-enclave.md +539 -0
  127. package/skills/ios/swift-security-expert/references/testing-security-code.md +781 -0
  128. package/skills/ios/swift-testing-expert/LICENSE +21 -0
  129. package/skills/ios/swift-testing-expert/SKILL.md +79 -0
  130. package/skills/ios/swift-testing-expert/references/_index.md +12 -0
  131. package/skills/ios/swift-testing-expert/references/async-testing-and-waiting.md +127 -0
  132. package/skills/ios/swift-testing-expert/references/expectations.md +145 -0
  133. package/skills/ios/swift-testing-expert/references/fundamentals.md +141 -0
  134. package/skills/ios/swift-testing-expert/references/migration-from-xctest.md +127 -0
  135. package/skills/ios/swift-testing-expert/references/parallelization-and-isolation.md +95 -0
  136. package/skills/ios/swift-testing-expert/references/parameterized-testing.md +284 -0
  137. package/skills/ios/swift-testing-expert/references/performance-and-best-practices.md +187 -0
  138. package/skills/ios/swift-testing-expert/references/traits-and-tags.md +114 -0
  139. package/skills/ios/swift-testing-expert/references/xcode-workflows.md +70 -0
  140. package/skills/ios/swiftdata-pro/LICENSE +21 -0
  141. package/skills/ios/swiftdata-pro/SKILL.md +102 -0
  142. package/skills/ios/swiftdata-pro/agents/openai.yaml +10 -0
  143. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.png +0 -0
  144. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.svg +29 -0
  145. package/skills/ios/swiftdata-pro/references/class-inheritance.md +104 -0
  146. package/skills/ios/swiftdata-pro/references/cloudkit.md +10 -0
  147. package/skills/ios/swiftdata-pro/references/core-rules.md +20 -0
  148. package/skills/ios/swiftdata-pro/references/indexing.md +27 -0
  149. package/skills/ios/swiftdata-pro/references/predicates.md +73 -0
  150. package/skills/ios/swiftui-design-principles/AGENTS.md +21 -0
  151. package/skills/ios/swiftui-design-principles/LICENSE +21 -0
  152. package/skills/ios/swiftui-design-principles/README.md +41 -0
  153. package/skills/ios/swiftui-design-principles/SKILL.md +605 -0
  154. package/skills/ios/swiftui-design-principles/metadata.json +10 -0
  155. package/skills/ios/swiftui-liquid-glass/LICENSE +21 -0
  156. package/skills/ios/swiftui-liquid-glass/SKILL.md +95 -0
  157. package/skills/ios/swiftui-liquid-glass/agents/openai.yaml +4 -0
  158. package/skills/ios/swiftui-liquid-glass/references/liquid-glass.md +280 -0
  159. package/skills/ios/swiftui-performance-audit/LICENSE +21 -0
  160. package/skills/ios/swiftui-performance-audit/SKILL.md +111 -0
  161. package/skills/ios/swiftui-performance-audit/agents/openai.yaml +4 -0
  162. package/skills/ios/swiftui-performance-audit/references/code-smells.md +150 -0
  163. package/skills/ios/swiftui-performance-audit/references/demystify-swiftui-performance-wwdc23.md +46 -0
  164. package/skills/ios/swiftui-performance-audit/references/optimizing-swiftui-performance-instruments.md +29 -0
  165. package/skills/ios/swiftui-performance-audit/references/profiling-intake.md +44 -0
  166. package/skills/ios/swiftui-performance-audit/references/report-template.md +47 -0
  167. package/skills/ios/swiftui-performance-audit/references/understanding-hangs-in-your-app.md +33 -0
  168. package/skills/ios/swiftui-performance-audit/references/understanding-improving-swiftui-performance.md +52 -0
  169. package/skills/ios/swiftui-pro/LICENSE +21 -0
  170. package/skills/ios/swiftui-pro/SKILL.md +108 -0
  171. package/skills/ios/swiftui-pro/agents/openai.yaml +10 -0
  172. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
  173. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
  174. package/skills/ios/swiftui-pro/references/accessibility.md +13 -0
  175. package/skills/ios/swiftui-pro/references/api.md +39 -0
  176. package/skills/ios/swiftui-pro/references/data.md +43 -0
  177. package/skills/ios/swiftui-pro/references/design.md +31 -0
  178. package/skills/ios/swiftui-pro/references/hygiene.md +9 -0
  179. package/skills/ios/swiftui-pro/references/navigation.md +14 -0
  180. package/skills/ios/swiftui-pro/references/performance.md +46 -0
  181. package/skills/ios/swiftui-pro/references/swift.md +56 -0
  182. package/skills/ios/swiftui-pro/references/views.md +35 -0
  183. package/skills/ios/swiftui-ui-patterns/LICENSE +21 -0
  184. package/skills/ios/swiftui-ui-patterns/SKILL.md +100 -0
  185. package/skills/ios/swiftui-ui-patterns/agents/openai.yaml +4 -0
  186. package/skills/ios/swiftui-ui-patterns/references/app-wiring.md +201 -0
  187. package/skills/ios/swiftui-ui-patterns/references/async-state.md +96 -0
  188. package/skills/ios/swiftui-ui-patterns/references/components-index.md +50 -0
  189. package/skills/ios/swiftui-ui-patterns/references/controls.md +57 -0
  190. package/skills/ios/swiftui-ui-patterns/references/deeplinks.md +66 -0
  191. package/skills/ios/swiftui-ui-patterns/references/focus.md +90 -0
  192. package/skills/ios/swiftui-ui-patterns/references/form.md +97 -0
  193. package/skills/ios/swiftui-ui-patterns/references/grids.md +71 -0
  194. package/skills/ios/swiftui-ui-patterns/references/haptics.md +71 -0
  195. package/skills/ios/swiftui-ui-patterns/references/input-toolbar.md +51 -0
  196. package/skills/ios/swiftui-ui-patterns/references/lightweight-clients.md +93 -0
  197. package/skills/ios/swiftui-ui-patterns/references/list.md +86 -0
  198. package/skills/ios/swiftui-ui-patterns/references/loading-placeholders.md +38 -0
  199. package/skills/ios/swiftui-ui-patterns/references/macos-settings.md +71 -0
  200. package/skills/ios/swiftui-ui-patterns/references/matched-transitions.md +59 -0
  201. package/skills/ios/swiftui-ui-patterns/references/media.md +73 -0
  202. package/skills/ios/swiftui-ui-patterns/references/menu-bar.md +101 -0
  203. package/skills/ios/swiftui-ui-patterns/references/navigationstack.md +159 -0
  204. package/skills/ios/swiftui-ui-patterns/references/overlay.md +45 -0
  205. package/skills/ios/swiftui-ui-patterns/references/performance.md +62 -0
  206. package/skills/ios/swiftui-ui-patterns/references/previews.md +48 -0
  207. package/skills/ios/swiftui-ui-patterns/references/scroll-reveal.md +133 -0
  208. package/skills/ios/swiftui-ui-patterns/references/scrollview.md +87 -0
  209. package/skills/ios/swiftui-ui-patterns/references/searchable.md +71 -0
  210. package/skills/ios/swiftui-ui-patterns/references/sheets.md +155 -0
  211. package/skills/ios/swiftui-ui-patterns/references/split-views.md +72 -0
  212. package/skills/ios/swiftui-ui-patterns/references/tabview.md +114 -0
  213. package/skills/ios/swiftui-ui-patterns/references/theming.md +71 -0
  214. package/skills/ios/swiftui-ui-patterns/references/title-menus.md +93 -0
  215. package/skills/ios/swiftui-ui-patterns/references/top-bar.md +49 -0
  216. package/skills/ios/swiftui-view-refactor/LICENSE +21 -0
  217. package/skills/ios/swiftui-view-refactor/SKILL.md +207 -0
  218. package/skills/ios/swiftui-view-refactor/agents/openai.yaml +4 -0
  219. package/skills/ios/swiftui-view-refactor/references/mv-patterns.md +161 -0
  220. package/skills/ios/widgetkit/LICENSE +131 -0
  221. package/skills/ios/widgetkit/SKILL.md +502 -0
  222. package/skills/ios/widgetkit/references/widgetkit-advanced.md +871 -0
@@ -0,0 +1,87 @@
1
+ # Planning Protocol
2
+
3
+ You are the orchestrator converting a validated Design Document and Architecture Document into an ordered, developer-ready task list.
4
+
5
+ ## Input
6
+
7
+ You need two documents before running this protocol:
8
+ - **Design Document** (`docs/plans/YYYY-MM-DD-[topic]-design.md`) — scope, user flows, data model, tech stack
9
+ - **Architecture Document** (`docs/plans/architecture.md`) — services, API contracts, database schema, component tree
10
+
11
+ ## Step 0: User Journeys & NFRs (orchestrator-authored)
12
+
13
+ Before breaking into tasks, YOU (the orchestrator) define two things from documents you already have:
14
+
15
+ **User Journeys (3-7):** End-to-end flows derived from the Design Document's user flows and Architecture's page routes. Each journey is a numbered sequence of user actions covering one core workflow.
16
+
17
+ ```
18
+ ### Journey 1: [name]
19
+ 1. User [action] on [page]
20
+ 2. User [action] → sees [result]
21
+ 3. User [action] → system [response]
22
+ ...
23
+ ```
24
+
25
+ Every journey step must map to at least one sprint task. If a step has no task, you have a planning gap — add the task. These journeys become the spec for Phase 6 E2E tests.
26
+
27
+ **Non-Functional Requirements (NFRs):** Extract from the architecture and research docs. Keep to what's measurable:
28
+
29
+ ```
30
+ ## NFRs
31
+ - **Performance:** [e.g., API response < 200ms, page load < 3s, streaming data latency < 1s]
32
+ - **Accessibility:** [e.g., WCAG AA, keyboard navigable, screen reader compatible]
33
+ - **Security:** [e.g., auth required for all /api routes, data encrypted at rest, no secrets in client bundle]
34
+ - **Reliability:** [e.g., graceful degradation on API failure, retry logic for network errors]
35
+ ```
36
+
37
+ Only include NFRs the project actually needs — don't add generic ones. These feed into Phase 6 hardening audit thresholds.
38
+
39
+ Save both to the top of `docs/plans/sprint-tasks.md`, before the task list.
40
+
41
+ ## Step 1: Break Down
42
+
43
+ Decompose the architecture into ordered, atomic tasks. Each task must be:
44
+
45
+ - **Implementable independently** — a developer agent can build it without needing unfinished work from other tasks
46
+ - **Testable** — there are concrete acceptance criteria that can be verified
47
+ - **Scoped to MVP** — if the design doc says a feature is deferred, do not create tasks for it
48
+
49
+ For each task:
50
+
51
+ ```
52
+ ### Task [N]: [name]
53
+ **Type:** frontend / backend / integration / infrastructure
54
+ **Description:** [what to build, 2-3 sentences]
55
+ **Acceptance Criteria:**
56
+ - [ ] [specific, verifiable criterion]
57
+ - [ ] [specific, verifiable criterion]
58
+ **Dependencies:** [task numbers that must complete first, or "none"]
59
+ **Size:** S (< 1 hour) / M (1-3 hours) / L (3+ hours)
60
+ **Behavioral Test:** [For UI tasks: "Navigate to [page], [action], verify [expected outcome]". For API tasks: "curl -X POST /api/[endpoint] with [payload] → expect [response]". For non-interactive tasks: "N/A"]
61
+ ```
62
+
63
+ ## Step 2: Order
64
+
65
+ Order tasks by dependency chain, then by priority within each dependency level:
66
+
67
+ 1. Infrastructure/scaffolding first (project setup, database schema, base config)
68
+ 2. Core data model and API endpoints
69
+ 3. Primary user flow (the main thing the user does)
70
+ 4. Supporting features
71
+ 5. Polish, error handling, edge cases
72
+
73
+ Flag any circular dependencies — these indicate an architecture problem that needs resolution before building.
74
+
75
+ ## Step 3: Validate
76
+
77
+ Check the task list against the design doc:
78
+
79
+ - Every feature in MVP scope has at least one task
80
+ - No task exceeds the MVP boundary
81
+ - No task is too large (L tasks should be split if possible)
82
+ - Dependency chains are no deeper than 3 levels
83
+ - Acceptance criteria are specific enough that a developer agent can verify them without ambiguity
84
+
85
+ ## Step 4: Save
86
+
87
+ Save to `docs/plans/sprint-tasks.md`.
@@ -0,0 +1,110 @@
1
+ # Smoke Test Protocol (Behavioral Verification via agent-browser)
2
+
3
+ You are the orchestrator. You are about to verify that a completed task actually works in a browser by interacting with it and collecting machine-readable evidence.
4
+
5
+ ## When to Run
6
+
7
+ After a UI-affecting task passes the Verification Protocol. Skip for non-UI tasks (API-only, config, infrastructure, CLI tools). If the task has no behavioral acceptance criteria or no affected page/route, skip.
8
+
9
+ ## Inputs
10
+
11
+ - **Acceptance criteria**: the task's behavioral acceptance criteria (e.g., "clicking Submit saves the form and shows a success toast").
12
+ - **Affected route**: the page or route to test (e.g., `/settings`).
13
+
14
+ ## Step 0: Preflight
15
+
16
+ Check that `agent-browser` is available:
17
+
18
+ ```
19
+ which agent-browser
20
+ ```
21
+
22
+ If not installed, log "SMOKE: SKIPPED -- agent-browser not available" to `docs/plans/.build-state.md` and return. Do not block the build.
23
+
24
+ ## Step 1: Start Dev Server
25
+
26
+ Detect the dev script from `package.json` (`dev`, `start`, or `serve`). If the server is already running on the expected port, skip. Otherwise start it in the background and wait for the port to be listening.
27
+
28
+ ## Step 2: Capture Baseline
29
+
30
+ ```
31
+ agent-browser open http://localhost:[port]/[affected-route]
32
+ agent-browser wait --load networkidle
33
+ agent-browser snapshot -i
34
+ ```
35
+
36
+ Save the snapshot output as the "before" state. This is your baseline for diffing.
37
+
38
+ ## Step 3: Execute Acceptance Criteria
39
+
40
+ For EACH behavioral acceptance criterion, sequentially:
41
+
42
+ 1. **Interact** -- execute the required action (`agent-browser click`, `fill`, `select`, `press`, etc.).
43
+ 2. **Diff** -- `agent-browser diff snapshot`. If the diff is empty after an interaction that should change the DOM, the feature is broken. Mark criterion FAIL.
44
+ 3. **Wait for outcome** -- `agent-browser wait --text "expected outcome"` with a 10s timeout. Timeout means FAIL.
45
+ 4. **Check network** -- `agent-browser network requests --status 4xx,5xx`. Any failed API call related to this criterion means FAIL.
46
+
47
+ After each page navigation, re-snapshot. Element refs (`@e1`, `@e2`, etc.) invalidate on navigation.
48
+
49
+ ## Step 4: Collect Evidence
50
+
51
+ After all criteria are tested:
52
+
53
+ ```
54
+ agent-browser errors
55
+ agent-browser screenshot --annotate
56
+ agent-browser network har stop
57
+ ```
58
+
59
+ For UI tasks, also capture a mobile viewport screenshot:
60
+
61
+ ```
62
+ agent-browser resize 375 812
63
+ agent-browser screenshot --annotate
64
+ ```
65
+
66
+ Save the mobile screenshot to the evidence directory as `[task-name]-mobile.png`.
67
+
68
+ ```
69
+ agent-browser resize 1920 1080
70
+ ```
71
+
72
+ If the mobile screenshot shows horizontal scrolling, overlapping elements, or text smaller than 14px, flag as a UX issue in the smoke test results.
73
+
74
+ Save all evidence to `docs/plans/evidence/[task-name]/`:
75
+
76
+ | File | Content | Format |
77
+ |------|---------|--------|
78
+ | `before.snapshot.txt` | Baseline DOM snapshot | text |
79
+ | `after.snapshot.txt` | Final DOM snapshot | text |
80
+ | `screenshot.png` | Annotated screenshot of final state | image |
81
+ | `errors.txt` | Uncaught JS exceptions | text |
82
+ | `session.har` | Full network trace | HAR |
83
+
84
+ Start HAR capture (`agent-browser network har start`) at Step 2 and stop at Step 4. The HAR file is saved for Phase 6.2d fake data analysis -- do not parse it here.
85
+
86
+ ## Step 5: Verdict
87
+
88
+ **PASS**: all criteria verified, zero uncaught exceptions, zero failed API calls. Log "SMOKE: PASS" to `docs/plans/.build-state.md`. Close the browser.
89
+
90
+ **FAIL**: spawn a fix agent with this prompt:
91
+
92
+ "Fix smoke test failure for [task-name]. EXPECTED: [criterion text]. ACTUAL: [what happened -- empty diff / timeout / network error]. Evidence: [annotated screenshot path], [snapshot diff], [error log], [failed network requests]. Fix the implementation to match the expected behavior."
93
+
94
+ After the fix agent completes, re-run from Step 2.
95
+
96
+ <HARD-GATE>
97
+ MAX 2 RETRY CYCLES: smoke -> fix -> re-smoke -> fix -> re-smoke. If still failing after 2 fix attempts:
98
+ - **Interactive mode:** present evidence to the user. Include the annotated screenshot, snapshot diff, and error log.
99
+ - **Autonomous mode:** log "SMOKE: FAILED after 2 retries" to `docs/plans/build-log.md` and proceed with a warning.
100
+ Do not loop further.
101
+ </HARD-GATE>
102
+
103
+ ## Rules
104
+
105
+ - Use `agent-browser` CLI commands only. Not Playwright MCP, not Playwright directly.
106
+ - Evidence is for the agent, not humans. No video recording, no dashboards.
107
+ - Element refs (`@e1`, `@e2`) invalidate on every page change. Re-snapshot after any navigation.
108
+ - One criterion at a time. Measure each interaction's impact before moving to the next.
109
+ - HAR file is for downstream analysis (Phase 6.2d). This protocol does not parse it.
110
+ - `agent-browser close` before returning, regardless of pass/fail.
@@ -0,0 +1,67 @@
1
+ # Verification Protocol
2
+
3
+ You are the orchestrator. You are about to run a deterministic verification gate — a fast, sequential pass/fail check that catches regressions before expensive audit agents run.
4
+
5
+ ## When to Run
6
+
7
+ Run this protocol at every phase boundary: after scaffolding, after each task, before final review. It is cheap. Run it often.
8
+
9
+ ## Step 1: Detect Stack
10
+
11
+ Before running checks, detect the project's stack from manifest files:
12
+
13
+ | Manifest | Stack | Build | Types | Lint | Test | Security |
14
+ |----------|-------|-------|-------|------|------|----------|
15
+ | `package.json` | Node | `npm run build` | `npx tsc --noEmit` | `npm run lint` | `npm test` | `npm audit` |
16
+ | `requirements.txt` / `pyproject.toml` | Python | — | `mypy .` | `ruff check .` | `pytest` | `pip audit` |
17
+ | `go.mod` | Go | `go build ./...` | (included in build) | `golangci-lint run` | `go test ./...` | `govulncheck ./...` |
18
+ | `Cargo.toml` | Rust | `cargo build` | (included in build) | `cargo clippy` | `cargo test` | `cargo audit` |
19
+
20
+ Behavioral check: if `tests/e2e/acceptance/` exists, run `npx playwright test tests/e2e/acceptance/ --reporter=list`. If agent-browser is available, also run `agent-browser errors` to check for runtime exceptions.
21
+
22
+ Skip any check that does not apply (e.g., skip Build for a pure Python script, skip Type-Check for JavaScript without TypeScript). A skipped check counts as PASS.
23
+
24
+ ## Step 2: Run Checks Sequentially
25
+
26
+ Call the Agent tool — description: "Verify [phase name]" — mode: "bypassPermissions" — prompt:
27
+
28
+ "Run the Verification Protocol. Execute all 7 checks sequentially, stop on first failure. Report: VERIFY: PASS (7/7) or VERIFY: FAIL at step [N] — [check name]: [reason]."
29
+
30
+ The agent runs these checks in order, stopping on the first FAIL:
31
+
32
+ | # | Check | What it does |
33
+ |---|-------|-------------|
34
+ | 1 | Build | Project compiles/bundles without errors |
35
+ | 2 | Type-Check | No type errors (tsc, mypy, etc.) |
36
+ | 3 | Lint | No lint violations |
37
+ | 4 | Test | All tests pass |
38
+ | 5 | Security | No known vulnerabilities in deps |
39
+ | 6 | Diff Review | `git diff` of uncommitted changes — no debug code, no secrets, no obvious regressions |
40
+ | 7 | Behavioral | Acceptance tests pass against running app (skip if no tests/e2e/acceptance/ directory) |
41
+
42
+ <HARD-GATE>
43
+ ONE AGENT, ONE PASS: The orchestrator spawns exactly ONE agent for the entire verification. This is a single Agent tool call, not 6 separate agents. The agent runs each check as a sequential shell command and evaluates the result before proceeding.
44
+ </HARD-GATE>
45
+
46
+ ## Step 3: Handle Result
47
+
48
+ **On PASS:** Log `VERIFY: PASS (7/7)` to `docs/plans/.build-state.md`. Proceed to next phase.
49
+
50
+ **On FAIL:** Read the failure reason and spawn a targeted fix agent:
51
+
52
+ | Failed Check | Fix Strategy |
53
+ |-------------|-------------|
54
+ | Build / Type-Check / Lint | Run the Build-Fix Protocol (`protocols/build-fix.md`). It isolates the first error, fixes it, rebuilds, detects cascade resolution, and reverts bad fixes automatically. |
55
+ | Test | Spawn fix agent: "Fix the failing test: [test name]. Read the test, read the implementation, fix the implementation — not the test — unless the test is wrong." |
56
+ | Security | Spawn fix agent: "Resolve vulnerability: [advisory]. Update the dependency or apply the recommended remediation." |
57
+ | Diff Review | Spawn fix agent: "Remove debug code / hardcoded secrets / regressions found in diff review: [details]." |
58
+ | Behavioral | Spawn fix agent: "The acceptance test expects [expected] but the app does [actual]. Read the failing test in tests/e2e/acceptance/, read the implementation, fix the implementation to match the expected behavior." |
59
+
60
+ After the fix agent completes, re-run verification from Step 2.
61
+
62
+ <HARD-GATE>
63
+ MAX 3 FIX ATTEMPTS: If verification fails 3 times on the same phase:
64
+ - **Interactive mode:** present the failure history to the user. Ask for direction.
65
+ - **Autonomous mode:** log the failure to `docs/plans/build-log.md` and proceed with a warning.
66
+ Do not loop forever.
67
+ </HARD-GATE>
@@ -0,0 +1,201 @@
1
+ # Web Phase Branches
2
+
3
+ _Loaded into orchestrator session context when `project_type=web` (the default). Contains per-phase web-specific instructions. Mode-agnostic phase scaffolding lives in `commands/build.md`._
4
+
5
+ ## Phase 3 — Design (web branch)
6
+
7
+ **Goal:** Transform architecture into a research-backed visual design system, proven with Playwright screenshots. Fully autonomous — agents research, decide, and iterate without user input.
8
+
9
+ **Skip if** the project has no user-facing frontend (CLI tools, pure APIs, backend services).
10
+
11
+ HARD-GATE: UI/UX IS THE PRODUCT. This phase is a full peer to Architecture and Build — not a footnote, not an afterthought, not a "nice to have." Do NOT skip, compress, or rush this phase for any reason. The agents must research real competitors and award-winning sites, make deliberate visual choices backed by that research, build a living style guide with every component rendered and interactive, and iterate with Playwright-verified visual QA before a single line of product code is written. Phase 4 (Foundation) WILL NOT START without `docs/plans/visual-design-spec.md`. If it does not exist, return here.
12
+
13
+ ### Step 3.1 — Design Research (2 agents, parallel, both use Playwright)
14
+
15
+ Follow the Design Protocol (`protocols/design.md`), Step 3.1.
16
+
17
+ Call the Agent tool 2 times in one message:
18
+
19
+ 1. Description: "Competitive visual audit" — Prompt: "Research the top 5-8 competitors/analogues for: [product description]. Use Playwright to screenshot each site (desktop 1920x1080 + mobile 375x812). Screenshot standout components (hero, cards, forms, nav, CTAs). Save to docs/plans/design-references/competitors/. Analyze visual language: colors, typography, spacing, what feels premium vs cheap. Rank by visual quality. DESIGN DOC: [paste]."
20
+
21
+ 2. Description: "Design inspiration mining" — Prompt: "Search Awwwards.com, Godly.website, SiteInspire for award-winning sites in category: [product category]. Use Playwright to screenshot top 5-8 results + standout components. Save to docs/plans/design-references/inspiration/. Identify visual trends, what separates best-in-class from generic. DESIGN DOC: [paste]."
22
+
23
+ After both return, synthesize a **Design Research Brief** to `docs/plans/design-research.md`. Include all screenshot paths.
24
+
25
+ ### Step 3.2 — Design Direction (2 agents, sequential)
26
+
27
+ Follow the Design Protocol (`protocols/design.md`), Step 3.2.
28
+
29
+ 1. Call the Agent tool — description: "UX architecture" — Prompt: "Create structural design foundation. INPUTS: frontend architecture section from architecture.md [paste], Design Research Brief [paste], reference screenshot paths [list], user persona [paste]. OUTPUT: information architecture, layout strategy, component hierarchy, responsive approach, interaction patterns. Base decisions on competitive research, not generic patterns."
30
+
31
+ 2. Call the Agent tool — description: "Visual design spec" — Prompt: "Create the Visual Design Spec with AUTONOMOUS decisions — pick the single best direction, do not present options. INPUTS: UX foundation [paste previous output], Design Research Brief [paste], reference screenshot paths [list], user persona [paste]. OUTPUT: color system (with hex, light+dark), typography (Google Fonts, mathematical scale), 8px spacing system, tinted shadow system, border radius, animation/motion, component styles with ALL states. Every choice must cite the research. Apply anti-AI-template rules from the Design Protocol. Save to docs/plans/visual-design-spec.md."
32
+
33
+ ### Step 3.3 — Living Style Guide (1 implementation agent)
34
+
35
+ Follow the Design Protocol (`protocols/design.md`), Step 3.3.
36
+
37
+ Call the Agent tool — description: "Build living style guide" — mode: "bypassPermissions" — prompt: "[COMPLEXITY: L] Build a living style guide page (/design-system route or standalone HTML). INPUTS: Visual Design Spec [paste], UX foundation [paste relevant sections], reference screenshots [list paths — these are your quality targets]. Must include rendered, interactive examples of: color swatches, typography scale, spacing scale, buttons (all states), form elements (all states), cards, navigation, feedback components (alerts, toasts, spinners, empty states), modals/overlays, and layout grid examples. Every component interactive (hover, focus, transitions work). Mobile-responsive. This ships with the product. Commit: 'feat: living style guide'."
38
+
39
+ ### Step 3.4 — Visual QA Loop (Playwright + Metric Loop)
40
+
41
+ Run the Metric Loop Protocol (`protocols/metric-loop.md`) using the measurement criteria from the Design Protocol (`protocols/design.md`, Step 3.4).
42
+
43
+ Measurement: Playwright screenshots of the living style guide sections (desktop + mobile). Design critic agent scores 0-100 across 6 dimensions: spacing/alignment, typography hierarchy, color harmony, component polish, responsive quality, originality (anti-AI-template check). Receives screenshots + Visual Design Spec + reference screenshots.
44
+
45
+ **Target: 80. Max 5 iterations.** On stall: accept if >= 65, log warning below 65.
46
+
47
+ ### Step 3.5 — Autonomous Quality Gate
48
+
49
+ Log to `docs/plans/build-log.md`: final screenshot paths, score history table, design decisions, originality score. No user pause. Proceed to Phase 4.
50
+
51
+ Phase 4 HARD-GATE: web mode requires `docs/plans/visual-design-spec.md` to exist before Phase 4 starts. If missing, return to Phase 3.
52
+
53
+ ## Phase 4 — Foundation (web branch)
54
+
55
+ ### Step 4.1 — Scaffolding (web)
56
+
57
+ Call the Agent tool — description: "Project scaffolding" — mode: "bypassPermissions" — prompt: "[COMPLEXITY: M] Set up the project from this architecture: [paste]. Create directory structure, dependencies, build tooling, linting config, test framework with one passing test, .gitignore, .env.example. Commit: 'feat: initial scaffolding'."
58
+
59
+ ### Step 4.2 — Design System (web, frontend only)
60
+
61
+ Call the Agent tool — description: "Design system setup" — mode: "bypassPermissions" — prompt: "Implement the design system from the Visual Design Spec: [paste from docs/plans/visual-design-spec.md]. Create CSS tokens matching the spec's color system, typography scale, spacing system, shadow/elevation tokens, and base layout components. The living style guide from Phase 3 is the reference implementation — components must match. Commit: 'feat: design system'."
62
+
63
+ ### Step 4.2b — Acceptance Test Scaffolding (web)
64
+
65
+ Call the Agent tool — description: "Scaffold acceptance tests" — mode: "bypassPermissions" — prompt: "Read docs/plans/sprint-tasks.md. For every task with a Behavioral Test field, create a Playwright test stub in tests/e2e/acceptance/. Use Page Object Model. Each test should: navigate to the page, perform the interaction, assert the expected outcome. Tests should FAIL right now (features aren't built yet) — that's correct. Also ensure agent-browser is available (run `which agent-browser`). Commit: 'test: scaffold acceptance tests from sprint tasks'."
66
+
67
+ ## Phase 5 — Build (web branch)
68
+
69
+ ### Step 5.1 — Implement (web)
70
+
71
+ Call the Agent tool — description: "[task name]" — mode: "bypassPermissions" — prompt: "TASK: [task description + acceptance criteria]. HANDOFF — Architecture section: [paste ONLY the relevant section from architecture.md]. Design section: [paste ONLY the relevant section from the design doc]. Previous task output: [what the last completed task produced, if relevant]. For UI tasks: the living style guide at /design-system shows every component's exact styling and states — match it. Implement fully with real code and tests. Commit: 'feat: [task]'. Report what you built, files changed, and test results."
72
+
73
+ Pick the right developer framing: frontend, backend, AI, etc. Set `[COMPLEXITY: S/M/L]` based on the task's Size from sprint-tasks.md.
74
+
75
+ ### Step 5.2 — Metric Loop (web)
76
+
77
+ For UI-facing tasks, include behavioral verification: the measurement agent should use agent-browser to verify the feature renders and responds to interaction, not just read the code. Max 5 iterations.
78
+
79
+ ### Step 5.3b — Behavioral Smoke Test (web)
80
+
81
+ Uses agent-browser against localhost to open the app, execute the task's behavioral acceptance criteria, and verify the feature actually works. Evidence saved to `docs/plans/evidence/[task-name]/`: annotated screenshot, snapshot diff, error log, network log, HAR file.
82
+
83
+ ## Phase 6 — Harden (web branch)
84
+
85
+ ### Step 6.1 — Initial Audit (5 agents in parallel, ONE message)
86
+
87
+ Read the NFRs from `docs/plans/sprint-tasks.md`. Pass the relevant NFR thresholds to each audit agent so they have concrete targets, not generic checks.
88
+
89
+ Call the Agent tool 5 times in one message:
90
+
91
+ 1. Description: "API testing" — Prompt: "Comprehensive API validation: all endpoints, edge cases, error responses, auth flows. NFR targets: [paste performance and reliability NFRs]. Report findings with counts."
92
+
93
+ 2. Description: "Performance audit" — Prompt: "Measure response times, identify bottlenecks, flag performance issues. NFR targets: [paste performance NFRs — e.g., API < 200ms, page load < 3s]. Report benchmarks AGAINST these targets."
94
+
95
+ 3. Description: "Accessibility audit" — Prompt: "WCAG compliance audit on all interfaces. NFR target: [paste accessibility NFR — e.g., WCAG AA]. Check screen reader, keyboard nav, contrast. Report issues with counts."
96
+
97
+ 4. Description: "Security audit" — Prompt: "Security review: auth, input validation, data exposure, dependency vulnerabilities. NFR targets: [paste security NFRs]. Report findings with severity."
98
+
99
+ 5. Description: "UX quality audit" — Prompt: "UX quality review of every user-facing page. NFR targets: [paste accessibility NFRs]. First, screenshot the living style guide at /design-system as your reference for how components should look. Then review every product page and check: loading states (every async action must show a loading indicator), error states (every form and API call must show user-friendly error feedback), empty states (every list/table must handle zero items gracefully), mobile responsiveness (test at 375px viewport — touch targets >= 44px, no horizontal scroll, readable text), form validation (inline feedback, not just alert()), transition smoothness (no layout shifts, no janky animations), visual consistency (compare each page's components against the style guide — buttons, inputs, cards, colors, spacing should match). Report issues with page, severity, and screenshot."
100
+
101
+ ### Step 6.1b — Eval Harness
102
+
103
+ Run the Eval Harness Protocol (`protocols/eval-harness.md`). Define 8-15 concrete, executable eval cases from the audit findings and architecture doc. For UI flows, eval cases should use agent-browser: "agent-browser open /dashboard -> agent-browser click @submit -> agent-browser wait --text Success -> expect text contains confirmation ID". Run the eval agent. Record baseline pass rate. CRITICAL and HIGH failures feed into the metric loop in Step 6.2 as specific issues to fix.
104
+
105
+ ### Step 6.2 — Metric Loop: Hardening Quality
106
+
107
+ Run the Metric Loop Protocol on the full codebase using audit findings as initial input. Define a composite metric based on what this project needs. Max 4 iterations.
108
+
109
+ When fixing, dispatch to the RIGHT specialist. Security → security agent. Accessibility → frontend agent. Don't send everything to one agent.
110
+
111
+ ### Step 6.2b — Eval Re-run
112
+
113
+ Re-run the Eval Harness after the metric loop exits. All CRITICAL eval cases must now pass. If any CRITICAL case still fails, include it as evidence for the Reality Checker.
114
+
115
+ ### Step 6.2c — E2E Testing (3 mandatory iterations)
116
+
117
+ HARD-GATE: ALL 3 ITERATIONS ARE MANDATORY. Do NOT stop after iteration 1 even if all tests pass. The purpose of 3 runs is to catch flaky tests, timing-dependent failures, and race conditions that only surface on repeated execution. Skip this step ONLY if the project has no user-facing frontend.
118
+
119
+ Generate and execute end-to-end tests using Playwright against the running application. Tests cover the **User Journeys** defined in `docs/plans/sprint-tasks.md` (Step 0 of the Planning Protocol). Each journey = one E2E test file.
120
+
121
+ **Iteration 1 — Generate & Run:**
122
+
123
+ Call the Agent tool — description: "E2E test generation" — mode: "bypassPermissions" — prompt:
124
+
125
+ "[COMPLEXITY: L] Generate and run end-to-end Playwright tests for this application.
126
+
127
+ INPUTS:
128
+ - User Journeys from docs/plans/sprint-tasks.md: [paste the User Journeys section — each journey becomes one E2E test]
129
+ - Architecture doc (API contracts): [paste relevant sections from docs/plans/architecture.md]
130
+ - NFRs from docs/plans/sprint-tasks.md: [paste — use performance thresholds as test assertions]
131
+ - Visual Design Spec (component selectors): [paste relevant sections from docs/plans/visual-design-spec.md]
132
+
133
+ REQUIREMENTS:
134
+ 1. One E2E test per User Journey from sprint-tasks.md (each journey = one test file covering the full flow)
135
+ 2. Use Page Object Model pattern — one page object per major view
136
+ 3. Use data-testid selectors (add them to components if missing)
137
+ 4. Wait for API responses, NEVER use arbitrary timeouts (no waitForTimeout)
138
+ 5. Capture screenshots at critical verification points
139
+ 6. Configure multi-browser: Chromium + Firefox + WebKit
140
+ 7. Set up playwright.config.ts with: fullyParallel, retries: 0 (we handle retries ourselves), screenshot: 'only-on-failure', video: 'retain-on-failure', trace: 'on-first-retry'
141
+ 8. Run all tests. Report: total, passed, failed, with failure details and screenshot paths.
142
+ 9. Commit: 'test: e2e test suite for critical user journeys'
143
+
144
+ Test priority:
145
+ - CRITICAL: Auth, core feature happy path, data submission, payment/transaction flows
146
+ - HIGH: Search, filtering, navigation, error states
147
+ - MEDIUM: Responsive layout, animations, edge cases"
148
+
149
+ Record results: total tests, pass count, fail count, failure details. Log to `docs/plans/.build-state.md` under `## E2E Testing`:
150
+
151
+ ```
152
+ | Iter | Total | Passed | Failed | Flaky | Top Failure |
153
+ |------|-------|--------|--------|-------|-------------|
154
+ | 1 | ... | ... | ... | ... | ... |
155
+ ```
156
+
157
+ **Iteration 2 — Fix & Re-run:**
158
+
159
+ Call the Agent tool — description: "E2E fix iteration 2" — mode: "bypassPermissions" — prompt: "[COMPLEXITY: M] Fix E2E test failures from iteration 1: [paste failure details — test names, error messages, screenshot paths]. Diagnose each as real bug, flaky test, or missing selector. Fix accordingly — do NOT delete or skip tests. Re-run ALL tests. Commit: 'fix: e2e test failures iteration 2'."
160
+
161
+ Record results in the E2E table. Identify flaky candidates (passed iter 1, failed iter 2 or vice versa).
162
+
163
+ **Iteration 3 — Final Stability Run:**
164
+
165
+ Call the Agent tool — description: "E2E stability run" — mode: "bypassPermissions" — prompt: "[COMPLEXITY: M] Final E2E stability run (3 of 3). Previous results — Iter 1: [pass/fail counts], Iter 2: [pass/fail counts], Flaky candidates: [list]. Run ALL tests with --repeat-each=3. Quarantine inconsistent tests with test.fixme(). Fix remaining consistent failures. PASS CRITERIA: 95%+ pass rate (quarantined flaky tests excluded but logged). Commit: 'test: e2e stability fixes iteration 3'."
166
+
167
+ Record final results. Include in Reality Checker evidence (Step 6.4 in `commands/build.md`).
168
+
169
+ ### Step 6.2d — Autonomous Dogfooding
170
+
171
+ Run the agent-browser dogfood skill against the running app. Unlike the per-task smoke tests (which verify specific acceptance criteria), dogfooding is **exploratory** — it autonomously navigates every reachable page, clicks buttons, fills forms, checks console errors, and finds issues we didn't think to test.
172
+
173
+ Start the dev server if not running. Then invoke the dogfood skill:
174
+
175
+ Call the Agent tool — description: "Dogfood the app" — mode: "bypassPermissions" — prompt: "Run the agent-browser dogfood skill against the running app at http://localhost:[port]. Explore every reachable page. Click every button. Fill every form. Check console for errors. Report a structured list of issues with severity ratings (critical/high/medium/low), screenshots, and repro steps. If dogfood skill is not available, use agent-browser manually: snapshot each page, click all interactive elements, check errors and network requests. Also evaluate UX quality: missing loading states, poor error messages, broken mobile layouts (resize to 375px), visual inconsistencies, missing empty states, form validation gaps. Report UX issues separately from functional issues."
176
+
177
+ **Fix loop:** For each CRITICAL or HIGH issue found:
178
+ 1. Classify: is this a code bug (fix in Phase 5 style — spawn implementation fix agent) or a structural problem (needs architecture change — spawn architect agent to propose a fix plan, then implementation agent to execute)?
179
+ 2. Spawn the appropriate fix agent with: the issue description, repro steps, screenshot, affected page/component.
180
+ 3. After fixes, re-run dogfood on the affected pages only (not the full app). If new CRITICAL/HIGH issues appear, repeat. Max 3 fix cycles.
181
+
182
+ MEDIUM/LOW issues: log to `docs/plans/build-log.md` for the Reality Checker.
183
+
184
+ ### Step 6.2e — Fake Data Detector
185
+
186
+ Call the Agent tool — description: "Fake data audit" — mode: "bypassPermissions" — prompt: "Run the Fake Data Detector Protocol (protocols/fake-data-detector.md). Check for mock/hardcoded data in production paths. Static analysis: grep for Math.random() business data, hardcoded API responses, setTimeout faking async, placeholder text. Dynamic analysis: inspect HAR files from docs/plans/evidence/ for missing real API calls, static responses, absent WebSocket traffic. Report findings with file:line references and severity."
187
+
188
+ **Fix loop:** For each CRITICAL finding:
189
+ 1. Spawn a fix agent with: the finding (file:line, what's fake, what it should be), and the relevant source files.
190
+ 2. The fix agent replaces fake data with real API calls, real WebSocket connections, real data sources. If real data sources aren't available (missing API keys, no backend), the fix agent must flag this as a blocker — not paper over it with better-looking fake data.
191
+ 3. After fixes, re-run the fake data detector (static checks only — fast). Max 2 fix cycles.
192
+
193
+ Remaining findings feed into the Reality Checker in Step 6.4 (in `commands/build.md`).
194
+
195
+ ## Phase 7 — Ship (web branch)
196
+
197
+ ### Step 7.1 — Documentation (web)
198
+
199
+ Call the Agent tool — description: "Documentation" — mode: "bypassPermissions" — prompt: "Write project docs: README with setup/architecture/usage, API docs if applicable, deployment notes. Commit: 'docs: project documentation'."
200
+
201
+ Deployment target per the design doc (Vercel/Netlify/Railway/Fly.io/etc.) — include the deploy flow specific to that target in the README.
@@ -0,0 +1,60 @@
1
+ # Vendored iOS Skills (P0)
2
+
3
+ _Wholesale copies from `research/swift-skills/` per `research/swift-skills/_docs/_COMPARISON.md` adoption plan. Source repos are the authoritative version — update from source, don't edit in place._
4
+
5
+ | Skill | Source | License | Copyright | Captured |
6
+ |---|---|---|---|---|
7
+ | swiftui-pro | twostraws/SwiftUI-Agent-Skill | MIT | Paul Hudson | 2026-04-04 |
8
+ | swift-concurrency | AvdLee/Swift-Concurrency-Agent-Skill | MIT | Antoine van der Lee | 2026-04-04 |
9
+ | swift-security-expert | ivan-magda/swift-security-skill | MIT | Ivan Magda | 2026-04-04 |
10
+ | swiftdata-pro | twostraws/SwiftData-Agent-Skill | MIT | Paul Hudson | 2026-04-04 |
11
+ | swift-testing-expert | AvdLee/Swift-Testing-Agent-Skill | MIT | Antoine van der Lee | 2026-04-04 |
12
+ | swift-accessibility | PasqualeVittoriosi/swift-accessibility-skill | MIT | Pasquale Vittoriosi | 2026-04-04 |
13
+ | swiftui-ui-patterns | Dimillian/Skills | MIT | Dimillian | 2026-04-04 |
14
+ | swiftui-view-refactor | Dimillian/Skills | MIT | Dimillian | 2026-04-04 |
15
+ | swiftui-liquid-glass | Dimillian/Skills | MIT | Dimillian | 2026-04-04 |
16
+ | swiftui-performance-audit | Dimillian/Skills | MIT | Dimillian | 2026-04-04 |
17
+ | swiftui-design-principles | arjitj2 | license check pending | arjitj2 | 2026-04-04 |
18
+ | ios-hig | johnrogers/claude-swift-engineering | MIT | John Rogers | 2026-04-04 |
19
+ | ios-26-platform | johnrogers/claude-swift-engineering | MIT | John Rogers | 2026-04-04 |
20
+ | widgetkit | dpearson2699/swift-ios-skills | PolyForm Perimeter 1.0 | dpearson2699 | 2026-04-04 |
21
+ | activitykit | dpearson2699/swift-ios-skills | PolyForm Perimeter 1.0 | dpearson2699 | 2026-04-04 |
22
+ | app-intents | dpearson2699/swift-ios-skills | PolyForm Perimeter 1.0 | dpearson2699 | 2026-04-04 |
23
+ | apple-on-device-ai | dpearson2699/swift-ios-skills | PolyForm Perimeter 1.0 | dpearson2699 | 2026-04-04 |
24
+ | ios-debugger-agent | Dimillian/Skills | MIT | Dimillian | 2026-04-04 |
25
+
26
+ ## Update procedure
27
+
28
+ 1. `cd research/swift-skills/<category>/<repo>/ && git pull`
29
+ 2. Copy the inner skill dir + root `LICENSE` into `skills/ios/<skill>/`
30
+ 3. Bump the Captured date in the table above
31
+ 4. Spot-check `SKILL.md` frontmatter `name:` still matches the target dir name
32
+
33
+ ## Excluded from vendoring
34
+
35
+ - `.git/`, `node_modules/`, `.DS_Store`
36
+ - Repo-root `README.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `package.json`
37
+ - Repo-root `tests/` (swift-security-skill only)
38
+ - `AGENTS.md`, `CLAUDE.md` at repo root (swift-security-skill)
39
+
40
+ ## Missing LICENSE files
41
+
42
+ The following skill dirs currently lack a `LICENSE` file and need one copied in from upstream (or an in-house LICENSE added for stubs):
43
+
44
+ - `ios-26-platform/` — vendored from johnrogers/claude-swift-engineering; upstream MIT LICENSE to be copied in.
45
+ - `ios-hig/` — vendored from johnrogers/claude-swift-engineering; upstream MIT LICENSE to be copied in.
46
+ - `ios-bootstrap/` — in-house stub; needs an in-house LICENSE.
47
+ - `ios-entitlements-generator/` — in-house stub; needs an in-house LICENSE.
48
+ - `ios-info-plist-hardening/` — in-house stub; needs an in-house LICENSE.
49
+ - `ios-maestro-flow-author/` — in-house stub; needs an in-house LICENSE.
50
+
51
+ ## In-House Skills (buildanything iOS mode)
52
+
53
+ Authored in-house for the buildanything plugin. Not vendored from upstream.
54
+
55
+ | Skill | Status | Purpose | Fleshed-out? | Created |
56
+ |---|---|---|---|---|
57
+ | ios-bootstrap | expanding | Phase -1 scaffolding: create Xcode project, wire XcodeBuildMCP, verify toolchain | stub | 2026-04-04 |
58
+ | ios-entitlements-generator | expanding | Derive `.entitlements` file from required iOS capabilities (Keychain, Push, HealthKit, etc.) | stub | 2026-04-04 |
59
+ | ios-info-plist-hardening | expanding | Populate Info.plist usage-description strings, ATS settings, privacy manifest alignment | stub | 2026-04-04 |
60
+ | ios-maestro-flow-author | expanding | Author Maestro `.yaml` E2E flows for critical user journeys | stub | 2026-04-04 |