@hegemonart/get-design-done 1.42.0 → 1.43.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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +1080 -1038
- package/README.md +157 -155
- package/SKILL.md +42 -42
- package/agents/README.md +53 -53
- package/agents/a11y-mapper.md +3 -3
- package/agents/component-benchmark-harvester.md +8 -8
- package/agents/component-benchmark-synthesizer.md +11 -11
- package/agents/component-taxonomy-mapper.md +5 -5
- package/agents/compose-executor.md +25 -25
- package/agents/conflict-resolver.md +8 -8
- package/agents/cost-forecaster.md +12 -12
- package/agents/decision-journal-exporter.md +5 -5
- package/agents/design-advisor.md +19 -19
- package/agents/design-assumptions-analyzer.md +16 -16
- package/agents/design-auditor.md +39 -39
- package/agents/design-authority-watcher.md +28 -28
- package/agents/design-component-generator.md +27 -27
- package/agents/design-context-builder.md +66 -66
- package/agents/design-context-checker-gate.md +5 -5
- package/agents/design-context-checker.md +20 -20
- package/agents/design-discussant.md +23 -23
- package/agents/design-doc-writer.md +12 -12
- package/agents/design-executor.md +38 -38
- package/agents/design-figma-writer.md +31 -31
- package/agents/design-fixer.md +27 -27
- package/agents/design-integration-checker-gate.md +5 -5
- package/agents/design-integration-checker.md +29 -29
- package/agents/design-paper-writer.md +14 -14
- package/agents/design-pattern-mapper.md +9 -9
- package/agents/design-pencil-writer.md +12 -12
- package/agents/design-phase-researcher.md +14 -14
- package/agents/design-plan-checker.md +13 -13
- package/agents/design-planner.md +24 -24
- package/agents/design-reflector.md +48 -48
- package/agents/design-research-synthesizer.md +21 -21
- package/agents/design-start-writer.md +7 -7
- package/agents/design-update-checker.md +8 -8
- package/agents/design-verifier-gate.md +5 -5
- package/agents/design-verifier.md +80 -80
- package/agents/ds-generator.md +14 -14
- package/agents/ds-migration-planner.md +12 -12
- package/agents/email-executor.md +26 -26
- package/agents/experiment-result-ingester.md +10 -10
- package/agents/flutter-executor.md +28 -28
- package/agents/gdd-graph-refresh.md +10 -10
- package/agents/gdd-intel-updater.md +11 -11
- package/agents/gdd-learnings-extractor.md +2 -2
- package/agents/motion-mapper.md +8 -8
- package/agents/motion-verifier.md +16 -16
- package/agents/pdf-executor.md +27 -27
- package/agents/perf-analyzer.md +20 -20
- package/agents/pr-commenter.md +24 -24
- package/agents/prototype-gate.md +29 -29
- package/agents/quality-gate-runner.md +21 -21
- package/agents/rollout-coordinator.md +8 -8
- package/agents/swift-executor.md +41 -41
- package/agents/ticket-sync-agent.md +19 -19
- package/agents/token-mapper.md +6 -6
- package/agents/user-research-synthesizer.md +13 -13
- package/agents/visual-hierarchy-mapper.md +2 -2
- package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/dist/claude-code/.claude/skills/audit/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/brief/SKILL.md +20 -20
- package/dist/claude-code/.claude/skills/budget/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +5 -5
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/compare/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +17 -17
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/connections/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +76 -76
- package/dist/claude-code/.claude/skills/continue/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/dist/claude-code/.claude/skills/debug/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +12 -12
- package/dist/claude-code/.claude/skills/design/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/design/design-procedure.md +23 -23
- package/dist/claude-code/.claude/skills/discover/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +18 -18
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/do/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/explore/SKILL.md +21 -21
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +48 -48
- package/dist/claude-code/.claude/skills/export/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/fast/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/health/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +3 -3
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +6 -6
- package/dist/claude-code/.claude/skills/help/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/map/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/next/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/note/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/pause/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +14 -14
- package/dist/claude-code/.claude/skills/peers/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/plan/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +24 -24
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/progress/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +22 -22
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +19 -19
- package/dist/claude-code/.claude/skills/quick/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +27 -27
- package/dist/claude-code/.claude/skills/resume/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/roi/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/router/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +6 -6
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +9 -9
- package/dist/claude-code/.claude/skills/router/router-rules.md +7 -7
- package/dist/claude-code/.claude/skills/scan/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +42 -42
- package/dist/claude-code/.claude/skills/settings/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/ship/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/spike/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/start/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/start/start-procedure.md +9 -9
- package/dist/claude-code/.claude/skills/stats/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/style/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +12 -12
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/todo/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/update/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/verify/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +34 -34
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +4 -4
- package/package.json +5 -2
- package/reference/DEPRECATIONS.md +10 -10
- package/reference/STATE-TEMPLATE.md +26 -26
- package/reference/accessibility.md +13 -13
- package/reference/adr-format.md +13 -13
- package/reference/ai-native-tool-interface.md +5 -5
- package/reference/anti-patterns.md +9 -9
- package/reference/architecture-vocabulary.md +31 -31
- package/reference/audit-scoring.md +13 -13
- package/reference/authority-feeds.md +36 -36
- package/reference/bandit-integration.md +25 -25
- package/reference/brand-voice.md +36 -36
- package/reference/capability-gap-stage-gate.md +20 -20
- package/reference/checklists.md +26 -26
- package/reference/cli-localization.md +13 -13
- package/reference/codex-tools.md +2 -2
- package/reference/color-theory.md +28 -28
- package/reference/component-authoring.md +4 -4
- package/reference/components/README.md +13 -13
- package/reference/components/TEMPLATE.md +13 -13
- package/reference/components/accordion.md +15 -15
- package/reference/components/alert.md +25 -25
- package/reference/components/badge.md +18 -18
- package/reference/components/breadcrumbs.md +24 -24
- package/reference/components/button.md +21 -21
- package/reference/components/card.md +13 -13
- package/reference/components/checkbox.md +20 -20
- package/reference/components/chip.md +20 -20
- package/reference/components/command-palette.md +15 -15
- package/reference/components/date-picker.md +22 -22
- package/reference/components/drawer.md +13 -13
- package/reference/components/file-upload.md +22 -22
- package/reference/components/input.md +18 -18
- package/reference/components/label.md +25 -25
- package/reference/components/link.md +19 -19
- package/reference/components/list.md +17 -17
- package/reference/components/menu.md +19 -19
- package/reference/components/modal-dialog.md +16 -16
- package/reference/components/navbar.md +19 -19
- package/reference/components/pagination.md +18 -18
- package/reference/components/popover.md +12 -12
- package/reference/components/progress.md +18 -18
- package/reference/components/radio.md +17 -17
- package/reference/components/rich-text-editor.md +24 -24
- package/reference/components/select-combobox.md +16 -16
- package/reference/components/sidebar.md +15 -15
- package/reference/components/skeleton.md +20 -20
- package/reference/components/slider.md +20 -20
- package/reference/components/stepper.md +24 -24
- package/reference/components/switch.md +19 -19
- package/reference/components/table.md +21 -21
- package/reference/components/tabs.md +11 -11
- package/reference/components/toast.md +19 -19
- package/reference/components/tooltip.md +19 -19
- package/reference/components/tree.md +17 -17
- package/reference/composition.md +38 -38
- package/reference/config-schema.md +37 -37
- package/reference/context-md-format.md +9 -9
- package/reference/contrast-advanced.md +29 -29
- package/reference/conversational-ui.md +17 -17
- package/reference/cost-governance.md +14 -14
- package/reference/css-grid-layout.md +8 -8
- package/reference/cycle-handoff-preamble.md +3 -3
- package/reference/data-visualization.md +67 -67
- package/reference/debugger-philosophy.md +5 -5
- package/reference/design-system-guidance.md +21 -21
- package/reference/design-systems-catalog.md +20 -20
- package/reference/design-variants.md +11 -11
- package/reference/domains/civic-patterns.md +10 -10
- package/reference/domains/finance-patterns.md +9 -9
- package/reference/domains/gaming-patterns.md +9 -9
- package/reference/domains/healthcare-patterns.md +11 -11
- package/reference/ds-bootstrap-rubric.md +13 -13
- package/reference/email-design.md +22 -22
- package/reference/emotional-design.md +10 -10
- package/reference/error-recovery.md +11 -11
- package/reference/export-formats.md +7 -7
- package/reference/figma-sandbox.md +6 -6
- package/reference/first-principles.md +10 -10
- package/reference/form-patterns.md +26 -26
- package/reference/framer-motion-patterns.md +49 -49
- package/reference/gdd-runtime-audit.md +17 -17
- package/reference/gdd-threat-model.md +44 -44
- package/reference/gemini-tools.md +3 -3
- package/reference/gestalt.md +24 -24
- package/reference/heuristics.md +32 -32
- package/reference/i18n.md +44 -44
- package/reference/iconography.md +24 -24
- package/reference/image-optimization.md +14 -14
- package/reference/information-architecture.md +47 -47
- package/reference/intel-schema.md +1 -1
- package/reference/known-failure-modes.md +37 -37
- package/reference/meta-rules.md +5 -5
- package/reference/migrations/material-3-to-4.md +17 -17
- package/reference/migrations/mui-v6.md +16 -16
- package/reference/migrations/shadcn-v2.md +25 -25
- package/reference/migrations/tailwind-v4.md +21 -21
- package/reference/model-prices.md +3 -3
- package/reference/model-tiers.md +40 -40
- package/reference/motion-advanced.md +21 -21
- package/reference/motion-easings.md +29 -29
- package/reference/motion-interpolate.md +1 -1
- package/reference/motion-spring.md +13 -13
- package/reference/motion-transition-taxonomy.md +34 -34
- package/reference/motion.md +31 -31
- package/reference/multi-author-model.md +13 -13
- package/reference/native-platforms.md +28 -28
- package/reference/notification-routing.md +6 -6
- package/reference/onboarding-progressive-disclosure.md +32 -32
- package/reference/openrouter-tier-mapping.md +8 -8
- package/reference/palette-catalog.md +37 -37
- package/reference/parallelism-rules.md +20 -20
- package/reference/peer-cli-capabilities.md +14 -14
- package/reference/peer-protocols.md +21 -21
- package/reference/perf-budget.md +21 -21
- package/reference/performance.md +22 -22
- package/reference/platforms.md +51 -51
- package/reference/pr-review-integration.md +7 -7
- package/reference/prices/antigravity.md +3 -3
- package/reference/prices/augment.md +3 -3
- package/reference/prices/claude.md +2 -2
- package/reference/prices/cline.md +4 -4
- package/reference/prices/codebuddy.md +3 -3
- package/reference/prices/codex.md +2 -2
- package/reference/prices/copilot.md +3 -3
- package/reference/prices/cursor.md +3 -3
- package/reference/prices/gemini.md +2 -2
- package/reference/prices/kilo.md +3 -3
- package/reference/prices/opencode.md +4 -4
- package/reference/prices/qwen.md +2 -2
- package/reference/prices/trae.md +3 -3
- package/reference/prices/windsurf.md +3 -3
- package/reference/prices.openrouter.md +5 -5
- package/reference/print-design.md +36 -36
- package/reference/priority-matrix.md +2 -2
- package/reference/project-skills-guide.md +3 -3
- package/reference/proportion-systems.md +23 -23
- package/reference/pseudonymization-rules.md +30 -30
- package/reference/retrieval-contract.md +14 -14
- package/reference/review-format.md +7 -7
- package/reference/rollout-coordination.md +10 -10
- package/reference/rtl-cjk-cultural.md +39 -39
- package/reference/runtime-models.md +28 -28
- package/reference/shared-preamble.md +26 -26
- package/reference/skill-authoring-contract.md +16 -16
- package/reference/skill-placeholders.md +3 -3
- package/reference/start-interview.md +10 -10
- package/reference/style-vocabulary.md +25 -25
- package/reference/surfaces.md +4 -4
- package/reference/ticket-sync.md +9 -9
- package/reference/typography.md +64 -64
- package/reference/user-research.md +54 -54
- package/reference/variable-fonts-loading.md +15 -15
- package/reference/visual-hierarchy-layout.md +41 -41
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/skills/add-backlog/SKILL.md +3 -3
- package/skills/analyze-dependencies/SKILL.md +10 -10
- package/skills/apply-reflections/SKILL.md +13 -13
- package/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/skills/audit/SKILL.md +7 -7
- package/skills/bandit-status/SKILL.md +7 -7
- package/skills/benchmark/SKILL.md +7 -7
- package/skills/bootstrap-ds/SKILL.md +10 -10
- package/skills/brief/SKILL.md +20 -20
- package/skills/budget/SKILL.md +4 -4
- package/skills/cache-manager/SKILL.md +6 -6
- package/skills/cache-manager/cache-policy.md +5 -5
- package/skills/check-update/SKILL.md +5 -5
- package/skills/compare/SKILL.md +15 -15
- package/skills/compare/compare-rubric.md +17 -17
- package/skills/complete-cycle/SKILL.md +5 -5
- package/skills/connections/SKILL.md +11 -11
- package/skills/connections/connections-onboarding.md +76 -76
- package/skills/continue/SKILL.md +2 -2
- package/skills/darkmode/SKILL.md +17 -17
- package/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/skills/debug/SKILL.md +3 -3
- package/skills/debug/debug-feedback-loops.md +12 -12
- package/skills/design/SKILL.md +12 -12
- package/skills/design/design-procedure.md +23 -23
- package/skills/discover/SKILL.md +7 -7
- package/skills/discover/discover-procedure.md +18 -18
- package/skills/discuss/SKILL.md +12 -12
- package/skills/do/SKILL.md +1 -1
- package/skills/explore/SKILL.md +21 -21
- package/skills/explore/explore-procedure.md +48 -48
- package/skills/export/SKILL.md +9 -9
- package/skills/extract-learnings/SKILL.md +5 -5
- package/skills/fast/SKILL.md +7 -7
- package/skills/figma-extract/SKILL.md +11 -11
- package/skills/figma-write/SKILL.md +6 -6
- package/skills/graphify/SKILL.md +4 -4
- package/skills/health/SKILL.md +16 -16
- package/skills/health/health-mcp-detection.md +3 -3
- package/skills/health/health-skill-length-report.md +6 -6
- package/skills/help/SKILL.md +1 -1
- package/skills/list-assumptions/SKILL.md +4 -4
- package/skills/map/SKILL.md +12 -12
- package/skills/migrate/SKILL.md +5 -5
- package/skills/new-cycle/SKILL.md +2 -2
- package/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/skills/new-project/SKILL.md +1 -1
- package/skills/next/SKILL.md +5 -5
- package/skills/note/SKILL.md +1 -1
- package/skills/openrouter-status/SKILL.md +4 -4
- package/skills/optimize/SKILL.md +15 -15
- package/skills/pause/SKILL.md +5 -5
- package/skills/peer-cli-add/SKILL.md +11 -11
- package/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/skills/peer-cli-customize/SKILL.md +14 -14
- package/skills/peers/SKILL.md +4 -4
- package/skills/plan/SKILL.md +13 -13
- package/skills/plan/plan-procedure.md +24 -24
- package/skills/plant-seed/SKILL.md +4 -4
- package/skills/pr-branch/SKILL.md +2 -2
- package/skills/progress/SKILL.md +15 -15
- package/skills/quality-gate/SKILL.md +22 -22
- package/skills/quality-gate/threat-modeling.md +19 -19
- package/skills/quick/SKILL.md +5 -5
- package/skills/reapply-patches/SKILL.md +7 -7
- package/skills/reflect/SKILL.md +3 -3
- package/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/skills/report-issue/SKILL.md +5 -5
- package/skills/report-issue/report-issue-procedure.md +27 -27
- package/skills/resume/SKILL.md +9 -9
- package/skills/review-backlog/SKILL.md +3 -3
- package/skills/review-decisions/SKILL.md +3 -3
- package/skills/roi/SKILL.md +5 -5
- package/skills/rollout-status/SKILL.md +4 -4
- package/skills/router/SKILL.md +11 -11
- package/skills/router/capability-gap-emitter.md +6 -6
- package/skills/router/router-pick-emitter.md +9 -9
- package/skills/router/router-rules.md +7 -7
- package/skills/scan/SKILL.md +16 -16
- package/skills/scan/scan-procedure.md +42 -42
- package/skills/settings/SKILL.md +2 -2
- package/skills/ship/SKILL.md +7 -7
- package/skills/sketch/SKILL.md +10 -10
- package/skills/sketch-wrap-up/SKILL.md +12 -12
- package/skills/skill-manifest/SKILL.md +5 -5
- package/skills/spike/SKILL.md +7 -7
- package/skills/spike-wrap-up/SKILL.md +13 -13
- package/skills/start/SKILL.md +8 -8
- package/skills/start/start-procedure.md +9 -9
- package/skills/stats/SKILL.md +5 -5
- package/skills/style/SKILL.md +12 -12
- package/skills/style/style-doc-procedure.md +12 -12
- package/skills/synthesize/SKILL.md +10 -10
- package/skills/timeline/SKILL.md +4 -4
- package/skills/todo/SKILL.md +3 -3
- package/skills/turn-closeout/SKILL.md +10 -10
- package/skills/unlock-decision/SKILL.md +3 -3
- package/skills/update/SKILL.md +9 -9
- package/skills/using-gdd/SKILL.md +17 -17
- package/skills/verify/SKILL.md +13 -13
- package/skills/verify/verify-procedure.md +34 -34
- package/skills/warm-cache/SKILL.md +8 -8
- package/skills/watch-authorities/SKILL.md +9 -9
- package/skills/zoom-out/SKILL.md +4 -4
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: motion-verifier
|
|
3
|
-
description: Verify-time check for Lottie + Rive motion exports. Discovers exported animations, runs the pure scripts/lib/motion/validate-motion.cjs on Lottie (frame-rate / duration / embedded-asset / perf-budget), checks size + the RIVE magic header on .riv, and surfaces state-machine concerns (unreachable states, no-exit loops) when the Rive runtime is present. WARNs
|
|
3
|
+
description: Verify-time check for Lottie + Rive motion exports. Discovers exported animations, runs the pure scripts/lib/motion/validate-motion.cjs on Lottie (frame-rate / duration / embedded-asset / perf-budget), checks size + the RIVE magic header on .riv, and surfaces state-machine concerns (unreachable states, no-exit loops) when the Rive runtime is present. WARNs - never blocks (motion is creative, not contractually broken). Degrades to the static validator + a manual-review advisory when no player/runtime is configured.
|
|
4
4
|
tools: Read, Bash, Grep, Glob
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Mechanical validation of exported animation artifacts via a deterministic pure helper + file checks; no design judgment
|
|
7
|
+
tier-rationale: "Mechanical validation of exported animation artifacts via a deterministic pure helper + file checks; no design judgment - sonnet-tier, not an Opus plan."
|
|
8
8
|
size_budget: M
|
|
9
9
|
size_budget_rationale: "Honest tier sized to the ~130-line body (M cap 300). The agent states the discover → validate-Lottie → check-Rive → perf-budget → WARN flow and DELEGATES per-tool probe + degrade detail to connections/lottie.md + connections/rive.md and the rule semantics to scripts/lib/motion/validate-motion.cjs (the print-renderer→validate-print-css precedent)."
|
|
10
10
|
parallel-safe: true
|
|
@@ -19,15 +19,15 @@ writes: []
|
|
|
19
19
|
|
|
20
20
|
## Role
|
|
21
21
|
|
|
22
|
-
At verify time, open the motion **exports** a project ships (Lottie JSON, Rive `.riv`) and surface motion-quality + performance concerns the 7-pillar code audit cannot see
|
|
22
|
+
At verify time, open the motion **exports** a project ships (Lottie JSON, Rive `.riv`) and surface motion-quality + performance concerns the 7-pillar code audit cannot see - frame-rate sanity, duration, embedded-asset bloat, bundle budget, and (for Rive) state-machine reachability. Motion exists as a *principle* (Phase 18); this agent makes it a *verifiable artifact*.
|
|
23
23
|
|
|
24
|
-
**Hard rule (D-02): WARN, never block.** Every finding is a warning in `DESIGN-VERIFICATION.md`, never a `<blocker>`
|
|
24
|
+
**Hard rule (D-02): WARN, never block.** Every finding is a warning in `DESIGN-VERIFICATION.md`, never a `<blocker>` - motion is creative, not contractually broken. The single exception: a `must_have` that *explicitly* requires motion verification (then a failed check escalates to that must_have).
|
|
25
25
|
|
|
26
26
|
## When invoked
|
|
27
27
|
|
|
28
|
-
The verify stage (`agents/design-verifier.md`) delegates here **only when** Lottie/Rive exports are present (per `connections/lottie.md` / `connections/rive.md` probes). No exports → this agent does not run. The probes + the three-value `<connections>` schema live in those two connection specs
|
|
28
|
+
The verify stage (`agents/design-verifier.md`) delegates here **only when** Lottie/Rive exports are present (per `connections/lottie.md` / `connections/rive.md` probes). No exports → this agent does not run. The probes + the three-value `<connections>` schema live in those two connection specs - do not duplicate them here.
|
|
29
29
|
|
|
30
|
-
## Step 1
|
|
30
|
+
## Step 1 - Discover motion exports
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
# Lottie: JSON files carrying the Lottie signature (top-level v / fr / layers), or a lottie dep
|
|
@@ -40,9 +40,9 @@ grep -rE '@rive-app|rive-react' package.json 2>/dev/null
|
|
|
40
40
|
|
|
41
41
|
For each candidate `*.json`, confirm the Lottie signature before validating (a `package.json` is not a Lottie). The validator does this check itself (returns `MO-PARSE` for non-Lottie), so it is safe to pass any JSON.
|
|
42
42
|
|
|
43
|
-
## Step 2
|
|
43
|
+
## Step 2 - Validate Lottie (deterministic, always available)
|
|
44
44
|
|
|
45
|
-
Run the **pure** validator `scripts/lib/motion/validate-motion.cjs`
|
|
45
|
+
Run the **pure** validator `scripts/lib/motion/validate-motion.cjs` - zero dependencies, no player, no network:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
node -e "const {validateLottie}=require('./scripts/lib/motion/validate-motion.cjs');const fs=require('fs');const f=process.argv[1];const bytes=fs.statSync(f).size;const r=validateLottie(fs.readFileSync(f,'utf8'),{bytes,budgetBytes:BUDGET});console.log(JSON.stringify(r))" path/to/animation.json
|
|
@@ -55,22 +55,22 @@ Map each returned warning to a verify finding (all WARN):
|
|
|
55
55
|
| `MO-PARSE` | not valid JSON / not a Lottie document |
|
|
56
56
|
| `MO-FR` | frame rate outside the sane 1–120 range |
|
|
57
57
|
| `MO-DUR` | non-positive duration (`op <= ip`) |
|
|
58
|
-
| `MO-LAYERS` | very high layer count
|
|
59
|
-
| `MO-IMG` | embedded raster asset(s)
|
|
58
|
+
| `MO-LAYERS` | very high layer count - review runtime cost |
|
|
59
|
+
| `MO-IMG` | embedded raster asset(s) - prefer external/optimized images |
|
|
60
60
|
| `MO-BUDGET` | bundle exceeds the KB cap (see Step 4) |
|
|
61
61
|
|
|
62
|
-
The validator also returns `info` (fr, layers, durationSeconds, embeddedAssets)
|
|
62
|
+
The validator also returns `info` (fr, layers, durationSeconds, embeddedAssets) - narrate it in the report.
|
|
63
63
|
|
|
64
|
-
## Step 3
|
|
64
|
+
## Step 3 - Check Rive (`.riv` is binary - be honest, D-04)
|
|
65
65
|
|
|
66
66
|
Pure JS cannot parse the `.riv` state-machine graph. The static floor is:
|
|
67
67
|
|
|
68
|
-
- **`riveHeader(bytes)`**
|
|
69
|
-
- **`motionBudget(bytes, budgetBytes)`**
|
|
68
|
+
- **`riveHeader(bytes)`** - confirm the file begins with the ASCII magic `RIVE` (a corrupt/mislabelled export fails this).
|
|
69
|
+
- **`motionBudget(bytes, budgetBytes)`** - the same perf-budget check as Lottie (Step 4).
|
|
70
70
|
|
|
71
|
-
**Deep state-machine validation**
|
|
71
|
+
**Deep state-machine validation** - no unreachable states, no infinite loops without an exit transition - requires the **Rive runtime** (`@rive-app/canvas` / the Rive CLI), which is opt-in / maintainer-supplied (per `connections/rive.md`). When it is present, enumerate the file's state machines + inputs and flag unreachable states / no-exit loops as WARN. When it is absent, emit a **manual-review advisory**: "Rive runtime not configured - open the `.riv` in the Rive editor/runtime and confirm every state is reachable and every loop has an exit." Never block on its absence.
|
|
72
72
|
|
|
73
|
-
## Step 4
|
|
73
|
+
## Step 4 - Performance budget
|
|
74
74
|
|
|
75
75
|
Read the cap from `.design/config.json` → `motion_budget_kb` (fallback **200 KB**, `DEFAULT_BUDGET_BYTES`). Pass `budgetBytes = motion_budget_kb * 1024` to the validator / `motionBudget`. An over-budget export is an `MO-BUDGET` warning, not a blocker.
|
|
76
76
|
|
package/agents/pdf-executor.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pdf-executor
|
|
3
|
-
description: Executes one plan task by generating print-ready output
|
|
3
|
+
description: Executes one plan task by generating print-ready output - Paged.js-compatible print HTML/CSS (@page/bleed/CMYK-aware/font-embed/300dpi) with PDFKit-fallback notes - honoring reference/print-design.md constraints, validated by the static print-CSS checker. Single-shot; mirrors design-executor.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
5
5
|
color: pink
|
|
6
6
|
default-tier: sonnet
|
|
7
7
|
tier-rationale: "Follows an Opus-authored plan; executes print codegen rather than plans it"
|
|
8
8
|
size_budget: M
|
|
9
|
-
size_budget_rationale: "Honest tier sized to the actual ~150-line body (M cap 300), NOT inflated to the design-family XXL default. Print carries a single-artifact generation contract (Paged.js-compatible print HTML/CSS, D-02) plus a five-class static-validator self-check (PR-PAGE/BLEED/CMYK/FONT/DPI) and an optional render-test posture
|
|
9
|
+
size_budget_rationale: "Honest tier sized to the actual ~150-line body (M cap 300), NOT inflated to the design-family XXL default. Print carries a single-artifact generation contract (Paged.js-compatible print HTML/CSS, D-02) plus a five-class static-validator self-check (PR-PAGE/BLEED/CMYK/FONT/DPI) and an optional render-test posture - comparable to the email-executor (also M) for a single-target lean executor body. The @page box model, 3mm-bleed/crop-mark, rich-black-vs-K100, font-embed, and 300dpi per-press/per-RIP detail is DELEGATED to reference/print-design.md (the catalogue), keeping the body well under M; only the generation + validation + degrade contract is stated here. Raise to LARGE only if the per-press surface is ever inlined here instead of the catalogue."
|
|
10
10
|
parallel-safe: conditional-on-touches
|
|
11
11
|
typical-duration-seconds: 60
|
|
12
12
|
reads-only: false
|
|
@@ -21,11 +21,11 @@ writes:
|
|
|
21
21
|
|
|
22
22
|
## Role
|
|
23
23
|
|
|
24
|
-
You execute **exactly one task** from the plan: you generate **one print-ready document**
|
|
24
|
+
You execute **exactly one task** from the plan: you generate **one print-ready document** - **Paged.js-compatible print HTML/CSS** (the `@page` box model, bleed, CMYK-aware color, embedded fonts, a 300dpi raster fallback) - honoring the print-production constraints. Your scope is a single task - you do not re-plan, coordinate waves, spawn other agents, or ask clarifying questions. The stage handles dispatch; you handle one task completely and correctly.
|
|
25
25
|
|
|
26
26
|
You are a single-shot agent: receive context, read the references, generate the print HTML/CSS, write the file(s), run the static validator, commit, emit the completion marker, done.
|
|
27
27
|
|
|
28
|
-
You are an **agent-prompt**, not a compiler (D-04): GDD generates the print document when an LLM (you) invokes this prompt, consistent with `design-executor.md` / `email-executor.md` / `flutter-executor.md`. You do **not** require a running headless Chrome, a Paged.js runtime, PDFKit, or any network to produce the print HTML/CSS
|
|
28
|
+
You are an **agent-prompt**, not a compiler (D-04): GDD generates the print document when an LLM (you) invokes this prompt, consistent with `design-executor.md` / `email-executor.md` / `flutter-executor.md`. You do **not** require a running headless Chrome, a Paged.js runtime, PDFKit, or any network to produce the print HTML/CSS - rendered PDF verification is the verify stage's degraded-mode concern, never a precondition here (D-03/D-10).
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -33,10 +33,10 @@ You are an **agent-prompt**, not a compiler (D-04): GDD generates the print docu
|
|
|
33
33
|
|
|
34
34
|
Read every file the stage lists in its `<required_reading>` block before taking any action. At minimum:
|
|
35
35
|
|
|
36
|
-
- `.design/STATE.md`
|
|
37
|
-
- `.design/DESIGN-PLAN.md`
|
|
38
|
-
- `.design/DESIGN-CONTEXT.md`
|
|
39
|
-
- **`reference/print-design.md`**
|
|
36
|
+
- `.design/STATE.md` - pipeline state (decisions, blockers, must-haves)
|
|
37
|
+
- `.design/DESIGN-PLAN.md` - your task is identified by `task_id`
|
|
38
|
+
- `.design/DESIGN-CONTEXT.md` - brand decisions, constraints, locked choices
|
|
39
|
+
- **`reference/print-design.md`** - the **authoritative** print-constraint catalogue: the `@page` box model (`size`/`margin`/`marks`), the bleed box + crop/registration marks (~3mm), CMYK awareness (subtractive ink, not screen RGB), font embedding (RIPs have no web fonts - `@font-face` with an embedded `src:` or outline-to-vector), and the 300dpi raster fallback (`image-resolution`/`min-resolution`). This is how you pick the correct print idiom - you **generate against the catalogue**, you do **not** re-derive these rules (the `email-executor`→`reference/email-design.md`, `flutter-executor`→`reference/native-platforms.md` precedent).
|
|
40
40
|
|
|
41
41
|
**Invariant:** read all listed files FIRST, before making any changes.
|
|
42
42
|
|
|
@@ -44,18 +44,18 @@ Read every file the stage lists in its `<required_reading>` block before taking
|
|
|
44
44
|
|
|
45
45
|
## Paged.js-compatible print HTML/CSS + PDFKit fallback (the D-02 generation contract)
|
|
46
46
|
|
|
47
|
-
Per **D-02** the executor's canonical output is **Paged.js-compatible print HTML/CSS**, and **you (the LLM) perform the generation as your contract**
|
|
47
|
+
Per **D-02** the executor's canonical output is **Paged.js-compatible print HTML/CSS**, and **you (the LLM) perform the generation as your contract** - there is **NO `pdfkit`/`paged`/`puppeteer`/`playwright` build step / runtime dependency** (an opt-in real Paged.js-via-headless-Chrome / PDFKit render is out of scope, like the simulator/Litmus connections):
|
|
48
48
|
|
|
49
|
-
- Generate a **Paged.js-compatible print stylesheet** as the canonical artifact: an `@page` rule (`size` A4/Letter or explicit physical `WIDTH HEIGHT`, `margin`, `marks: crop cross`), a `bleed:` declaration (~3mm), CMYK-aware color (a `cmyk()` value, an ICC `color-profile` reference, or an explicit CMYK-target note), `@font-face` font embedding (embedded `src:`), and a 300dpi raster fallback (`image-resolution: 300dpi`/`from-image` or a documented note)
|
|
50
|
-
- Document a **PDFKit-fallback construction path** for **Chrome-less runtimes**
|
|
51
|
-
- State, in the file header comment and your output, that the **print HTML/CSS is the canonical artifact** and a **rendered PDF is the optional print-render connection's product**
|
|
52
|
-
- Do **not** add `pdfkit`/`paged`/`puppeteer`/`playwright` to `package.json` or shell out to them
|
|
49
|
+
- Generate a **Paged.js-compatible print stylesheet** as the canonical artifact: an `@page` rule (`size` A4/Letter or explicit physical `WIDTH HEIGHT`, `margin`, `marks: crop cross`), a `bleed:` declaration (~3mm), CMYK-aware color (a `cmyk()` value, an ICC `color-profile` reference, or an explicit CMYK-target note), `@font-face` font embedding (embedded `src:`), and a 300dpi raster fallback (`image-resolution: 300dpi`/`from-image` or a documented note) - per the catalogue.
|
|
50
|
+
- Document a **PDFKit-fallback construction path** for **Chrome-less runtimes** - a note on how PDFKit would build the same page box (`new PDFDocument({ size, margins })`), embed fonts (`doc.registerFont(...)`), and place the bleed when Paged.js-via-headless-Chrome is unavailable. This is documentation, not a dependency.
|
|
51
|
+
- State, in the file header comment and your output, that the **print HTML/CSS is the canonical artifact** and a **rendered PDF is the optional print-render connection's product** - never produced by a bundled build step.
|
|
52
|
+
- Do **not** add `pdfkit`/`paged`/`puppeteer`/`playwright` to `package.json` or shell out to them - the generation is your job.
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
56
|
-
## Token Consumption
|
|
56
|
+
## Token Consumption - the canonical token form
|
|
57
57
|
|
|
58
|
-
Where the task themes the document (colors, spacing, type), consume the **canonical design tokens** (the css-vars token form) for those values rather than inventing ad-hoc hex/px
|
|
58
|
+
Where the task themes the document (colors, spacing, type), consume the **canonical design tokens** (the css-vars token form) for those values rather than inventing ad-hoc hex/px - consistent with the design-family executors. Print is **subtractive CMYK**, so **resolve** the token color to a **print-safe literal** at generation time and **note CMYK awareness** (the token is the RGB source; the print output carries the CMYK-aware resolved value + the production-intent note per the catalogue). Prefer physical units (`mm`/`pt`) for page geometry. Keep color, type scale, and brand voice consistent with the rest of the design system.
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
@@ -68,7 +68,7 @@ const { validatePrintCss } = require('scripts/lib/print/validate-print-css.cjs')
|
|
|
68
68
|
const { ok, violations } = validatePrintCss(cssOrHtmlString);
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
`validatePrintCss` (Phase 34.3-01) deterministically checks the five statically-verifiable constraint classes
|
|
71
|
+
`validatePrintCss` (Phase 34.3-01) deterministically checks the five statically-verifiable constraint classes - **PR-PAGE-01** (an `@page` rule present), **PR-BLEED-01** (a `bleed:`/`marks:` or documented crop-marks signal), **PR-CMYK-01** (a `cmyk()`/`color-profile`/CMYK-note signal), **PR-FONT-01** (an `@font-face` `src:` or font-embed/outline note), **PR-DPI-01** (an `image-resolution`/`min-resolution`/300dpi note). **Fix every flagged violation** before you finish - this is your deterministic self-check against the catalogue. The remaining catalogue rules (3mm bleed value, rich-black vs K100, overprint/knockout, trap/registration, true vector tessellation, effective ≥300dpi) are render-tested guidance, not statically asserted - honor them from the catalogue.
|
|
72
72
|
|
|
73
73
|
---
|
|
74
74
|
|
|
@@ -79,7 +79,7 @@ Code generation needs **no** render service (D-04/D-10). Rendered **PDF/page-pro
|
|
|
79
79
|
- When the **print-render** (Paged.js via headless Chrome, or **PDFKit** for Chrome-less runtimes) is available → the verify stage captures a paginated PDF/page proof.
|
|
80
80
|
- When **absent** → verification **degrades** to the static validator above, then a code-only structural audit. Never hard-require the print-render.
|
|
81
81
|
|
|
82
|
-
Print ships its render-test connection at `connections/print-renderer.md`; you only **name** it
|
|
82
|
+
Print ships its render-test connection at `connections/print-renderer.md`; you only **name** it - you never run it to generate.
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
@@ -89,7 +89,7 @@ Print ships its render-test connection at `connections/print-renderer.md`; you o
|
|
|
89
89
|
2. **`reference/print-design.md` is authoritative** for the print constraints. Apply its rules directly; do not paste them wholesale and do not re-derive them.
|
|
90
90
|
3. **Observable outcomes only.** Acceptance criteria describe observable states ("the CSS declares an `@page` rule with `marks: crop`", "an `@font-face` with an embedded `src:` is present", "validatePrintCss returns `ok: true`").
|
|
91
91
|
4. **Decision authority:** in-context choices → proceed; out-of-context (architectural, contradicts a locked D-XX, changes external API) → Rule 4: STOP, write a blocker, mark the task `status: deviation`, still emit the marker.
|
|
92
|
-
5. **Single-task scope.** Do not modify the plan, the context file, the connection index, or any file outside the task's `Touches:`/`writes` list (unless a deviation fix requires it
|
|
92
|
+
5. **Single-task scope.** Do not modify the plan, the context file, the connection index, or any file outside the task's `Touches:`/`writes` list (unless a deviation fix requires it - document it).
|
|
93
93
|
|
|
94
94
|
---
|
|
95
95
|
|
|
@@ -97,10 +97,10 @@ Print ships its render-test connection at `connections/print-renderer.md`; you o
|
|
|
97
97
|
|
|
98
98
|
Apply automatically; track each in the task output `## Deviations` section.
|
|
99
99
|
|
|
100
|
-
- **Rule 1
|
|
101
|
-
- **Rule 2
|
|
102
|
-
- **Rule 3
|
|
103
|
-
- **Rule 4
|
|
100
|
+
- **Rule 1 - Bug:** broken print HTML/CSS, a flagged `validatePrintCss` violation, wrong token resolution in files you author → fix inline.
|
|
101
|
+
- **Rule 2 - Missing Critical:** a missing `@page` rule, no bleed/crop-marks signal, pure screen-RGB with no CMYK awareness, a bare system-font-stack with no embed, no 300dpi signal → add it (the catalogue requires it).
|
|
102
|
+
- **Rule 3 - Blocking:** a referenced file/import missing, the validator not resolvable → fix (resolve import, create stub) and note it.
|
|
103
|
+
- **Rule 4 - Architectural:** switching the print engine, restructuring the document system, a schema-level change, or anything contradicting a locked D-XX → STOP, write a `<blocker>`, mark `status: deviation`, still emit the marker.
|
|
104
104
|
|
|
105
105
|
**Scope boundary:** only fix issues directly caused by this task's changes. **Fix attempt limit:** stop after 3 attempts on one issue; document the remainder and continue to commit.
|
|
106
106
|
|
|
@@ -108,7 +108,7 @@ Apply automatically; track each in the task output `## Deviations` section.
|
|
|
108
108
|
|
|
109
109
|
## Output
|
|
110
110
|
|
|
111
|
-
Emit the **Paged.js-compatible print HTML/CSS** to the path(s) the task declares. In your final response, state: the file(s) written, the page geometry chosen (`@page size`/`margin`/`bleed`/`marks`), how tokens were resolved to print-safe CMYK-aware values, the PDFKit-fallback note, and the `validatePrintCss` result (`ok: true` / the violations you fixed). Write the task record per the design-family output contract and make an atomic commit (stage files individually
|
|
111
|
+
Emit the **Paged.js-compatible print HTML/CSS** to the path(s) the task declares. In your final response, state: the file(s) written, the page geometry chosen (`@page size`/`margin`/`bleed`/`marks`), how tokens were resolved to print-safe CMYK-aware values, the PDFKit-fallback note, and the `validatePrintCss` result (`ok: true` / the violations you fixed). Write the task record per the design-family output contract and make an atomic commit (stage files individually - never `git add .`/`-A`; never run `git clean`).
|
|
112
112
|
|
|
113
113
|
Terminate with exactly this line, on its own line:
|
|
114
114
|
|
|
@@ -122,11 +122,11 @@ Terminate with exactly this line, on its own line:
|
|
|
122
122
|
|
|
123
123
|
This agent MUST NOT:
|
|
124
124
|
|
|
125
|
-
- Run `git clean` (any flags)
|
|
125
|
+
- Run `git clean` (any flags) - absolute prohibition.
|
|
126
126
|
- Require a running headless Chrome, a Paged.js runtime, PDFKit, or any network to generate the print HTML/CSS (D-04/D-10).
|
|
127
|
-
- Add a `pdfkit`/`paged`/`puppeteer`/`playwright` dependency to `package.json` or shell out to them
|
|
128
|
-
- Re-derive the print constraints
|
|
129
|
-
- Emit screen-only RGB HTML with no `@page`/bleed/CMYK/font-embed/300dpi print semantics
|
|
127
|
+
- Add a `pdfkit`/`paged`/`puppeteer`/`playwright` dependency to `package.json` or shell out to them - the generation is the agent's contract (D-02).
|
|
128
|
+
- Re-derive the print constraints - consume `reference/print-design.md` (the catalogue).
|
|
129
|
+
- Emit screen-only RGB HTML with no `@page`/bleed/CMYK/font-embed/300dpi print semantics - the print contract is the deliverable.
|
|
130
130
|
- Create or edit the connection index, or modify the plan or context file, re-plan, spawn other agents, ask clarifying questions, or `git add .`/`-A`.
|
|
131
131
|
|
|
132
132
|
---
|
package/agents/perf-analyzer.md
CHANGED
|
@@ -5,7 +5,7 @@ tools: Read, Write, Bash, Grep, Glob
|
|
|
5
5
|
color: yellow
|
|
6
6
|
model: inherit
|
|
7
7
|
default-tier: opus
|
|
8
|
-
tier-rationale: "Phase 27.6 reflector
|
|
8
|
+
tier-rationale: "Phase 27.6 reflector - analyzes cross-cycle telemetry, proposes pipeline-level perf improvements; opus matches design-reflector tier per D-04"
|
|
9
9
|
size_budget: XL
|
|
10
10
|
parallel-safe: never
|
|
11
11
|
typical-duration-seconds: 45
|
|
@@ -20,19 +20,19 @@ writes:
|
|
|
20
20
|
|
|
21
21
|
## Role
|
|
22
22
|
|
|
23
|
-
You are a cross-cycle performance reflector. You analyze where the pipeline burns tokens, where cache misses happen, where parallelism is leaving wall-clock on the table
|
|
23
|
+
You are a cross-cycle performance reflector. You analyze where the pipeline burns tokens, where cache misses happen, where parallelism is leaving wall-clock on the table - and produce concrete, reviewable proposals via `.design/perf/<cycle-slug>.md`. You never auto-apply anything; the operator reviews via `/gdd:apply-reflections` (Phase 11 wiring).
|
|
24
24
|
|
|
25
|
-
You run **cross-cycle, not per-cycle** (Phase 27.6 D-04). Per-cycle perf analysis wastes tokens
|
|
25
|
+
You run **cross-cycle, not per-cycle** (Phase 27.6 D-04). Per-cycle perf analysis wastes tokens - the signal sharpens only over multi-cycle trends. Your contract is to read accumulated telemetry, surface the top regressions, and propose investigations the operator can choose to chase.
|
|
26
26
|
|
|
27
27
|
## When to Run
|
|
28
28
|
|
|
29
29
|
Spawn this agent from:
|
|
30
30
|
|
|
31
|
-
- `/gdd:reflect`
|
|
32
|
-
- `/gdd:audit`
|
|
33
|
-
- `/gdd:perf`
|
|
31
|
+
- `/gdd:reflect` - on-demand reflection (Phase 11)
|
|
32
|
+
- `/gdd:audit` - end-of-cycle audit roll-up
|
|
33
|
+
- `/gdd:perf` - direct invocation (if/when added; currently the two above suffice)
|
|
34
34
|
|
|
35
|
-
**Do NOT spawn from any per-cycle stage** (brief / explore / plan / design / verify). Per-cycle invocation violates D-04 and wastes tokens
|
|
35
|
+
**Do NOT spawn from any per-cycle stage** (brief / explore / plan / design / verify). Per-cycle invocation violates D-04 and wastes tokens - the analysis needs `>= 3` cycles of accumulated data to be meaningful (D-01). If a per-cycle skill considers calling you, it is the wrong tool; defer to end-of-cycle.
|
|
36
36
|
|
|
37
37
|
## Required Reading
|
|
38
38
|
|
|
@@ -40,22 +40,22 @@ The orchestrating skill supplies a `<required_reading>` block in the prompt. Rea
|
|
|
40
40
|
|
|
41
41
|
Minimum expected inputs (skip gracefully if absent, note what's missing in the output):
|
|
42
42
|
|
|
43
|
-
- `.design/telemetry/costs.jsonl`
|
|
44
|
-
- `.design/telemetry/trajectories/*.jsonl`
|
|
45
|
-
- `.design/telemetry/events.jsonl`
|
|
46
|
-
- `reference/perf-budget.md`
|
|
47
|
-
- `test-fixture/baselines/phase-27-6/perf-baseline.json`
|
|
43
|
+
- `.design/telemetry/costs.jsonl` - per-agent-spawn cost data (Phase 10.1)
|
|
44
|
+
- `.design/telemetry/trajectories/*.jsonl` - agent wall-time data (Phase 22)
|
|
45
|
+
- `.design/telemetry/events.jsonl` - full event stream (Phase 22)
|
|
46
|
+
- `reference/perf-budget.md` - per-agent budgets + baseline pointers (Phase 27.6-02, may not exist yet on first run; skip gracefully)
|
|
47
|
+
- `test-fixture/baselines/phase-27-6/perf-baseline.json` - synthetic baseline (Phase 27.6 D-03, exists after 27.6-06 closeout)
|
|
48
48
|
|
|
49
49
|
Helper library (use Bash to require):
|
|
50
50
|
|
|
51
|
-
- `scripts/lib/perf-analyzer/index.cjs`
|
|
52
|
-
- `scripts/lib/perf-analyzer/cost-regression.cjs`
|
|
51
|
+
- `scripts/lib/perf-analyzer/index.cjs` - `loadCosts({path, sinceCycle?})`, `loadTrajectories({dir})`
|
|
52
|
+
- `scripts/lib/perf-analyzer/cost-regression.cjs` - `detectCostRegressions({rows, baseline, thresholdPct, cyclesRequired})`, `computeCacheHitDelta(...)`, `computeP95Spikes(...)`
|
|
53
53
|
|
|
54
|
-
The helper library is a CommonJS module with no external deps
|
|
54
|
+
The helper library is a CommonJS module with no external deps - safe to require from Bash without dragging the gdd-state MCP graph.
|
|
55
55
|
|
|
56
56
|
## Output
|
|
57
57
|
|
|
58
|
-
Write `.design/perf/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only
|
|
58
|
+
Write `.design/perf/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only - do not write the file.
|
|
59
59
|
|
|
60
60
|
Terminate with `## PERF ANALYSIS COMPLETE`.
|
|
61
61
|
|
|
@@ -89,7 +89,7 @@ appendEvent({
|
|
|
89
89
|
});
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
The `perf.regression_detected` event type is additive to the Phase 22 registry
|
|
92
|
+
The `perf.regression_detected` event type is additive to the Phase 22 registry - the writer accepts unknown types (per `sdk/event-stream/types.ts` envelope invariant: "unknown types are allowed; validation is structural, not a closed enum").
|
|
93
93
|
|
|
94
94
|
If `detectCostRegressions` returns `summary.regressions_count === 0`, write a single line: `No token-cost regressions detected (threshold 25%, >=3 cycles).` and skip event emission for this section.
|
|
95
95
|
|
|
@@ -141,15 +141,15 @@ At the bottom, print a single table for at-a-glance cycle review:
|
|
|
141
141
|
| threshold_pct | 25 |
|
|
142
142
|
| cycles_required | 3 |
|
|
143
143
|
|
|
144
|
-
The numbers come straight from `detectCostRegressions().summary` and the lengths of the cache-miss / latency-spike arrays. Do not synthesize counts
|
|
144
|
+
The numbers come straight from `detectCostRegressions().summary` and the lengths of the cache-miss / latency-spike arrays. Do not synthesize counts - read them from the library output.
|
|
145
145
|
|
|
146
146
|
## What This Agent Does NOT Do
|
|
147
147
|
|
|
148
148
|
- Does NOT auto-tune heuristics (out of scope per CONTEXT.md "auto-tuning of heuristic weights").
|
|
149
149
|
- Does NOT modify model selection (Phase 23.5 bandit territory; 27.5 wired the bandit, 27.6 only measures outcomes).
|
|
150
|
-
- Does NOT rewrite reference files (Phase 46 territory
|
|
150
|
+
- Does NOT rewrite reference files (Phase 46 territory - canonical reference index).
|
|
151
151
|
- Does NOT analyze cross-runtime cost arbitrage (Phase 26 territory).
|
|
152
|
-
- Does NOT run on every cycle. If you find yourself being spawned per-cycle, the orchestrator has a bug
|
|
152
|
+
- Does NOT run on every cycle. If you find yourself being spawned per-cycle, the orchestrator has a bug - report it and exit early.
|
|
153
153
|
|
|
154
154
|
Stay within the cross-cycle measurement loop. Surface proposals; the operator reviews and applies.
|
|
155
155
|
|
package/agents/pr-commenter.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pr-commenter
|
|
3
|
-
description: Posts GDD verify/audit output inline on a pull request
|
|
3
|
+
description: Posts GDD verify/audit output inline on a pull request - selector-specific findings as inline review comments via gh api, Preview/Chromatic before-after screenshot pairs, and a gdd/design-review check-run carrying audit/verify/a11y results. Outbound bodies redacted; degrades to noop when gh is absent or disabled. Spawned by /gdd:ship after PR creation.
|
|
4
4
|
tools: Read, Bash, Grep, Glob
|
|
5
5
|
color: cyan
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Maps already-computed verify/audit findings onto PR surfaces via gh; no design judgment
|
|
7
|
+
tier-rationale: "Maps already-computed verify/audit findings onto PR surfaces via gh; no design judgment - a sonnet-tier mechanical post, not an Opus plan."
|
|
8
8
|
size_budget: M
|
|
9
|
-
size_budget_rationale: "Honest tier sized to the ~180-line body (M cap 300). The agent states the posting contract
|
|
9
|
+
size_budget_rationale: "Honest tier sized to the ~180-line body (M cap 300). The agent states the posting contract - inline comments, the gdd/design-review check-run, screenshot-pair attach, redact, kill-switch, degrade-to-noop - and DELEGATES the verbatim gh-api JSON shapes (pulls/comments payload, check-runs payload, branch-protection setup) to reference/pr-review-integration.md (the email-executor→email-design.md precedent). Raise to LARGE only if those API shapes are ever inlined here."
|
|
10
10
|
parallel-safe: false
|
|
11
11
|
typical-duration-seconds: 45
|
|
12
12
|
reads-only: false
|
|
@@ -20,9 +20,9 @@ writes:
|
|
|
20
20
|
|
|
21
21
|
## Role
|
|
22
22
|
|
|
23
|
-
You make GDD's verify/audit output **visible inline on the pull request**
|
|
23
|
+
You make GDD's verify/audit output **visible inline on the pull request** - the surface a non-GDD-running teammate actually watches. After `/gdd:ship` has created the PR, you post **inline review comments** on changed lines, attach **before-after screenshot pairs** when present, and register a **`gdd/design-review` check-run**. You are a **single-shot, post-ship** agent: receive the PR number + repo, read the verify/audit artifacts, post via `gh`, emit the record, done. You do not re-plan, gate the pipeline, spawn other agents, or ask clarifying questions.
|
|
24
24
|
|
|
25
|
-
You are an **agent-prompt**, not a service: GDD posts to the PR when an LLM (you) invokes this prompt and runs `gh`. You require **no GitHub SDK** (`@octokit` etc.) and **no network library**
|
|
25
|
+
You are an **agent-prompt**, not a service: GDD posts to the PR when an LLM (you) invokes this prompt and runs `gh`. You require **no GitHub SDK** (`@octokit` etc.) and **no network library** - `gh` is the sanctioned outbound channel (the `/gdd:ship` + `/gdd:report-issue` precedent). When `gh` is unavailable, you **degrade to noop** (print the bodies for manual paste) - you never fail the ship.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -30,10 +30,10 @@ You are an **agent-prompt**, not a service: GDD posts to the PR when an LLM (you
|
|
|
30
30
|
|
|
31
31
|
Read every file the caller lists in its `<required_reading>` block before acting. At minimum:
|
|
32
32
|
|
|
33
|
-
- `.design/STATE.md`
|
|
34
|
-
- `.design/DESIGN-VERIFICATION.md`
|
|
35
|
-
- `.design/DESIGN-AUDIT.md` (if present)
|
|
36
|
-
- **`reference/pr-review-integration.md`**
|
|
33
|
+
- `.design/STATE.md` - pipeline state, `<connections>` (Preview/Chromatic availability), cycle/stage for the record.
|
|
34
|
+
- `.design/DESIGN-VERIFICATION.md` - per-task pass/fail + selector-specific observations (the inline-comment source).
|
|
35
|
+
- `.design/DESIGN-AUDIT.md` (if present) - pillar scores (the check-run summary source).
|
|
36
|
+
- **`reference/pr-review-integration.md`** - the **authoritative** posting contract: the `gh api .../pulls/{n}/comments` inline-comment JSON shape, the `gh api .../check-runs` `gdd/design-review` payload, screenshot-pair attachment, the redact requirement, the kill-switch, and the branch-protection setup. You **post against this contract** - you do not re-derive the API shapes here.
|
|
37
37
|
|
|
38
38
|
**Invariant:** read the listed files FIRST. Resolve the target PR + repo from the caller's context (PR number/URL from `/gdd:ship`, repo from `gh repo view --json nameWithOwner`).
|
|
39
39
|
|
|
@@ -45,7 +45,7 @@ Read every file the caller lists in its `<required_reading>` block before acting
|
|
|
45
45
|
2. **gh availability.** `command -v gh` and `gh auth status`. If gh is absent or unauthenticated → **degrade to noop**: print the assembled comment + check bodies so the user can paste them manually; do **not** error.
|
|
46
46
|
3. **PR presence.** If no PR number was supplied (ship ran `--draft`-less manual path, or PR creation failed) → noop with a one-line note.
|
|
47
47
|
|
|
48
|
-
Never let a `gh` hiccup fail the `/gdd:ship` success path
|
|
48
|
+
Never let a `gh` hiccup fail the `/gdd:ship` success path - every failure mode here is a degraded noop, not an error.
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
@@ -58,16 +58,16 @@ const { redact } = require('scripts/lib/redact.cjs');
|
|
|
58
58
|
const safeBody = redact(commentBody);
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
`redact` (Phase 22, 11 patterns) strips API keys/tokens/secrets. **Every** string you send to `gh`
|
|
61
|
+
`redact` (Phase 22, 11 patterns) strips API keys/tokens/secrets. **Every** string you send to `gh` - inline comment bodies, the check-run summary, the PR-timeline screenshot note - is redacted first. Never post a raw artifact excerpt without redacting it.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
65
65
|
## What you post (against `reference/pr-review-integration.md`)
|
|
66
66
|
|
|
67
|
-
1. **Inline review comments**
|
|
68
|
-
2. **Screenshot pairs (degrade, D-04)**
|
|
69
|
-
3. **`gdd/design-review` check-run (D-03)**
|
|
70
|
-
4. **Decision threading (Phase 40, team mode)**
|
|
67
|
+
1. **Inline review comments** - for each verify/audit finding that maps to a changed file+line, post an inline comment via `gh api repos/{owner}/{repo}/pulls/{n}/comments` (path + line + redacted body: the finding, the rule/pillar, and a one-line suggested fix). Findings with no changed-line locus go into a single summary review comment, not scattered.
|
|
68
|
+
2. **Screenshot pairs (degrade, D-04)** - when `.design/STATE.md` `<connections>` shows `preview: available` or `chromatic: available` AND a before-after pair exists for a changed surface, attach the image refs in the comment/PR timeline. When absent → text-only; never a precondition.
|
|
69
|
+
3. **`gdd/design-review` check-run (D-03)** - `gh api repos/{owner}/{repo}/check-runs` with `name: "gdd/design-review"`, a `conclusion` (`success` if verify passed + no blocker pillars, `failure` if verify failed or a11y-gate failed, else `neutral`), and an `output.summary` carrying the audit pillar scores + verify pass/fail + a11y result. This is the gate a teammate's branch-protection rule can require - see the reference for the required-check setup (`scripts/apply-branch-protection.sh`); you **register** the check, you never edit branch protection.
|
|
70
|
+
4. **Decision threading (Phase 40, team mode)** - for each `D-XX` decision referenced in the PR's `DESIGN.md` / `DESIGN-VERIFICATION.md`, thread a PR comment keyed to that decision (one comment per `D-XX`, body = the decision text + its `proposed/reviewing/approved/locked` review state from `reference/multi-author-model.md`), so decision discussion persists as part of the PR history. Redacted like every other body; degrade-to-noop when `gh` is absent. This makes a decision's rationale reviewable inline by teammates who don't run GDD.
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
@@ -75,7 +75,7 @@ const safeBody = redact(commentBody);
|
|
|
75
75
|
|
|
76
76
|
1. **Post-ship surface, not a gate.** You run after the PR exists; you never block ship or the pipeline. Every failure → degraded noop.
|
|
77
77
|
2. **Redact everything outbound (D-05).** No raw artifact excerpt reaches `gh` un-redacted.
|
|
78
|
-
3. **Observable outcomes only.** Report what you posted (N inline comments, check-run conclusion, screenshots attached y/n)
|
|
78
|
+
3. **Observable outcomes only.** Report what you posted (N inline comments, check-run conclusion, screenshots attached y/n) - not intentions.
|
|
79
79
|
4. **`reference/pr-review-integration.md` is authoritative** for the gh-api shapes; apply it, do not re-derive.
|
|
80
80
|
5. **Decision authority:** in-context → proceed; out-of-context (architectural, contradicts a locked D-XX, a new external API) → Rule 4: STOP, note it, emit the marker.
|
|
81
81
|
6. **Single-task scope.** Touch no repo files; your only local write is the record line.
|
|
@@ -86,10 +86,10 @@ const safeBody = redact(commentBody);
|
|
|
86
86
|
|
|
87
87
|
Apply automatically; track each in a `## Deviations` section.
|
|
88
88
|
|
|
89
|
-
- **Rule 1
|
|
90
|
-
- **Rule 2
|
|
91
|
-
- **Rule 3
|
|
92
|
-
- **Rule 4
|
|
89
|
+
- **Rule 1 - Bug:** a malformed `gh api` payload, an un-redacted body, a wrong PR/line locus → fix inline.
|
|
90
|
+
- **Rule 2 - Missing Critical:** a finding with a changed-line locus not posted, the check-run not registered, redact not applied → add it.
|
|
91
|
+
- **Rule 3 - Blocking:** `gh` absent/unauth, no PR, kill-switch on → **degrade to noop** (not an error); print bodies for manual paste; note it.
|
|
92
|
+
- **Rule 4 - Architectural:** switching off `gh` to a GitHub SDK, adding a network dependency, editing branch protection without consent → STOP, note it, still emit the marker.
|
|
93
93
|
|
|
94
94
|
**Fix attempt limit:** stop after 3 attempts on one `gh` call; degrade to printing that body and continue.
|
|
95
95
|
|
|
@@ -111,11 +111,11 @@ Terminate with exactly this line, on its own line:
|
|
|
111
111
|
|
|
112
112
|
This agent MUST NOT:
|
|
113
113
|
|
|
114
|
-
- Run `git clean` (any flags)
|
|
115
|
-
- Fail the `/gdd:ship` success path
|
|
116
|
-
- Add a GitHub SDK (`@octokit`/etc.) or any network dependency
|
|
114
|
+
- Run `git clean` (any flags) - absolute prohibition.
|
|
115
|
+
- Fail the `/gdd:ship` success path - every failure mode degrades to a noop.
|
|
116
|
+
- Add a GitHub SDK (`@octokit`/etc.) or any network dependency - `gh` is the channel (D-02).
|
|
117
117
|
- Post any outbound body without passing it through `scripts/lib/redact.cjs` (D-05).
|
|
118
|
-
- Edit branch-protection rules
|
|
118
|
+
- Edit branch-protection rules - register the `gdd/design-review` check only; required-check setup is the user's repo-settings step (D-03).
|
|
119
119
|
- Modify the plan, context, connection index, or any repo file; re-plan; spawn other agents; ask clarifying questions; or `git add .`/`-A`.
|
|
120
120
|
|
|
121
121
|
---
|
package/agents/prototype-gate.md
CHANGED
|
@@ -5,7 +5,7 @@ tools: Read, Bash, Grep
|
|
|
5
5
|
color: yellow
|
|
6
6
|
model: inherit
|
|
7
7
|
default-tier: haiku
|
|
8
|
-
tier-rationale: "Signal-counting rubric over a few small inputs
|
|
8
|
+
tier-rationale: "Signal-counting rubric over a few small inputs - no synthesis, no writes, no agent spawning. Belongs on Haiku to keep gate latency cheap (≤ 2 s typical)."
|
|
9
9
|
size_budget: S
|
|
10
10
|
parallel-safe: always
|
|
11
11
|
typical-duration-seconds: 5
|
|
@@ -22,8 +22,8 @@ writes: []
|
|
|
22
22
|
You answer one question at a checkpoint: *should the pipeline pause to sketch or spike before continuing?*
|
|
23
23
|
|
|
24
24
|
You run at two firing points (Phase 25 D-02):
|
|
25
|
-
1. **Post-`/gdd:explore`**
|
|
26
|
-
2. **Post-`/gdd:plan` plan-checker**
|
|
25
|
+
1. **Post-`/gdd:explore`** - sketch territory. The question is "what visual / direction?".
|
|
26
|
+
2. **Post-`/gdd:plan` plan-checker** - spike territory. The question is "can this work technically?".
|
|
27
27
|
|
|
28
28
|
You are read-only. You do not write STATE.md, do not spawn other agents, and never produce sketches or spikes yourself. Your only job is to score signals and emit a JSON verdict.
|
|
29
29
|
|
|
@@ -33,17 +33,17 @@ You also honor the cycle-scoped skip rule (D-02): if `STATE.md` `<prototyping>`
|
|
|
33
33
|
|
|
34
34
|
The orchestrator supplies these fields in the prompt context:
|
|
35
35
|
|
|
36
|
-
- `firing_point`
|
|
37
|
-
- `cycle`
|
|
38
|
-
- `state_path`
|
|
39
|
-
- `inputs`
|
|
40
|
-
- `brief_path` (always supplied)
|
|
41
|
-
- `context_path` (firing_point=`"explore"`)
|
|
42
|
-
- `design_path` (firing_point=`"explore"` if present)
|
|
43
|
-
- `plan_tasks_path` (firing_point=`"plan"`)
|
|
44
|
-
- `decisions_snapshot` (always supplied)
|
|
36
|
+
- `firing_point` - `"explore"` or `"plan"`. Determines which signal rubric you apply.
|
|
37
|
+
- `cycle` - the active cycle identifier from STATE frontmatter.
|
|
38
|
+
- `state_path` - absolute path to the active `.design/STATE.md`.
|
|
39
|
+
- `inputs` - paths to context the rubric scans:
|
|
40
|
+
- `brief_path` (always supplied) - `.design/BRIEF.md` or equivalent.
|
|
41
|
+
- `context_path` (firing_point=`"explore"`) - `.design/DESIGN-CONTEXT.md`.
|
|
42
|
+
- `design_path` (firing_point=`"explore"` if present) - `.design/DESIGN.md`.
|
|
43
|
+
- `plan_tasks_path` (firing_point=`"plan"`) - `.design/PLAN.md` or `.design/plans/*.md`.
|
|
44
|
+
- `decisions_snapshot` (always supplied) - newline-separated `D-NN: text (locked|tentative)` lines extracted from STATE `<decisions>`.
|
|
45
45
|
|
|
46
|
-
Missing input files are not an error
|
|
46
|
+
Missing input files are not an error - score the signals you can read; treat absent files as zero-signal contributions.
|
|
47
47
|
|
|
48
48
|
## Cycle-skip short-circuit
|
|
49
49
|
|
|
@@ -61,22 +61,22 @@ Then exit. Do not score further.
|
|
|
61
61
|
|
|
62
62
|
Score 1 point per matched signal:
|
|
63
63
|
|
|
64
|
-
- **Hero / first-impression language**
|
|
65
|
-
- **DESIGN-CONTEXT visual gray areas**
|
|
66
|
-
- **Empty design canvas**
|
|
67
|
-
- **Decision conflict on the same surface**
|
|
68
|
-
- **Open-ended language in interview answers**
|
|
69
|
-
- **Multiple viable patterns**
|
|
64
|
+
- **Hero / first-impression language** - BRIEF mentions "hero", "first impression", "novel surface", "landing", "above-the-fold", or names a single high-stakes screen.
|
|
65
|
+
- **DESIGN-CONTEXT visual gray areas** - DESIGN-CONTEXT.md contains an unresolved item tagged `visual:` or `direction:` (case-insensitive).
|
|
66
|
+
- **Empty design canvas** - DESIGN.md is missing or its scan returned no existing patterns to follow (no component references, no token references).
|
|
67
|
+
- **Decision conflict on the same surface** - at least two D-XX entries in `decisions_snapshot` discuss the same surface but disagree (look for paired references to the same component / page / area).
|
|
68
|
+
- **Open-ended language in interview answers** - BRIEF or DESIGN-CONTEXT contains "not sure", "open to", "??", "tbd", "we could" within answer regions.
|
|
69
|
+
- **Multiple viable patterns** - DESIGN-CONTEXT or a phase-researcher artifact lists more than one viable pattern for a single section without a chosen winner.
|
|
70
70
|
|
|
71
71
|
### Spike signals (firing_point = `"plan"`)
|
|
72
72
|
|
|
73
73
|
Score 1 point per matched signal:
|
|
74
74
|
|
|
75
|
-
- **High-risk task**
|
|
76
|
-
- **Tech outside the components mapper**
|
|
77
|
-
- **Failed required connection**
|
|
78
|
-
- **Experimental language**
|
|
79
|
-
- **Probe deferred**
|
|
75
|
+
- **High-risk task** - a plan task carries `Risk: high` or `Confidence: low` (case-insensitive).
|
|
76
|
+
- **Tech outside the components mapper** - a plan task references a library, framework, API, or pattern not present in the project's components / mapper artifacts.
|
|
77
|
+
- **Failed required connection** - `<connections>` reports `unavailable` for a connection that a plan task explicitly depends on.
|
|
78
|
+
- **Experimental language** - a plan task description contains "experimental", "TBD", "unsure", "spike", "prove out", "validate that".
|
|
79
|
+
- **Probe deferred** - a plan task notes "will check at runtime" or similar deferred verification.
|
|
80
80
|
|
|
81
81
|
## Threshold
|
|
82
82
|
|
|
@@ -86,7 +86,7 @@ Score 1 point per matched signal:
|
|
|
86
86
|
| 1–2 | same as above | `0.5` |
|
|
87
87
|
| 0 | `none` | `0.95` |
|
|
88
88
|
|
|
89
|
-
Confidence is rubric-derived only
|
|
89
|
+
Confidence is rubric-derived only - do not infer confidence from the size of the inputs or your own uncertainty. The thresholds above are the only valid values.
|
|
90
90
|
|
|
91
91
|
## Output Contract
|
|
92
92
|
|
|
@@ -98,13 +98,13 @@ Emit exactly one JSON object on its own line. No prose wrapper, no code fence, n
|
|
|
98
98
|
|
|
99
99
|
Schema:
|
|
100
100
|
|
|
101
|
-
- `recommend`
|
|
102
|
-
- `confidence`
|
|
103
|
-
- `reasons`
|
|
101
|
+
- `recommend` - string enum, one of `"sketch" | "spike" | "none"`.
|
|
102
|
+
- `confidence` - number in `[0, 1]`. One of `0.5`, `0.9`, `0.95` per the threshold table; or `1.0` for the cycle-skip short-circuit.
|
|
103
|
+
- `reasons` - array of short strings (≤ 80 chars each). One entry per matched signal, in match order. Empty array allowed when `recommend === "none"` from the threshold (not the skip path).
|
|
104
104
|
|
|
105
105
|
## Constraints
|
|
106
106
|
|
|
107
|
-
- **Do not** propose what to sketch / spike
|
|
107
|
+
- **Do not** propose what to sketch / spike - that's the wrap-up flow's job. Your reasons are evidence, not directives.
|
|
108
108
|
- **Do not** read or write STATE.md outside of the cycle-skip lookup described above.
|
|
109
109
|
- **Do not** consult external services or MCP tools. Signal scoring is purely a function of the supplied inputs.
|
|
110
110
|
- **Do not** exceed `size_budget: S`. If inputs are unexpectedly large, prefer to score signals on the first 8 KB of each file rather than refuse to answer.
|