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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +55 -0
- package/README.md +71 -61
- package/agents/ios-app-review-guardian.md +49 -0
- package/agents/ios-foundation-models-specialist.md +46 -0
- package/agents/ios-storekit-specialist.md +52 -0
- package/agents/ios-swift-architect.md +102 -0
- package/agents/ios-swift-search.md +130 -0
- package/agents/ios-swift-ui-design.md +104 -0
- package/commands/build.md +80 -176
- package/commands/fix.md +65 -0
- package/commands/setup.md +73 -0
- package/commands/ux-review.md +63 -0
- package/commands/verify.md +72 -0
- package/hooks/session-start +18 -1
- package/package.json +5 -2
- package/protocols/brainstorm.md +99 -0
- package/protocols/build-fix.md +52 -0
- package/protocols/cleanup.md +54 -0
- package/protocols/design.md +269 -0
- package/protocols/eval-harness.md +61 -0
- package/protocols/fake-data-detector.md +64 -0
- package/protocols/ios-context.md +235 -0
- package/protocols/ios-frameworks-map.md +323 -0
- package/protocols/ios-phase-branches.md +162 -0
- package/protocols/ios-preflight.md +27 -0
- package/protocols/metric-loop.md +93 -0
- package/protocols/planning.md +87 -0
- package/protocols/smoke-test.md +110 -0
- package/protocols/verify.md +67 -0
- package/protocols/web-phase-branches.md +201 -0
- package/skills/ios/_VENDORED.md +60 -0
- package/skills/ios/activitykit/LICENSE +131 -0
- package/skills/ios/activitykit/SKILL.md +505 -0
- package/skills/ios/activitykit/references/activitykit-patterns.md +868 -0
- package/skills/ios/app-intents/LICENSE +131 -0
- package/skills/ios/app-intents/SKILL.md +494 -0
- package/skills/ios/app-intents/references/appintents-advanced.md +1076 -0
- package/skills/ios/apple-on-device-ai/LICENSE +131 -0
- package/skills/ios/apple-on-device-ai/SKILL.md +505 -0
- package/skills/ios/apple-on-device-ai/references/coreml-conversion.md +425 -0
- package/skills/ios/apple-on-device-ai/references/coreml-optimization.md +344 -0
- package/skills/ios/apple-on-device-ai/references/foundation-models.md +508 -0
- package/skills/ios/apple-on-device-ai/references/mlx-swift.md +285 -0
- package/skills/ios/ios-26-platform/SKILL.md +53 -0
- package/skills/ios/ios-26-platform/references/automatic-adoption.md +161 -0
- package/skills/ios/ios-26-platform/references/backward-compat.md +238 -0
- package/skills/ios/ios-26-platform/references/liquid-glass.md +255 -0
- package/skills/ios/ios-26-platform/references/swiftui-apis.md +277 -0
- package/skills/ios/ios-26-platform/references/toolbar-navigation.md +250 -0
- package/skills/ios/ios-bootstrap/SKILL.md +98 -0
- package/skills/ios/ios-bootstrap/references/apple-docs-mcp-config.md +28 -0
- package/skills/ios/ios-bootstrap/references/new-project-dialog.md +41 -0
- package/skills/ios/ios-bootstrap/references/xcode-mcp-config.md +29 -0
- package/skills/ios/ios-debugger-agent/LICENSE +21 -0
- package/skills/ios/ios-debugger-agent/SKILL.md +58 -0
- package/skills/ios/ios-debugger-agent/agents/openai.yaml +4 -0
- package/skills/ios/ios-entitlements-generator/SKILL.md +47 -0
- package/skills/ios/ios-hig/SKILL.md +41 -0
- package/skills/ios/ios-hig/references/accessibility.md +81 -0
- package/skills/ios/ios-hig/references/content.md +142 -0
- package/skills/ios/ios-hig/references/feedback.md +123 -0
- package/skills/ios/ios-hig/references/interaction.md +199 -0
- package/skills/ios/ios-hig/references/performance-platform.md +129 -0
- package/skills/ios/ios-hig/references/privacy-permissions.md +181 -0
- package/skills/ios/ios-hig/references/visual-design.md +84 -0
- package/skills/ios/ios-info-plist-hardening/SKILL.md +130 -0
- package/skills/ios/ios-maestro-flow-author/SKILL.md +68 -0
- package/skills/ios/ios-maestro-flow-author/references/input-and-scroll.yaml +17 -0
- package/skills/ios/ios-maestro-flow-author/references/modal-and-dismiss.yaml +14 -0
- package/skills/ios/ios-maestro-flow-author/references/onboarding-flow.yaml +16 -0
- package/skills/ios/ios-maestro-flow-author/references/tab-navigation.yaml +13 -0
- package/skills/ios/ios-maestro-flow-author/references/tap-and-assert.yaml +9 -0
- package/skills/ios/swift-accessibility/LICENSE +21 -0
- package/skills/ios/swift-accessibility/SKILL.md +371 -0
- package/skills/ios/swift-accessibility/examples/before-after-appkit.md +446 -0
- package/skills/ios/swift-accessibility/examples/before-after-swiftui.md +441 -0
- package/skills/ios/swift-accessibility/examples/before-after-uikit.md +464 -0
- package/skills/ios/swift-accessibility/references/assistive-access.md +441 -0
- package/skills/ios/swift-accessibility/references/display-settings.md +491 -0
- package/skills/ios/swift-accessibility/references/dynamic-type.md +420 -0
- package/skills/ios/swift-accessibility/references/media-accessibility.md +421 -0
- package/skills/ios/swift-accessibility/references/motor-input.md +393 -0
- package/skills/ios/swift-accessibility/references/nutrition-labels.md +362 -0
- package/skills/ios/swift-accessibility/references/platform-specifics.md +515 -0
- package/skills/ios/swift-accessibility/references/semantic-structure.md +585 -0
- package/skills/ios/swift-accessibility/references/testing-auditing.md +507 -0
- package/skills/ios/swift-accessibility/references/voice-control.md +317 -0
- package/skills/ios/swift-accessibility/references/voiceover-swiftui.md +584 -0
- package/skills/ios/swift-accessibility/references/voiceover-uikit.md +519 -0
- package/skills/ios/swift-accessibility/references/wcag-mapping.md +167 -0
- package/skills/ios/swift-accessibility/resources/audit-template.swift +128 -0
- package/skills/ios/swift-accessibility/resources/qa-checklist.md +258 -0
- package/skills/ios/swift-concurrency/LICENSE +21 -0
- package/skills/ios/swift-concurrency/SKILL.md +171 -0
- package/skills/ios/swift-concurrency/references/_index.md +50 -0
- package/skills/ios/swift-concurrency/references/actors.md +660 -0
- package/skills/ios/swift-concurrency/references/async-algorithms.md +847 -0
- package/skills/ios/swift-concurrency/references/async-await-basics.md +266 -0
- package/skills/ios/swift-concurrency/references/async-sequences.md +710 -0
- package/skills/ios/swift-concurrency/references/core-data.md +560 -0
- package/skills/ios/swift-concurrency/references/glossary.md +135 -0
- package/skills/ios/swift-concurrency/references/linting.md +155 -0
- package/skills/ios/swift-concurrency/references/memory-management.md +569 -0
- package/skills/ios/swift-concurrency/references/migration.md +1104 -0
- package/skills/ios/swift-concurrency/references/performance.md +593 -0
- package/skills/ios/swift-concurrency/references/sendable.md +598 -0
- package/skills/ios/swift-concurrency/references/tasks.md +636 -0
- package/skills/ios/swift-concurrency/references/testing.md +592 -0
- package/skills/ios/swift-concurrency/references/threading.md +495 -0
- package/skills/ios/swift-security-expert/LICENSE +21 -0
- package/skills/ios/swift-security-expert/SKILL.md +470 -0
- package/skills/ios/swift-security-expert/references/biometric-authentication.md +565 -0
- package/skills/ios/swift-security-expert/references/certificate-trust.md +592 -0
- package/skills/ios/swift-security-expert/references/common-anti-patterns.md +690 -0
- package/skills/ios/swift-security-expert/references/compliance-owasp-mapping.md +537 -0
- package/skills/ios/swift-security-expert/references/credential-storage-patterns.md +721 -0
- package/skills/ios/swift-security-expert/references/cryptokit-public-key.md +505 -0
- package/skills/ios/swift-security-expert/references/cryptokit-symmetric.md +497 -0
- package/skills/ios/swift-security-expert/references/keychain-access-control.md +508 -0
- package/skills/ios/swift-security-expert/references/keychain-fundamentals.md +596 -0
- package/skills/ios/swift-security-expert/references/keychain-item-classes.md +476 -0
- package/skills/ios/swift-security-expert/references/keychain-sharing.md +458 -0
- package/skills/ios/swift-security-expert/references/migration-legacy-stores.md +727 -0
- package/skills/ios/swift-security-expert/references/secure-enclave.md +539 -0
- package/skills/ios/swift-security-expert/references/testing-security-code.md +781 -0
- package/skills/ios/swift-testing-expert/LICENSE +21 -0
- package/skills/ios/swift-testing-expert/SKILL.md +79 -0
- package/skills/ios/swift-testing-expert/references/_index.md +12 -0
- package/skills/ios/swift-testing-expert/references/async-testing-and-waiting.md +127 -0
- package/skills/ios/swift-testing-expert/references/expectations.md +145 -0
- package/skills/ios/swift-testing-expert/references/fundamentals.md +141 -0
- package/skills/ios/swift-testing-expert/references/migration-from-xctest.md +127 -0
- package/skills/ios/swift-testing-expert/references/parallelization-and-isolation.md +95 -0
- package/skills/ios/swift-testing-expert/references/parameterized-testing.md +284 -0
- package/skills/ios/swift-testing-expert/references/performance-and-best-practices.md +187 -0
- package/skills/ios/swift-testing-expert/references/traits-and-tags.md +114 -0
- package/skills/ios/swift-testing-expert/references/xcode-workflows.md +70 -0
- package/skills/ios/swiftdata-pro/LICENSE +21 -0
- package/skills/ios/swiftdata-pro/SKILL.md +102 -0
- package/skills/ios/swiftdata-pro/agents/openai.yaml +10 -0
- package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.png +0 -0
- package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.svg +29 -0
- package/skills/ios/swiftdata-pro/references/class-inheritance.md +104 -0
- package/skills/ios/swiftdata-pro/references/cloudkit.md +10 -0
- package/skills/ios/swiftdata-pro/references/core-rules.md +20 -0
- package/skills/ios/swiftdata-pro/references/indexing.md +27 -0
- package/skills/ios/swiftdata-pro/references/predicates.md +73 -0
- package/skills/ios/swiftui-design-principles/AGENTS.md +21 -0
- package/skills/ios/swiftui-design-principles/LICENSE +21 -0
- package/skills/ios/swiftui-design-principles/README.md +41 -0
- package/skills/ios/swiftui-design-principles/SKILL.md +605 -0
- package/skills/ios/swiftui-design-principles/metadata.json +10 -0
- package/skills/ios/swiftui-liquid-glass/LICENSE +21 -0
- package/skills/ios/swiftui-liquid-glass/SKILL.md +95 -0
- package/skills/ios/swiftui-liquid-glass/agents/openai.yaml +4 -0
- package/skills/ios/swiftui-liquid-glass/references/liquid-glass.md +280 -0
- package/skills/ios/swiftui-performance-audit/LICENSE +21 -0
- package/skills/ios/swiftui-performance-audit/SKILL.md +111 -0
- package/skills/ios/swiftui-performance-audit/agents/openai.yaml +4 -0
- package/skills/ios/swiftui-performance-audit/references/code-smells.md +150 -0
- package/skills/ios/swiftui-performance-audit/references/demystify-swiftui-performance-wwdc23.md +46 -0
- package/skills/ios/swiftui-performance-audit/references/optimizing-swiftui-performance-instruments.md +29 -0
- package/skills/ios/swiftui-performance-audit/references/profiling-intake.md +44 -0
- package/skills/ios/swiftui-performance-audit/references/report-template.md +47 -0
- package/skills/ios/swiftui-performance-audit/references/understanding-hangs-in-your-app.md +33 -0
- package/skills/ios/swiftui-performance-audit/references/understanding-improving-swiftui-performance.md +52 -0
- package/skills/ios/swiftui-pro/LICENSE +21 -0
- package/skills/ios/swiftui-pro/SKILL.md +108 -0
- package/skills/ios/swiftui-pro/agents/openai.yaml +10 -0
- package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
- package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
- package/skills/ios/swiftui-pro/references/accessibility.md +13 -0
- package/skills/ios/swiftui-pro/references/api.md +39 -0
- package/skills/ios/swiftui-pro/references/data.md +43 -0
- package/skills/ios/swiftui-pro/references/design.md +31 -0
- package/skills/ios/swiftui-pro/references/hygiene.md +9 -0
- package/skills/ios/swiftui-pro/references/navigation.md +14 -0
- package/skills/ios/swiftui-pro/references/performance.md +46 -0
- package/skills/ios/swiftui-pro/references/swift.md +56 -0
- package/skills/ios/swiftui-pro/references/views.md +35 -0
- package/skills/ios/swiftui-ui-patterns/LICENSE +21 -0
- package/skills/ios/swiftui-ui-patterns/SKILL.md +100 -0
- package/skills/ios/swiftui-ui-patterns/agents/openai.yaml +4 -0
- package/skills/ios/swiftui-ui-patterns/references/app-wiring.md +201 -0
- package/skills/ios/swiftui-ui-patterns/references/async-state.md +96 -0
- package/skills/ios/swiftui-ui-patterns/references/components-index.md +50 -0
- package/skills/ios/swiftui-ui-patterns/references/controls.md +57 -0
- package/skills/ios/swiftui-ui-patterns/references/deeplinks.md +66 -0
- package/skills/ios/swiftui-ui-patterns/references/focus.md +90 -0
- package/skills/ios/swiftui-ui-patterns/references/form.md +97 -0
- package/skills/ios/swiftui-ui-patterns/references/grids.md +71 -0
- package/skills/ios/swiftui-ui-patterns/references/haptics.md +71 -0
- package/skills/ios/swiftui-ui-patterns/references/input-toolbar.md +51 -0
- package/skills/ios/swiftui-ui-patterns/references/lightweight-clients.md +93 -0
- package/skills/ios/swiftui-ui-patterns/references/list.md +86 -0
- package/skills/ios/swiftui-ui-patterns/references/loading-placeholders.md +38 -0
- package/skills/ios/swiftui-ui-patterns/references/macos-settings.md +71 -0
- package/skills/ios/swiftui-ui-patterns/references/matched-transitions.md +59 -0
- package/skills/ios/swiftui-ui-patterns/references/media.md +73 -0
- package/skills/ios/swiftui-ui-patterns/references/menu-bar.md +101 -0
- package/skills/ios/swiftui-ui-patterns/references/navigationstack.md +159 -0
- package/skills/ios/swiftui-ui-patterns/references/overlay.md +45 -0
- package/skills/ios/swiftui-ui-patterns/references/performance.md +62 -0
- package/skills/ios/swiftui-ui-patterns/references/previews.md +48 -0
- package/skills/ios/swiftui-ui-patterns/references/scroll-reveal.md +133 -0
- package/skills/ios/swiftui-ui-patterns/references/scrollview.md +87 -0
- package/skills/ios/swiftui-ui-patterns/references/searchable.md +71 -0
- package/skills/ios/swiftui-ui-patterns/references/sheets.md +155 -0
- package/skills/ios/swiftui-ui-patterns/references/split-views.md +72 -0
- package/skills/ios/swiftui-ui-patterns/references/tabview.md +114 -0
- package/skills/ios/swiftui-ui-patterns/references/theming.md +71 -0
- package/skills/ios/swiftui-ui-patterns/references/title-menus.md +93 -0
- package/skills/ios/swiftui-ui-patterns/references/top-bar.md +49 -0
- package/skills/ios/swiftui-view-refactor/LICENSE +21 -0
- package/skills/ios/swiftui-view-refactor/SKILL.md +207 -0
- package/skills/ios/swiftui-view-refactor/agents/openai.yaml +4 -0
- package/skills/ios/swiftui-view-refactor/references/mv-patterns.md +161 -0
- package/skills/ios/widgetkit/LICENSE +131 -0
- package/skills/ios/widgetkit/SKILL.md +502 -0
- package/skills/ios/widgetkit/references/widgetkit-advanced.md +871 -0
package/commands/ux-review.md
CHANGED
|
@@ -11,6 +11,15 @@ You are a UX engineer. Your job: find visual and interaction problems in the liv
|
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
## Project-type branching
|
|
15
|
+
|
|
16
|
+
Read `docs/plans/.build-state.md` → `project_type`.
|
|
17
|
+
|
|
18
|
+
- **If `project_type=web`** (or unset): follow Steps 1-5 below (existing web flow, unchanged).
|
|
19
|
+
- **If `project_type=ios`**: skip Steps 1-5. Run the iOS UX Review twin (§ iOS UX Review at the bottom of this file). iOS has no `/design-system` route — HIG + a synthesized design board are the reference.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
14
23
|
## Step 1: Determine Scope
|
|
15
24
|
|
|
16
25
|
Parse `$ARGUMENTS`:
|
|
@@ -79,3 +88,57 @@ Present a summary:
|
|
|
79
88
|
For deferred issues, explain why (e.g., requires design decision, backend change needed).
|
|
80
89
|
|
|
81
90
|
Close the browser. Done.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## iOS UX Review (project_type=ios)
|
|
95
|
+
|
|
96
|
+
iOS has no `/design-system` component gallery. The reference surface is **Apple HIG + a synthesized design board** (competitor screenshots + app vibe). Inherit the Senior iOS Engineer persona from `protocols/ios-context.md` for every dispatched agent.
|
|
97
|
+
|
|
98
|
+
### Step 1: Preflight
|
|
99
|
+
|
|
100
|
+
**Run iOS preflight:** see `protocols/ios-preflight.md`. Then read app vibe words + category from `docs/plans/.build-state.md` (captured in Phase 3).
|
|
101
|
+
|
|
102
|
+
### Step 2: Design Board (read-only)
|
|
103
|
+
|
|
104
|
+
The design board is GENERATED by `/buildanything:build` Phase 3 Step 3.1 — this command only READS it.
|
|
105
|
+
|
|
106
|
+
- If `docs/plans/ios-design-board.md` does NOT exist: **HALT** and instruct the user to run `/buildanything:build` Phase 3 first. Do not regenerate here.
|
|
107
|
+
- If it exists: use it as-is. Do NOT re-scrape references. **Cache rule:** to refresh the board, the user must delete `docs/plans/ios-design-board.md` and re-run Phase 3.
|
|
108
|
+
|
|
109
|
+
### Step 3: Capture Current State
|
|
110
|
+
|
|
111
|
+
Via XcodeBuildMCP:
|
|
112
|
+
1. Boot simulator (default: iPhone 17 Pro, iOS 26.x)
|
|
113
|
+
2. Build + launch app
|
|
114
|
+
3. Walk the primary user flow; capture simulator screenshots for each screen in scope
|
|
115
|
+
4. Save to `docs/plans/ios-ux-review/screens/` with timestamped filenames
|
|
116
|
+
|
|
117
|
+
For scoped reviews (single screen/issue from `$ARGUMENTS`), capture only that screen.
|
|
118
|
+
|
|
119
|
+
### Step 4: Dispatch Review Skills (parallel-safe)
|
|
120
|
+
|
|
121
|
+
Run all four in parallel, each inheriting `protocols/ios-context.md`:
|
|
122
|
+
|
|
123
|
+
a. **`skills/ios/ios-debugger-agent`** — simulator screenshot sweep + UI state capture + console/log scrape for runtime UI warnings.
|
|
124
|
+
b. **`skills/ios/ios-hig`** (audit mode) — HIG severity audit. Return findings framed as **P0** (blocker / ships broken), **P1** (fix-before-ship), **P2** (polish).
|
|
125
|
+
c. **`skills/ios/swift-accessibility`** (Mode 3: audit pass) — VoiceOver labels, Dynamic Type scaling, contrast ratios, hit-target sizes across all SwiftUI screens in scope.
|
|
126
|
+
d. **`skills/ios/swiftui-design-principles`** — 10-rule visual polish checklist (spacing, hierarchy, alignment, color, type, motion, consistency, affordance, feedback, restraint).
|
|
127
|
+
e. **`writing-for-interfaces`** — microcopy + tone review. If `skills/ios/writing-for-interfaces/` does not exist, skip microcopy review and log a NOTE in the UX report: "Microcopy review skipped — writing-for-interfaces not yet ported."
|
|
128
|
+
|
|
129
|
+
### Step 5: Compare Against Design Board
|
|
130
|
+
|
|
131
|
+
Diff live simulator screenshots against `docs/plans/ios-design-board.md`:
|
|
132
|
+
- Where does the live app match the board's vibe / patterns?
|
|
133
|
+
- Where does it drift (color, spacing, hierarchy, type, navigation model)?
|
|
134
|
+
- Which board patterns are NOT yet implemented but should be?
|
|
135
|
+
|
|
136
|
+
### Step 6: Output Report
|
|
137
|
+
|
|
138
|
+
Write `docs/plans/ios-ux-review-report.md`:
|
|
139
|
+
|
|
140
|
+
| Finding | Severity | Screen | Source | Recommended Fix |
|
|
141
|
+
|---------|----------|--------|--------|-----------------|
|
|
142
|
+
| ... | P0/P1/P2 | ContentView | hig / a11y / principles / board-diff | one-line fix |
|
|
143
|
+
|
|
144
|
+
Include: summary counts per severity, top 3 fixes to do next, list of screens reviewed, path to design board. Do NOT auto-fix — `/fix` (iOS branch) consumes this report.
|
package/commands/verify.md
CHANGED
|
@@ -7,6 +7,13 @@ argument-hint: "Optional scope: 'build', 'tests', 'security', 'lint', 'types', '
|
|
|
7
7
|
|
|
8
8
|
You are a verification runner. Fast, deterministic, no opinions — just pass/fail.
|
|
9
9
|
|
|
10
|
+
## Project-type branching
|
|
11
|
+
|
|
12
|
+
Read `docs/plans/.build-state.md` → `project_type`.
|
|
13
|
+
|
|
14
|
+
- **If `project_type=web`** (or unset): run the existing web flow below (Steps 1–3).
|
|
15
|
+
- **If `project_type=ios`**: skip Steps 1–3 and jump to the **iOS Verify** section at the bottom of this file.
|
|
16
|
+
|
|
10
17
|
## Step 1: Determine Scope
|
|
11
18
|
|
|
12
19
|
Check the user's argument:
|
|
@@ -41,3 +48,68 @@ Follow `protocols/verify.md` exactly:
|
|
|
41
48
|
> "Verification failed at [check]. Run `/buildanything:build` with a fix prompt, or I can attempt a targeted fix now."
|
|
42
49
|
|
|
43
50
|
Do not auto-fix unless the user asks. This command is for reporting, not repairing.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## iOS Verify (project_type=ios)
|
|
55
|
+
|
|
56
|
+
iOS functional-correctness twin. Runs a sequential skill bundle (not parallel — each pass feeds the next) over the Xcode project. No 0-100 scoring — pass/fail gates only.
|
|
57
|
+
|
|
58
|
+
### Preflight
|
|
59
|
+
|
|
60
|
+
**Run iOS preflight:** see `protocols/ios-preflight.md`. If any preflight check fails, emit `VERIFY: FAIL at preflight — [reason]` and stop.
|
|
61
|
+
|
|
62
|
+
### Load context
|
|
63
|
+
|
|
64
|
+
Every dispatched agent below inherits `protocols/ios-context.md` (Senior iOS Engineer sidecar). Inject it as the first block of each agent prompt.
|
|
65
|
+
|
|
66
|
+
### Dispatch sequence (sequential)
|
|
67
|
+
|
|
68
|
+
Run in order. Stop on first hard blocker; soft findings accumulate into the report.
|
|
69
|
+
|
|
70
|
+
**a. Test triage — `skills/ios/swift-testing-expert`**
|
|
71
|
+
> Load `protocols/ios-context.md`. Triage existing `@Test` / XCTest suites: parallel-safety, isolation correctness, missing coverage on critical paths, test-plan wiring. Output: list of test issues with severity.
|
|
72
|
+
|
|
73
|
+
**b. Snapshot / doubles review — `skills/ios/swift-testing` _(TBD — bocato cherry-pick not yet ported; skip with a note if absent)_**
|
|
74
|
+
> If skill exists: review snapshot tests and Fowler-style test doubles. If absent: log `swift-testing (bocato) — PENDING PORT` in the report and continue.
|
|
75
|
+
|
|
76
|
+
**c. Security audit — `skills/ios/swift-security-expert` (audit mode)**
|
|
77
|
+
> Load `protocols/ios-context.md`. Audit Keychain usage, CryptoKit calls, ATS exceptions in Info.plist, biometric gating. Report any hardcoded secrets or weak primitives. Severity: P0 / P1 / P2.
|
|
78
|
+
|
|
79
|
+
**d. App Review compliance — `agents/ios-app-review-guardian`**
|
|
80
|
+
> Load `protocols/ios-context.md`. Check App Review guidelines, privacy manifest (`PrivacyInfo.xcprivacy`), IAP/StoreKit rules, required usage-description strings, tracking/ATT compliance. Report blockers vs. warnings.
|
|
81
|
+
|
|
82
|
+
**e. Maestro flow authoring — `skills/ios/ios-maestro-flow-author`** _(conditional)_
|
|
83
|
+
> If a critical user journey lacks E2E coverage, author a `.yaml` Maestro flow for it. Skip if coverage is adequate.
|
|
84
|
+
|
|
85
|
+
**f. Build + test run — XcodeBuildMCP**
|
|
86
|
+
> `BuildProject` all targets → run the active test plan via XcodeBuildMCP → capture failures, warnings, and test output. This is the hard gate.
|
|
87
|
+
|
|
88
|
+
### Pass/fail gates
|
|
89
|
+
|
|
90
|
+
All must pass for `VERIFY: PASS`:
|
|
91
|
+
|
|
92
|
+
| Gate | Pass condition |
|
|
93
|
+
|------|----------------|
|
|
94
|
+
| Build | XcodeBuildMCP `BuildProject` succeeds, zero errors |
|
|
95
|
+
| Tests | All tests in active test plan pass |
|
|
96
|
+
| Security audit | No P0 findings from `swift-security-expert` |
|
|
97
|
+
| App Review | No blockers from `ios-app-review-guardian` (warnings OK) |
|
|
98
|
+
| A11y warnings | No new a11y warnings introduced since last verify |
|
|
99
|
+
|
|
100
|
+
Any gate failing → `VERIFY: FAIL at [gate] — [reason]`.
|
|
101
|
+
|
|
102
|
+
### Output
|
|
103
|
+
|
|
104
|
+
Write `docs/plans/ios-verify-report.md` with:
|
|
105
|
+
|
|
106
|
+
- One-line pass/fail summary
|
|
107
|
+
- Per-agent section (testing, security, app-review, maestro, build)
|
|
108
|
+
- Findings list grouped by severity (P0/P1/P2)
|
|
109
|
+
- Diff vs. previous report if one exists
|
|
110
|
+
|
|
111
|
+
Log the final line to `docs/plans/.build-state.md` the same way web mode does.
|
|
112
|
+
|
|
113
|
+
### Note on Step 6.0 (Pre-Hardening Verification)
|
|
114
|
+
|
|
115
|
+
Step 6.0 references `protocols/verify.md` which auto-branches on `project_type`. iOS builds flow through the iOS twin section of this file. No separate Step 6.0 action needed for iOS.
|
package/hooks/session-start
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
# buildanything: SessionStart hook
|
|
3
3
|
# Re-injects orchestrator identity after context compaction, resume, or clear.
|
|
4
4
|
|
|
5
|
+
# Dep check: warn if plugin deps (installed via bin/setup.js) are missing.
|
|
6
|
+
DEPS_WARNING=""
|
|
7
|
+
MISSING=()
|
|
8
|
+
command -v agent-browser >/dev/null 2>&1 || MISSING+=("agent-browser CLI")
|
|
9
|
+
{ [ -e "$HOME/.claude/skills/agent-browser" ] || [ -e "$HOME/.claude/skills/agent-browser.md" ]; } || MISSING+=("agent-browser skill")
|
|
10
|
+
{ [ -e "$HOME/.claude/skills/dogfood" ] || [ -e "$HOME/.claude/skills/dogfood.md" ]; } || MISSING+=("dogfood skill")
|
|
11
|
+
if [ ${#MISSING[@]} -gt 0 ]; then
|
|
12
|
+
JOINED=$(IFS=,; echo "${MISSING[*]}"); JOINED=${JOINED//,/, }
|
|
13
|
+
DEPS_WARNING="buildanything: missing deps (${JOINED}). Run /buildanything:setup to complete install."
|
|
14
|
+
fi
|
|
15
|
+
|
|
5
16
|
# Check if a build pipeline is active by looking for .build-state.md
|
|
6
17
|
BUILD_STATE=""
|
|
7
18
|
if [ -f "docs/plans/.build-state.md" ]; then
|
|
@@ -15,7 +26,7 @@ fi
|
|
|
15
26
|
|
|
16
27
|
# Check if we're past Phase 3 but missing design artifacts
|
|
17
28
|
if [ -n "$BUILD_STATE" ]; then
|
|
18
|
-
CURRENT_PHASE=$(echo "$BUILD_STATE" |
|
|
29
|
+
CURRENT_PHASE=$(echo "$BUILD_STATE" | sed -n 's/.*Phase: *\([0-9][0-9]*\).*/\1/p' | head -1)
|
|
19
30
|
if [ "$CURRENT_PHASE" -ge 4 ] 2>/dev/null && [ ! -f "docs/plans/visual-design-spec.md" ]; then
|
|
20
31
|
DESIGN_WARNING="
|
|
21
32
|
DESIGN GATE VIOLATION: Current phase is ${CURRENT_PHASE} but docs/plans/visual-design-spec.md does not exist.
|
|
@@ -90,6 +101,12 @@ NEXT ACTIONS:
|
|
|
90
101
|
8. Rebuild TodoWrite from docs/plans/.build-state.md (TodoWrite does NOT survive compaction)"
|
|
91
102
|
fi
|
|
92
103
|
|
|
104
|
+
# Prepend deps warning (if any) to the context — applies to both branches.
|
|
105
|
+
if [ -n "$DEPS_WARNING" ]; then
|
|
106
|
+
CONTEXT="${DEPS_WARNING}
|
|
107
|
+
${CONTEXT}"
|
|
108
|
+
fi
|
|
109
|
+
|
|
93
110
|
# Output as additional_context for Claude Code
|
|
94
111
|
# JSON-escape the context
|
|
95
112
|
ESCAPED=$(printf '%s' "$CONTEXT" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read()))')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "buildanything",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "One command to build an entire product. 73 specialist agents orchestrated into a full engineering pipeline for Claude Code.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"buildanything": "./bin/setup.js"
|
|
@@ -35,6 +35,9 @@
|
|
|
35
35
|
"agents/",
|
|
36
36
|
"commands/",
|
|
37
37
|
"hooks/",
|
|
38
|
-
"
|
|
38
|
+
"protocols/",
|
|
39
|
+
"skills/",
|
|
40
|
+
"README.md",
|
|
41
|
+
"CHANGELOG.md"
|
|
39
42
|
]
|
|
40
43
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Brainstorm Protocol
|
|
2
|
+
|
|
3
|
+
You are the orchestrator running a structured brainstorming session to turn a raw idea into a validated design document.
|
|
4
|
+
|
|
5
|
+
## How This Works
|
|
6
|
+
|
|
7
|
+
You ask questions one at a time, propose approaches with trade-offs, and converge on decisions. The output is a Design Document saved to `docs/plans/`.
|
|
8
|
+
|
|
9
|
+
This is a CONVERSATION, not a monologue. Each step involves the user.
|
|
10
|
+
|
|
11
|
+
## Step 1: Understand the Idea
|
|
12
|
+
|
|
13
|
+
Read the build request and any existing context (brainstorm docs, decision briefs, conversation history, existing code).
|
|
14
|
+
|
|
15
|
+
Ask the user 3-5 targeted questions to fill gaps. Ask ONE question at a time, wait for the answer, then ask the next. Do not dump all questions at once.
|
|
16
|
+
|
|
17
|
+
Focus on:
|
|
18
|
+
- **Who is the user?** Who will use this, and what's their primary pain point?
|
|
19
|
+
- **What's the core flow?** What does the user DO in the product? Walk through the main interaction.
|
|
20
|
+
- **What's the scope?** What's in the MVP vs. what's deferred?
|
|
21
|
+
- **What are the constraints?** Tech stack preferences, budget, timeline, existing systems to integrate with.
|
|
22
|
+
- **What does success look like?** How will you know this works?
|
|
23
|
+
|
|
24
|
+
Skip questions the user already answered in their build request or prior context.
|
|
25
|
+
|
|
26
|
+
## Step 2: Propose Approaches
|
|
27
|
+
|
|
28
|
+
For each major design decision, propose 2-3 approaches with trade-offs:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
DECISION: [e.g., "Data storage approach"]
|
|
32
|
+
|
|
33
|
+
Option A: [approach] — [1-line trade-off summary]
|
|
34
|
+
Option B: [approach] — [1-line trade-off summary]
|
|
35
|
+
Option C: [approach] — [1-line trade-off summary]
|
|
36
|
+
|
|
37
|
+
My recommendation: [which and why, in 1 sentence]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Major decisions typically include:
|
|
41
|
+
- Tech stack (framework, language, database, hosting)
|
|
42
|
+
- Data model (what entities, how they relate)
|
|
43
|
+
- Primary user flow (step by step)
|
|
44
|
+
- Authentication approach
|
|
45
|
+
- External service integrations
|
|
46
|
+
- MVP scope boundary (in vs. out)
|
|
47
|
+
|
|
48
|
+
Let the user pick or modify. Do not force your recommendation.
|
|
49
|
+
|
|
50
|
+
## Step 3: Write the Design Document
|
|
51
|
+
|
|
52
|
+
After decisions converge, produce a Design Document and save to `docs/plans/YYYY-MM-DD-[topic]-design.md`:
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
# [Project Name] — Design Document
|
|
56
|
+
|
|
57
|
+
## Vision
|
|
58
|
+
[1-2 sentences: what this is and who it's for]
|
|
59
|
+
|
|
60
|
+
## Primary User
|
|
61
|
+
[Who they are, what they need, why current alternatives fail them]
|
|
62
|
+
|
|
63
|
+
## Core User Flow
|
|
64
|
+
[Step-by-step: what the user does, numbered list]
|
|
65
|
+
|
|
66
|
+
## Tech Stack
|
|
67
|
+
[Each choice with 1-line rationale]
|
|
68
|
+
|
|
69
|
+
## Data Model
|
|
70
|
+
[Key entities and relationships — tables, fields, types]
|
|
71
|
+
|
|
72
|
+
## External Integrations
|
|
73
|
+
[APIs, services, and what they're used for]
|
|
74
|
+
|
|
75
|
+
## MVP Scope
|
|
76
|
+
**In:** [bulleted list of what's included]
|
|
77
|
+
**Deferred:** [bulleted list of what's explicitly NOT in v1]
|
|
78
|
+
|
|
79
|
+
## Key Decisions
|
|
80
|
+
[Numbered list of decisions made during brainstorming, with brief rationale]
|
|
81
|
+
|
|
82
|
+
## Open Questions
|
|
83
|
+
[Anything unresolved that architecture or research needs to answer]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Present the document to the user for approval before proceeding.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Autonomous Mode (no user present)
|
|
91
|
+
|
|
92
|
+
If running in autonomous mode, you cannot ask questions interactively. Instead:
|
|
93
|
+
|
|
94
|
+
1. Read all available context (build request, existing docs, code).
|
|
95
|
+
2. For each major decision, pick the most pragmatic option and document your rationale.
|
|
96
|
+
3. Bias toward: proven tech, simpler architecture, smaller MVP scope.
|
|
97
|
+
4. Write the Design Document as above.
|
|
98
|
+
5. Log all decisions and rationale to `docs/plans/build-log.md`.
|
|
99
|
+
6. Proceed without user approval.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Build-Fix Protocol (One Error at a Time)
|
|
2
|
+
|
|
3
|
+
You are the orchestrator. A build, type-check, or lint check has failed. Do NOT dump all errors on a fix agent. Most build errors cascade — fixing the root cause clears 5-10 downstream errors.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
When the Verification Protocol reports FAIL on Build, Type-Check, or Lint checks. Also usable during Phase 4 scaffolding or Phase 5 implementation when builds break.
|
|
8
|
+
|
|
9
|
+
## Step 1: Extract First Error
|
|
10
|
+
|
|
11
|
+
Parse the failure output from the verification agent. Extract the FIRST error only:
|
|
12
|
+
- File path
|
|
13
|
+
- Line number (if available)
|
|
14
|
+
- Error message
|
|
15
|
+
|
|
16
|
+
Ignore all other errors. They are likely cascading from this one.
|
|
17
|
+
|
|
18
|
+
## Step 2: Fix
|
|
19
|
+
|
|
20
|
+
Call the Agent tool — description: "Fix [error]" — mode: "bypassPermissions" — prompt:
|
|
21
|
+
|
|
22
|
+
"[COMPLEXITY: S] Fix this single build error. FILE: [path]. LINE: [number]. ERROR: [message]. Fix this specific error. Do not fix other errors. Do not refactor. Commit: 'fix: [error description]'."
|
|
23
|
+
|
|
24
|
+
> Pass ONLY the single error. Do not show the fix agent the full error log.
|
|
25
|
+
|
|
26
|
+
## Step 3: Rebuild
|
|
27
|
+
|
|
28
|
+
Re-run ONLY the failing check (not all 6 verification checks). Count errors in the new output.
|
|
29
|
+
|
|
30
|
+
## Step 4: Evaluate
|
|
31
|
+
|
|
32
|
+
- **0 errors:** DONE. Return FIXED to the calling protocol.
|
|
33
|
+
- **Error count decreased:** Log "CASCADE: fixed 1 error, resolved [N] total." Return to Step 1 with the new first error.
|
|
34
|
+
- **Error count same or increased:** The fix was bad. Revert: `git revert HEAD --no-edit`. Try the SECOND error from the original output instead. If already tried 2 different errors, return FAILED.
|
|
35
|
+
- **Iteration count >= 5:** Return PARTIAL with remaining error count.
|
|
36
|
+
|
|
37
|
+
## Step 5: Report
|
|
38
|
+
|
|
39
|
+
Return to the orchestrator one of:
|
|
40
|
+
- **FIXED** — all errors resolved
|
|
41
|
+
- **PARTIAL** — [N] errors remain after 5 iterations
|
|
42
|
+
- **FAILED** — could not make progress
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Rules
|
|
47
|
+
|
|
48
|
+
- ONE error per fix agent. Never show a fix agent multiple errors.
|
|
49
|
+
- Revert bad fixes immediately. Do not accumulate broken fixes.
|
|
50
|
+
- Max 5 fix iterations per build-fix invocation.
|
|
51
|
+
- The fix agent is a SEPARATE agent from the verification agent. Fresh context.
|
|
52
|
+
- Track iteration count and error count delta in `docs/plans/.build-state.md`.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Cleanup Protocol (De-Sloppify)
|
|
2
|
+
|
|
3
|
+
You are the orchestrator. An implementation agent just finished a task. Before running the metric loop, you run a focused cleanup pass on the changed files.
|
|
4
|
+
|
|
5
|
+
## When to Skip
|
|
6
|
+
|
|
7
|
+
If the implementation was trivial — single config file change, < 20 lines changed total — skip this protocol. The overhead isn't worth it.
|
|
8
|
+
|
|
9
|
+
## Step 1: Collect the Changeset
|
|
10
|
+
|
|
11
|
+
Get the authoritative list of files changed by running `git diff --name-only HEAD~1` (or checking the implementation agent's commit). Do not rely solely on the agent's self-reported file list — use git as the source of truth. This is the cleanup scope. Nothing outside this list gets touched.
|
|
12
|
+
|
|
13
|
+
## Step 2: Invoke the Cleanup Agent
|
|
14
|
+
|
|
15
|
+
Call the Agent tool — description: "Cleanup [task name]" — mode: "bypassPermissions" — prompt:
|
|
16
|
+
|
|
17
|
+
"You are a code quality cleanup agent. Your job is to improve code quality in the files listed below WITHOUT changing behavior.
|
|
18
|
+
|
|
19
|
+
FILES IN SCOPE:
|
|
20
|
+
[list of files changed by the implementer]
|
|
21
|
+
|
|
22
|
+
ACCEPTANCE CRITERIA (do not break these):
|
|
23
|
+
[paste the task's acceptance criteria]
|
|
24
|
+
|
|
25
|
+
FIX these issues if you find them:
|
|
26
|
+
- Naming inconsistencies (variables, functions, files)
|
|
27
|
+
- Dead code and unused imports
|
|
28
|
+
- Redundant or duplicate imports
|
|
29
|
+
- Unclear variable or function names
|
|
30
|
+
- Missing error handling
|
|
31
|
+
- Code style violations
|
|
32
|
+
- Obvious DRY violations within the changed files
|
|
33
|
+
|
|
34
|
+
DO NOT:
|
|
35
|
+
- Add features or change behavior
|
|
36
|
+
- Modify the architecture or file structure
|
|
37
|
+
- Touch files outside the list above
|
|
38
|
+
- Refactor code that wasn't part of this task
|
|
39
|
+
- Modify tests unless fixing a broken assertion caused by the implementer
|
|
40
|
+
|
|
41
|
+
When finished, commit: 'refactor: cleanup [task name]'."
|
|
42
|
+
|
|
43
|
+
## Step 3: Verify
|
|
44
|
+
|
|
45
|
+
After the cleanup agent finishes, spot-check that acceptance criteria still hold. If the cleanup agent broke something, revert its commit and log the issue to `docs/plans/build-log.md`. Then proceed to the metric loop without cleanup.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- The cleanup agent is a SEPARATE Agent tool call from the implementer. No cleaning your own mess.
|
|
52
|
+
- Scope is sacred. Only files from the implementation changeset. Zero exceptions.
|
|
53
|
+
- This runs AFTER implementation, BEFORE the metric loop.
|
|
54
|
+
- If cleanup breaks acceptance criteria, revert and skip. Never block the metric loop on a cleanup failure.
|