buildanything 1.7.1 → 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/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/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.
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# Design & Visual Identity Protocol
|
|
2
|
+
|
|
3
|
+
You are the orchestrator. Phase 2 (Architecture) is complete. Before building anything, you must establish a research-backed visual design system. This phase is a FULL PEER to Architecture and Build — not a footnote.
|
|
4
|
+
|
|
5
|
+
## Anti-AI-Template Checklist
|
|
6
|
+
|
|
7
|
+
Penalize if 3+ of these appear together:
|
|
8
|
+
- Purple-to-blue or purple-to-pink gradient hero backgrounds
|
|
9
|
+
- Floating mesh/blob gradient decorative elements
|
|
10
|
+
- Inter or Plus Jakarta Sans as the font choice (unless research specifically justifies it)
|
|
11
|
+
- 3-column icon + heading + paragraph feature grids as the primary content pattern
|
|
12
|
+
- Glassmorphism/frosted glass as the primary design language
|
|
13
|
+
- Bento grid as default layout
|
|
14
|
+
- Dark mode + neon accents as the "premium" look
|
|
15
|
+
- Generic illustration pack imagery (Undraw, Humaaans style)
|
|
16
|
+
- Perfect symmetry everywhere with no visual tension or personality
|
|
17
|
+
|
|
18
|
+
One or two in isolation is fine IF the research supports it. Three or more together = AI template smell. Every visual choice must be justified by the research.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Step 3.1 — Design Research (2 agents, parallel, both use Playwright)
|
|
23
|
+
|
|
24
|
+
Launch 2 agents in ONE message. Both MUST use Playwright to capture real screenshots — text descriptions of competitor sites are insufficient. Downstream agents need visual references.
|
|
25
|
+
|
|
26
|
+
**Agent 1: "Competitive visual audit"**
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
You are a senior visual design researcher. Find the top 5-8 competitors or analogues for: [product description from design doc].
|
|
30
|
+
|
|
31
|
+
For each competitor:
|
|
32
|
+
1. Use Playwright to navigate to their site
|
|
33
|
+
2. Take full-page screenshots (desktop 1920x1080 + mobile 375x812)
|
|
34
|
+
3. Screenshot standout components: hero sections, cards, forms, navigation, CTAs, footer
|
|
35
|
+
4. Save all screenshots to docs/plans/design-references/competitors/[site-name]/
|
|
36
|
+
|
|
37
|
+
Analyze each site's visual language:
|
|
38
|
+
- Color palette (extract dominant colors)
|
|
39
|
+
- Typography choices (font families, scale, weight usage)
|
|
40
|
+
- Spacing rhythm (generous vs compact, section padding)
|
|
41
|
+
- Component style (shadows, borders, radius, elevation)
|
|
42
|
+
- What makes it feel premium or cheap?
|
|
43
|
+
- What would you steal vs avoid?
|
|
44
|
+
|
|
45
|
+
Output: Ranked analysis by visual quality and relevance. Include screenshot paths.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Agent 2: "Design inspiration mining"**
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
You are a senior visual design researcher. Search Awwwards.com, Godly.website, and SiteInspire for award-winning sites in the category: [product category — SaaS, developer tool, e-commerce, marketplace, etc.].
|
|
52
|
+
|
|
53
|
+
For the top 5-8 results:
|
|
54
|
+
1. Use Playwright to navigate and take full-page screenshots (desktop + mobile)
|
|
55
|
+
2. Screenshot standout components and interactions worth referencing
|
|
56
|
+
3. Save all screenshots to docs/plans/design-references/inspiration/[site-name]/
|
|
57
|
+
|
|
58
|
+
Identify cross-cutting patterns:
|
|
59
|
+
- What do the best-in-class sites have in common?
|
|
60
|
+
- What visual trends dominate this category right now?
|
|
61
|
+
- What separates "Awwwards worthy" from "generic template"?
|
|
62
|
+
- What specific techniques create the premium feel? (spacing, typography, animation, color)
|
|
63
|
+
|
|
64
|
+
Output: Trend analysis with specific adoptable patterns and anti-patterns to avoid. Include screenshot paths.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
After both return, synthesize a **Design Research Brief** saved to `docs/plans/design-research.md`. Include all screenshot paths for downstream agent reference.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Step 3.2 — Design Direction (2 agents, sequential)
|
|
72
|
+
|
|
73
|
+
The UI Designer makes ALL decisions autonomously. No "Direction A vs B" presentations. Pick the best based on the research.
|
|
74
|
+
|
|
75
|
+
**Agent 1: UX Architect**
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
You are the UX Architect. Create the structural design foundation.
|
|
79
|
+
|
|
80
|
+
INPUTS:
|
|
81
|
+
- Architecture doc (frontend section): [paste]
|
|
82
|
+
- Design Research Brief: [paste from docs/plans/design-research.md]
|
|
83
|
+
- Reference screenshots: [list paths from docs/plans/design-references/]
|
|
84
|
+
- User persona from Phase 1 research: [paste relevant section]
|
|
85
|
+
|
|
86
|
+
OUTPUT a UX Foundation document:
|
|
87
|
+
1. Information architecture and content hierarchy
|
|
88
|
+
2. User flow diagrams for core interactions
|
|
89
|
+
3. Layout strategy — which pages use which layout patterns, informed by what worked in the research
|
|
90
|
+
4. Component hierarchy — what components exist, how they compose
|
|
91
|
+
5. Responsive breakpoint strategy (mobile-first)
|
|
92
|
+
6. Navigation patterns
|
|
93
|
+
7. Interaction patterns: hover, focus, loading, error, empty, success states
|
|
94
|
+
|
|
95
|
+
Base layout and flow decisions on what performed best in the competitive analysis — not generic patterns.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Agent 2: UI Designer**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
You are the UI Designer. Create the Visual Design Spec.
|
|
102
|
+
|
|
103
|
+
INPUTS:
|
|
104
|
+
- UX Foundation from UX Architect: [paste full output]
|
|
105
|
+
- Design Research Brief: [paste from docs/plans/design-research.md]
|
|
106
|
+
- Reference screenshots: [list paths from docs/plans/design-references/]
|
|
107
|
+
- User persona: [paste relevant section]
|
|
108
|
+
|
|
109
|
+
Make AUTONOMOUS decisions. Do not present options. Pick the single best direction based on the research.
|
|
110
|
+
|
|
111
|
+
OUTPUT a Visual Design Spec covering:
|
|
112
|
+
|
|
113
|
+
1. **Color System** — Primary, secondary, accent, semantic (success/warning/error/info), neutral palette. Full hex values for light AND dark themes. Rationale tied to research: "competitor X uses muted blues; we differentiate with warm neutrals because our persona values approachability."
|
|
114
|
+
|
|
115
|
+
2. **Typography System** — Font families (from Google Fonts or system fonts), size scale using a mathematical ratio (Major Third 1.25 or Perfect Fourth 1.333), weights, line heights (body: 1.5-1.6x, headings: 1.1-1.3x), letter spacing adjustments. MAX 2 font families.
|
|
116
|
+
|
|
117
|
+
3. **Spacing System** — 8px base unit. Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96, 128px. Rule: internal component padding MUST be less than external margin between components (Gestalt proximity principle).
|
|
118
|
+
|
|
119
|
+
4. **Shadow & Elevation** — Layered shadow system using tinted shadows (NOT pure black — e.g., rgba(0,0,50,0.08) instead of rgba(0,0,0,0.1)). Ambient shadow + key shadow per elevation level. Levels: flat, raised (cards), elevated (dropdowns), overlay (modals), top (tooltips).
|
|
120
|
+
|
|
121
|
+
5. **Border Radius** — ONE primary radius for the entire app (pick 4px, 6px, 8px, or 12px and justify). Pill radius for tags/badges only.
|
|
122
|
+
|
|
123
|
+
6. **Animation & Motion** — Easing functions (ease-out for entrances, ease-in for exits, ease-in-out for transitions). Duration scale: micro 150ms, normal 300ms, emphasis 500ms. Stagger timing for lists: 30-50ms between items. Respect prefers-reduced-motion.
|
|
124
|
+
|
|
125
|
+
7. **Component Styles** — For each component (buttons, inputs, cards, badges, navigation, modals, alerts, tables):
|
|
126
|
+
- ALL states: default, hover, active, focus-visible, disabled, loading
|
|
127
|
+
- Exact CSS properties: background, color, border, shadow, padding, font-size, font-weight, border-radius, transition
|
|
128
|
+
|
|
129
|
+
8. **Design Rationale** — For EVERY major decision, cite the research. "The top 3 Awwwards sites in this category use geometric sans-serifs with high x-heights. Competitor Y uses Inter which is ubiquitous. We chose Space Grotesk to differentiate while maintaining the same readability characteristics."
|
|
130
|
+
|
|
131
|
+
Apply the Anti-AI-Template Checklist above. Every visual choice must be JUSTIFIED by the research, not by framework defaults.
|
|
132
|
+
|
|
133
|
+
Save output to docs/plans/visual-design-spec.md.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Step 3.3 — Living Style Guide (1 implementation agent)
|
|
139
|
+
|
|
140
|
+
Build a real, rendered style guide page that serves as the single source of truth for the entire product's visual language. This is what a design agency would deliver — not throwaway proof screens, but a reusable reference that every implementation agent can view and every QA check can compare against.
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
[COMPLEXITY: L] Build a living style guide at /design-system (or a standalone HTML file if no routing exists).
|
|
144
|
+
|
|
145
|
+
INPUTS:
|
|
146
|
+
- Visual Design Spec: [paste from docs/plans/visual-design-spec.md]
|
|
147
|
+
- UX Foundation: [paste relevant component and interaction sections]
|
|
148
|
+
- Reference screenshots: [list paths from docs/plans/design-references/ — these are your quality targets]
|
|
149
|
+
|
|
150
|
+
The style guide MUST include rendered, interactive examples of:
|
|
151
|
+
|
|
152
|
+
1. **Colors** — Every color from the palette rendered as swatches with hex/variable names. Light and dark mode side by side.
|
|
153
|
+
2. **Typography** — Every heading level (h1-h6), body text, captions, labels, code text. Showing font family, size, weight, line height.
|
|
154
|
+
3. **Spacing** — Visual scale showing 4px through 128px with labeled examples.
|
|
155
|
+
4. **Buttons** — Primary, secondary, ghost, destructive. Every state: default, hover, active, focus-visible, disabled, loading. All rendered and interactive (hover them, click them).
|
|
156
|
+
5. **Form Elements** — Text input, textarea, select, checkbox, radio, toggle, date picker. Every state: empty, filled, focused, error, disabled, loading.
|
|
157
|
+
6. **Cards** — Content card, interactive card, stat card. With hover elevation, transitions.
|
|
158
|
+
7. **Navigation** — Header, sidebar, breadcrumb, tabs, pagination. Active/inactive states.
|
|
159
|
+
8. **Feedback** — Alerts (success, warning, error, info), toasts, loading spinners, skeleton screens, empty states, progress bars.
|
|
160
|
+
9. **Modals & Overlays** — Modal, sheet, dropdown, tooltip, popover. Open/close transitions.
|
|
161
|
+
10. **Layout Examples** — A sample section showing the grid system, responsive behavior at 375px/768px/1024px/1280px.
|
|
162
|
+
|
|
163
|
+
REQUIREMENTS:
|
|
164
|
+
- Use EXACT values from the Visual Design Spec. Do not deviate.
|
|
165
|
+
- Every component must be interactive — hover states work, focus rings show, transitions animate.
|
|
166
|
+
- Mobile-responsive — the style guide itself must be readable on mobile.
|
|
167
|
+
- This page ships with the product as developer documentation.
|
|
168
|
+
|
|
169
|
+
Commit: 'feat: living style guide'
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Step 3.4 — Visual QA Loop (Playwright + Metric Loop)
|
|
175
|
+
|
|
176
|
+
Run the Metric Loop Protocol (`protocols/metric-loop.md`).
|
|
177
|
+
|
|
178
|
+
**Metric definition for `.build-state.md`:**
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
## Active Metric Loop
|
|
182
|
+
Phase: 3
|
|
183
|
+
Artifact: Living style guide (/design-system or standalone)
|
|
184
|
+
Metric: Design system quality — component completeness, visual fidelity to spec, interactive states, competitive quality relative to research references
|
|
185
|
+
How to measure: Playwright screenshots of style guide sections (desktop 1920x1080 + mobile 375x812), scored by design critic agent across 6 dimensions
|
|
186
|
+
Target: 80
|
|
187
|
+
Max iterations: 5
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Measurement agent prompt:**
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
You are a senior design critic at a top-tier agency (Pentagram, Work & Co). You are reviewing a product's design system / living style guide for quality.
|
|
194
|
+
|
|
195
|
+
INPUTS:
|
|
196
|
+
- Screenshots of the style guide page: [Playwright captures — desktop + mobile, each section]
|
|
197
|
+
- The Visual Design Spec the implementation should follow: [paste from docs/plans/visual-design-spec.md]
|
|
198
|
+
- Reference screenshots from competitors and Awwwards winners: [paths in docs/plans/design-references/]
|
|
199
|
+
|
|
200
|
+
Score 0-100 across these 6 dimensions (weight equally, average for final score):
|
|
201
|
+
|
|
202
|
+
1. **Spacing & Alignment (0-100)**
|
|
203
|
+
- 8px grid respected? Hero padding 120-200px, not 40px?
|
|
204
|
+
- Internal component padding < external margin (Gestalt proximity)?
|
|
205
|
+
|
|
206
|
+
2. **Typography Hierarchy (0-100)**
|
|
207
|
+
- Line heights: body 1.5-1.6x, headings 1.1-1.3x?
|
|
208
|
+
- Consistent type scale from the spec applied?
|
|
209
|
+
|
|
210
|
+
3. **Color Harmony (0-100)**
|
|
211
|
+
- 60-30-10 rule (60% neutral, 30% secondary, 10% accent)?
|
|
212
|
+
- WCAG AA contrast (4.5:1 body, 3:1 large text)? Shadows tinted not pure black?
|
|
213
|
+
|
|
214
|
+
4. **Component Polish (0-100)**
|
|
215
|
+
- All states present (hover, focus-visible, disabled, loading)?
|
|
216
|
+
- Shadow/elevation and border radius per spec?
|
|
217
|
+
|
|
218
|
+
5. **Responsive Quality (0-100)**
|
|
219
|
+
- Touch targets 44px+ on mobile? No horizontal scroll?
|
|
220
|
+
- Layout adapts per breakpoint (not just stacks)?
|
|
221
|
+
|
|
222
|
+
6. **Originality (0-100)**
|
|
223
|
+
- Does this look DESIGNED or GENERATED?
|
|
224
|
+
- Apply the Anti-AI-Template Checklist above. Penalize heavily if 3+ items appear together.
|
|
225
|
+
- The test: would a human designer say "this was made by AI"?
|
|
226
|
+
- Does the design have personality and point of view?
|
|
227
|
+
|
|
228
|
+
Return format:
|
|
229
|
+
SCORE: [average of 6 dimensions, rounded to nearest integer]
|
|
230
|
+
DIMENSION SCORES: [list each dimension with its score]
|
|
231
|
+
TOP ISSUE: [the single highest-impact change that would most improve the overall score]
|
|
232
|
+
FINDINGS: [detailed list of specific issues, each with the file path and line/component where the fix should happen]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Fix agent receives:** ONLY the top issue + relevant file paths + the relevant Visual Design Spec section. One fix per iteration. Commit each fix.
|
|
236
|
+
|
|
237
|
+
**Exit conditions (from metric-loop protocol):**
|
|
238
|
+
- Score >= 80 → proceed to Phase 4
|
|
239
|
+
- Stall (2 consecutive delta <= 0) → accept if score >= 65, log warning below 65
|
|
240
|
+
- Max 5 iterations → accept if score >= 65, log warning below 65
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Step 3.5 — Autonomous Quality Gate
|
|
245
|
+
|
|
246
|
+
Log to `docs/plans/build-log.md`:
|
|
247
|
+
- Final style guide screenshot paths
|
|
248
|
+
- Score history table from the metric loop
|
|
249
|
+
- Key design decisions and their research rationale
|
|
250
|
+
- Anti-AI-template dimension score
|
|
251
|
+
|
|
252
|
+
No user pause. Proceed to Phase 4 (Foundation).
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Rules
|
|
257
|
+
|
|
258
|
+
<HARD-GATE>
|
|
259
|
+
DESIGN RESEARCH IS NOT OPTIONAL. Step 3.1 agents MUST use Playwright to capture real screenshots of real competitor and inspiration sites. Text-only descriptions of "what their site looks like" are INSUFFICIENT — downstream agents need visual references to make informed decisions and the Visual QA measurement agent needs them for comparison.
|
|
260
|
+
|
|
261
|
+
If Playwright is unavailable: log as blocker, use web search to find and describe competitors in maximum visual detail, proceed with degraded quality. But TRY Playwright first.
|
|
262
|
+
</HARD-GATE>
|
|
263
|
+
|
|
264
|
+
- The UI Designer agent makes ALL visual decisions autonomously. No "pick A or B" presentations. The research provides the evidence; the agent makes the call.
|
|
265
|
+
- The Visual Design Spec MUST include research rationale for every major decision. Unjustified defaults are a design failure.
|
|
266
|
+
- The anti-AI-template checklist is a SCORING DIMENSION (Originality), not a hard blocker. The goal is awareness and intentional differentiation, not rigid prohibition of any single element.
|
|
267
|
+
- The living style guide is a REAL implementation with real CSS/components, not mockups or wireframes. Every component must be interactive and responsive. It ships with the product.
|
|
268
|
+
- The Visual QA loop is the primary quality control — no human reviews the design. The 80/100 threshold IS the taste arbiter. Treat it seriously.
|
|
269
|
+
- Screenshot data stays in measurement agents' context (separate subprocess). Do NOT load screenshots into the orchestrator's context — receive only the SCORE and TOP ISSUE as text.
|