@hegemonart/get-design-done 1.41.5 → 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 +1120 -1029
- package/README.md +158 -154
- 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 +48 -0
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +170 -0
- package/dist/claude-code/.claude/skills/audit/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +65 -0
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +43 -0
- package/dist/claude-code/.claude/skills/brief/SKILL.md +128 -0
- package/dist/claude-code/.claude/skills/budget/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +126 -0
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/compare/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +171 -0
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/connections/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +608 -0
- package/dist/claude-code/.claude/skills/continue/SKILL.md +24 -0
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +76 -0
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +258 -0
- package/dist/claude-code/.claude/skills/debug/SKILL.md +41 -0
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +119 -0
- package/dist/claude-code/.claude/skills/design/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/design/design-procedure.md +304 -0
- package/dist/claude-code/.claude/skills/discover/SKILL.md +72 -0
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +222 -0
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/do/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/explore/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +267 -0
- package/dist/claude-code/.claude/skills/export/SKILL.md +30 -0
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/fast/SKILL.md +91 -0
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +39 -0
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +49 -0
- package/dist/claude-code/.claude/skills/health/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +44 -0
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +69 -0
- package/dist/claude-code/.claude/skills/help/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +61 -0
- package/dist/claude-code/.claude/skills/locale/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/map/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +70 -0
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +37 -0
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +87 -0
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/next/SKILL.md +68 -0
- package/dist/claude-code/.claude/skills/note/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +97 -0
- package/dist/claude-code/.claude/skills/pause/SKILL.md +77 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +88 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +161 -0
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/peers/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/plan/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +278 -0
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/progress/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +101 -0
- package/dist/claude-code/.claude/skills/quick/SKILL.md +44 -0
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/recall/SKILL.md +75 -0
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +85 -0
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +120 -0
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +120 -0
- package/dist/claude-code/.claude/skills/resume/SKILL.md +93 -0
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +46 -0
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +42 -0
- package/dist/claude-code/.claude/skills/roi/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +35 -0
- package/dist/claude-code/.claude/skills/router/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +65 -0
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +78 -0
- package/dist/claude-code/.claude/skills/router/router-rules.md +84 -0
- package/dist/claude-code/.claude/skills/scan/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +732 -0
- package/dist/claude-code/.claude/skills/settings/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/ship/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/spike/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/start/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/start/start-procedure.md +115 -0
- package/dist/claude-code/.claude/skills/stats/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/style/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +150 -0
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/todo/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/undo/SKILL.md +31 -0
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/update/SKILL.md +56 -0
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/verify/SKILL.md +113 -0
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +512 -0
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +26 -0
- package/package.json +8 -2
- package/reference/DEPRECATIONS.md +21 -7
- 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/registry.json +7 -0
- 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 +71 -0
- 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/build/factory.cjs +62 -0
- package/scripts/lib/build/harness-configs.cjs +64 -0
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/sdk/cli/commands/build.ts +106 -0
- package/sdk/cli/index.js +84 -2
- package/sdk/cli/index.ts +7 -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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gdd-watch-authorities
|
|
3
|
+
description: "Fetches the design-authority feed whitelist, diffs against .design/authority-snapshot.json, and writes .design/authority-report.md (consumed by /gdd:reflect). Authority monitoring only - no trend-watching."
|
|
4
|
+
argument-hint: "[--refresh] [--since <date>] [--feed <name>] [--schedule <weekly|daily|monthly>]"
|
|
5
|
+
tools: Read, Write, Task, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /gdd:watch-authorities
|
|
9
|
+
|
|
10
|
+
Runs `design-authority-watcher` on demand. Fetches the curated design-authority feed whitelist, diffs against the prior snapshot, classifies new entries into five buckets, and writes `.design/authority-report.md`. Phase 11's reflector picks up the report automatically when you next run `/gdd:reflect`.
|
|
11
|
+
|
|
12
|
+
Authority-monitoring only. Not trend-watching. See `reference/authority-feeds.md` §"Rejected kinds" for what this skill will never fetch.
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. **Parse args.** Extract optional flags: `--refresh`, `--since <date>`, `--feed <name>`, `--schedule <cadence>`. Anything that doesn't match one of these is an error - print `Unknown flag: <arg>. Valid flags: --refresh --since <date> --feed <name> --schedule <weekly|daily|monthly>.` and STOP.
|
|
17
|
+
|
|
18
|
+
Mutual exclusion rules:
|
|
19
|
+
- `--schedule` is handled entirely by this skill - it does not combine with the other three. If `--schedule` is present alongside any of `--refresh | --since | --feed`, print `--schedule cannot combine with other flags. Schedule registration runs this skill with no flags at the configured cadence.` and STOP.
|
|
20
|
+
- `--refresh` and `--since` are mutually exclusive - print `--refresh and --since are mutually exclusive. --refresh re-seeds the snapshot silently; --since surfaces a backlog from a boundary date. Pick one.` and STOP.
|
|
21
|
+
|
|
22
|
+
2. **Handle `--schedule <cadence>` branch** (early-return).
|
|
23
|
+
|
|
24
|
+
If `--schedule` is set:
|
|
25
|
+
- Validate cadence ∈ {`weekly`, `daily`, `monthly`}; else print `Unknown cadence: <value>. Use one of: weekly, daily, monthly.` and STOP.
|
|
26
|
+
- Probe for the scheduled-tasks MCP via ToolSearch:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
ToolSearch({ query: "scheduled-tasks", max_results: 3 })
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- If the probe returns an empty result set: print `scheduled-tasks MCP not connected. Install it with: claude mcp add scheduled-tasks ... then retry with --schedule.` - this is a documented fallback (not an error). Terminate with `## WATCH COMPLETE` and exit 0.
|
|
33
|
+
- If the probe returns one or more `scheduled-tasks` tools: register the cron. Discover the MCP's registration tool name at runtime from the ToolSearch result and follow its schema. Target command: `/gdd:watch-authorities` with NO flags (the cron invokes the default diff-and-report behavior). Cadence → cron expression mapping:
|
|
34
|
+
- `weekly` → `0 9 * * 1` (Mondays 09:00 local)
|
|
35
|
+
- `daily` → `0 9 * * *` (every day 09:00 local)
|
|
36
|
+
- `monthly` → `0 9 1 * *` (1st of each month 09:00 local)
|
|
37
|
+
- After registration: print `Scheduled /gdd:watch-authorities to run <cadence>.` and terminate with `## WATCH COMPLETE`.
|
|
38
|
+
|
|
39
|
+
3. **Validate `--since <date>`** (if present).
|
|
40
|
+
|
|
41
|
+
Accept ISO8601 (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SSZ`). Sanity-check via Bash `date -d "<value>" +%s` (GNU) or the POSIX equivalent `python3 -c "from datetime import datetime; datetime.fromisoformat('<value>'.replace('Z','+00:00'))"`. On parse failure: print `Invalid --since value: <value>. Use ISO8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).` and STOP.
|
|
42
|
+
|
|
43
|
+
If the parsed date is earlier than `2020-01-01`, ask: `Very old --since value: <value>. Did you mean something more recent? Proceed? [y/N]`. On anything other than `y`/`Y`, STOP.
|
|
44
|
+
|
|
45
|
+
4. **Spawn the watcher.**
|
|
46
|
+
|
|
47
|
+
Build the `Task(subagent_type="design-authority-watcher", ...)` prompt. The prompt supplies the agent's required-reading block (watcher step 0), echoes the invocation flags verbatim (watcher Flags section), and instructs the agent to follow its own fetch/diff/classify/write loop:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Task("design-authority-watcher", """
|
|
51
|
+
<required_reading>
|
|
52
|
+
@reference/authority-feeds.md
|
|
53
|
+
@.design/authority-snapshot.json
|
|
54
|
+
@.design/STATE.md
|
|
55
|
+
</required_reading>
|
|
56
|
+
|
|
57
|
+
Invocation flags: <joined flag list or "none">
|
|
58
|
+
|
|
59
|
+
Fetch the feeds listed in reference/authority-feeds.md, diff against .design/authority-snapshot.json,
|
|
60
|
+
classify new entries per the D-17 decision table, write .design/authority-snapshot.json and
|
|
61
|
+
.design/authority-report.md.
|
|
62
|
+
|
|
63
|
+
Terminate with ## WATCH COMPLETE.
|
|
64
|
+
""")
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`<joined flag list>` is the subset of `--refresh | --since <date> | --feed <name>` actually passed - e.g., `--refresh`, `--since 2026-03-01`, `--feed wai-aria-apg`, `--refresh --feed radix-ui-releases`, or literally `none` when no flags were supplied.
|
|
68
|
+
|
|
69
|
+
5. **Print summary.**
|
|
70
|
+
|
|
71
|
+
After the agent returns:
|
|
72
|
+
- If STATE.md gained a `<blocker type="contract-violation">` on this run (snapshot version mismatch, hash-format violation, or over-200 entries per feed), surface the blocker verbatim and stop - do not print the default "review and reflect" line.
|
|
73
|
+
- Otherwise print the agent's one-line stdout summary (normal mode: `Surfaced N entries across M feeds. K skipped. See .design/authority-report.md.`; first-run / refresh mode: `Seeded snapshot for N feeds — next run will surface new entries.`) followed by: `Review and reflect: /gdd:reflect`.
|
|
74
|
+
|
|
75
|
+
6. **Terminate with `## WATCH COMPLETE`.**
|
|
76
|
+
|
|
77
|
+
## Do Not
|
|
78
|
+
|
|
79
|
+
- Do not modify `agents/design-authority-watcher.md`.
|
|
80
|
+
- Do not modify `agents/design-reflector.md` - Phase 13.2 does not touch the reflector agent (CONTEXT.md D-25).
|
|
81
|
+
- Do not write to `.design/authority-snapshot.json` or `.design/authority-report.md` directly - those are the agent's writes.
|
|
82
|
+
- Do not fetch URLs outside `reference/authority-feeds.md`. The whitelist is the allow-list.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zoom-out
|
|
3
|
+
description: "Asks the agent to go up a layer of abstraction and map the relevant modules and callers using the project's CONTEXT.md vocabulary. Use when the user is working in an unfamiliar area of code and needs orientation before deep work."
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[scope]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Source: mattpocock/skills (MIT) - adapted with permission. See `../NOTICE` for the full attribution block.
|
|
9
|
+
|
|
10
|
+
# Zoom Out
|
|
11
|
+
|
|
12
|
+
**Role:** Give the user a map, not a fix.
|
|
13
|
+
|
|
14
|
+
I don't know this area of code well. Go up a layer of abstraction. Give me a map of all the relevant modules and callers, using the project's domain glossary (`CONTEXT.md`) vocabulary.
|
|
15
|
+
|
|
16
|
+
When invoked, produce a one-screen map that names:
|
|
17
|
+
|
|
18
|
+
1. **Modules in scope** - one-line description of each, using terms from `CONTEXT.md` (see `./../reference/context-md-format.md` for the schema). Do not invent terms.
|
|
19
|
+
2. **Callers** - who calls these modules from elsewhere, with file paths.
|
|
20
|
+
3. **Seams** - where data crosses module boundaries, named per `./../reference/architecture-vocabulary.md`.
|
|
21
|
+
|
|
22
|
+
Do not propose fixes. Do not write code. The output is a map.
|
|
23
|
+
|
|
24
|
+
If `CONTEXT.md` is absent, suggest `/gdd:discuss` to start one, but still produce the map using basenames and inferred terms.
|
|
25
|
+
|
|
26
|
+
## ZOOM-OUT COMPLETE
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hegemonart/get-design-done",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.43.0",
|
|
4
4
|
"description": "A design-quality pipeline for AI coding agents: brief, plan, implement, and verify UI work against your design system.",
|
|
5
5
|
"author": "Hegemon",
|
|
6
6
|
"homepage": "https://github.com/hegemonart/get-design-done",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"sdk/",
|
|
24
24
|
"recipes/",
|
|
25
25
|
"docs/i18n/",
|
|
26
|
+
"dist/claude-code/",
|
|
26
27
|
"scripts/lib/",
|
|
27
28
|
"scripts/cli/",
|
|
28
29
|
"scripts/install.cjs",
|
|
@@ -47,6 +48,8 @@
|
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|
|
49
50
|
"build:bundles": "node scripts/build-distribution-bundles.cjs",
|
|
51
|
+
"build:skills": "node scripts/build-skills.cjs",
|
|
52
|
+
"build:skills:check": "node scripts/build-skills.cjs --check",
|
|
50
53
|
"build:sdk": "node scripts/build-sdk-bins.cjs",
|
|
51
54
|
"prepack": "npm run build:sdk",
|
|
52
55
|
"postpack": "node scripts/build-sdk-bins.cjs --clean",
|
|
@@ -58,7 +61,10 @@
|
|
|
58
61
|
"lint:links": "npx --yes lychee --no-progress --accept 200,206,403,429 \"**/*.md\" || true",
|
|
59
62
|
"lint:agentskills": "node scripts/lint-agentskills-spec.cjs",
|
|
60
63
|
"lint:changelog": "node scripts/lint-changelog.cjs",
|
|
64
|
+
"lint:prose": "node scripts/lint-prose.cjs",
|
|
61
65
|
"lint:design": "node bin/gdd-detect test/fixtures/detect/negative --json",
|
|
66
|
+
"build:style": "node scripts/generate-style-md.cjs",
|
|
67
|
+
"build:style:check": "node scripts/generate-style-md.cjs --check",
|
|
62
68
|
"sync:rule-catalogue": "node scripts/sync-rule-catalogue.cjs --check",
|
|
63
69
|
"validate:manifest": "node scripts/validate-manifest.cjs --check",
|
|
64
70
|
"validate:schemas": "node --experimental-strip-types scripts/validate-schemas.ts",
|
|
@@ -77,7 +83,7 @@
|
|
|
77
83
|
"@types/node": "^25.6.0",
|
|
78
84
|
"ajv-cli": "^5.0.0",
|
|
79
85
|
"ajv-formats": "^3.0.1",
|
|
80
|
-
"esbuild": "^0.
|
|
86
|
+
"esbuild": "^0.28.0",
|
|
81
87
|
"json-schema-to-typescript": "^15.0.0",
|
|
82
88
|
"typescript": "^6.0.3"
|
|
83
89
|
},
|
|
@@ -9,11 +9,11 @@ the scanner pattern list in lockstep.
|
|
|
9
9
|
|
|
10
10
|
## Namespaces
|
|
11
11
|
|
|
12
|
-
- **`/design:<cmd>`** → `/gdd:<cmd>`
|
|
12
|
+
- **`/design:<cmd>`** → `/gdd:<cmd>` - deprecated in Phase 7 (namespace rename). All commands now use the `/gdd:` prefix. Migrated: every shipped skill invocation and agent reference now uses `/gdd:`.
|
|
13
13
|
|
|
14
14
|
## Agents
|
|
15
15
|
|
|
16
|
-
- **`design-context-builder`**
|
|
16
|
+
- **`design-context-builder`** - replaced by the Phase 3 agent split (design-context-reader + design-context-summarizer). Mentioned only in historical documentation; new work must spawn the split agents directly.
|
|
17
17
|
- **`design-pattern-mapper`** (monolithic) → split into 5 domain mappers in Phase 3 (migrated):
|
|
18
18
|
- `token-mapper`
|
|
19
19
|
- `component-taxonomy-mapper`
|
|
@@ -28,11 +28,25 @@ the scanner pattern list in lockstep.
|
|
|
28
28
|
- **`scan`** (stage name) → merged/renamed into `explore` in Phase 3. Migration: references to the `scan` stage in shipped skills and agents were replaced with `explore`.
|
|
29
29
|
- **`discover`** (stage name) → merged/renamed into `explore` in Phase 3. Migration: references to the `discover` stage in shipped skills and agents were replaced with `explore`.
|
|
30
30
|
|
|
31
|
+
## Authoring surfaces
|
|
32
|
+
|
|
33
|
+
- **`skills/` as the authoring source** → **`source/skills/`** - deprecated in Phase 42 (multi-harness
|
|
34
|
+
source compilation). Skills are now authored once in `source/skills/` with placeholders
|
|
35
|
+
(`{{command_prefix}}` et al.; see `reference/skill-placeholders.md`) and compiled per-harness by
|
|
36
|
+
`scripts/build-skills.cjs`. The committed `skills/` tree is now a **generated artifact** (the Claude-Code
|
|
37
|
+
compile target) - CI's `npm run build:skills:check` drift-gates `committed === generated`.
|
|
38
|
+
|
|
39
|
+
Migration for contributors: **edit `source/skills/`, never `skills/` directly**, then run
|
|
40
|
+
`npm run build:skills` (or `gdd-sdk build skills`) and commit the regenerated `skills/` +
|
|
41
|
+
`dist/claude-code/`. `.claude-plugin/plugin.json`'s `"skills": ["./skills/"]` is unchanged - the plugin
|
|
42
|
+
still loads `skills/`, now produced from `source/skills/`. This is a path/authoring move only; no
|
|
43
|
+
stale-ref token is emitted (both paths are live), so the `detect-stale-refs.cjs` list is not extended.
|
|
44
|
+
|
|
31
45
|
## Scanner scope
|
|
32
46
|
|
|
33
47
|
`scripts/detect-stale-refs.cjs` flags these tokens (line-granular match):
|
|
34
48
|
|
|
35
|
-
- `/design:<cmd>`
|
|
49
|
+
- `/design:<cmd>` - any occurrence of the legacy namespace
|
|
36
50
|
- `design-context-builder` (standalone word)
|
|
37
51
|
- `design-pattern-mapper` (when not followed by `-<suffix>`)
|
|
38
52
|
- `scan/SKILL.md` and `discover/SKILL.md` path references
|
|
@@ -42,7 +56,7 @@ The scanner excludes `.planning/`, `.claude/`, `.design/`, `node_modules/`,
|
|
|
42
56
|
|
|
43
57
|
## Path migrations (machine-readable)
|
|
44
58
|
|
|
45
|
-
Phase 39.5 adds a machine-readable registry of **path** migrations
|
|
59
|
+
Phase 39.5 adds a machine-readable registry of **path** migrations - modules/files GDD moved or
|
|
46
60
|
removed. `scripts/lib/deprecation-registry.cjs` parses the table below; `/gdd:migrate` consults it to
|
|
47
61
|
help users update local references; `test/suite/deprecation-completeness.test.cjs` asserts every row
|
|
48
62
|
is honest (a `removed` row's `Old` path must be gone from the tree; a `deprecated` row's `Old` path
|
|
@@ -52,9 +66,9 @@ must still carry a shim).
|
|
|
52
66
|
|
|
53
67
|
A row's status is derived from the running plugin version `v`:
|
|
54
68
|
|
|
55
|
-
- **pending**
|
|
56
|
-
- **deprecated**
|
|
57
|
-
- **removed**
|
|
69
|
+
- **pending** - `v` < `Since` (deprecation announced for a future version; rare).
|
|
70
|
+
- **deprecated** - `Since` ≤ `v` < `Removed in` (the old path still works via a shim; update at leisure).
|
|
71
|
+
- **removed** - `v` ≥ `Removed in` (the old path is gone; you MUST use the new path).
|
|
58
72
|
|
|
59
73
|
**Default shim lifetime is one minor version** (the Phase 31.5 precedent): a path deprecated in `x.y.z`
|
|
60
74
|
is removed in the next minor `x.(y+1).0`. The `Removed in` column is authoritative per row.
|
|
@@ -8,8 +8,8 @@ This is the canonical template for the design pipeline's runtime state file.
|
|
|
8
8
|
- `.design/` is gitignored (not distributed with the plugin); only this template ships.
|
|
9
9
|
|
|
10
10
|
**Distinction from `.planning/STATE.md`:**
|
|
11
|
-
- `.planning/STATE.md` is GSD development state
|
|
12
|
-
- `.design/STATE.md` is pipeline runtime state
|
|
11
|
+
- `.planning/STATE.md` is GSD development state - used by the developers building this plugin.
|
|
12
|
+
- `.design/STATE.md` is pipeline runtime state - used by the pipeline when it runs in a user's project.
|
|
13
13
|
- Keep them strictly separate. Cross-references between them are deferred to Phase 6 per CONTEXT.md.
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -140,22 +140,22 @@ verify_completed_at: ~
|
|
|
140
140
|
| Field | Type | Set by | Purpose |
|
|
141
141
|
|-------|------|--------|---------|
|
|
142
142
|
| `pipeline_state_version` | float | fixed at `1.0` | Forward-compat marker for future format changes |
|
|
143
|
-
| `stage` | enum | every stage at entry | Current stage
|
|
143
|
+
| `stage` | enum | every stage at entry | Current stage - one of: `brief|explore|plan|design|verify` |
|
|
144
144
|
| `cycle` | string | lifecycle commands | Cycle identifier for Wave B multi-cycle projects (default: empty string) |
|
|
145
145
|
| `wave` | int | every stage | Wave number within current stage |
|
|
146
|
-
| `started_at` | ISO 8601 | scan at creation | Immutable
|
|
146
|
+
| `started_at` | ISO 8601 | scan at creation | Immutable - never updated after creation |
|
|
147
147
|
| `last_checkpoint` | ISO 8601 | every stage at exit | Updated on every stage transition and on mid-stage checkpoint |
|
|
148
148
|
|
|
149
149
|
### `<position>`
|
|
150
150
|
|
|
151
|
-
Mirrors frontmatter stage/wave plus progress and status. Duplication is intentional
|
|
151
|
+
Mirrors frontmatter stage/wave plus progress and status. Duplication is intentional - frontmatter is scannable by tooling; `<position>` is scannable by prose reading.
|
|
152
152
|
|
|
153
|
-
- `task_progress`: `<completed>/<total>`
|
|
153
|
+
- `task_progress`: `<completed>/<total>` - e.g. `3/7` means 3 of 7 tasks in the current stage complete
|
|
154
154
|
- `status`: one of
|
|
155
|
-
- `initialized`
|
|
156
|
-
- `in_progress`
|
|
157
|
-
- `completed`
|
|
158
|
-
- `blocked`
|
|
155
|
+
- `initialized` - scan just created the file, no work done
|
|
156
|
+
- `in_progress` - stage is actively running
|
|
157
|
+
- `completed` - stage finished successfully; next stage may begin
|
|
158
|
+
- `blocked` - stage cannot proceed; see `<blockers>`
|
|
159
159
|
|
|
160
160
|
### `<decisions>`
|
|
161
161
|
|
|
@@ -173,25 +173,25 @@ Discover stage populates with observable behaviors. Verify stage updates status.
|
|
|
173
173
|
|
|
174
174
|
### `<prototyping>`
|
|
175
175
|
|
|
176
|
-
Phase 25 surface (D-01). A checkpoint log
|
|
176
|
+
Phase 25 surface (D-01). A checkpoint log - NOT a stage. Tracks sketch and spike outcomes plus cycle-scoped skip suppressions for the prototype gate.
|
|
177
177
|
|
|
178
|
-
- `<sketch slug=… cycle=… decision=D-XX status=resolved/>`
|
|
179
|
-
- `<spike slug=… cycle=… decision=D-XX verdict=yes|no|partial status=resolved/>`
|
|
180
|
-
- `<skipped at=… cycle=… reason=…/>`
|
|
178
|
+
- `<sketch slug=… cycle=… decision=D-XX status=resolved/>` - written by `sketch-wrap-up` after a sketch resolves into a D-XX decision.
|
|
179
|
+
- `<spike slug=… cycle=… decision=D-XX verdict=yes|no|partial status=resolved/>` - written by `spike-wrap-up` after a spike resolves; `verdict` captures the answer.
|
|
180
|
+
- `<skipped at=… cycle=… reason=…/>` - written by the prototype gate when the user declines to sketch/spike at a firing point. Cycle-scoped suppression (D-02): a `<skipped/>` entry suppresses re-asking for the rest of the named cycle.
|
|
181
181
|
|
|
182
|
-
The block is **optional**
|
|
182
|
+
The block is **optional** - fresh STATE.md files do not carry it. The serializer omits the block entirely when no entries exist; appending the first entry is what materializes the block.
|
|
183
183
|
|
|
184
184
|
### `<quality_gate>`
|
|
185
185
|
|
|
186
|
-
Phase 25 surface (Plan 25-03 / D-06..D-09). Captures the most recent run of the Stage 4.5 quality gate (lint / typecheck / test / visual-regression) between Design and Verify. The block houses a single self-closing `<run/>` element
|
|
186
|
+
Phase 25 surface (Plan 25-03 / D-06..D-09). Captures the most recent run of the Stage 4.5 quality gate (lint / typecheck / test / visual-regression) between Design and Verify. The block houses a single self-closing `<run/>` element - append-mode is overkill, so each gate completion overwrites the entry.
|
|
187
187
|
|
|
188
|
-
- `started_at`
|
|
189
|
-
- `completed_at`
|
|
190
|
-
- `status`
|
|
191
|
-
- `iteration`
|
|
192
|
-
- `commands_run`
|
|
188
|
+
- `started_at` - ISO 8601 at which the parallel command run entered.
|
|
189
|
+
- `completed_at` - ISO 8601 at which the gate produced its terminal status.
|
|
190
|
+
- `status` - `pass | fail | timeout | skipped`. `pass` clears the verify-entry gate; `fail` blocks; `timeout` warns + proceeds (D-07); `skipped` indicates the detection chain resolved zero commands.
|
|
191
|
+
- `iteration` - non-negative integer fix-loop count (D-08). `1` = single clean pass; `N === max_iters` with `status === 'fail'` = bounded exhaustion.
|
|
192
|
+
- `commands_run` - comma-separated names of the commands actually executed in Step 2 (e.g., `lint,typecheck,test`). Empty string when `status === 'skipped'`.
|
|
193
193
|
|
|
194
|
-
The block is **optional**
|
|
194
|
+
The block is **optional** - fresh STATE.md files do not carry it. The serializer omits the block entirely when `quality_gate === null`; the SKILL writes the first `<run/>` to materialize it.
|
|
195
195
|
|
|
196
196
|
### `<connections>`
|
|
197
197
|
|
|
@@ -202,7 +202,7 @@ One line per external connection. Detected at scan entry via MCP availability pr
|
|
|
202
202
|
|
|
203
203
|
### `<blockers>`
|
|
204
204
|
|
|
205
|
-
Append-only log of active blockers. Format: `[stage] [ISO date]: [description]`. Cleared manually when blocker resolves (do not auto-clear
|
|
205
|
+
Append-only log of active blockers. Format: `[stage] [ISO date]: [description]`. Cleared manually when blocker resolves (do not auto-clear - preserve the record).
|
|
206
206
|
|
|
207
207
|
### `<timestamps>`
|
|
208
208
|
|
|
@@ -217,7 +217,7 @@ Every stage that runs in the pipeline MUST follow this contract when reading and
|
|
|
217
217
|
**At entry:**
|
|
218
218
|
1. Read `.design/STATE.md`. If the file does not exist and the current stage is `scan`, create it from this template with `started_at` = now and `last_checkpoint` = now; otherwise abort with a clear error ("run scan first").
|
|
219
219
|
2. Parse frontmatter `stage` and `<position>` `status`.
|
|
220
|
-
3. If `stage == current_stage` and `status == in_progress`: RESUME
|
|
220
|
+
3. If `stage == current_stage` and `status == in_progress`: RESUME - pick up from `task_progress` offset; do not reset progress.
|
|
221
221
|
4. If `stage != current_stage`: this is a normal stage transition. Set frontmatter `stage = current_stage`, `<position>` `stage = current_stage`, `<position>` `status = in_progress`, `<position>` `task_progress = 0/<total>`.
|
|
222
222
|
5. Update `<connections>` by probing each MCP tool; write the detected status.
|
|
223
223
|
6. Update `last_checkpoint` to now.
|
|
@@ -248,6 +248,6 @@ Every stage that runs in the pipeline MUST follow this contract when reading and
|
|
|
248
248
|
## Notes for Phase 2 implementors
|
|
249
249
|
|
|
250
250
|
- Do not add new top-level XML sections without updating this template.
|
|
251
|
-
- The write contract is non-negotiable
|
|
251
|
+
- The write contract is non-negotiable - stages that skip the read-at-entry step break resume.
|
|
252
252
|
- `<decisions>` and `<must_haves>` identifiers are sequential per-project, not globally unique. A new pipeline run on the same project starts at `D-01` / `M-01`.
|
|
253
|
-
- When in doubt, prefer appending new fields to existing sections over introducing new sections
|
|
253
|
+
- When in doubt, prefer appending new fields to existing sections over introducing new sections - preserves compatibility with `pipeline_state_version: 1.0`.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Accessibility
|
|
1
|
+
# Accessibility - Thresholds and Requirements
|
|
2
2
|
|
|
3
3
|
These are concrete, measurable standards. WCAG 2.1 AA is the minimum baseline for all design work unless the client explicitly requires AAA or specifies otherwise.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## WCAG 2.1 AA
|
|
7
|
+
## WCAG 2.1 AA - Required Thresholds
|
|
8
8
|
|
|
9
9
|
### Color Contrast
|
|
10
10
|
|
|
@@ -12,20 +12,20 @@ These are concrete, measurable standards. WCAG 2.1 AA is the minimum baseline fo
|
|
|
12
12
|
|---|---|---|
|
|
13
13
|
| Normal text (< 18pt / < 14pt bold) | **4.5 : 1** | 7 : 1 |
|
|
14
14
|
| Large text (≥ 18pt or ≥ 14pt bold) | **3 : 1** | 4.5 : 1 |
|
|
15
|
-
| UI components and graphical objects | **3 : 1** |
|
|
16
|
-
| Decorative elements | No requirement |
|
|
15
|
+
| UI components and graphical objects | **3 : 1** | - |
|
|
16
|
+
| Decorative elements | No requirement | - |
|
|
17
17
|
|
|
18
18
|
**Calculate contrast**: `(L1 + 0.05) / (L2 + 0.05)` where L1 is the lighter luminance.
|
|
19
19
|
|
|
20
20
|
Common pitfalls:
|
|
21
|
-
- Placeholder text in inputs: must meet 4.5:1 (often doesn't
|
|
21
|
+
- Placeholder text in inputs: must meet 4.5:1 (often doesn't - gray placeholders fail)
|
|
22
22
|
- Disabled state text: WCAG exempts disabled elements, but aim for ≥ 3:1 anyway
|
|
23
23
|
- Link color vs body text: must be distinguishable by more than color alone (underline or 3:1 ratio vs background)
|
|
24
24
|
- Focus ring color vs its background: must meet 3:1
|
|
25
25
|
|
|
26
26
|
Tools: Use browser DevTools > Accessibility tab, or pass hex values through contrast calculation.
|
|
27
27
|
|
|
28
|
-
**See also:** [`./contrast-advanced.md`](./contrast-advanced.md)
|
|
28
|
+
**See also:** [`./contrast-advanced.md`](./contrast-advanced.md) - APCA (WCAG 3 draft) for perceptual contrast when WCAG 2.1 4.5:1 misranks thin/large/colored text. Recommended dual-target pattern: enforce WCAG 2.1 AA as a floor + APCA Lc-thresholds (75 / 60 / 45 / 30) for perceptual accuracy.
|
|
29
29
|
|
|
30
30
|
### Touch Target Size
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ Tools: Use browser DevTools > Accessibility tab, or pass hex values through cont
|
|
|
34
34
|
| iOS (Apple HIG) | **44 × 44 pt** |
|
|
35
35
|
| Android (Material Design) | **48 × 48 dp** |
|
|
36
36
|
| Web (WCAG 2.5.5 AAA) | **44 × 44 px** |
|
|
37
|
-
| Web (WCAG 2.5.8 AA
|
|
37
|
+
| Web (WCAG 2.5.8 AA - WCAG 2.2) | **24 × 24 px** (minimum, with spacing) |
|
|
38
38
|
|
|
39
39
|
Recommended target: 44 × 44 px on all platforms. Never smaller for primary actions.
|
|
40
40
|
|
|
@@ -49,7 +49,7 @@ hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
|
|
|
49
49
|
|
|
50
50
|
All interactive elements must have a visible focus indicator.
|
|
51
51
|
|
|
52
|
-
**Required for WCAG 2.4.11 (AA
|
|
52
|
+
**Required for WCAG 2.4.11 (AA - WCAG 2.2):**
|
|
53
53
|
- Focus indicator at minimum: **2px solid** outline, encloses the component
|
|
54
54
|
- Contrast between focused and unfocused: **3:1**
|
|
55
55
|
- Focus indicator doesn't overlap component content
|
|
@@ -71,13 +71,13 @@ Recommended focus ring: **3px solid**, `2px offset`, brand primary or `#2563eb`.
|
|
|
71
71
|
|
|
72
72
|
### Semantic Structure
|
|
73
73
|
|
|
74
|
-
- One `<h1>` per page. Headings are sequential: `h1` → `h2` → `h3`
|
|
75
|
-
- Interactive elements are focusable: use `<button>` for buttons, `<a href>` for links
|
|
76
|
-
- Form inputs have associated `<label for="id">`
|
|
74
|
+
- One `<h1>` per page. Headings are sequential: `h1` → `h2` → `h3` - never skip levels.
|
|
75
|
+
- Interactive elements are focusable: use `<button>` for buttons, `<a href>` for links - never `<div onClick>`.
|
|
76
|
+
- Form inputs have associated `<label for="id">` - not just placeholder text.
|
|
77
77
|
- Images have descriptive `alt=""` for meaningful images; `alt=""` for decorative.
|
|
78
78
|
- Icon-only buttons have `aria-label`: `<button aria-label="Close dialog">×</button>`.
|
|
79
79
|
|
|
80
|
-
**See:** [`./i18n.md`](./i18n.md) §WCAG i18n for SC 3.1.1 (`<html lang>`) and SC 3.1.2 (`<span lang="…">` language-of-parts) patterns
|
|
80
|
+
**See:** [`./i18n.md`](./i18n.md) §WCAG i18n for SC 3.1.1 (`<html lang>`) and SC 3.1.2 (`<span lang="…">` language-of-parts) patterns - screen readers select voice/pronunciation packs from these attributes; a missing or wrong `lang` value forces the user to hear French announced in an English accent.
|
|
81
81
|
|
|
82
82
|
### Color Must Not Be The Only Differentiator
|
|
83
83
|
|
|
@@ -154,7 +154,7 @@ font-size: 16px;
|
|
|
154
154
|
|
|
155
155
|
All animations must respect `prefers-reduced-motion: reduce`. See `reference/motion.md`.
|
|
156
156
|
|
|
157
|
-
The `prefers-reduced-motion` check is an accessibility requirement (WCAG 2.3.3 AAA; WCAG 2.2 reduces to recommendation
|
|
157
|
+
The `prefers-reduced-motion` check is an accessibility requirement (WCAG 2.3.3 AAA; WCAG 2.2 reduces to recommendation - but implement it regardless).
|
|
158
158
|
|
|
159
159
|
---
|
|
160
160
|
|
package/reference/adr-format.md
CHANGED
|
@@ -7,13 +7,13 @@ tags: [adr, decision, project-scoped, architecture, offer-gate]
|
|
|
7
7
|
last_updated: 2026-05-18
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
Source: mattpocock/skills (MIT)
|
|
10
|
+
Source: mattpocock/skills (MIT) - adapted with permission. See `../NOTICE` for the full attribution block.
|
|
11
11
|
|
|
12
12
|
# ADR Format
|
|
13
13
|
|
|
14
14
|
An Architecture Decision Record (ADR) is a project-scoped record of a decision that
|
|
15
15
|
outlives the current cycle. ADRs live at `docs/adr/NNNN-<slug>.md` (zero-padded sequence,
|
|
16
|
-
kebab-case slug) and are offered SPARINGLY
|
|
16
|
+
kebab-case slug) and are offered SPARINGLY - only when all three criteria of the offer
|
|
17
17
|
gate hold (D-04). Most decisions stay in `STATE.md` and roll over with the cycle; ADRs
|
|
18
18
|
are the rare exception. See `./context-md-format.md` for the lighter glossary form that
|
|
19
19
|
shares the same project-scoped lifetime.
|
|
@@ -31,12 +31,12 @@ the decision in `STATE.md` instead.
|
|
|
31
31
|
stated reasons. Decisions with no plausible alternative (e.g., "use HTTPS") do not
|
|
32
32
|
qualify.
|
|
33
33
|
|
|
34
|
-
Worked example
|
|
34
|
+
Worked example - **qualifier:** "Switch from REST to GraphQL for the public API."
|
|
35
35
|
Hard-to-reverse (clients integrate against the schema), surprising-without-context (most
|
|
36
36
|
greenfield APIs default to REST), real-tradeoff (tRPC and gRPC were rejected for stated
|
|
37
37
|
reasons). Ship an ADR.
|
|
38
38
|
|
|
39
|
-
Worked example
|
|
39
|
+
Worked example - **disqualifier:** "Rename the `users` table to `accounts`." Hard-to-reverse,
|
|
40
40
|
but the rationale is obvious from the rename and there is no real alternative once the
|
|
41
41
|
domain has settled on the word. Log in `STATE.md`, not an ADR.
|
|
42
42
|
|
|
@@ -63,14 +63,14 @@ supersedes: <optional — ADR number this one replaces, e.g., "0042">
|
|
|
63
63
|
## Body structure
|
|
64
64
|
|
|
65
65
|
The ADR body uses four `##` sections in the following order. Each section is a thin
|
|
66
|
-
paragraph or short bullet list
|
|
66
|
+
paragraph or short bullet list - ADRs are decision records, not design docs.
|
|
67
67
|
|
|
68
|
-
- `## Context`
|
|
68
|
+
- `## Context` - what situation made this decision necessary; cite the originating
|
|
69
69
|
cycle's `BRIEF.md` or `STATE.md` if relevant.
|
|
70
|
-
- `## Decision`
|
|
71
|
-
- `## Alternatives`
|
|
70
|
+
- `## Decision` - what was chosen, stated as an imperative.
|
|
71
|
+
- `## Alternatives` - what was considered and rejected, with brief rationale per
|
|
72
72
|
alternative.
|
|
73
|
-
- `## Consequences`
|
|
73
|
+
- `## Consequences` - what this enables, what it costs, what it constrains downstream.
|
|
74
74
|
|
|
75
75
|
## Status lifecycle
|
|
76
76
|
|
|
@@ -81,16 +81,16 @@ truth; transitions are explicit, never silent.
|
|
|
81
81
|
does not cite Proposed ADRs.
|
|
82
82
|
- **Accepted.** Decision active; downstream work cites this ADR by number.
|
|
83
83
|
- **Superseded.** Replaced by a later ADR. The later ADR's `supersedes:` field points
|
|
84
|
-
here, and this ADR's status is flipped to Superseded. NEVER delete a Superseded ADR
|
|
84
|
+
here, and this ADR's status is flipped to Superseded. NEVER delete a Superseded ADR -
|
|
85
85
|
the audit trail is the point.
|
|
86
86
|
- **Deprecated.** No longer relevant (e.g., the system the ADR governed was removed).
|
|
87
87
|
Kept for history.
|
|
88
88
|
|
|
89
89
|
## Cross-references
|
|
90
90
|
|
|
91
|
-
- Domain terms used in the ADR body should already appear in `CONTEXT.md`
|
|
91
|
+
- Domain terms used in the ADR body should already appear in `CONTEXT.md` - see
|
|
92
92
|
`./context-md-format.md`. If a term is missing, the writer adds it before referencing it.
|
|
93
|
-
- Cycle-scoped decisions (most routine choices) stay in `STATE.md`
|
|
93
|
+
- Cycle-scoped decisions (most routine choices) stay in `STATE.md` - see
|
|
94
94
|
`./STATE-TEMPLATE.md`.
|
|
95
|
-
- Skill structural rules (length cap, frontmatter, progressive disclosure)
|
|
95
|
+
- Skill structural rules (length cap, frontmatter, progressive disclosure) - see
|
|
96
96
|
`./skill-authoring-contract.md`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# AI-Native Design Tool Interface
|
|
1
|
+
# AI-Native Design Tool Interface - Capability Contract
|
|
2
2
|
|
|
3
3
|
This file defines the capability-based contract that AI-native design tools must implement to integrate with the get-design-done pipeline. Two sub-categories are defined: **canvas** and **component-generator**. Future tools implement one sub-category and plug in via the same probe/read/write or probe/generate/adopt surface.
|
|
4
4
|
|
|
@@ -26,8 +26,8 @@ write(proposal) → { confirmed | rejected }
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
**Implementations:**
|
|
29
|
-
- `connections/paper-design.md`
|
|
30
|
-
- `connections/pencil-dev.md`
|
|
29
|
+
- `connections/paper-design.md` - MCP-based; 24-tool server; budget: 100 calls/week (free)
|
|
30
|
+
- `connections/pencil-dev.md` - file-based; `.pen` YAML spec files; git-tracked; no MCP
|
|
31
31
|
|
|
32
32
|
**Pipeline stages:** `explore` (read) + `verify` (screenshot) + `design` (write via writer agent)
|
|
33
33
|
|
|
@@ -53,8 +53,8 @@ adopt(variant: object) → { confirmed | rejected }
|
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
**Implementations:**
|
|
56
|
-
- `connections/21st-dev.md`
|
|
57
|
-
- `connections/magic-patterns.md`
|
|
56
|
+
- `connections/21st-dev.md` - Magic MCP; `npx @21st-dev/magic@latest init`; marketplace prior-art gate
|
|
57
|
+
- `connections/magic-patterns.md` - Claude connector (`mcp__magic_patterns*`) + API key fallback; DS-aware generation
|
|
58
58
|
|
|
59
59
|
**Pipeline stages:** `explore` (prior-art gate for 21st.dev) + `design` (generate + adopt)
|
|
60
60
|
|
|
@@ -8,7 +8,7 @@ Use during Discover (baseline audit), Design (prevention), and Verify (complianc
|
|
|
8
8
|
|
|
9
9
|
Before shipping any artifact: **"If I told someone 'AI made this,' would they believe me immediately?"**
|
|
10
10
|
|
|
11
|
-
If yes
|
|
11
|
+
If yes - redo. The training-set monoculture has specific fingerprints. Learn them all.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -28,7 +28,7 @@ border-right: 3px solid #6366f1;
|
|
|
28
28
|
|
|
29
29
|
**Why**: The border-left accent card is the most recognizable AI default. It signals no design thinking happened.
|
|
30
30
|
|
|
31
|
-
**Fix**: Use different element structure
|
|
31
|
+
**Fix**: Use different element structure - colored icon, colored background section, or inline accent element.
|
|
32
32
|
|
|
33
33
|
**Grep**: `border-left:\s*[2-9][0-9]*px|border-right:\s*[2-9][0-9]*px`
|
|
34
34
|
|
|
@@ -89,7 +89,7 @@ background: rgb(0, 0, 0);
|
|
|
89
89
|
|
|
90
90
|
**Why**: Pure black in dark mode creates harsh contrast and looks amateur.
|
|
91
91
|
|
|
92
|
-
**Fix**: oklch(12% 0 0) through oklch(18% 0.005 [hue])
|
|
92
|
+
**Fix**: oklch(12% 0 0) through oklch(18% 0.005 [hue]) - slightly warm or cool near-black.
|
|
93
93
|
|
|
94
94
|
**Grep**: `background.*#000000|background.*rgb\(0,\s*0,\s*0\)`
|
|
95
95
|
|
|
@@ -194,7 +194,7 @@ Glassmorphism as the default card treatment signals no layout thinking.
|
|
|
194
194
|
|
|
195
195
|
Using Inter, DM Sans, Space Grotesk, or Plus Jakarta Sans without a documented brand reason.
|
|
196
196
|
|
|
197
|
-
**Test**: Can you give 3 concrete reasons this font matches the product's brand? If not
|
|
197
|
+
**Test**: Can you give 3 concrete reasons this font matches the product's brand? If not - choose again.
|
|
198
198
|
|
|
199
199
|
### SLOP-06: Card-in-Card
|
|
200
200
|
|
|
@@ -235,7 +235,7 @@ Pastel-colored isometric illustrations with floating icons. Figma community temp
|
|
|
235
235
|
### Color Errors
|
|
236
236
|
|
|
237
237
|
- Gray on colored backgrounds (fails contrast, not "subtle")
|
|
238
|
-
- Pure gray neutrals
|
|
238
|
+
- Pure gray neutrals - add 0.005–0.015 chroma toward brand hue
|
|
239
239
|
- Red + green as the only meaning carrier (colorblind failure)
|
|
240
240
|
- Text over image without scrim or overlay
|
|
241
241
|
- Alpha-heavy transparency everywhere (incomplete palette signal)
|
|
@@ -274,7 +274,7 @@ Pastel-colored isometric illustrations with floating icons. Figma community temp
|
|
|
274
274
|
|
|
275
275
|
- `ease-in` on entrances (use `ease-out`)
|
|
276
276
|
- Same duration for enter and exit (exit should be 60–70% of enter)
|
|
277
|
-
- Animating `width`/`height` (triggers layout
|
|
277
|
+
- Animating `width`/`height` (triggers layout - use `transform` only)
|
|
278
278
|
- No `prefers-reduced-motion` media query
|
|
279
279
|
- Popover origin `transform-origin: center` (should come from trigger element)
|
|
280
280
|
- Button with no `:active` press feedback
|
|
@@ -292,11 +292,11 @@ Pastel-colored isometric illustrations with floating icons. Figma community temp
|
|
|
292
292
|
- No progressive disclosure on long forms (show all fields upfront)
|
|
293
293
|
|
|
294
294
|
### Feedback
|
|
295
|
-
- Instant (0ms) state transitions
|
|
295
|
+
- Instant (0ms) state transitions - feels broken
|
|
296
296
|
- "Loading..." spinners with no context ("Loading contacts..." is better)
|
|
297
297
|
- Success toast that blocks the next interaction
|
|
298
298
|
- Destructive action with no undo and no confirmation
|
|
299
|
-
- Confirmation dialog for reversible action (annoyance
|
|
299
|
+
- Confirmation dialog for reversible action (annoyance - use undo instead)
|
|
300
300
|
|
|
301
301
|
### Navigation
|
|
302
302
|
- Browser back button breaks app state
|
|
@@ -359,7 +359,7 @@ If YES to any → rewrite that element before proceeding.
|
|
|
359
359
|
|
|
360
360
|
bdId: BAN-10
|
|
361
361
|
|
|
362
|
-
Applying the same `border-radius` to a container and an element inside it (when the element is separated by padding) makes the inner element appear to "float"
|
|
362
|
+
Applying the same `border-radius` to a container and an element inside it (when the element is separated by padding) makes the inner element appear to "float" - the radii should be concentric, not equal.
|
|
363
363
|
|
|
364
364
|
**Grep (Tailwind):**
|
|
365
365
|
```
|