@hegemonart/get-design-done 1.42.0 → 1.44.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 +1126 -1038
- package/README.md +159 -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 +9 -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/harness-freshness.cjs +59 -0
- package/scripts/lib/health-mirror/index.cjs +27 -0
- package/scripts/lib/manifest/harnesses.json +280 -14
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/scripts/lib/manifest/schemas/harnesses.schema.json +32 -0
- package/sdk/mcp/gdd-mcp/server.js +125 -0
- 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
|
@@ -5,7 +5,7 @@ tools: Read, Write, Bash, Grep, Glob, mcp__Claude_Preview__preview_list, mcp__Cl
|
|
|
5
5
|
color: green
|
|
6
6
|
model: inherit
|
|
7
7
|
default-tier: haiku
|
|
8
|
-
tier-rationale: "Verifier runs structured goal-backward checks
|
|
8
|
+
tier-rationale: "Verifier runs structured goal-backward checks - cheap Haiku is sufficient and fast"
|
|
9
9
|
size_budget: XXL
|
|
10
10
|
parallel-safe: never
|
|
11
11
|
typical-duration-seconds: 90
|
|
@@ -20,43 +20,43 @@ writes:
|
|
|
20
20
|
|
|
21
21
|
## Role
|
|
22
22
|
|
|
23
|
-
You are a single-shot, goal-backward verification agent. You do not redo design work. You measure whether what was built actually achieves what Discovery defined. You run five evaluation passes
|
|
23
|
+
You are a single-shot, goal-backward verification agent. You do not redo design work. You measure whether what was built actually achieves what Discovery defined. You run five evaluation passes - automated audit scoring, must-have checks, NNG heuristic scoring, visual UAT checks, and gap classification - then emit a pass result or a structured gap list.
|
|
24
24
|
|
|
25
25
|
You are spawned by the verify stage. You run once (or re-run with `re_verify=true` after inline fixes). You do NOT remediate gaps, spawn other agents, or modify source code. Remediation is the stage's responsibility.
|
|
26
26
|
|
|
27
27
|
## Required Reading
|
|
28
28
|
|
|
29
|
-
The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before acting
|
|
29
|
+
The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before acting - this is mandatory. Minimum expected files:
|
|
30
30
|
|
|
31
|
-
- `.design/STATE.md`
|
|
32
|
-
- `.design/DESIGN-PLAN.md`
|
|
33
|
-
- `.design/DESIGN-CONTEXT.md`
|
|
34
|
-
- `.design/tasks/`
|
|
35
|
-
- `reference/audit-scoring.md`
|
|
36
|
-
- `reference/heuristics.md`
|
|
37
|
-
- `reference/review-format.md`
|
|
38
|
-
- `reference/accessibility.md`
|
|
39
|
-
- `connections/preview.md`
|
|
40
|
-
- `connections/chromatic.md`
|
|
41
|
-
- `connections/storybook.md`
|
|
31
|
+
- `.design/STATE.md` - must-haves, pipeline position, baseline audit score
|
|
32
|
+
- `.design/DESIGN-PLAN.md` - planned tasks and acceptance criteria
|
|
33
|
+
- `.design/DESIGN-CONTEXT.md` - goals, must-haves, brand direction, references
|
|
34
|
+
- `.design/tasks/` - what was actually done (glob all task files)
|
|
35
|
+
- `reference/audit-scoring.md` - scoring rubric for category weights
|
|
36
|
+
- `reference/heuristics.md` - NNG heuristics H-01..H-10 scoring guide
|
|
37
|
+
- `reference/review-format.md` - visual UAT presentation format
|
|
38
|
+
- `reference/accessibility.md` - WCAG checklist for accessibility scoring
|
|
39
|
+
- `connections/preview.md` - Preview MCP connection spec (probe, screenshot mode, interaction mode, fallback)
|
|
40
|
+
- `connections/chromatic.md` - Chromatic CLI connection spec (probe, baseline management, fallback)
|
|
41
|
+
- `connections/storybook.md` - Storybook HTTP probe and a11y integration details
|
|
42
42
|
|
|
43
43
|
## Prompt Context Fields
|
|
44
44
|
|
|
45
45
|
The stage embeds these fields in its prompt:
|
|
46
46
|
|
|
47
|
-
- `auto_mode`: `true` or `false`
|
|
48
|
-
- `re_verify`: `true` or `false`
|
|
47
|
+
- `auto_mode`: `true` or `false` - if true, skip interactive visual UAT prompts and run static checks only; mark interactive steps as "skipped - auto mode"
|
|
48
|
+
- `re_verify`: `true` or `false` - if true, this is a re-invocation after inline fixes; focus verification effort on previously-failed must-haves and re-check only changed areas first before running full passes
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
## Phase 1
|
|
52
|
+
## Phase 1 - Re-Audit + Category Scoring
|
|
53
53
|
|
|
54
54
|
Re-run the same automated checks from the Discover stage. Score each category 0–10 using the rubric from `reference/audit-scoring.md`. Compare against `<baseline_audit>` from DESIGN-CONTEXT.md.
|
|
55
55
|
|
|
56
56
|
### Phase 1 re-audit grep patterns
|
|
57
57
|
|
|
58
58
|
Use the audit grep patterns documented in `skills/scan/SKILL.md` Step 5. See
|
|
59
|
-
that file for the authoritative list of shared grep patterns
|
|
59
|
+
that file for the authoritative list of shared grep patterns - do not duplicate
|
|
60
60
|
them here to keep the patterns in a single source of truth.
|
|
61
61
|
|
|
62
62
|
Key pattern categories consumed by this phase:
|
|
@@ -163,9 +163,9 @@ Before → After
|
|
|
163
163
|
|
|
164
164
|
### i18n probes
|
|
165
165
|
|
|
166
|
-
Two additive probes (Phase 28, D-03
|
|
166
|
+
Two additive probes (Phase 28, D-03 - orthogonal `i18n_readiness` lens-tag, NOT a new pillar). Full spec: `./reference/i18n.md` §Verifier Integration Spec; severity rules: `./reference/audit-scoring.md` §Lens-Tags.
|
|
167
167
|
|
|
168
|
-
**Probe 1
|
|
168
|
+
**Probe 1 - Hardcoded-string scan.** Regex catalog (D-10 patterns):
|
|
169
169
|
|
|
170
170
|
```txt
|
|
171
171
|
react-intl: <FormattedMessage\s+id="[^"]+"
|
|
@@ -176,13 +176,13 @@ vue-i18n: \$t\(\s*['"][a-zA-Z][\w.]*['"]
|
|
|
176
176
|
|
|
177
177
|
Allow-list seed (skip): `console\.(log|error|warn|info|debug)`, dev-only `/* */` comments, `data-testid=`, `className=`, `import … from` paths. Severity: `MINOR` per file; `MAJOR` if violating files > 10. Output: `i18n_readiness: <N> hardcoded strings in <M> files`.
|
|
178
178
|
|
|
179
|
-
**Probe 2
|
|
179
|
+
**Probe 2 - +40% text-overflow simulation.** Worst-case LTR expansion (RU/FI/PL family - `./reference/i18n.md` §Text Expansion). Per text node `T`: pad `T.textContent` to `length × 1.4`, measure `T.parentElement.scrollWidth > clientWidth`, restore original. Prefer Preview MCP screenshot-diff when available; fall back to in-process DOM measurement headless. Severity `MINOR` per finding; `MAJOR` if overflowing components > 10. Output: `i18n_readiness: <N> components overflow at +40% expansion`.
|
|
180
180
|
|
|
181
181
|
---
|
|
182
182
|
|
|
183
|
-
## Phase 2
|
|
183
|
+
## Phase 2 - Must-Have Check
|
|
184
184
|
|
|
185
|
-
Read `.design/STATE.md` `<must_haves>`. Also read must-haves from DESIGN-PLAN.md acceptance criteria, **and the brief's `<prior-research>` findings (Phase 38)**
|
|
185
|
+
Read `.design/STATE.md` `<must_haves>`. Also read must-haves from DESIGN-PLAN.md acceptance criteria, **and the brief's `<prior-research>` findings (Phase 38)** - for each prior-research finding, assert the current design addresses it or note an explicit defer + rationale (an unaddressed `critical`/`serious` finding is a gap). **When a DS migration is in flight** (`.design/migration/` per Phase 39.1's `ds-migration-planner`), also assert it preserved the contract - visual-diff within threshold, component API surface unchanged, tests pass - and treat an unmigrated high-impact rule as a gap. For each M-XX must-have, determine verification method and verify:
|
|
186
186
|
|
|
187
187
|
| Must-have type | Verification method |
|
|
188
188
|
|---|---|
|
|
@@ -194,9 +194,9 @@ Read `.design/STATE.md` `<must_haves>`. Also read must-haves from DESIGN-PLAN.md
|
|
|
194
194
|
| Acceptance criterion from plan | Cross-reference task files for completion evidence |
|
|
195
195
|
|
|
196
196
|
Mark each:
|
|
197
|
-
- `✓ PASS`
|
|
198
|
-
- `✗ FAIL`
|
|
199
|
-
- `? VISUAL`
|
|
197
|
+
- `✓ PASS` - verified and confirmed
|
|
198
|
+
- `✗ FAIL` - verified and not met
|
|
199
|
+
- `? VISUAL` - cannot verify from code alone - queued for Phase 4 UAT
|
|
200
200
|
|
|
201
201
|
Output report:
|
|
202
202
|
```
|
|
@@ -213,23 +213,23 @@ If `re_verify=true`: re-check all previously-failed must-haves first, then run f
|
|
|
213
213
|
|
|
214
214
|
---
|
|
215
215
|
|
|
216
|
-
## Phase 3
|
|
216
|
+
## Phase 3 - NNG Heuristic Scoring
|
|
217
217
|
|
|
218
218
|
Read `reference/heuristics.md`. Score each of the 10 heuristics 0–4.
|
|
219
219
|
|
|
220
220
|
**Scoring: 0 = critical violation, 1 = major violation, 2 = minor violation, 3 = passes, 4 = excellent**
|
|
221
221
|
|
|
222
|
-
`? VISUAL`
|
|
222
|
+
`? VISUAL` - heuristic cannot be fully automated; requires human visual inspection. Code analysis produces partial signal only.
|
|
223
223
|
|
|
224
224
|
| Heuristic | Check Type | What to check in code |
|
|
225
225
|
|---|---|---|
|
|
226
226
|
| H-01 Visibility of status | auto | Loading states present? Spinners, skeletons? Error states visible? `aria-busy`? |
|
|
227
|
-
| H-02 Real world match | ? VISUAL | Requires human read of copy tone
|
|
227
|
+
| H-02 Real world match | ? VISUAL | Requires human read of copy tone - labels use domain language? Dates formatted for humans? No backend error codes? |
|
|
228
228
|
| H-03 User control & freedom | auto | Cancel available in flows? Destructive confirmation? Undo for reversible actions? |
|
|
229
229
|
| H-04 Consistency & standards | auto | Same action = same component across screens? Color semantic consistency? |
|
|
230
230
|
| H-05 Error prevention | auto | Input validation before submit? Destructive actions require confirmation? |
|
|
231
|
-
| H-06 Recognition vs recall | ? VISUAL | Requires visual check of visible controls
|
|
232
|
-
| H-07 Flexibility & efficiency | ? VISUAL | Requires visual check of progressive disclosure
|
|
231
|
+
| H-06 Recognition vs recall | ? VISUAL | Requires visual check of visible controls - navigation options always visible? Form state preserved? Search shows query? |
|
|
232
|
+
| H-07 Flexibility & efficiency | ? VISUAL | Requires visual check of progressive disclosure - keyboard shortcuts exist? Bulk actions for lists? Power user paths? |
|
|
233
233
|
| H-08 Aesthetic & minimalist | auto | One primary CTA per section? No competing priority elements? Visual hierarchy? |
|
|
234
234
|
| H-09 Error recovery | auto | Error messages: what + why + how to fix? Errors near the causing element? |
|
|
235
235
|
| H-10 Help & documentation | auto | Inline help for complex fields? Tooltips on icon-only buttons? |
|
|
@@ -256,7 +256,7 @@ Total: [N]/40 = [N×2.5]/100 [grade interpretation]
|
|
|
256
256
|
|
|
257
257
|
---
|
|
258
258
|
|
|
259
|
-
## Phase 4
|
|
259
|
+
## Phase 4 - Visual UAT
|
|
260
260
|
|
|
261
261
|
For each `? VISUAL` must-have plus key brand/tone goals from DESIGN-CONTEXT.md, present checks in the format below.
|
|
262
262
|
|
|
@@ -287,15 +287,15 @@ Does this pass? (yes / no [describe issue] / skip)
|
|
|
287
287
|
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
-
Record each response. For `no` responses, capture the user's issue description verbatim
|
|
290
|
+
Record each response. For `no` responses, capture the user's issue description verbatim - it goes directly into Phase 5 gap analysis.
|
|
291
291
|
|
|
292
292
|
---
|
|
293
293
|
|
|
294
|
-
## Phase 4B
|
|
294
|
+
## Phase 4B - Screenshot Evidence (when preview: available)
|
|
295
295
|
|
|
296
296
|
**Gate:** Skip this entire Phase 4B block if `preview` is `not_loaded`, `not_configured`, `permission_denied`, `unreachable`, or `unavailable` in STATE.md `<connections>`. The `? VISUAL` flags from Phase 3 remain as-is; mark them `[SKIPPED — browser not available]` and proceed to Phase 5. When skipping due to `permission_denied`, also log: `Preview MCP tools missing from agent allowlist — contact the pipeline maintainer.`
|
|
297
297
|
|
|
298
|
-
**Step 1
|
|
298
|
+
**Step 1 - ToolSearch first:**
|
|
299
299
|
|
|
300
300
|
```
|
|
301
301
|
ToolSearch({ query: "Claude_Preview", max_results: 10 })
|
|
@@ -303,7 +303,7 @@ ToolSearch({ query: "Claude_Preview", max_results: 10 })
|
|
|
303
303
|
|
|
304
304
|
If empty result: mark all Phase 4B checks `[SKIPPED — browser not available]` and proceed to Phase 5.
|
|
305
305
|
|
|
306
|
-
**Step 2
|
|
306
|
+
**Step 2 - Per-route screenshot loop:**
|
|
307
307
|
|
|
308
308
|
For each route identified from DESIGN-PLAN.md tasks or `src/app/` / `src/pages/` file structure:
|
|
309
309
|
|
|
@@ -315,12 +315,12 @@ b. call preview_screenshot → save to .design/screenshots/verify/<route>.png
|
|
|
315
315
|
c. Reference path in DESIGN-VERIFICATION.md Visual UAT section (NOT inline base64)
|
|
316
316
|
```
|
|
317
317
|
|
|
318
|
-
**Step 3
|
|
318
|
+
**Step 3 - Resolve the six ? VISUAL heuristics using screenshot evidence:**
|
|
319
319
|
|
|
320
320
|
**Contrast cascade (dark-mode parity):**
|
|
321
321
|
- After capturing light-mode screenshot, call `preview_eval("document.documentElement.classList.add('dark')")` or the project-specific toggle from DESIGN-CONTEXT.md D-XX.
|
|
322
322
|
- `preview_screenshot` → save to `.design/screenshots/verify/<route>-dark.png`.
|
|
323
|
-
- From screenshots: compare light vs dark
|
|
323
|
+
- From screenshots: compare light vs dark - note any elements that lose visible contrast. Mark H-05/color heuristic as `PASS` or `FLAG`.
|
|
324
324
|
|
|
325
325
|
**Visual rhythm / hierarchy:**
|
|
326
326
|
- From the screenshot, describe the dominant visual groupings and whitespace distribution.
|
|
@@ -328,15 +328,15 @@ c. Reference path in DESIGN-VERIFICATION.md Visual UAT section (NOT inline base6
|
|
|
328
328
|
- Mark pass if clear visual grouping and consistent spacing is evident; flag if layout appears cramped or unclear.
|
|
329
329
|
|
|
330
330
|
**H-02 Real world match:**
|
|
331
|
-
- Screenshot shows actual rendered copy/labels
|
|
331
|
+
- Screenshot shows actual rendered copy/labels - confirm they match the intended language register from DESIGN-CONTEXT.md.
|
|
332
332
|
- Mark `PASS` if copy looks professional and matches context; `FLAG` if lorem ipsum, placeholder text, or backend error codes are visible.
|
|
333
333
|
|
|
334
334
|
**H-06 Recognition vs recall:**
|
|
335
|
-
- Screenshot shows visible navigation and controls
|
|
335
|
+
- Screenshot shows visible navigation and controls - confirm primary actions are discoverable without prior knowledge.
|
|
336
336
|
- `FLAG` if navigation items are hidden, unlabeled icon buttons have no visible tooltip, or the primary CTA is not immediately apparent.
|
|
337
337
|
|
|
338
338
|
**H-07 Flexibility / efficiency:**
|
|
339
|
-
- Screenshot shows progressive disclosure pattern
|
|
339
|
+
- Screenshot shows progressive disclosure pattern - confirm advanced features are accessible but not foregrounded.
|
|
340
340
|
- Mark `PASS` or `FLAG` with screenshot evidence and note which route the screenshot covers.
|
|
341
341
|
|
|
342
342
|
**Focus-visible:**
|
|
@@ -344,41 +344,41 @@ c. Reference path in DESIGN-VERIFICATION.md Visual UAT section (NOT inline base6
|
|
|
344
344
|
- OR call `preview_snapshot` to get the accessibility tree with focus state.
|
|
345
345
|
- Confirm focus ring is visible (non-empty outline or box-shadow). Mark `PASS` or `FLAG`.
|
|
346
346
|
|
|
347
|
-
**Step 4
|
|
347
|
+
**Step 4 - Output format for each resolved heuristic:**
|
|
348
348
|
|
|
349
349
|
Replace `? VISUAL` in Phase 3 output with one of:
|
|
350
|
-
- `PASS (screenshot: .design/screenshots/verify/<route>.png)`
|
|
351
|
-
- `FLAG: <reason> (screenshot: .design/screenshots/verify/<route>.png)`
|
|
350
|
+
- `PASS (screenshot: .design/screenshots/verify/<route>.png)` - heuristic satisfied with visual evidence
|
|
351
|
+
- `FLAG: <reason> (screenshot: .design/screenshots/verify/<route>.png)` - heuristic fails; include screenshot reference
|
|
352
352
|
|
|
353
353
|
In DESIGN-VERIFICATION.md, add a `## Phase 4B — Screenshot Evidence` section listing each heuristic, its resolution, and the screenshot path.
|
|
354
354
|
|
|
355
355
|
---
|
|
356
356
|
|
|
357
|
-
## Phase 4D
|
|
357
|
+
## Phase 4D - Non-Web Verify (no-DOM targets)
|
|
358
358
|
|
|
359
|
-
When `<project_type>` is a **no-DOM target**
|
|
359
|
+
When `<project_type>` is a **no-DOM target** - `native-ios`/`native-android`/`flutter`, `email`, or `print` - the Phase-1 web DOM grep + the Phase-4B Preview loop do not apply as-is. Route by `<project_type>` to the matching constraint/structural audit **by delegation** (the per-type rules live in the reference, never inlined here), with the optional render-connection as a degrade-able enhancement - the Phase-4B precedent:
|
|
360
360
|
|
|
361
361
|
| `<project_type>` | reference (authority) + static audit | optional render-connection (degrade if absent) |
|
|
362
362
|
|---|---|---|
|
|
363
|
-
| `native-ios` / `native-android` / `flutter` | `reference/native-platforms.md`
|
|
364
|
-
| `email` | `reference/email-design.md` + `scripts/lib/email/validate-email-html.cjs` (`validateEmailHtml`) over the generated HTML
|
|
365
|
-
| `print` | `reference/print-design.md` + `scripts/lib/print/validate-print-css.cjs` (`validatePrintCss`) over the print CSS/HTML
|
|
363
|
+
| `native-ios` / `native-android` / `flutter` | `reference/native-platforms.md` - **code-only structural audit**: expected SwiftUI views / Compose composables / Flutter widgets present + token-bridge usage (a snapshot audit when a screenshot is supplied) | `xcode-simulator` / `android-emulator` / Preview (Flutter-web) → degrade to the code-only structural audit |
|
|
364
|
+
| `email` | `reference/email-design.md` + `scripts/lib/email/validate-email-html.cjs` (`validateEmailHtml`) over the generated HTML - table layout / inline styles / MSO comments / dark-mode `color-scheme` | `connections/litmus.md` cross-client screenshots → degrade to the static validator / code-only |
|
|
365
|
+
| `print` | `reference/print-design.md` + `scripts/lib/print/validate-print-css.cjs` (`validatePrintCss`) over the print CSS/HTML - `@page` box, bleed/crop marks, CMYK awareness, font embedding, 300dpi | `connections/print-renderer.md` (Paged.js-headless / PDFKit render) → degrade to the static validator / code-only |
|
|
366
366
|
|
|
367
|
-
**Degrade posture (D-03, the Phase-4B precedent
|
|
367
|
+
**Degrade posture (D-03, the Phase-4B precedent - applies to every row):** the render-connection (simulator/emulator/Litmus/print-render) is an **enhancement, NEVER hard-required**. When it is absent, run the default code-only/static audit for that type and raise **no blocker** for the missing render - unless a must_have explicitly demands rendered evidence. Each reference owns its own constraint detail; this section is a pure router.
|
|
368
368
|
|
|
369
369
|
---
|
|
370
370
|
|
|
371
|
-
## Phase 4E
|
|
371
|
+
## Phase 4E - Motion Verification (when Lottie/Rive exports present)
|
|
372
372
|
|
|
373
|
-
**Gate + delegate:** when a Lottie (`*.json` with the `v`/`fr`/`layers` signature, or a `lottie-web` dep) or Rive (`*.riv`, or `@rive-app`) export is found, **delegate to `agents/motion-verifier.md`**
|
|
373
|
+
**Gate + delegate:** when a Lottie (`*.json` with the `v`/`fr`/`layers` signature, or a `lottie-web` dep) or Rive (`*.riv`, or `@rive-app`) export is found, **delegate to `agents/motion-verifier.md`** - it runs the pure `scripts/lib/motion/validate-motion.cjs` (Lottie MO-* rules + perf budget; `.riv` size + `RIVE` header; Rive state-machine reachability when the runtime is present) and folds a `## Motion verification` block into DESIGN-VERIFICATION.md. None present → `motion verification: skipped.` **WARN, never block (D-02)** - motion findings are warnings unless a `must_have` requires them. Probe + degrade: `connections/lottie.md` / `connections/rive.md`.
|
|
374
374
|
|
|
375
375
|
---
|
|
376
376
|
|
|
377
|
-
## Phase 4C
|
|
377
|
+
## Phase 4C - paper.design Canvas Screenshots (when paper-design: available)
|
|
378
378
|
|
|
379
379
|
**Gate:** Skip this entire Phase 4C block if `paper-design` is `not_configured` or `unavailable` in STATE.md `<connections>`. Print: `paper.design canvas screenshots: skipped.`
|
|
380
380
|
|
|
381
|
-
**Step 1
|
|
381
|
+
**Step 1 - ToolSearch first:**
|
|
382
382
|
|
|
383
383
|
```
|
|
384
384
|
ToolSearch({ query: "mcp__paper", max_results: 5 })
|
|
@@ -386,7 +386,7 @@ ToolSearch({ query: "mcp__paper", max_results: 5 })
|
|
|
386
386
|
|
|
387
387
|
If empty: skip Phase 4C.
|
|
388
388
|
|
|
389
|
-
**Step 2
|
|
389
|
+
**Step 2 - Per-component screenshot loop:**
|
|
390
390
|
|
|
391
391
|
For each component flagged `? VISUAL` in Phase 2 or Phase 3:
|
|
392
392
|
|
|
@@ -397,9 +397,9 @@ For each component flagged `? VISUAL` in Phase 2 or Phase 3:
|
|
|
397
397
|
```
|
|
398
398
|
Save screenshot to `.design/screenshots/paper-<component>-<date>.png`.
|
|
399
399
|
Reference path in DESIGN-VERIFICATION.md `## Phase 4C` section.
|
|
400
|
-
3. If node_id not found: note `paper-screenshot: node_id not found for <component>`
|
|
400
|
+
3. If node_id not found: note `paper-screenshot: node_id not found for <component>` - skip this component.
|
|
401
401
|
|
|
402
|
-
**Note:** paper.design screenshots are canvas-element-scoped (individual components). Phase 4B Preview screenshots are route-scoped (full rendered pages). Both are complementary
|
|
402
|
+
**Note:** paper.design screenshots are canvas-element-scoped (individual components). Phase 4B Preview screenshots are route-scoped (full rendered pages). Both are complementary - run both when available.
|
|
403
403
|
|
|
404
404
|
---
|
|
405
405
|
|
|
@@ -425,7 +425,7 @@ If no `.pen` files: skip silently. Print: `pencil.dev spec diff: no .pen files
|
|
|
425
425
|
|
|
426
426
|
---
|
|
427
427
|
|
|
428
|
-
## Phase 5
|
|
428
|
+
## Phase 5 - Gap Analysis
|
|
429
429
|
|
|
430
430
|
Collect all failures from Phases 1–4:
|
|
431
431
|
- Phase 1: category scores still below 7 (despite design pass)
|
|
@@ -435,10 +435,10 @@ Collect all failures from Phases 1–4:
|
|
|
435
435
|
- Phase 4: visual UAT `no` responses
|
|
436
436
|
|
|
437
437
|
Classify each gap:
|
|
438
|
-
- `BLOCKER`
|
|
439
|
-
- `MAJOR`
|
|
440
|
-
- `MINOR`
|
|
441
|
-
- `COSMETIC`
|
|
438
|
+
- `BLOCKER` - core goal not met; design is incomplete; blocks shipping
|
|
439
|
+
- `MAJOR` - significant deviation from intent; should be fixed this pass
|
|
440
|
+
- `MINOR` - noticeable issue; fix if time allows
|
|
441
|
+
- `COSMETIC` - polish only; defer to later
|
|
442
442
|
|
|
443
443
|
For each gap, emit an entry in the locked gap format:
|
|
444
444
|
|
|
@@ -456,7 +456,7 @@ For each gap, emit an entry in the locked gap format:
|
|
|
456
456
|
|
|
457
457
|
Order gaps: BLOCKER first, then MAJOR, MINOR, COSMETIC. Number sequentially (G-01, G-02, ...).
|
|
458
458
|
|
|
459
|
-
If zero gaps found: skip this section entirely
|
|
459
|
+
If zero gaps found: skip this section entirely - do NOT emit `## GAPS FOUND`.
|
|
460
460
|
|
|
461
461
|
---
|
|
462
462
|
|
|
@@ -467,15 +467,15 @@ If zero gaps found: skip this section entirely — do NOT emit `## GAPS FOUND`.
|
|
|
467
467
|
If `.design/chromatic-results.json` exists:
|
|
468
468
|
1. Read .design/chromatic-results.json
|
|
469
469
|
2. Check if this is a first run (all entries have status: "new"):
|
|
470
|
-
→ First run: emit "Baseline established
|
|
470
|
+
→ First run: emit "Baseline established - no regressions detected (first run creates baseline)."
|
|
471
471
|
3. For subsequent runs, narrate changes:
|
|
472
472
|
For each story entry in results:
|
|
473
473
|
- status "unchanged" → PASS <StoryTitle>:<StoryName>
|
|
474
|
-
- status "changed" → CHANGED <StoryTitle>:<StoryName> (visual change detected
|
|
475
|
-
- status "new" → NEW <StoryTitle>:<StoryName> (first snapshot
|
|
476
|
-
- status "error" → ERROR <StoryTitle>:<StoryName>
|
|
474
|
+
- status "changed" → CHANGED <StoryTitle>:<StoryName> (visual change detected - review on chromatic.com)
|
|
475
|
+
- status "new" → NEW <StoryTitle>:<StoryName> (first snapshot - not a regression)
|
|
476
|
+
- status "error" → ERROR <StoryTitle>:<StoryName> - investigate
|
|
477
477
|
4. Emit summary: "Total: N stories. X unchanged. Y changed. Z new. W errors."
|
|
478
|
-
5. If Y > 0 (changed stories): flag as "VISUAL REGRESSION CANDIDATES
|
|
478
|
+
5. If Y > 0 (changed stories): flag as "VISUAL REGRESSION CANDIDATES - review required on chromatic.com before merging"
|
|
479
479
|
6. Append narration to DESIGN-VERIFICATION.md ## Visual Regression section (create section if absent)
|
|
480
480
|
|
|
481
481
|
If .design/chromatic-results.json does not exist: skip; emit no note.
|
|
@@ -490,15 +490,15 @@ If `.design/storybook-a11y-report.txt` exists (written by the verify stage's a11
|
|
|
490
490
|
|
|
491
491
|
1. Read `.design/storybook-a11y-report.txt`
|
|
492
492
|
2. For each test failure found (axe-core rule names: `color-contrast`, `button-name`, `landmark-one-main`, etc.):
|
|
493
|
-
a. Match the failing story to the component name (`title` field from index.json
|
|
493
|
+
a. Match the failing story to the component name (`title` field from index.json - e.g., `"Button"` from story id `"button--primary"`)
|
|
494
494
|
b. Record in DESIGN-VERIFICATION.md A11y section as:
|
|
495
495
|
`A11Y-STORY [rule-name]: <ComponentName> (<story-state>) — <violation description>`
|
|
496
|
-
3. Count violations by component
|
|
497
|
-
4. Distinguish between VIOLATIONS (axe-core "violations" array
|
|
496
|
+
3. Count violations by component - components with 3+ violations get a `HIGH PRIORITY` flag
|
|
497
|
+
4. Distinguish between VIOLATIONS (axe-core "violations" array - must fix) and INCOMPLETE (needs manual check)
|
|
498
498
|
|
|
499
499
|
If `.design/storybook-a11y-report.txt` does not exist:
|
|
500
500
|
- Proceed with standard grep-based a11y checks only
|
|
501
|
-
- Note: "Story-level a11y audit skipped
|
|
501
|
+
- Note: "Story-level a11y audit skipped - run `storybook test --ci` and re-verify to include story state coverage"
|
|
502
502
|
|
|
503
503
|
---
|
|
504
504
|
|
|
@@ -599,14 +599,14 @@ CRITICAL: Always end with `## VERIFICATION COMPLETE` as the final line, regardle
|
|
|
599
599
|
|
|
600
600
|
**Purpose:** Verify that the implementation faithfully realizes the Claude Design handoff bundle. Close the loop: bundle → decisions → code → verified faithful?
|
|
601
601
|
|
|
602
|
-
### Step HF-1
|
|
602
|
+
### Step HF-1 - Parse handoff bundle token values
|
|
603
603
|
|
|
604
604
|
Read `handoff_path` from spawn context. Parse the HTML export:
|
|
605
605
|
- Extract CSS custom properties from `<style>` blocks matching `--[a-z]+-[a-z-]+:\s*[^;]+`
|
|
606
606
|
- Categorize: `--color-*` (Color), `--spacing-*`/`--space-*` (Spacing), `--font-*`/`--text-*` (Typography), `--radius-*` (Radius), `--shadow-*` (Shadow)
|
|
607
607
|
- Store as: `{ token_name, handoff_value }`
|
|
608
608
|
|
|
609
|
-
### Step HF-2
|
|
609
|
+
### Step HF-2 - Grep implementation for same tokens
|
|
610
610
|
|
|
611
611
|
For each token from HF-1:
|
|
612
612
|
- Search `.css`, `.scss`, `.ts`, `.tsx` files for the same CSS custom property name
|
|
@@ -615,20 +615,20 @@ For each token from HF-1:
|
|
|
615
615
|
- Mark `MATCH` if implemented ≈ handoff value (exact for hex; within 5% for numeric)
|
|
616
616
|
- Mark `DIVERGE` if materially different
|
|
617
617
|
|
|
618
|
-
### Step HF-3
|
|
618
|
+
### Step HF-3 - Component structure comparison
|
|
619
619
|
|
|
620
620
|
From the handoff HTML, extract component names from `class="component-*"` or `data-component="*"`. For each:
|
|
621
621
|
- Glob `**/*<component-name>*` (case-insensitive, check `src/`, `components/`, `app/`)
|
|
622
622
|
- Mark PRESENT or MISSING
|
|
623
623
|
|
|
624
|
-
### Step HF-4
|
|
624
|
+
### Step HF-4 - Visual screenshot (optional, Preview only)
|
|
625
625
|
|
|
626
626
|
If `preview: available` in STATE.md:
|
|
627
627
|
- `preview_navigate` to default route (`http://localhost:3000`)
|
|
628
628
|
- `preview_screenshot` → save to `.design/screenshots/handoff-faithfulness-impl.png`
|
|
629
629
|
- Reference by path in report (do NOT embed base64)
|
|
630
630
|
|
|
631
|
-
### Step HF-5
|
|
631
|
+
### Step HF-5 - Write Handoff Faithfulness section
|
|
632
632
|
|
|
633
633
|
Append to DESIGN-VERIFICATION.md after the Phase 4B section (or after Phase 4 if Phase 4B was skipped):
|
|
634
634
|
|
|
@@ -680,8 +680,8 @@ PASS (all dimensions PASS) | PARTIAL (any PARTIAL, no FAIL) | FAIL (any FAIL)
|
|
|
680
680
|
## Constraints
|
|
681
681
|
|
|
682
682
|
**MUST NOT:**
|
|
683
|
-
- Spawn other agents
|
|
684
|
-
- Modify source code (verification only
|
|
683
|
+
- Spawn other agents - gap remediation agents (AGENT-12, Phase 5) do not exist yet; any gap remediation is the stage's responsibility, not the verifier's
|
|
684
|
+
- Modify source code (verification only - no edits to components, styles, or logic)
|
|
685
685
|
- Run design tasks or generate design work
|
|
686
686
|
- Write DESIGN-PLAN.md (read-only)
|
|
687
687
|
- Ask the user questions mid-run (single-shot; all information is in the required reading)
|
|
@@ -690,7 +690,7 @@ PASS (all dimensions PASS) | PARTIAL (any PARTIAL, no FAIL) | FAIL (any FAIL)
|
|
|
690
690
|
- Read any file in the repository
|
|
691
691
|
- Run `grep` / `bash` commands for static analysis and token-violation detection
|
|
692
692
|
- Write `.design/DESIGN-VERIFICATION.md`
|
|
693
|
-
- Write a `<blocker>` entry to `.design/STATE.md` if verification cannot complete (file not found, etc.)
|
|
693
|
+
- Write a `<blocker>` entry to `.design/STATE.md` if verification cannot complete (file not found, etc.) - always emit `## VERIFICATION COMPLETE` after doing so
|
|
694
694
|
|
|
695
695
|
## Required reading (conditional)
|
|
696
696
|
|
package/agents/ds-generator.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ds-generator
|
|
3
|
-
description: Greenfield design-system generator. Turns a brand input (primary color + optional secondary + tone tags + target framework) into a coherent token system
|
|
3
|
+
description: Greenfield design-system generator. Turns a brand input (primary color + optional secondary + tone tags + target framework) into a coherent token system - OKLCH color tints/shades, a modular type scale, a 4pt/8pt spacing scale, radius + motion defaults - via the pure scripts/lib/ds/token-scale.cjs and reference/ds-bootstrap-rubric.md. Emits 3 variants (conservative/balanced/bold) for the user to pick, then scaffolds proof components (button/input/card) in the detected framework. Proposal→confirm; never overwrites an existing design system.
|
|
4
4
|
tools: Read, Write, Bash, Glob, Grep
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: opus
|
|
7
|
-
tier-rationale: "Greenfield token-system synthesis is a design-judgment task (OKLCH color relationships, scale selection, tone→ratio mapping grounded in color-theory)
|
|
7
|
+
tier-rationale: "Greenfield token-system synthesis is a design-judgment task (OKLCH color relationships, scale selection, tone→ratio mapping grounded in color-theory) - Opus-tier, not a mechanical worker."
|
|
8
8
|
size_budget: LARGE
|
|
9
9
|
size_budget_rationale: "Honest tier sized to the ~120-line body. The agent states the brand-input → token-system → 3-variants → scaffold flow and DELEGATES the deterministic math to scripts/lib/ds/token-scale.cjs and the emission rules to reference/ds-bootstrap-rubric.md (the pdf-executor→validate-print-css precedent)."
|
|
10
10
|
parallel-safe: false
|
|
@@ -21,7 +21,7 @@ writes:
|
|
|
21
21
|
|
|
22
22
|
## Role
|
|
23
23
|
|
|
24
|
-
Bootstrap a coherent design system for a **greenfield** project that has none
|
|
24
|
+
Bootstrap a coherent design system for a **greenfield** project that has none - no Figma, no token file, no component library. Take a brand input and emit a token system + a few proof components, grounded in `reference/ds-bootstrap-rubric.md` + `reference/color-theory.md`, using the deterministic `scripts/lib/ds/token-scale.cjs`. **Never invent a brand** (no logomark, no typeface, no third brand color) and **never overwrite an existing DS** - if `design-context-builder` already mapped one, stop and defer to it.
|
|
25
25
|
|
|
26
26
|
## When invoked
|
|
27
27
|
|
|
@@ -29,16 +29,16 @@ By `/gdd:bootstrap-ds` (the skill collects the brand input). Also reachable when
|
|
|
29
29
|
|
|
30
30
|
## Inputs (brand input)
|
|
31
31
|
|
|
32
|
-
- **primary** (required)
|
|
33
|
-
- **secondary** (optional)
|
|
34
|
-
- **tone tags** (optional)
|
|
35
|
-
- **target framework** (optional)
|
|
32
|
+
- **primary** (required) - a brand color (hex / rgb / `oklch()`). Convert to OKLCH `{l, c, h}`.
|
|
33
|
+
- **secondary** (optional) - a second brand color. Emitted only if supplied (rubric ≤2-colors rule).
|
|
34
|
+
- **tone tags** (optional) - e.g. `calm`, `corporate`, `editorial`, `playful`, `bold` → maps to the type ratio + chroma treatment per the rubric.
|
|
35
|
+
- **target framework** (optional) - `web` (default) / `native-ios` / `native-android` / `flutter` (Phase 34 routing). Detect from the project if absent.
|
|
36
36
|
|
|
37
|
-
## Step 1
|
|
37
|
+
## Step 1 - Resolve the primary to OKLCH
|
|
38
38
|
|
|
39
|
-
Parse the brand primary to `{ l, c, h }`. If given as hex/rgb, convert to OKLCH (state the conversion; do NOT add a color library
|
|
39
|
+
Parse the brand primary to `{ l, c, h }`. If given as hex/rgb, convert to OKLCH (state the conversion; do NOT add a color library - use a documented inline conversion or ask the user for the `oklch()` value). Validate `l ∈ 0..1`, `c ≥ 0`, `h ∈ 0..360`.
|
|
40
40
|
|
|
41
|
-
## Step 2
|
|
41
|
+
## Step 2 - Generate the 3 variants
|
|
42
42
|
|
|
43
43
|
For each of **conservative / balanced / bold** (rubric table), run the pure generator and assemble a token set:
|
|
44
44
|
|
|
@@ -53,17 +53,17 @@ node -e "const t=require('./scripts/lib/ds/token-scale.cjs'); \
|
|
|
53
53
|
|
|
54
54
|
Vary chroma (×0.8 / ×1.0 / ×1.15-clamped), type ratio (1.2 / 1.25 / 1.333), and radius (4 / 8 / 12) per the rubric. Emit neutrals (low-chroma ramp) + semantic colors (success/warning/danger/info at fixed hues) the same way. Verify text/surface pairings clear WCAG AA (`reference/color-theory.md`).
|
|
55
55
|
|
|
56
|
-
## Step 3
|
|
56
|
+
## Step 3 - Present + pick (D-02)
|
|
57
57
|
|
|
58
58
|
Show the 3 variants compactly (the `500` primary, the type ratio, the spacing baseline, the radius, a one-line feel). The user picks ONE. Do not scaffold before the pick.
|
|
59
59
|
|
|
60
|
-
## Step 4
|
|
60
|
+
## Step 4 - Emit the chosen token set (proposal → confirm)
|
|
61
61
|
|
|
62
62
|
Emit role-named CSS custom properties (`:root { --color-primary-500: oklch(...); --space-4: 16px; --radius-md: 8px; ... }`) as the canonical artifact, plus the target-framework mapping (web → Tailwind `theme.extend` / shadcn CSS vars; native → `reference/native-platforms.md`). Propose the file(s); write only on confirm.
|
|
63
63
|
|
|
64
|
-
## Step 5
|
|
64
|
+
## Step 5 - First-component scaffolding (proof)
|
|
65
65
|
|
|
66
|
-
Emit **button + input + card** in the target framework, consuming only the emitted tokens
|
|
66
|
+
Emit **button + input + card** in the target framework, consuming only the emitted tokens - a coherence proof, not a component library. Proposal→confirm; never write to `src/` without it.
|
|
67
67
|
|
|
68
68
|
## Record
|
|
69
69
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ds-migration-planner
|
|
3
|
-
description: Plans a design-system version migration (shadcn v1→v2, Tailwind v3→v4, MUI v5→v6, Material token migration). Detects the DS + version from package.json, consults the matching reference/migrations/<ds>.md rule library, proposes an impact-scored per-component plan (visual-delta × usage-frequency × tests-affected), and emits jscodeshift/ast-grep codemod templates via scripts/lib/migration/codemod-gen.cjs. Proposal-only
|
|
3
|
+
description: Plans a design-system version migration (shadcn v1→v2, Tailwind v3→v4, MUI v5→v6, Material token migration). Detects the DS + version from package.json, consults the matching reference/migrations/<ds>.md rule library, proposes an impact-scored per-component plan (visual-delta × usage-frequency × tests-affected), and emits jscodeshift/ast-grep codemod templates via scripts/lib/migration/codemod-gen.cjs. Proposal-only - the user reviews + runs each codemod; GDD never auto-applies.
|
|
4
4
|
tools: Read, Bash, Grep, Glob
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Consults a rule library + scores impact + emits codemod scaffolds via a pure helper; bounded planning, not open design judgment
|
|
7
|
+
tier-rationale: "Consults a rule library + scores impact + emits codemod scaffolds via a pure helper; bounded planning, not open design judgment - sonnet-tier."
|
|
8
8
|
size_budget: M
|
|
9
9
|
size_budget_rationale: "Honest tier sized to the ~105-line body. DELEGATES the rules to reference/migrations/<ds>.md and the codemod templating to scripts/lib/migration/codemod-gen.cjs (the pdf-executor→validate-print-css precedent)."
|
|
10
10
|
parallel-safe: false
|
|
@@ -20,13 +20,13 @@ writes:
|
|
|
20
20
|
|
|
21
21
|
## Role
|
|
22
22
|
|
|
23
|
-
Turn a breaking design-system version bump into a reviewable, impact-ordered migration plan + ready-to-review codemod scaffolds. **Proposal-only (D-01)**
|
|
23
|
+
Turn a breaking design-system version bump into a reviewable, impact-ordered migration plan + ready-to-review codemod scaffolds. **Proposal-only (D-01)** - GDD detects, plans, and generates; the user reviews each codemod and runs it with their own tool (jscodeshift / ast-grep). GDD never auto-applies a migration.
|
|
24
24
|
|
|
25
25
|
## When invoked
|
|
26
26
|
|
|
27
27
|
When the user wants to migrate a DS across a major (or `design-context-builder` detects a dep major behind the installed one). Supported libraries: shadcn (`reference/migrations/shadcn-v2.md`), Tailwind (`tailwind-v4.md`), MUI (`mui-v6.md`), Material tokens (`material-3-to-4.md`).
|
|
28
28
|
|
|
29
|
-
## Step 1
|
|
29
|
+
## Step 1 - Detect DS + version (package.json only, D-03)
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
node -e "const p=require('./package.json'); const d={...p.dependencies,...p.devDependencies}; console.log(JSON.stringify({ tailwind:d.tailwindcss, mui:d['@mui/material'], radix:Object.keys(d).filter(k=>k.startsWith('@radix-ui/')).length, material:d['@material/web']||d['@angular/material'] }))"
|
|
@@ -34,21 +34,21 @@ node -e "const p=require('./package.json'); const d={...p.dependencies,...p.devD
|
|
|
34
34
|
|
|
35
35
|
Resolve the DS + the from→to version boundary from the dep version. Ambiguous → ask; never guess from source.
|
|
36
36
|
|
|
37
|
-
## Step 2
|
|
37
|
+
## Step 2 - Load the rule library
|
|
38
38
|
|
|
39
39
|
Read `reference/migrations/<ds>.md`. Its `## Migration rules` table is the authoritative rule set (id · kind · from→to · note); `## Impact notes` flags high-visual-delta vs mechanical. **No matching library** (a long-tail DS) → emit a starter rule-library template for the user to author their own (D-05); do not guess rules.
|
|
40
40
|
|
|
41
|
-
## Step 3
|
|
41
|
+
## Step 3 - Impact-scored per-component plan (D-04)
|
|
42
42
|
|
|
43
43
|
For each affected component, score `impact = visual_delta × usage_frequency × tests_affected`:
|
|
44
44
|
|
|
45
|
-
- **visual_delta**
|
|
46
|
-
- **usage_frequency**
|
|
47
|
-
- **tests_affected**
|
|
45
|
+
- **visual_delta** - from the rule's Impact notes (high for ring/shadow/color/Grid changes; low for import renames).
|
|
46
|
+
- **usage_frequency** - `grep -rc` the component/class/token across `src/`.
|
|
47
|
+
- **tests_affected** - count touching test files.
|
|
48
48
|
|
|
49
49
|
Order the plan **highest-impact-lowest-risk first** so the user migrates the riskiest surfaces under the most scrutiny. Present the plan as a table (component · rules · impact · manual-review?).
|
|
50
50
|
|
|
51
|
-
## Step 4
|
|
51
|
+
## Step 4 - Emit codemod scaffolds (review before apply)
|
|
52
52
|
|
|
53
53
|
For each mechanical rule, emit a codemod template via the pure generator:
|
|
54
54
|
|
|
@@ -59,9 +59,9 @@ node -e "const {emitCodemod}=require('./scripts/lib/migration/codemod-gen.cjs');
|
|
|
59
59
|
|
|
60
60
|
Write each to `.design/migration/<ds>-<from>-<to>/<RULE_ID>.{js,yml}` for the user to review + run. `new-default` rules emit a **manual-review advisory** (no auto-transform). NEVER run the codemod or write into `src/`.
|
|
61
61
|
|
|
62
|
-
## Step 5
|
|
62
|
+
## Step 5 - Hand off to verify
|
|
63
63
|
|
|
64
|
-
After the user applies codemods, `/gdd:verify` (`design-verifier`) checks the migration preserved the contract
|
|
64
|
+
After the user applies codemods, `/gdd:verify` (`design-verifier`) checks the migration preserved the contract - visual-diff threshold, component API surface unchanged, tests pass. Note unresolved high-impact rules as gaps.
|
|
65
65
|
|
|
66
66
|
## Record
|
|
67
67
|
|