buildanything 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +9 -3
- package/CHANGELOG.md +57 -0
- package/README.md +2 -2
- package/agents/a11y-architect.md +166 -0
- package/agents/business-model.md +80 -29
- package/agents/code-architect.md +75 -0
- package/agents/code-reviewer.md +255 -0
- package/agents/code-simplifier.md +64 -0
- package/agents/design-brand-guardian.md +293 -53
- package/agents/design-critic.md +139 -0
- package/agents/design-inclusive-visuals-specialist.md +6 -19
- package/agents/design-ui-designer.md +335 -56
- package/agents/design-ux-architect.md +403 -55
- package/agents/design-ux-researcher.md +264 -49
- package/agents/engineering-ai-engineer.md +26 -36
- package/agents/engineering-backend-architect.md +185 -36
- package/agents/engineering-data-engineer.md +225 -43
- package/agents/engineering-devops-automator.md +227 -74
- package/agents/engineering-frontend-developer.md +210 -34
- package/agents/engineering-mobile-app-builder.md +6 -1
- package/agents/engineering-rapid-prototyper.md +30 -9
- package/agents/engineering-security-engineer.md +263 -61
- package/agents/engineering-senior-developer.md +128 -19
- package/agents/engineering-sre.md +84 -0
- package/agents/engineering-technical-writer.md +285 -41
- package/agents/feature-intel.md +110 -0
- package/agents/ios-app-review-guardian.md +19 -2
- package/agents/ios-foundation-models-specialist.md +20 -2
- package/agents/ios-storekit-specialist.md +9 -2
- package/agents/ios-swift-architect.md +28 -1
- package/agents/ios-swift-search.md +8 -1
- package/agents/ios-swift-ui-design.md +33 -1
- package/agents/marketing-app-store-optimizer.md +246 -64
- package/agents/planner.md +216 -0
- package/agents/pr-test-analyzer.md +63 -0
- package/agents/product-feedback-synthesizer.md +8 -2
- package/agents/refactor-cleaner.md +102 -0
- package/agents/security-reviewer.md +128 -0
- package/agents/silent-failure-hunter.md +54 -0
- package/agents/swift-build-resolver.md +119 -0
- package/agents/swift-reviewer.md +112 -0
- package/agents/tech-feasibility.md +21 -1
- package/agents/testing-api-tester.md +236 -59
- package/agents/testing-evidence-collector.md +26 -1
- package/agents/testing-performance-benchmarker.md +21 -1
- package/agents/testing-reality-checker.md +6 -1
- package/agents/visual-research.md +116 -0
- package/bin/adapters/cycle-counter-tool.ts +155 -0
- package/bin/adapters/scribe-tool.ts +71 -0
- package/bin/adapters/state-save-tool.ts +130 -0
- package/bin/adapters/write-lease-tool.ts +127 -0
- package/bin/buildanything-runtime.js +15 -0
- package/bin/buildanything-runtime.ts +328 -0
- package/bin/setup.js +83 -8
- package/commands/add-feature.md +2 -0
- package/commands/build.md +782 -266
- package/commands/fix.md +1 -1
- package/commands/self-check.md +121 -0
- package/commands/setup.md +50 -9
- package/commands/ux-review.md +2 -2
- package/commands/verify.md +6 -9
- package/docs/migration/agents.yaml +729 -0
- package/docs/migration/phase-graph.yaml +1088 -0
- package/docs/migration/sdk-host-compat.md +18 -0
- package/hooks/compile-writer-owner-cache.ts +171 -0
- package/hooks/hooks.json +36 -0
- package/hooks/pre-tool-use +19 -0
- package/hooks/pre-tool-use.ts +776 -0
- package/hooks/record-mode-transitions.ts +178 -0
- package/hooks/session-start +71 -1
- package/hooks/subagent-start +17 -0
- package/hooks/subagent-start.ts +471 -0
- package/hooks/subagent-stop +17 -0
- package/hooks/subagent-stop.ts +153 -0
- package/package.json +24 -4
- package/protocols/architecture-schema.md +171 -0
- package/protocols/decision-log.md +131 -0
- package/protocols/ios-context.md +10 -11
- package/protocols/ios-phase-branches.md +208 -33
- package/protocols/launch-readiness.md +258 -0
- package/protocols/metric-loop.md +62 -2
- package/protocols/smoke-test.md +9 -1
- package/protocols/state-schema.json +388 -0
- package/protocols/state-schema.md +172 -0
- package/protocols/verify.md +62 -2
- package/protocols/visual-dna.md +185 -0
- package/protocols/web-phase-branches.md +222 -72
- package/skills/ios/_VENDORED.md +2 -0
- package/skills/ios/app-store-connect-metadata/SKILL.md +148 -0
- package/skills/ios/asc-privacy-manifest/SKILL.md +350 -0
- package/skills/ios/hig-components-content/SKILL.md +86 -0
- package/skills/ios/hig-components-content/references/activity-views.md +79 -0
- package/skills/ios/hig-components-content/references/charts.md +180 -0
- package/skills/ios/hig-components-content/references/collections.md +48 -0
- package/skills/ios/hig-components-content/references/color-wells.md +42 -0
- package/skills/ios/hig-components-content/references/image-views.md +82 -0
- package/skills/ios/hig-components-content/references/image-wells.md +34 -0
- package/skills/ios/hig-components-content/references/lockups.md +78 -0
- package/skills/ios/hig-components-content/references/web-views.md +36 -0
- package/skills/ios/hig-components-controls/SKILL.md +88 -0
- package/skills/ios/hig-components-controls/references/combo-boxes.md +40 -0
- package/skills/ios/hig-components-controls/references/controls.md +112 -0
- package/skills/ios/hig-components-controls/references/gauges.md +74 -0
- package/skills/ios/hig-components-controls/references/labels.md +92 -0
- package/skills/ios/hig-components-controls/references/pickers.md +128 -0
- package/skills/ios/hig-components-controls/references/rating-indicators.md +38 -0
- package/skills/ios/hig-components-controls/references/segmented-controls.md +94 -0
- package/skills/ios/hig-components-controls/references/sliders.md +92 -0
- package/skills/ios/hig-components-controls/references/steppers.md +40 -0
- package/skills/ios/hig-components-controls/references/text-fields.md +88 -0
- package/skills/ios/hig-components-controls/references/text-views.md +56 -0
- package/skills/ios/hig-components-controls/references/toggles.md +127 -0
- package/skills/ios/hig-components-controls/references/token-fields.md +48 -0
- package/skills/ios/hig-components-controls/references/virtual-keyboards.md +156 -0
- package/skills/ios/hig-components-dialogs/SKILL.md +76 -0
- package/skills/ios/hig-components-dialogs/references/action-sheets.md +74 -0
- package/skills/ios/hig-components-dialogs/references/alerts.md +158 -0
- package/skills/ios/hig-components-dialogs/references/digit-entry-views.md +32 -0
- package/skills/ios/hig-components-dialogs/references/popovers.md +81 -0
- package/skills/ios/hig-components-dialogs/references/sheets.md +157 -0
- package/skills/ios/hig-components-layout/SKILL.md +99 -0
- package/skills/ios/hig-components-layout/references/boxes.md +48 -0
- package/skills/ios/hig-components-layout/references/column-views.md +44 -0
- package/skills/ios/hig-components-layout/references/lists-and-tables.md +99 -0
- package/skills/ios/hig-components-layout/references/ornaments.md +56 -0
- package/skills/ios/hig-components-layout/references/outline-views.md +64 -0
- package/skills/ios/hig-components-layout/references/panels.md +75 -0
- package/skills/ios/hig-components-layout/references/scroll-views.md +123 -0
- package/skills/ios/hig-components-layout/references/sidebars.md +109 -0
- package/skills/ios/hig-components-layout/references/split-views.md +110 -0
- package/skills/ios/hig-components-layout/references/tab-bars.md +173 -0
- package/skills/ios/hig-components-layout/references/tab-views.md +68 -0
- package/skills/ios/hig-components-layout/references/windows.md +188 -0
- package/skills/ios/hig-components-menus/SKILL.md +81 -0
- package/skills/ios/hig-components-menus/references/action-button.md +61 -0
- package/skills/ios/hig-components-menus/references/buttons.md +261 -0
- package/skills/ios/hig-components-menus/references/context-menus.md +105 -0
- package/skills/ios/hig-components-menus/references/disclosure-controls.md +84 -0
- package/skills/ios/hig-components-menus/references/dock-menus.md +40 -0
- package/skills/ios/hig-components-menus/references/edit-menus.md +88 -0
- package/skills/ios/hig-components-menus/references/menus.md +171 -0
- package/skills/ios/hig-components-menus/references/pop-up-buttons.md +70 -0
- package/skills/ios/hig-components-menus/references/pull-down-buttons.md +77 -0
- package/skills/ios/hig-components-menus/references/the-menu-bar.md +303 -0
- package/skills/ios/hig-components-menus/references/toolbars.md +256 -0
- package/skills/ios/hig-components-search/SKILL.md +68 -0
- package/skills/ios/hig-components-search/references/page-controls.md +120 -0
- package/skills/ios/hig-components-search/references/path-controls.md +40 -0
- package/skills/ios/hig-components-search/references/search-fields.md +189 -0
- package/skills/ios/hig-components-status/SKILL.md +80 -0
- package/skills/ios/hig-components-status/references/activity-rings.md +105 -0
- package/skills/ios/hig-components-status/references/progress-indicators.md +116 -0
- package/skills/ios/hig-components-status/references/status-bars.md +38 -0
- package/skills/ios/hig-components-system/SKILL.md +88 -0
- package/skills/ios/hig-components-system/references/app-clips.md +387 -0
- package/skills/ios/hig-components-system/references/app-shortcuts.md +114 -0
- package/skills/ios/hig-components-system/references/complications.md +425 -0
- package/skills/ios/hig-components-system/references/home-screen-quick-actions.md +42 -0
- package/skills/ios/hig-components-system/references/live-activities.md +442 -0
- package/skills/ios/hig-components-system/references/notifications.md +153 -0
- package/skills/ios/hig-components-system/references/top-shelf.md +135 -0
- package/skills/ios/hig-components-system/references/watch-faces.md +40 -0
- package/skills/ios/hig-components-system/references/widgets.md +517 -0
- package/skills/ios/hig-foundations/SKILL.md +98 -0
- package/skills/ios/hig-foundations/references/accessibility.md +291 -0
- package/skills/ios/hig-foundations/references/app-icons.md +210 -0
- package/skills/ios/hig-foundations/references/branding.md +44 -0
- package/skills/ios/hig-foundations/references/color.md +274 -0
- package/skills/ios/hig-foundations/references/dark-mode.md +116 -0
- package/skills/ios/hig-foundations/references/icons.md +263 -0
- package/skills/ios/hig-foundations/references/images.md +176 -0
- package/skills/ios/hig-foundations/references/immersive-experiences.md +174 -0
- package/skills/ios/hig-foundations/references/inclusion.md +189 -0
- package/skills/ios/hig-foundations/references/layout.md +425 -0
- package/skills/ios/hig-foundations/references/materials.md +238 -0
- package/skills/ios/hig-foundations/references/motion.md +103 -0
- package/skills/ios/hig-foundations/references/privacy.md +231 -0
- package/skills/ios/hig-foundations/references/right-to-left.md +206 -0
- package/skills/ios/hig-foundations/references/sf-symbols.md +310 -0
- package/skills/ios/hig-foundations/references/spatial-layout.md +142 -0
- package/skills/ios/hig-foundations/references/typography.md +1146 -0
- package/skills/ios/hig-foundations/references/writing.md +91 -0
- package/skills/ios/hig-inputs/SKILL.md +94 -0
- package/skills/ios/hig-inputs/references/apple-pencil-and-scribble.md +148 -0
- package/skills/ios/hig-inputs/references/camera-control.md +107 -0
- package/skills/ios/hig-inputs/references/digital-crown.md +83 -0
- package/skills/ios/hig-inputs/references/eyes.md +120 -0
- package/skills/ios/hig-inputs/references/focus-and-selection.md +120 -0
- package/skills/ios/hig-inputs/references/game-controls.md +156 -0
- package/skills/ios/hig-inputs/references/gestures.md +208 -0
- package/skills/ios/hig-inputs/references/gyro-and-accelerometer.md +40 -0
- package/skills/ios/hig-inputs/references/keyboards.md +234 -0
- package/skills/ios/hig-inputs/references/nearby-interactions.md +70 -0
- package/skills/ios/hig-inputs/references/pointing-devices.md +237 -0
- package/skills/ios/hig-inputs/references/remotes.md +67 -0
- package/skills/ios/hig-inputs/references/spatial-interactions.md +70 -0
- package/skills/ios/hig-patterns/SKILL.md +104 -0
- package/skills/ios/hig-patterns/references/charting-data.md +81 -0
- package/skills/ios/hig-patterns/references/collaboration-and-sharing.md +86 -0
- package/skills/ios/hig-patterns/references/drag-and-drop.md +134 -0
- package/skills/ios/hig-patterns/references/entering-data.md +69 -0
- package/skills/ios/hig-patterns/references/feedback.md +67 -0
- package/skills/ios/hig-patterns/references/file-management.md +135 -0
- package/skills/ios/hig-patterns/references/going-full-screen.md +79 -0
- package/skills/ios/hig-patterns/references/launching.md +81 -0
- package/skills/ios/hig-patterns/references/live-viewing-apps.md +79 -0
- package/skills/ios/hig-patterns/references/loading.md +59 -0
- package/skills/ios/hig-patterns/references/managing-accounts.md +107 -0
- package/skills/ios/hig-patterns/references/managing-notifications.md +99 -0
- package/skills/ios/hig-patterns/references/modality.md +82 -0
- package/skills/ios/hig-patterns/references/multitasking.md +131 -0
- package/skills/ios/hig-patterns/references/offering-help.md +117 -0
- package/skills/ios/hig-patterns/references/onboarding.md +69 -0
- package/skills/ios/hig-patterns/references/playing-audio.md +124 -0
- package/skills/ios/hig-patterns/references/playing-haptics.md +280 -0
- package/skills/ios/hig-patterns/references/playing-video.md +180 -0
- package/skills/ios/hig-patterns/references/printing.md +50 -0
- package/skills/ios/hig-patterns/references/ratings-and-reviews.md +48 -0
- package/skills/ios/hig-patterns/references/searching.md +70 -0
- package/skills/ios/hig-patterns/references/settings.md +84 -0
- package/skills/ios/hig-patterns/references/undo-and-redo.md +58 -0
- package/skills/ios/hig-patterns/references/workouts.md +76 -0
- package/skills/ios/hig-platforms/SKILL.md +84 -0
- package/skills/ios/hig-platforms/references/designing-for-games.md +159 -0
- package/skills/ios/hig-platforms/references/designing-for-ios.md +66 -0
- package/skills/ios/hig-platforms/references/designing-for-ipados.md +64 -0
- package/skills/ios/hig-platforms/references/designing-for-macos.md +70 -0
- package/skills/ios/hig-platforms/references/designing-for-tvos.md +68 -0
- package/skills/ios/hig-platforms/references/designing-for-visionos.md +85 -0
- package/skills/ios/hig-platforms/references/designing-for-watchos.md +74 -0
- package/skills/ios/hig-project-context/SKILL.md +133 -0
- package/skills/ios/hig-technologies/SKILL.md +107 -0
- package/skills/ios/hig-technologies/references/airplay.md +125 -0
- package/skills/ios/hig-technologies/references/always-on.md +62 -0
- package/skills/ios/hig-technologies/references/apple-pay.md +441 -0
- package/skills/ios/hig-technologies/references/augmented-reality.md +247 -0
- package/skills/ios/hig-technologies/references/carekit.md +224 -0
- package/skills/ios/hig-technologies/references/carplay.md +119 -0
- package/skills/ios/hig-technologies/references/game-center.md +343 -0
- package/skills/ios/hig-technologies/references/generative-ai.md +110 -0
- package/skills/ios/hig-technologies/references/healthkit.md +120 -0
- package/skills/ios/hig-technologies/references/homekit.md +343 -0
- package/skills/ios/hig-technologies/references/icloud.md +52 -0
- package/skills/ios/hig-technologies/references/id-verifier.md +73 -0
- package/skills/ios/hig-technologies/references/imessage-apps-and-stickers.md +105 -0
- package/skills/ios/hig-technologies/references/in-app-purchase.md +263 -0
- package/skills/ios/hig-technologies/references/live-photos.md +54 -0
- package/skills/ios/hig-technologies/references/mac-catalyst.md +216 -0
- package/skills/ios/hig-technologies/references/machine-learning.md +394 -0
- package/skills/ios/hig-technologies/references/maps.md +221 -0
- package/skills/ios/hig-technologies/references/nfc.md +51 -0
- package/skills/ios/hig-technologies/references/photo-editing.md +40 -0
- package/skills/ios/hig-technologies/references/researchkit.md +134 -0
- package/skills/ios/hig-technologies/references/shareplay.md +142 -0
- package/skills/ios/hig-technologies/references/shazamkit.md +47 -0
- package/skills/ios/hig-technologies/references/sign-in-with-apple.md +288 -0
- package/skills/ios/hig-technologies/references/siri.md +523 -0
- package/skills/ios/hig-technologies/references/tap-to-pay-on-iphone.md +208 -0
- package/skills/ios/hig-technologies/references/voiceover.md +90 -0
- package/skills/ios/hig-technologies/references/wallet.md +420 -0
- package/skills/ios/ios-bootstrap/SKILL.md +16 -7
- package/skills/ios/swift-actor-persistence/SKILL.md +143 -0
- package/skills/ios/swift-concurrency-6-2/SKILL.md +216 -0
- package/skills/ios/swift-protocol-di-testing/SKILL.md +190 -0
- package/skills/ios/swiftui-design-tokens/SKILL.md +475 -0
- package/skills/ios/writing-for-interfaces/SKILL.md +75 -0
- package/skills/web/accessibility/SKILL.md +146 -0
- package/skills/web/aceternity-ui/SKILL.md +719 -0
- package/skills/web/aceternity-ui/metadata.json +10 -0
- package/skills/web/api-design/SKILL.md +523 -0
- package/skills/web/chart-accessibility/SKILL.md +332 -0
- package/skills/web/composition-patterns/AGENTS.md +946 -0
- package/skills/web/composition-patterns/README.md +60 -0
- package/skills/web/composition-patterns/SKILL.md +89 -0
- package/skills/web/composition-patterns/metadata.json +11 -0
- package/skills/web/composition-patterns/rules/_sections.md +29 -0
- package/skills/web/composition-patterns/rules/_template.md +24 -0
- package/skills/web/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/skills/web/composition-patterns/rules/architecture-compound-components.md +112 -0
- package/skills/web/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/skills/web/composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/skills/web/composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/skills/web/composition-patterns/rules/state-context-interface.md +191 -0
- package/skills/web/composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/skills/web/composition-patterns/rules/state-lift-state.md +125 -0
- package/skills/web/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/skills/web/database-migrations/SKILL.md +429 -0
- package/skills/web/deployment-patterns/SKILL.md +427 -0
- package/skills/web/docker-patterns/SKILL.md +364 -0
- package/skills/web/e2e-testing/SKILL.md +326 -0
- package/skills/web/lighthouse-ci/SKILL.md +361 -0
- package/skills/web/mcp-server-patterns/SKILL.md +69 -0
- package/skills/web/next-best-practices/SKILL.md +153 -0
- package/skills/web/next-best-practices/async-patterns.md +87 -0
- package/skills/web/next-best-practices/bundling.md +180 -0
- package/skills/web/next-best-practices/data-patterns.md +297 -0
- package/skills/web/next-best-practices/debug-tricks.md +105 -0
- package/skills/web/next-best-practices/directives.md +73 -0
- package/skills/web/next-best-practices/error-handling.md +227 -0
- package/skills/web/next-best-practices/file-conventions.md +140 -0
- package/skills/web/next-best-practices/font.md +245 -0
- package/skills/web/next-best-practices/functions.md +108 -0
- package/skills/web/next-best-practices/hydration-error.md +91 -0
- package/skills/web/next-best-practices/image.md +173 -0
- package/skills/web/next-best-practices/metadata.md +301 -0
- package/skills/web/next-best-practices/parallel-routes.md +287 -0
- package/skills/web/next-best-practices/route-handlers.md +146 -0
- package/skills/web/next-best-practices/rsc-boundaries.md +159 -0
- package/skills/web/next-best-practices/runtime-selection.md +39 -0
- package/skills/web/next-best-practices/scripts.md +141 -0
- package/skills/web/next-best-practices/self-hosting.md +371 -0
- package/skills/web/next-best-practices/suspense-boundaries.md +67 -0
- package/skills/web/next-cache-components/SKILL.md +411 -0
- package/skills/web/postgres-best-practices/SKILL.md +14 -0
- package/skills/web/postgres-best-practices/references/schema-design.md +9 -0
- package/skills/web/react-best-practices/AGENTS.md +3810 -0
- package/skills/web/react-best-practices/README.md +123 -0
- package/skills/web/react-best-practices/SKILL.md +149 -0
- package/skills/web/react-best-practices/metadata.json +15 -0
- package/skills/web/react-best-practices/rules/_sections.md +46 -0
- package/skills/web/react-best-practices/rules/_template.md +28 -0
- package/skills/web/react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/skills/web/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/web/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/web/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/web/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/web/react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/skills/web/react-best-practices/rules/async-defer-await.md +82 -0
- package/skills/web/react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/web/react-best-practices/rules/async-parallel.md +28 -0
- package/skills/web/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/web/react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/skills/web/react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/skills/web/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/web/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/web/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/web/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/web/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/web/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/web/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/web/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/web/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/web/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/web/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/web/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/web/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/web/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/web/react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/web/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/web/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/web/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/web/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/web/react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/skills/web/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/web/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/web/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/web/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/web/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/web/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/web/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/web/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/web/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/web/react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/web/react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/web/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/web/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/web/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/web/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/web/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/web/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/web/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/web/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/web/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/web/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/web/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/web/react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/web/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/web/react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/skills/web/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/web/react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/skills/web/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/web/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/web/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/web/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/web/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/web/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/web/react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/skills/web/react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/skills/web/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/web/react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/skills/web/react-best-practices/rules/server-serialization.md +38 -0
- package/skills/web/seo/SKILL.md +154 -0
- package/skills/web/web-design-guidelines/SKILL.md +39 -0
- package/skills/web/zap-scan-config/SKILL.md +444 -0
- package/skills/web/zap-scan-config/assets/.gitkeep +9 -0
- package/skills/web/zap-scan-config/assets/github_action.yml +207 -0
- package/skills/web/zap-scan-config/assets/gitlab_ci.yml +226 -0
- package/skills/web/zap-scan-config/assets/zap_automation.yaml +196 -0
- package/skills/web/zap-scan-config/assets/zap_context.xml +192 -0
- package/skills/web/zap-scan-config/references/EXAMPLE.md +40 -0
- package/skills/web/zap-scan-config/references/api_testing_guide.md +475 -0
- package/skills/web/zap-scan-config/references/authentication_guide.md +431 -0
- package/skills/web/zap-scan-config/references/false_positive_handling.md +427 -0
- package/skills/web/zap-scan-config/references/owasp_mapping.md +255 -0
- package/src/lrr/aggregator.ts +80 -0
- package/src/orchestrator/hooks/context-header.ts +95 -0
- package/src/orchestrator/hooks/token-accounting-emitter.ts +77 -0
- package/src/orchestrator/hooks/token-accounting.ts +101 -0
- package/src/orchestrator/mcp/cycle-counter.ts +129 -0
- package/src/orchestrator/mcp/scribe.ts +283 -0
- package/src/orchestrator/mcp/state-save.ts +149 -0
- package/src/orchestrator/mcp/write-lease.ts +167 -0
- package/src/orchestrator/phase4-shared-context.ts +41 -0
- package/src/orchestrator/schemas/backward-edge.ts +46 -0
- package/agents/agentic-identity-trust.md +0 -121
- package/agents/data-consolidation-agent.md +0 -39
- package/agents/design-image-prompt-engineer.md +0 -105
- package/agents/design-visual-storyteller.md +0 -147
- package/agents/design-whimsy-injector.md +0 -89
- package/agents/engineering-autonomous-optimization-architect.md +0 -105
- package/agents/market-intel.md +0 -35
- package/agents/marketing-instagram-curator.md +0 -111
- package/agents/marketing-reddit-community-builder.md +0 -121
- package/agents/marketing-social-media-strategist.md +0 -74
- package/agents/marketing-tiktok-strategist.md +0 -123
- package/agents/marketing-twitter-engager.md +0 -124
- package/agents/marketing-wechat-official-account.md +0 -143
- package/agents/marketing-xiaohongshu-specialist.md +0 -136
- package/agents/marketing-zhihu-strategist.md +0 -160
- package/agents/product-behavioral-nudge-engine.md +0 -78
- package/agents/project-management-experiment-tracker.md +0 -102
- package/agents/report-distribution-agent.md +0 -43
- package/agents/risk-analysis.md +0 -45
- package/agents/sales-data-extraction-agent.md +0 -46
- package/agents/specialized-cultural-intelligence-strategist.md +0 -65
- package/agents/specialized-developer-advocate.md +0 -146
- package/agents/support-analytics-reporter.md +0 -133
- package/agents/support-executive-summary-generator.md +0 -64
- package/agents/support-finance-tracker.md +0 -145
- package/agents/support-legal-compliance-checker.md +0 -129
- package/agents/support-support-responder.md +0 -91
- package/agents/testing-accessibility-auditor.md +0 -110
- package/agents/testing-test-results-analyzer.md +0 -97
- package/agents/testing-tool-evaluator.md +0 -76
- package/agents/testing-workflow-optimizer.md +0 -99
- package/agents/user-research.md +0 -40
- package/protocols/brainstorm.md +0 -99
- package/protocols/design.md +0 -269
- package/protocols/planning.md +0 -87
- package/skills/ios/ios-hig/SKILL.md +0 -41
- package/skills/ios/ios-hig/references/accessibility.md +0 -81
- package/skills/ios/ios-hig/references/content.md +0 -142
- package/skills/ios/ios-hig/references/feedback.md +0 -123
- package/skills/ios/ios-hig/references/interaction.md +0 -199
- package/skills/ios/ios-hig/references/performance-platform.md +0 -129
- package/skills/ios/ios-hig/references/privacy-permissions.md +0 -181
- package/skills/ios/ios-hig/references/visual-design.md +0 -84
package/protocols/metric-loop.md
CHANGED
|
@@ -19,6 +19,8 @@ Metric: [what you're measuring, in one sentence]
|
|
|
19
19
|
How to measure: [what the measurement agent should do — run tests, audit code, check criteria, etc.]
|
|
20
20
|
Target: [score 0-100 at which you stop]
|
|
21
21
|
Max iterations: [hard cap, default 5]
|
|
22
|
+
Scoring Criteria Checklist: [extracted in Step 0.5 — see .build-state.json]
|
|
23
|
+
Extraction method: [mechanical | one-shot-dispatch | mixed]
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
Then create a score log table:
|
|
@@ -36,11 +38,53 @@ Sub-step: [5.1 Implement | 5.1b Cleanup | 5.2 Metric Loop | 5.3 Loop Exit | 5.4
|
|
|
36
38
|
```
|
|
37
39
|
This tells the orchestrator exactly where to resume after context compaction.
|
|
38
40
|
|
|
41
|
+
## Step 0.5: Extract Scoring Criteria
|
|
42
|
+
|
|
43
|
+
Before the first measurement, extract a **Scoring Criteria Checklist** from the stable reference docs. This checklist is the critic's scoring input for every iteration — it replaces raw doc injection.
|
|
44
|
+
|
|
45
|
+
### Why
|
|
46
|
+
|
|
47
|
+
Reference docs (DNA cards, design specs, architecture docs, acceptance criteria) do not change during the loop. Pre-injecting them into every critic prompt wastes ~20-30K tokens per iteration. The checklist extracts the exact scoring values once and passes ~1-2K tokens instead.
|
|
48
|
+
|
|
49
|
+
### Extraction mechanism (per doc type)
|
|
50
|
+
|
|
51
|
+
Use the cheapest mechanism that preserves fidelity:
|
|
52
|
+
|
|
53
|
+
| Source doc type | Structure | Extraction mechanism | Cost |
|
|
54
|
+
|-----------------|-----------|---------------------|------|
|
|
55
|
+
| Structured (named fields with explicit values) — e.g., `visual-dna.md` DNA card, `sprint-tasks.md` Behavioral Test field, `ios-design-board.md` named sections | YAML/markdown with named axes, fields, or sections | **Mechanical** — orchestrator parses and copies the values directly. No LLM reasoning. | ~0 tokens |
|
|
56
|
+
| Semi-structured (values spread across prose sections) — e.g., `visual-design-spec.md`, Phase 5 audit findings | Long-form with explicit values in multiple sections | **One-shot extractor dispatch** — single agent call reads the full doc once and outputs the structured checklist. | ~20-25K one-time |
|
|
57
|
+
| Unstructured (visual references, screenshots, mood boards) — e.g., `design-references.md` | Screenshot URLs, visual comps | **Not extracted.** Referenced by path in the checklist. Iteration 1 MAY read on-demand; iteration 2+ MUST NOT unless diagnosis explicitly flags a visual-reference gap. | 0 tokens |
|
|
58
|
+
|
|
59
|
+
**Rule: if the source doc has named fields with explicit values, extraction is mechanical (no dispatch). If values are spread across prose sections, use a one-shot extractor dispatch. Never use orchestrator LLM reasoning for extraction — it burns the tokens you're trying to save.**
|
|
60
|
+
|
|
61
|
+
### Persist the checklist
|
|
62
|
+
|
|
63
|
+
Write the checklist to `.build-state.json` under `active_metric_loop.scoring_criteria_checklist`. Record the extraction method in `active_metric_loop.extraction_method` (one of: `mechanical`, `one-shot-dispatch`, `mixed`). The rendered `.build-state.md` view reflects it automatically.
|
|
64
|
+
|
|
65
|
+
### Checklist format
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Scoring Criteria Checklist
|
|
69
|
+
Source docs: [list of source doc paths]
|
|
70
|
+
Extracted at: [timestamp]
|
|
71
|
+
Extraction method: [mechanical | one-shot-dispatch | mixed]
|
|
72
|
+
|
|
73
|
+
[Structured criteria with exact values, organized by scoring dimension]
|
|
74
|
+
|
|
75
|
+
Reference Anchors:
|
|
76
|
+
- [path] (iteration 1 MAY read; iteration 2+ MUST NOT unless diagnosis flags gap)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The format is flexible — adapt it to the phase and artifact. The protocol gives a template, not a rigid schema. What matters: exact values, not summaries; organized by scoring dimension; reference anchors for unstructured docs.
|
|
80
|
+
|
|
39
81
|
## Step 1: MEASURE
|
|
40
82
|
|
|
41
83
|
Call the Agent tool — description: "Measure [metric]" — prompt:
|
|
42
84
|
|
|
43
|
-
"[How to measure, from your metric definition]. Score the current state 0-100. Return your response with a clear SCORE: [number] line, a list of FINDINGS, and the single TOP ISSUE most likely to improve the score if fixed."
|
|
85
|
+
"SCORING CRITERIA CHECKLIST: [paste the checklist from Step 0.5 — NOT the raw reference docs]. [How to measure, from your metric definition]. Score the current state 0-100 against the checklist criteria. Return your response with a clear SCORE: [number] line, a list of FINDINGS, and the single TOP ISSUE most likely to improve the score if fixed."
|
|
86
|
+
|
|
87
|
+
> **Pass the Scoring Criteria Checklist (from Step 0.5) to the measurement agent. Do NOT paste full reference docs into the prompt. The agent retains Read access for on-demand lookups if the checklist doesn't cover a specific detail, but the prompt must not pre-inject stable docs.**
|
|
44
88
|
|
|
45
89
|
Read the agent's response. You need: the SCORE, the TOP ISSUE, and the file paths for diagnosis in Step 3. Record the score to `docs/plans/.build-state.md`. The full findings list is useful for diagnosis but does NOT need to persist in your context across iterations — once you've picked the top issue, the details of lower-priority findings can go. Append a row to the score log in `docs/plans/.build-state.md`:
|
|
46
90
|
|
|
@@ -52,12 +96,19 @@ Read the agent's response. You need: the SCORE, the TOP ISSUE, and the file path
|
|
|
52
96
|
Stop the loop if ANY of these:
|
|
53
97
|
|
|
54
98
|
- **Score >= target** → done. Log "Target met at iteration [N]."
|
|
99
|
+
- **Iter-1 short-circuit: score >= target + 10 on the first measurement** → done. Log "Short-circuit at iteration 1. Score: [N]." and record `exit_reason: "short_circuit_iter1"` in the loop state.
|
|
55
100
|
- **Iteration >= max** → done. Log "Max iterations reached. Final score: [N]."
|
|
56
101
|
- **Stall: last 2 scores show no improvement** (delta <= 0 twice in a row) → done. Log "Stalled at score [N]."
|
|
57
102
|
|
|
103
|
+
### Early exit — iter-1 short-circuit
|
|
104
|
+
If the first measurement (iter-1) scores >= `target + 10`, exit the loop immediately and commit the iter-1 output. Log `exit_reason: "short_circuit_iter1"` in the loop state. The 10-point margin guards against measurement noise at the boundary; a genuinely excellent first pass does not need rework.
|
|
105
|
+
|
|
58
106
|
On stall or max iterations:
|
|
59
107
|
- **Interactive mode:** present score history + top remaining issue to user. Ask for direction.
|
|
60
|
-
- **Autonomous mode:**
|
|
108
|
+
- **Autonomous mode:**
|
|
109
|
+
- If score >= target: done (this branch is already handled in Step 2's exit conditions; included here for completeness).
|
|
110
|
+
- If score >= 60% of target AND no CRITICAL issues remain in the measurement: accept with WARNING. Log to `docs/plans/build-log.md` with the warning text and the score history. The orchestrator may proceed to the next phase, but the warning MUST be surfaced in the Phase 7 Completion Report's "Verification Gap" section.
|
|
111
|
+
- If score < 60% of target OR any CRITICAL issue remains: HALT. Do NOT skip. Log "METRIC LOOP: BLOCKED" to `docs/plans/.build-state.md` with the score history and the unresolved issues. Either (a) re-dispatch the fix agent with the unresolved issues, OR (b) abort the build with a directive to the user. The orchestrator may NOT silently proceed past a metric loop that did not converge.
|
|
61
112
|
|
|
62
113
|
If not exiting, continue to Step 3.
|
|
63
114
|
|
|
@@ -73,6 +124,11 @@ Call the Agent tool — description: "Fix [top issue]" — mode: "bypassPermissi
|
|
|
73
124
|
|
|
74
125
|
> **Do NOT pass the measurement agent's full findings to this agent. Only pass the single diagnosed issue and relevant file paths.**
|
|
75
126
|
|
|
127
|
+
### Iteration-aware context rule
|
|
128
|
+
|
|
129
|
+
- **Iteration 1 generator** receives the full phase context header + task description (the generator needs full context for its first pass).
|
|
130
|
+
- **Iteration 2+ generator** receives ONLY: (a) the single top issue from diagnosis, (b) the relevant file paths, (c) the specific criteria values from the Scoring Criteria Checklist that relate to the top issue. The full `[CONTEXT header above]` preamble is NOT re-injected. The generator already has the codebase from iteration 1 — it only needs the delta.
|
|
131
|
+
|
|
76
132
|
## Step 5: LOOP
|
|
77
133
|
|
|
78
134
|
Return to Step 1. Re-measure the artifact after the fix.
|
|
@@ -91,3 +147,7 @@ AUTHOR-BIAS ELIMINATION: The measurement agent and the fix agent must NEVER shar
|
|
|
91
147
|
- Track ALL scores in `docs/plans/.build-state.md` so the history survives context compaction.
|
|
92
148
|
- If context was compacted mid-loop: read `docs/plans/.build-state.md`, find the Active Metric Loop section, resume from the last recorded iteration.
|
|
93
149
|
- CONTEXT HYGIENE: Measurement agents are analysis agents — read their full output for diagnosis. But once you've picked the top issue (Step 3) and dispatched the fix (Step 4), the detailed findings from THAT iteration are spent. Don't accumulate findings across iterations — each measurement is fresh.
|
|
150
|
+
<STABLE-CONTEXT-RULE>
|
|
151
|
+
STABLE CONTEXT RULE: Reference docs that do not change during the loop (design specs, DNA cards, architecture docs, acceptance criteria) MUST be extracted into the Scoring Criteria Checklist at Step 0.5 and passed as the checklist — never re-injected as raw content into iteration 2+ prompts. Fresh artifacts (screenshots, test results, rendered output) are fetched each iteration. This is the primary token-saving mechanism: ~1-2K checklist vs ~20-30K raw docs per iteration.
|
|
152
|
+
</STABLE-CONTEXT-RULE>
|
|
153
|
+
- CHECKLIST FALLBACK: If no Scoring Criteria Checklist is provided (Step 0.5 was skipped or caller did not pass one), the critic falls back to raw doc reads. The orchestrator MUST log a WARN to `docs/plans/build-log.md`: "Metric loop iteration [N]: no scoring criteria checklist provided, falling back to raw doc reads." Callers SHOULD always provide a checklist. New callers that omit it will trigger the WARN, making silent regressions visible.
|
package/protocols/smoke-test.md
CHANGED
|
@@ -19,7 +19,15 @@ Check that `agent-browser` is available:
|
|
|
19
19
|
which agent-browser
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
If
|
|
22
|
+
**If installed:** proceed to Step 1.
|
|
23
|
+
|
|
24
|
+
**If not installed AND the task has a non-N/A Behavioral Test field in `docs/plans/sprint-tasks.md`:**
|
|
25
|
+
1. Dispatch an installer agent: "Install agent-browser via `npm install -g agent-browser`. Verify `which agent-browser` returns a path. Report PASS/FAIL." MAX 2 attempts.
|
|
26
|
+
2. If installation succeeds, proceed to Step 1.
|
|
27
|
+
3. If installation fails after 2 attempts, hard-fail the smoke test with directive: "agent-browser installation failed. Either (a) install manually and re-run, or (b) explicitly downgrade this task's Behavioral Test field to N/A in `sprint-tasks.md` to acknowledge the gap. The orchestrator may NOT proceed silently."
|
|
28
|
+
4. Log "SMOKE: BLOCKED -- agent-browser unavailable, task [task-name] has Behavioral Test [field text]" to `docs/plans/.build-state.md`. Do NOT log SKIPPED. Do NOT log PASS. Return BLOCKED.
|
|
29
|
+
|
|
30
|
+
**If not installed AND the task has Behavioral Test field = N/A:** log "SMOKE: SKIPPED -- task acknowledged as no-behavioral-coverage" with the task name. Return SKIPPED. (This is the only legal silent skip path, and it requires the spec to have explicitly declared N/A.)
|
|
23
31
|
|
|
24
32
|
## Step 1: Start Dev Server
|
|
25
33
|
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$comment": "Schema version migration table: schema_version 1 = Stages 1-3; schema_version 2 = Stage 4 (adds backward_routing_count, backward_routing_count_by_target_phase, in_flight_backward_edge, mode_transitions); schema_version 3 = Stage 5 (adds lrr_cycle_state); schema_version 4 = Stage 6 (adds current_sprint_context_hash). --- Runtime validation rules (not encodable in JSON Schema, require code): Rule 5 — step prefix must match current phase number; Rule 6 — mode/autonomous consistency (mode==='autonomous' iff autonomous===true); Rule 7 — iOS fields gating (app_name, bundle_id, xcodeproj_path, ios_features, phase_progress.phase_minus_1 exist iff project_type==='ios'); Rule 10 — pending/in-progress disjoint (in_progress_task.task_id not in pending_tasks or completed_tasks); Rule 11 — resume_point.phase/step must not be ahead of top-level phase/step; Rule 12 — timestamps monotonic (session_last_saved >= session_started).",
|
|
4
|
+
"title": ".build-state.json",
|
|
5
|
+
"description": "Typed source of truth for BuildAnything build state. Validated by the PreToolUse schema lint hook (W2-2). additionalProperties: false enforces fail-closed per A8 SSOT rule.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
|
|
9
|
+
"$defs": {
|
|
10
|
+
"completed_task": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["task_id", "task_name", "status", "evidence_files", "completed_at"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"task_id": { "type": "string" },
|
|
16
|
+
"task_name": { "type": "string" },
|
|
17
|
+
"status": { "type": "string", "enum": ["done", "skipped", "deferred"] },
|
|
18
|
+
"evidence_files": { "type": "array", "items": { "type": "string" } },
|
|
19
|
+
"completed_at": { "type": "string", "format": "date-time" }
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
"in_progress_task": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"required": ["task_id", "task_name", "started_at"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"task_id": { "type": "string" },
|
|
29
|
+
"task_name": { "type": "string" },
|
|
30
|
+
"started_at": { "type": "string", "format": "date-time" }
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
"metric_loop_entry": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"required": ["phase", "iteration", "score", "target", "top_issue", "timestamp"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"phase": { "type": "integer" },
|
|
40
|
+
"iteration": { "type": "integer" },
|
|
41
|
+
"score": { "type": "number" },
|
|
42
|
+
"target": { "type": "number" },
|
|
43
|
+
"top_issue": { "type": "string" },
|
|
44
|
+
"timestamp": { "type": "string", "format": "date-time" },
|
|
45
|
+
"scoring_criteria_checklist": { "type": "string" },
|
|
46
|
+
"extraction_method": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"enum": ["mechanical", "one-shot-dispatch", "mixed"]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
"active_metric_loop": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"required": ["phase", "artifact", "metric", "target", "max_iterations", "current_iteration"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"phase": { "type": "integer" },
|
|
59
|
+
"artifact": { "type": "string" },
|
|
60
|
+
"metric": { "type": "string" },
|
|
61
|
+
"target": { "type": "number" },
|
|
62
|
+
"max_iterations": { "type": "integer" },
|
|
63
|
+
"current_iteration": { "type": "integer" },
|
|
64
|
+
"scoring_criteria_checklist": { "type": "string" },
|
|
65
|
+
"extraction_method": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"enum": ["mechanical", "one-shot-dispatch", "mixed"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
"blocker": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"required": ["id", "description", "surfaced_at", "type"],
|
|
76
|
+
"properties": {
|
|
77
|
+
"id": { "type": "string" },
|
|
78
|
+
"description": { "type": "string" },
|
|
79
|
+
"surfaced_at": { "type": "string", "format": "date-time" },
|
|
80
|
+
"type": { "type": "string", "enum": ["build", "design", "dep", "external"] }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
"dispatch_counter": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"required": ["dispatches_since_save", "last_save_phase"],
|
|
88
|
+
"properties": {
|
|
89
|
+
"dispatches_since_save": { "type": "integer", "minimum": 0 },
|
|
90
|
+
"last_save_phase": { "type": "string" }
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
"resume_point": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"required": ["phase", "step", "autonomous", "completed_summary", "git_branch"],
|
|
98
|
+
"properties": {
|
|
99
|
+
"phase": { "type": "integer", "enum": [-1, 0, 1, 2, 3, 4, 5, 6, 7] },
|
|
100
|
+
"step": { "type": "string" },
|
|
101
|
+
"autonomous": { "type": "boolean" },
|
|
102
|
+
"completed_summary": { "type": "string" },
|
|
103
|
+
"git_branch": { "type": "string" }
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
"verification": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"additionalProperties": false,
|
|
110
|
+
"required": ["last_verify_result", "last_verify_timestamp"],
|
|
111
|
+
"properties": {
|
|
112
|
+
"last_verify_result": {
|
|
113
|
+
"oneOf": [
|
|
114
|
+
{ "type": "string", "enum": ["PRODUCTION_READY", "NEEDS_WORK", "BLOCKED"] },
|
|
115
|
+
{ "type": "null" }
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"last_verify_timestamp": {
|
|
119
|
+
"oneOf": [
|
|
120
|
+
{ "type": "string", "format": "date-time" },
|
|
121
|
+
{ "type": "null" }
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
|
|
127
|
+
"ios_features": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"additionalProperties": false,
|
|
130
|
+
"required": [
|
|
131
|
+
"widgets", "liveActivities", "appIntents", "foundationModels",
|
|
132
|
+
"storekit", "healthkit", "push", "cloudkit",
|
|
133
|
+
"siri", "location", "background", "cameraPhoto",
|
|
134
|
+
"microphone", "contacts", "calendar", "appleWatch"
|
|
135
|
+
],
|
|
136
|
+
"properties": {
|
|
137
|
+
"widgets": { "type": "boolean" },
|
|
138
|
+
"liveActivities": { "type": "boolean" },
|
|
139
|
+
"appIntents": { "type": "boolean" },
|
|
140
|
+
"foundationModels": { "type": "boolean" },
|
|
141
|
+
"storekit": { "type": "boolean" },
|
|
142
|
+
"healthkit": { "type": "boolean" },
|
|
143
|
+
"push": { "type": "boolean" },
|
|
144
|
+
"cloudkit": { "type": "boolean" },
|
|
145
|
+
"siri": { "type": "boolean" },
|
|
146
|
+
"location": { "type": "boolean" },
|
|
147
|
+
"background": { "type": "boolean" },
|
|
148
|
+
"cameraPhoto": { "type": "boolean" },
|
|
149
|
+
"microphone": { "type": "boolean" },
|
|
150
|
+
"contacts": { "type": "boolean" },
|
|
151
|
+
"calendar": { "type": "boolean" },
|
|
152
|
+
"appleWatch": { "type": "boolean" }
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
"phase_progress": {
|
|
157
|
+
"type": "object",
|
|
158
|
+
"additionalProperties": false,
|
|
159
|
+
"required": [
|
|
160
|
+
"phase_0", "phase_1", "phase_2", "phase_3",
|
|
161
|
+
"phase_4", "phase_5", "phase_6", "phase_7"
|
|
162
|
+
],
|
|
163
|
+
"properties": {
|
|
164
|
+
"phase_minus_1": { "type": "boolean" },
|
|
165
|
+
"phase_0": { "type": "boolean" },
|
|
166
|
+
"phase_1": { "type": "boolean" },
|
|
167
|
+
"phase_2": { "type": "boolean" },
|
|
168
|
+
"phase_3": { "type": "boolean" },
|
|
169
|
+
"phase_4": { "type": "boolean" },
|
|
170
|
+
"phase_5": { "type": "boolean" },
|
|
171
|
+
"phase_6": { "type": "boolean" },
|
|
172
|
+
"phase_7": { "type": "boolean" }
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
|
|
176
|
+
"in_flight_backward_edge": {
|
|
177
|
+
"$comment": "Stage 4+ (schema_version >= 2). Written atomically with counter increment on backward-route dispatch. Cleared by target phase on re-entry. Stale edges (>60s) trigger counter decrement on --resume.",
|
|
178
|
+
"type": "object",
|
|
179
|
+
"additionalProperties": false,
|
|
180
|
+
"required": ["decision_id", "target_phase", "counter_value", "started_at"],
|
|
181
|
+
"properties": {
|
|
182
|
+
"decision_id": { "type": "string" },
|
|
183
|
+
"target_phase": { "type": "string" },
|
|
184
|
+
"counter_value": { "type": "integer", "minimum": 0 },
|
|
185
|
+
"started_at": { "type": "string", "format": "date-time" }
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
"mode_transition": {
|
|
190
|
+
"$comment": "Stage 4+ (schema_version >= 2). Records SDK/markdown flag-flip events. Each entry captures which flag changed, the prior and new values, a full post-flip snapshot of all tracked flags, the session_id when known, and a timestamp.",
|
|
191
|
+
"type": "object",
|
|
192
|
+
"additionalProperties": false,
|
|
193
|
+
"required": ["flag", "old_value", "new_value", "timestamp"],
|
|
194
|
+
"properties": {
|
|
195
|
+
"flag": { "type": "string", "description": "Env-var name (e.g., BUILDANYTHING_SDK)." },
|
|
196
|
+
"old_value": { "type": "string" },
|
|
197
|
+
"new_value": { "type": "string" },
|
|
198
|
+
"post_flags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Snapshot of all tracked flag values AFTER this flip." },
|
|
199
|
+
"session_id": { "type": ["string", "null"] },
|
|
200
|
+
"timestamp": { "type": "string", "format": "date-time" }
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
"required": [
|
|
206
|
+
"schema_version",
|
|
207
|
+
"project_type",
|
|
208
|
+
"phase",
|
|
209
|
+
"step",
|
|
210
|
+
"session_id",
|
|
211
|
+
"session_started",
|
|
212
|
+
"session_last_saved",
|
|
213
|
+
"autonomous",
|
|
214
|
+
"mode",
|
|
215
|
+
"build_request",
|
|
216
|
+
"context_level",
|
|
217
|
+
"git_branch",
|
|
218
|
+
"completed_tasks",
|
|
219
|
+
"pending_tasks",
|
|
220
|
+
"phase_artifacts",
|
|
221
|
+
"metric_loop_history",
|
|
222
|
+
"dispatch_counter",
|
|
223
|
+
"phase_progress",
|
|
224
|
+
"resume_point",
|
|
225
|
+
"verification"
|
|
226
|
+
],
|
|
227
|
+
|
|
228
|
+
"properties": {
|
|
229
|
+
"schema_version": {
|
|
230
|
+
"type": "integer",
|
|
231
|
+
"minimum": 1,
|
|
232
|
+
"maximum": 4,
|
|
233
|
+
"description": "Currently 1 (Stages 1-3). Bumped to 2 at Stage 4, 3 at Stage 5, 4 at Stage 6."
|
|
234
|
+
},
|
|
235
|
+
"project_type": {
|
|
236
|
+
"type": "string",
|
|
237
|
+
"enum": ["ios", "web"],
|
|
238
|
+
"description": "Drives mode-branch routing."
|
|
239
|
+
},
|
|
240
|
+
"phase": {
|
|
241
|
+
"type": "integer",
|
|
242
|
+
"enum": [-1, 0, 1, 2, 3, 4, 5, 6, 7],
|
|
243
|
+
"description": "Current phase. -1 is iOS bootstrap only."
|
|
244
|
+
},
|
|
245
|
+
"step": {
|
|
246
|
+
"type": "string",
|
|
247
|
+
"description": "Dotted step identifier within the phase (e.g. '5.3b', '6.4', '-1.1')."
|
|
248
|
+
},
|
|
249
|
+
"session_id": {
|
|
250
|
+
"type": "string",
|
|
251
|
+
"format": "uuid",
|
|
252
|
+
"description": "UUID generated at session start; stable across compactions within a session."
|
|
253
|
+
},
|
|
254
|
+
"session_started": {
|
|
255
|
+
"type": "string",
|
|
256
|
+
"format": "date-time",
|
|
257
|
+
"description": "ISO 8601 timestamp when the current session began."
|
|
258
|
+
},
|
|
259
|
+
"session_last_saved": {
|
|
260
|
+
"type": "string",
|
|
261
|
+
"format": "date-time",
|
|
262
|
+
"description": "ISO 8601 timestamp of the most recent state write. Must be >= session_started."
|
|
263
|
+
},
|
|
264
|
+
"autonomous": {
|
|
265
|
+
"type": "boolean",
|
|
266
|
+
"description": "Whether --autonomous was passed. Must agree with mode field."
|
|
267
|
+
},
|
|
268
|
+
"mode": {
|
|
269
|
+
"type": "string",
|
|
270
|
+
"enum": ["interactive", "autonomous"],
|
|
271
|
+
"description": "interactive iff autonomous === false."
|
|
272
|
+
},
|
|
273
|
+
"build_request": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"description": "Original user prompt that initiated the build."
|
|
276
|
+
},
|
|
277
|
+
"context_level": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"enum": ["raw_idea", "decision_brief", "partial_context", "full_design"],
|
|
280
|
+
"description": "Richness of the initial context provided."
|
|
281
|
+
},
|
|
282
|
+
"git_branch": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"description": "Current branch; 'main' if uninitialized."
|
|
285
|
+
},
|
|
286
|
+
"completed_tasks": {
|
|
287
|
+
"type": "array",
|
|
288
|
+
"items": { "$ref": "#/$defs/completed_task" },
|
|
289
|
+
"description": "Tasks finished. May be empty []."
|
|
290
|
+
},
|
|
291
|
+
"pending_tasks": {
|
|
292
|
+
"type": "array",
|
|
293
|
+
"items": { "type": "string" },
|
|
294
|
+
"description": "task_ids still to be dispatched. May be empty []."
|
|
295
|
+
},
|
|
296
|
+
"phase_artifacts": {
|
|
297
|
+
"type": "object",
|
|
298
|
+
"additionalProperties": true,
|
|
299
|
+
"description": "Paths to persisted phase outputs. All properties optional; empty {} is valid."
|
|
300
|
+
},
|
|
301
|
+
"metric_loop_history": {
|
|
302
|
+
"type": "array",
|
|
303
|
+
"items": { "$ref": "#/$defs/metric_loop_entry" },
|
|
304
|
+
"description": "Scored iterations across all phases. May be empty []."
|
|
305
|
+
},
|
|
306
|
+
"dispatch_counter": {
|
|
307
|
+
"$ref": "#/$defs/dispatch_counter",
|
|
308
|
+
"description": "Used by the 'save every N dispatches' heuristic."
|
|
309
|
+
},
|
|
310
|
+
"phase_progress": {
|
|
311
|
+
"$ref": "#/$defs/phase_progress",
|
|
312
|
+
"description": "Boolean per phase. phase_minus_1 is optional (iOS only)."
|
|
313
|
+
},
|
|
314
|
+
"resume_point": {
|
|
315
|
+
"$ref": "#/$defs/resume_point",
|
|
316
|
+
"description": "Snapshot used by Phase-0 resume logic."
|
|
317
|
+
},
|
|
318
|
+
"verification": {
|
|
319
|
+
"$ref": "#/$defs/verification",
|
|
320
|
+
"description": "Last verify result and timestamp."
|
|
321
|
+
},
|
|
322
|
+
|
|
323
|
+
"app_name": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"description": "iOS only. App display name."
|
|
326
|
+
},
|
|
327
|
+
"bundle_id": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"description": "iOS only. Bundle identifier."
|
|
330
|
+
},
|
|
331
|
+
"xcodeproj_path": {
|
|
332
|
+
"type": "string",
|
|
333
|
+
"description": "iOS only. Absolute path to .xcodeproj."
|
|
334
|
+
},
|
|
335
|
+
"ios_features": {
|
|
336
|
+
"$ref": "#/$defs/ios_features",
|
|
337
|
+
"description": "iOS only. Exactly 16 boolean feature flags."
|
|
338
|
+
},
|
|
339
|
+
"in_progress_task": {
|
|
340
|
+
"$ref": "#/$defs/in_progress_task",
|
|
341
|
+
"description": "Task currently executing. Present only while a task is in flight."
|
|
342
|
+
},
|
|
343
|
+
"active_metric_loop": {
|
|
344
|
+
"$ref": "#/$defs/active_metric_loop",
|
|
345
|
+
"description": "Present only while a metric loop is running. Removed when loop completes."
|
|
346
|
+
},
|
|
347
|
+
"blockers": {
|
|
348
|
+
"type": "array",
|
|
349
|
+
"items": { "$ref": "#/$defs/blocker" },
|
|
350
|
+
"description": "Open blockers. Omitted when empty."
|
|
351
|
+
},
|
|
352
|
+
"decisions_next_id": {
|
|
353
|
+
"type": "object",
|
|
354
|
+
"additionalProperties": { "type": "integer", "minimum": 0 },
|
|
355
|
+
"description": "Keyed by phase number string. Integer values = next sequence. Deprecated under Stage 2 (scribe owns ID allocation); scheduled for removal at Stage 4 A7."
|
|
356
|
+
},
|
|
357
|
+
|
|
358
|
+
"backward_routing_count": {
|
|
359
|
+
"type": "object",
|
|
360
|
+
"additionalProperties": { "type": "integer", "minimum": 0 },
|
|
361
|
+
"description": "Stage 4+ (schema_version >= 2). Per-decision backward routing counter: decision_id -> count."
|
|
362
|
+
},
|
|
363
|
+
"backward_routing_count_by_target_phase": {
|
|
364
|
+
"type": "object",
|
|
365
|
+
"additionalProperties": { "type": "integer", "minimum": 0 },
|
|
366
|
+
"description": "Stage 4+ (schema_version >= 2). Per-target-phase backward routing counter: phase -> count."
|
|
367
|
+
},
|
|
368
|
+
"in_flight_backward_edge": {
|
|
369
|
+
"$ref": "#/$defs/in_flight_backward_edge",
|
|
370
|
+
"description": "Stage 4+ (schema_version >= 2). Present only while a backward-routing edge is in flight."
|
|
371
|
+
},
|
|
372
|
+
"mode_transitions": {
|
|
373
|
+
"type": "array",
|
|
374
|
+
"items": { "$ref": "#/$defs/mode_transition" },
|
|
375
|
+
"description": "Stage 4+ (schema_version >= 2). Records SDK/markdown flag-flip events."
|
|
376
|
+
},
|
|
377
|
+
|
|
378
|
+
"lrr_cycle_state": {
|
|
379
|
+
"type": "object",
|
|
380
|
+
"description": "Stage 5+ (schema_version >= 3). LRR cycle state and aggregator output fields."
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
"current_sprint_context_hash": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"description": "Stage 6+ (schema_version >= 4). Hash of sprint-scoped shared context; triggers re-render only on sprint boundary."
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|