@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
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gdd-explore
|
|
3
|
-
description: "Stage 2 of 5
|
|
3
|
+
description: "Stage 2 of 5 - unified exploration merging inventory grep + design interview. Probes 6 connections, scans the codebase, conducts the AskUserQuestion interview, and writes .design/DESIGN.md + DESIGN-DEBT.md + DESIGN-CONTEXT.md. Use after /gdd:brief to map the existing system and lock decisions before planning."
|
|
4
4
|
argument-hint: "[--skip-interview] [--skip-scan]"
|
|
5
5
|
tools: Read, Write, Bash, Grep, Glob, Task, AskUserQuestion, mcp__gdd_state__get, mcp__gdd_state__transition_stage, mcp__gdd_state__probe_connections, mcp__gdd_state__update_progress, mcp__gdd_state__set_status, mcp__gdd_state__add_blocker, mcp__gdd_state__checkpoint, mcp__gdd_state__add_decision
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Get Design Done
|
|
8
|
+
# Get Design Done - Explore
|
|
9
9
|
|
|
10
10
|
**Role:** You are the Explore stage. Stage 2 of 5 in the get-design-done pipeline.
|
|
11
11
|
|
|
@@ -17,33 +17,33 @@ Full procedure detail: `./explore-procedure.md`.
|
|
|
17
17
|
|
|
18
18
|
## Stage entry
|
|
19
19
|
|
|
20
|
-
All STATE.md persistence goes through `gdd-state` MCP tools
|
|
20
|
+
All STATE.md persistence goes through `gdd-state` MCP tools - no direct edits. Plain design docs (DESIGN.md / DESIGN-DEBT.md / DESIGN-CONTEXT.md) use `Write`.
|
|
21
21
|
|
|
22
22
|
1. `mcp__gdd_state__transition_stage` with `to: "explore"`. On gate failure: print blockers from `error.context.blockers` verbatim, do not advance.
|
|
23
23
|
2. `mcp__gdd_state__get` (no args) -> snapshot `state` for downstream steps.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
## Step 1
|
|
27
|
+
## Step 1 - Connection probe
|
|
28
28
|
|
|
29
29
|
Probe six connections, then batch-write results via ONE `mcp__gdd_state__probe_connections` call (unspecified connections keep their existing value):
|
|
30
30
|
|
|
31
|
-
- **A
|
|
32
|
-
- **B
|
|
33
|
-
- **C
|
|
34
|
-
- **D
|
|
35
|
-
- **E
|
|
36
|
-
- **F
|
|
31
|
+
- **A - Figma** (variant-agnostic): ToolSearch + regex parse of `get_metadata` / `use_figma` prefixes -> tiebreaker selection (`both-sets > reads-only`, `figma > others`, `non-figma-desktop`, alphabetical) -> live `{prefix}get_metadata` call -> `available` / `unavailable` / `not_configured` (with `prefix=` + `writes=`).
|
|
32
|
+
- **B - Refero**: ToolSearch presence sufficient.
|
|
33
|
+
- **C - 21st.dev**: ToolSearch `mcp__21st` presence.
|
|
34
|
+
- **D - Magic Patterns**: ToolSearch `mcp__magic_patterns` presence.
|
|
35
|
+
- **E - paper.design**: ToolSearch `mcp__paper` + live `get_selection` call.
|
|
36
|
+
- **F - pencil.dev**: `find . -name "*.pen"` file-presence.
|
|
37
37
|
|
|
38
38
|
Full probe specs + commit-results JSON shape: `./explore-procedure.md` §Step 1.
|
|
39
39
|
|
|
40
|
-
## Step 1.5
|
|
40
|
+
## Step 1.5 - 21st.dev Prior-Art Check (when `21st-dev: available`)
|
|
41
41
|
|
|
42
42
|
For each greenfield component in scope: `21st_magic_component_search(component_name, limit: 3)`. Fit >= 80% -> add `<prior-art>` block to DESIGN.md recommending adoption; fit < 80% -> note as reference, build custom. If `svgl_get_brand_logo` available and brand assets are in scope, call per logo and save SVGs to `.design/assets/`. Skip entirely if no greenfield components in scope. Detail: `./explore-procedure.md` §Step 1.5.
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
-
## Step 2
|
|
46
|
+
## Step 2 - Inventory scan (unless `--skip-scan`)
|
|
47
47
|
|
|
48
48
|
**Map pre-check**: if `.design/map/` exists with all 5 files (`tokens.md`, `components.md`, `visual-hierarchy.md`, `a11y.md`, `motion.md`) fresher than `src/`, consume them and skip the grep pass. Otherwise grep and, after Step 4, suggest `/gdd:map` for the next cycle.
|
|
49
49
|
|
|
@@ -51,9 +51,9 @@ For each greenfield component in scope: `21st_magic_component_search(component_n
|
|
|
51
51
|
|
|
52
52
|
Run the canonical scan grep/glob inventory (POSIX ERE, preserving PLAT-01/02): component detection (Glob `**/*.{tsx,jsx,vue,svelte}`), color extraction (hex / rgb / hsl / Tailwind arbitrary), typography scan (font-family / Tailwind `font-*` / `text-*`), motion scan (`transition` / `animate-` / `@keyframes` / `framer-motion`), token detection (tailwind.config / CSS custom properties / token JSON), layout detection (ordered fallback `src/` -> `app/` -> `pages/` -> `lib/` -> unknown). Write `.design/DESIGN.md` + `.design/DESIGN-DEBT.md`. Then `mcp__gdd_state__update_progress` for scan progress. Detail: `./explore-procedure.md` §Step 2.
|
|
53
53
|
|
|
54
|
-
**Step 2.x
|
|
54
|
+
**Step 2.x - i18n readiness probe (informational, per D-04)**: check `package.json` deps against `{react-intl, next-intl, i18next, vue-i18n, formatjs, lingui}` -> `framework-managed`; else grep `Intl.(DateTimeFormat|NumberFormat|...)` in `src/` -> `partial`; else `none`. Emit single line `Localization readiness: <state>` in the report. NO gate, NO blocking - surface signal only (D-07). Detail: `./explore-procedure.md` §Step 2.x.
|
|
55
55
|
|
|
56
|
-
## Step 2.5
|
|
56
|
+
## Step 2.5 - Detect prior sketches and project-local conventions
|
|
57
57
|
|
|
58
58
|
- **Sketches**: list `.design/sketches/*` slugs, group by `WINNER.md` present (completed) vs absent (pending). Record via `mcp__gdd_state__set_status: "explore_sketches_present"`. Include in DESIGN.md "Prior Explorations" section.
|
|
59
59
|
- **Project-local skills**: read `./.claude/skills/design-*-conventions.md` -> include in DESIGN-CONTEXT.md `<project_conventions>` (these override defaults).
|
|
@@ -61,9 +61,9 @@ Run the canonical scan grep/glob inventory (POSIX ERE, preserving PLAT-01/02): c
|
|
|
61
61
|
|
|
62
62
|
---
|
|
63
63
|
|
|
64
|
-
## Step 3
|
|
64
|
+
## Step 3 - Design interview (unless `--skip-interview`)
|
|
65
65
|
|
|
66
|
-
**Run inline
|
|
66
|
+
**Run inline - NEVER spawn `design-discussant` as a subagent.** `AskUserQuestion` only renders the native picker from the top-level skill context; spawning degrades to plain markdown (broken in Claude Desktop).
|
|
67
67
|
|
|
68
68
|
- **3.a Pre-load context**: state.decisions snapshot -> BRIEF.md -> DESIGN.md -> DESIGN-CONTEXT.md `<gray_areas>` -> project conventions. If `figma: available`, call `{prefix}get_variable_defs` and draft tentative D-XX entries.
|
|
69
69
|
- **3.b Identify question set**: skip areas already covered by D-XX or project convention. Default coverage: cycle goal, audience, brand direction (if no tokens), color/typography/spacing primitives (if undetected), motion preferences, gray areas from DESIGN-CONTEXT.md.
|
|
@@ -75,10 +75,10 @@ Full interview protocol + JSON line schema: `./explore-procedure.md` §Step 3.
|
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
-
## Step 4
|
|
78
|
+
## Step 4 - Close out explore
|
|
79
79
|
|
|
80
80
|
- If the synthesizer / mapper batch ran in Step 2: `mcp__gdd_state__update_progress` with `task_progress: "<done>/<total>"`, `status: "explore_mappers_done"`.
|
|
81
|
-
- `mcp__gdd_state__checkpoint`
|
|
81
|
+
- `mcp__gdd_state__checkpoint` - bumps `last_checkpoint`.
|
|
82
82
|
- Stage advance to `plan` happens at the next stage's entry (plan owns its own `transition_stage`); do not edit frontmatter directly.
|
|
83
83
|
|
|
84
84
|
## After Writing
|
|
@@ -89,16 +89,16 @@ Print: "=== Explore complete ===\nSaved: .design/DESIGN.md, .design/DESIGN-DEBT.
|
|
|
89
89
|
Do NOT transition to plan (or invoke `/gdd:plan`) until BOTH `.design/DESIGN.md` AND `.design/DESIGN-CONTEXT.md` are committed AND the user has approved them. If this project uses a custom `.design` location, read the artifact paths from `.design/STATE.md` rather than assuming the default.
|
|
90
90
|
</HARD-GATE>
|
|
91
91
|
|
|
92
|
-
## Rationalizations
|
|
92
|
+
## Rationalizations - Thought to Reality
|
|
93
93
|
|
|
94
94
|
The shortcut excuses an agent reaches for during explore, and the drift each one introduces:
|
|
95
95
|
|
|
96
96
|
| Thought | Reality |
|
|
97
97
|
|---------|---------|
|
|
98
|
-
| "I already know this codebase, I can skip the inventory scan." | An unscanned codebase hides the tokens/components you'll duplicate
|
|
98
|
+
| "I already know this codebase, I can skip the inventory scan." | An unscanned codebase hides the tokens/components you'll duplicate - the grep pass exists to stop you reinventing what's there. |
|
|
99
99
|
| "The six connection probes are noise, I'll assume Figma is off." | A skipped probe means a wrong connection assumption silently breaks the design stage's tool dispatch. |
|
|
100
100
|
| "`--skip-interview` is fine, the brief covered it." | The interview locks the gray areas the brief left fuzzy; skipping it ships undecided D-XX into planning. |
|
|
101
|
-
| "I'll batch all the interview questions to save round-trips." | Batched questions overwhelm the user and smuggle in coupled assumptions
|
|
101
|
+
| "I'll batch all the interview questions to save round-trips." | Batched questions overwhelm the user and smuggle in coupled assumptions - one-at-a-time keeps each decision clean. |
|
|
102
102
|
| "DESIGN-DEBT.md is optional, the scan was clean enough." | Unrecorded debt resurfaces as an unexplained constraint three stages later with no provenance. |
|
|
103
103
|
| "Prior sketches and project conventions don't apply this cycle." | Ignored conventions get overridden by defaults, producing inconsistency the audit will flag against the rest of the system. |
|
|
104
104
|
|
|
@@ -7,8 +7,8 @@ tags: [explore, procedure, extracted, pipeline-stage, connection-probe, design-i
|
|
|
7
7
|
last_updated: 2026-05-18
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
Source: extracted from `skills/explore/SKILL.md` (Phase 28.5 rework
|
|
11
|
-
The skill's
|
|
10
|
+
Source: extracted from `skills/explore/SKILL.md` (Phase 28.5 rework - D-10 extract-then-link).
|
|
11
|
+
The skill's essential workflow stays in `../skills/explore/SKILL.md`; this file holds the
|
|
12
12
|
detail the agent reaches for when executing a specific step (six connection probes, 21st.dev
|
|
13
13
|
prior-art check, inventory scan grep, design interview protocol, i18n probe, decision
|
|
14
14
|
recording).
|
|
@@ -17,26 +17,26 @@ recording).
|
|
|
17
17
|
|
|
18
18
|
Detailed procedure for the get-design-done `explore` Stage 2 orchestrator. Companion to
|
|
19
19
|
`../skills/explore/SKILL.md`. Read this file when executing a specific step; the SKILL.md
|
|
20
|
-
keeps the
|
|
20
|
+
keeps the essential workflow + decision tree, this file holds the deep methodology.
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
## Stage entry
|
|
25
25
|
|
|
26
|
-
All STATE.md persistence in this skill goes through `gdd-state` MCP tools
|
|
26
|
+
All STATE.md persistence in this skill goes through `gdd-state` MCP tools - no direct edits. The skill writes to `.design/STATE.md` (connections, decisions, progress, checkpoint) via those tools, and to plain design docs (DESIGN.md / DESIGN-DEBT.md / DESIGN-CONTEXT.md) via `Write`.
|
|
27
27
|
|
|
28
28
|
1. Call `mcp__gdd_state__transition_stage` with `to: "explore"`.
|
|
29
29
|
- On success: proceed to probes.
|
|
30
30
|
- On gate failure: emit blockers to the user (do not advance). Each blocker is a line in the `error.context.blockers` array; print them verbatim.
|
|
31
|
-
2. Call `mcp__gdd_state__get` with no arguments
|
|
31
|
+
2. Call `mcp__gdd_state__get` with no arguments - snapshot the parsed state into a local `state` variable for downstream steps.
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
## Step 1
|
|
35
|
+
## Step 1 - Connection probe
|
|
36
36
|
|
|
37
|
-
Probe connection availability (the batched write lands at the end of this step
|
|
37
|
+
Probe connection availability (the batched write lands at the end of this step - see "Commit probe results" below):
|
|
38
38
|
|
|
39
|
-
**A
|
|
39
|
+
**A - Figma probe (variant-agnostic):**
|
|
40
40
|
```
|
|
41
41
|
ToolSearch({ query: "figma get_metadata use_figma", max_results: 10 })
|
|
42
42
|
Parse tool names matching /^mcp__([^_]*figma[^_]*)__(get_metadata|use_figma)$/i
|
|
@@ -52,35 +52,35 @@ Then call {prefix}get_metadata:
|
|
|
52
52
|
error -> figma: unavailable
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
**B
|
|
55
|
+
**B - Refero probe:**
|
|
56
56
|
```
|
|
57
57
|
ToolSearch({ query: "refero", max_results: 5 })
|
|
58
58
|
Empty -> refero: not_configured
|
|
59
59
|
Non-empty -> refero: available
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
**C
|
|
62
|
+
**C - 21st.dev probe:**
|
|
63
63
|
```
|
|
64
64
|
ToolSearch({ query: "mcp__21st", max_results: 5 })
|
|
65
65
|
Empty -> 21st-dev: not_configured
|
|
66
66
|
Non-empty -> 21st-dev: available
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
**D
|
|
69
|
+
**D - Magic Patterns probe:**
|
|
70
70
|
```
|
|
71
71
|
ToolSearch({ query: "mcp__magic_patterns", max_results: 5 })
|
|
72
72
|
Empty -> magic-patterns: not_configured
|
|
73
73
|
Non-empty -> magic-patterns: available
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**E
|
|
76
|
+
**E - paper.design probe:**
|
|
77
77
|
```
|
|
78
78
|
ToolSearch({ query: "mcp__paper", max_results: 5 })
|
|
79
79
|
Empty -> paper-design: not_configured
|
|
80
80
|
Non-empty -> call mcp__paper-design__get_selection; success -> available; error -> unavailable
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
**F
|
|
83
|
+
**F - pencil.dev probe (file-based):**
|
|
84
84
|
```bash
|
|
85
85
|
find . -name "*.pen" -not -path "*/node_modules/*" 2>/dev/null | head -1
|
|
86
86
|
Empty -> pencil-dev: not_configured
|
|
@@ -91,7 +91,7 @@ Found -> pencil-dev: available
|
|
|
91
91
|
|
|
92
92
|
After all probes complete, commit results in a single call:
|
|
93
93
|
|
|
94
|
-
`mcp__gdd_state__probe_connections` with `probe_results` = an array of `{ name, status }` entries
|
|
94
|
+
`mcp__gdd_state__probe_connections` with `probe_results` = an array of `{ name, status }` entries - one per probed connection. Example:
|
|
95
95
|
|
|
96
96
|
```json
|
|
97
97
|
{
|
|
@@ -103,9 +103,9 @@ After all probes complete, commit results in a single call:
|
|
|
103
103
|
}
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
Unspecified connections keep their existing value. Do NOT issue multiple `probe_connections` calls
|
|
106
|
+
Unspecified connections keep their existing value. Do NOT issue multiple `probe_connections` calls - the tool is designed for a single batch write per stage.
|
|
107
107
|
|
|
108
|
-
## Step 1.5
|
|
108
|
+
## Step 1.5 - 21st.dev Prior-Art Check (when 21st-dev: available)
|
|
109
109
|
|
|
110
110
|
If `state.connections.21st-dev === "not_configured"` (from the snapshot captured at stage entry): skip this step entirely.
|
|
111
111
|
|
|
@@ -131,7 +131,7 @@ If no greenfield components in scope: skip this step.
|
|
|
131
131
|
|
|
132
132
|
---
|
|
133
133
|
|
|
134
|
-
## Step 2
|
|
134
|
+
## Step 2 - Inventory scan (unless `--skip-scan`)
|
|
135
135
|
|
|
136
136
|
**Map pre-check:** If `.design/map/` exists and all 5 files (`tokens.md`, `components.md`, `visual-hierarchy.md`, `a11y.md`, `motion.md`) are present AND fresher than `src/` (mtime), consume them as the inventory source and skip the grep pass. Otherwise proceed with grep below and, after Step 4, suggest running `/gdd:map` for richer parallel-scanned data on the next cycle.
|
|
137
137
|
|
|
@@ -143,22 +143,22 @@ If no greenfield components in scope: skip this step.
|
|
|
143
143
|
|
|
144
144
|
Run the canonical scan grep/glob inventory (preserves PLAT-01/02 POSIX ERE patterns from Phase 1):
|
|
145
145
|
|
|
146
|
-
- **Component detection**
|
|
147
|
-
- **Color extraction**
|
|
148
|
-
- **Typography scan**
|
|
149
|
-
- **Motion scan**
|
|
150
|
-
- **Token detection**
|
|
151
|
-
- **Layout detection**
|
|
146
|
+
- **Component detection** - `Glob` for `**/*.{tsx,jsx,vue,svelte}`; count exports, identify shared UI primitives.
|
|
147
|
+
- **Color extraction** - `Grep` for hex (`#[0-9a-fA-F]{3,8}`), `rgb(`, `hsl(`, Tailwind arbitrary color classes; dedupe.
|
|
148
|
+
- **Typography scan** - Grep font-family declarations, Tailwind `font-*`, `text-*` size classes; identify type scale.
|
|
149
|
+
- **Motion scan** - Grep `transition`, `animate-`, `@keyframes`, `framer-motion` imports.
|
|
150
|
+
- **Token detection** - Check for `tailwind.config.{js,cjs,mjs,ts}`, CSS custom properties (`--*`), design-token JSON.
|
|
151
|
+
- **Layout detection** - Ordered fallback: `src/` -> `app/` -> `pages/` -> `lib/` -> unknown.
|
|
152
152
|
|
|
153
153
|
Write findings to:
|
|
154
|
-
- `.design/DESIGN.md`
|
|
155
|
-
- `.design/DESIGN-DEBT.md`
|
|
154
|
+
- `.design/DESIGN.md` - current design system inventory + baseline score
|
|
155
|
+
- `.design/DESIGN-DEBT.md` - prioritized debt roadmap
|
|
156
156
|
|
|
157
157
|
Record scan progress: call `mcp__gdd_state__update_progress` with `task_progress: "<completed>/<total>"` to reflect the scan pass.
|
|
158
158
|
|
|
159
|
-
### Step 2.x
|
|
159
|
+
### Step 2.x - i18n readiness probe (informational)
|
|
160
160
|
|
|
161
|
-
Phase 28 D-04 probe
|
|
161
|
+
Phase 28 D-04 probe - 3-state classification, **informational only**. NO gate, NO blocking, NO required-action. Output appears as a single line in the explore report.
|
|
162
162
|
|
|
163
163
|
Classification logic (matches `./reference/i18n.md` §Explore Integration Spec):
|
|
164
164
|
|
|
@@ -185,34 +185,34 @@ Output line in explore report (single informational line, per D-04):
|
|
|
185
185
|
Localization readiness: framework-managed | partial | none
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
-
(Exactly one of the three values, single line.) A consumer downstream (a planning agent, a roadmap reviewer, the user) can act on the signal if a gap is meaningful for the project, but the probe itself never forces a step
|
|
188
|
+
(Exactly one of the three values, single line.) A consumer downstream (a planning agent, a roadmap reviewer, the user) can act on the signal if a gap is meaningful for the project, but the probe itself never forces a step - surface signal, do not bolt on a new pillar (D-07 orthogonal-lens discipline).
|
|
189
189
|
|
|
190
|
-
## Step 2.5
|
|
190
|
+
## Step 2.5 - Detect prior sketches and project-local conventions
|
|
191
191
|
|
|
192
|
-
**Sketches**: If `.design/sketches/` exists, list all sketch slugs
|
|
192
|
+
**Sketches**: If `.design/sketches/` exists, list all sketch slugs - group by those with `WINNER.md` (completed wrap-ups) vs without (pending). Call `mcp__gdd_state__set_status` with a brief note (e.g., `status: "explore_sketches_present"`) so downstream stages see the history. Include the inventory in DESIGN.md under a "Prior Explorations" section.
|
|
193
193
|
|
|
194
|
-
**Project-local skills**: Read any `./.claude/skills/design-*-conventions.md` files if present. Include their content in DESIGN-CONTEXT.md under a `<project_conventions>` section
|
|
194
|
+
**Project-local skills**: Read any `./.claude/skills/design-*-conventions.md` files if present. Include their content in DESIGN-CONTEXT.md under a `<project_conventions>` section - these are codified decisions from prior `/gdd:sketch-wrap-up` runs or manual edits, and they override defaults.
|
|
195
195
|
|
|
196
|
-
**Global skills**: If `~/.claude/gdd/global-skills/` exists and contains `.md` files (other than README.md), read them and prepend their content to the `<project_conventions>` section under a `<global_conventions>` sub-block. Global skills represent cross-project personal conventions. They inform but do not override project-local decisions
|
|
196
|
+
**Global skills**: If `~/.claude/gdd/global-skills/` exists and contains `.md` files (other than README.md), read them and prepend their content to the `<project_conventions>` section under a `<global_conventions>` sub-block. Global skills represent cross-project personal conventions. They inform but do not override project-local decisions - when a project-local D-XX decision conflicts with a global skill, the project-local decision wins.
|
|
197
197
|
|
|
198
198
|
---
|
|
199
199
|
|
|
200
|
-
## Step 3
|
|
200
|
+
## Step 3 - Design interview (unless `--skip-interview`)
|
|
201
201
|
|
|
202
|
-
**Run this inline
|
|
202
|
+
**Run this inline - do NOT spawn `design-discussant` as a subagent.** Subagent UI tools (`AskUserQuestion`) only render the native picker when called from the top-level skill context; spawning a Task() degrades the interview to plain markdown in chat (broken in Claude Desktop).
|
|
203
203
|
|
|
204
|
-
### 3.a
|
|
204
|
+
### 3.a - Pre-load context
|
|
205
205
|
|
|
206
206
|
Read in this order:
|
|
207
|
-
1. `state.decisions` from the snapshot captured at stage entry
|
|
208
|
-
2. `.design/BRIEF.md`
|
|
209
|
-
3. `.design/DESIGN.md`
|
|
210
|
-
4. `.design/DESIGN-CONTEXT.md` if it exists
|
|
211
|
-
5. `./.claude/skills/design-*-conventions.md` if any
|
|
207
|
+
1. `state.decisions` from the snapshot captured at stage entry - existing D-XX entries (do NOT re-ask anything covered). If the snapshot is stale, refresh by calling `mcp__gdd_state__get`.
|
|
208
|
+
2. `.design/BRIEF.md` - problem statement, audience, constraints
|
|
209
|
+
3. `.design/DESIGN.md` - auto-detected inventory from Step 2
|
|
210
|
+
4. `.design/DESIGN-CONTEXT.md` if it exists - `<gray_areas>` block lists unresolved topics
|
|
211
|
+
5. `./.claude/skills/design-*-conventions.md` if any - locked project conventions, treat as authoritative
|
|
212
212
|
|
|
213
213
|
If `state.connections` shows `figma: available`, read the resolved `prefix=` from the same entry and call `{prefix}get_variable_defs`, then draft tentative D-XX entries (mark `(tentative — confirm with user)`) before asking.
|
|
214
214
|
|
|
215
|
-
### 3.b
|
|
215
|
+
### 3.b - Identify question set
|
|
216
216
|
|
|
217
217
|
Build the list of areas needing input. Skip any area already answered by an existing D-XX or covered by a project convention. Default coverage:
|
|
218
218
|
|
|
@@ -225,13 +225,13 @@ Build the list of areas needing input. Skip any area already answered by an exis
|
|
|
225
225
|
- Motion preferences (only if no motion patterns detected)
|
|
226
226
|
- Any `<gray_areas>` from DESIGN-CONTEXT.md
|
|
227
227
|
|
|
228
|
-
### 3.c
|
|
228
|
+
### 3.c - Ask, one question at a time
|
|
229
229
|
|
|
230
|
-
For each area, call `AskUserQuestion` with a single focused question. Provide 4 concrete options plus "Other" / "Skip" where it helps. Do not batch questions into one call. Do not print the question as markdown
|
|
230
|
+
For each area, call `AskUserQuestion` with a single focused question. Provide 4 concrete options plus "Other" / "Skip" where it helps. Do not batch questions into one call. Do not print the question as markdown - always go through the tool.
|
|
231
231
|
|
|
232
232
|
Reject generic answers ("modern", "clean", "professional"). If the answer is vague, ask one follow-up before recording.
|
|
233
233
|
|
|
234
|
-
### 3.d
|
|
234
|
+
### 3.d - Record after each answer
|
|
235
235
|
|
|
236
236
|
After each confirmed answer:
|
|
237
237
|
1. Call `mcp__gdd_state__add_decision` with the decision payload. The tool assigns the next `D-NN` id and persists atomically. Format the summary as:
|
|
@@ -243,18 +243,18 @@ After each confirmed answer:
|
|
|
243
243
|
{"ts":"<iso>","question_id":"Q-NN","question_text":"<verbatim>","answer_summary":"<one sentence>","quality":"high|medium|low|skipped","evidence":"<why>","cycle":"<active-cycle-slug>"}
|
|
244
244
|
```
|
|
245
245
|
Quality classification: `skipped` if user picked Skip / "doesn't matter"; `low` if < 10 words and not a specific value; `medium` if hedged ("maybe", "I think", "not sure"); `high` otherwise.
|
|
246
|
-
3. `add_decision` commits incrementally
|
|
246
|
+
3. `add_decision` commits incrementally - the decision survives a crash mid-interview without an explicit save step.
|
|
247
247
|
|
|
248
|
-
### 3.e
|
|
248
|
+
### 3.e - Produce DESIGN-CONTEXT.md
|
|
249
249
|
|
|
250
250
|
When all questions are answered, write `.design/DESIGN-CONTEXT.md` summarizing the locked decisions, remaining gray areas, and any Figma-sourced tentatives that were confirmed or rejected. Set frontmatter `status: complete`.
|
|
251
251
|
|
|
252
252
|
---
|
|
253
253
|
|
|
254
|
-
## Step 4
|
|
254
|
+
## Step 4 - Close out explore
|
|
255
255
|
|
|
256
256
|
- If the synthesizer (or equivalent mapper batch) ran in Step 2, call `mcp__gdd_state__update_progress` with `task_progress: "<mappers-completed>/<mappers-total>"` and `status: "explore_mappers_done"` before advancing.
|
|
257
|
-
- Call `mcp__gdd_state__checkpoint`
|
|
257
|
+
- Call `mcp__gdd_state__checkpoint` - bumps `frontmatter.last_checkpoint` + appends a timestamp entry.
|
|
258
258
|
- Stage advance to `plan` happens at the next stage's entry (the plan skill will transition from its own entry step); do not edit frontmatter directly from this skill.
|
|
259
259
|
|
|
260
260
|
## After Writing
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gdd-export
|
|
3
|
-
description: "Packages a completed design cycle (.design artifacts + decisions + screenshots) into a stakeholder-shareable artifact
|
|
3
|
+
description: "Packages a completed design cycle (.design artifacts + decisions + screenshots) into a stakeholder-shareable artifact - self-contained HTML, print-styled PDF (Paged.js-compatible), or a Notion page. Redacts secrets; --pseudonymize masks identity for external sharing; --pr posts the HTML preview as a PR comment. Use to hand a design-review packet to PMs/execs/brand who aren't in the repo."
|
|
4
4
|
argument-hint: "<cycle-id> --format html|pdf|notion [--pseudonymize] [--pr]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
tools: Read, Write, Bash, Glob, Grep, ToolSearch, Task
|
|
@@ -8,23 +8,23 @@ tools: Read, Write, Bash, Glob, Grep, ToolSearch, Task
|
|
|
8
8
|
|
|
9
9
|
# /gdd:export
|
|
10
10
|
|
|
11
|
-
Turns a completed cycle's in-repo design output into a shareable artifact. Closes the gap that `.design/*.md` lives only in the repo
|
|
11
|
+
Turns a completed cycle's in-repo design output into a shareable artifact. Closes the gap that `.design/*.md` lives only in the repo - stakeholders not in code can't consume it. The format contract + source set live in `../../reference/export-formats.md`; the Notion write-path in `../../connections/notion.md`.
|
|
12
12
|
|
|
13
13
|
## Steps
|
|
14
14
|
|
|
15
15
|
1. **Resolve the cycle.** `<cycle-id>` (or the current cycle from `.design/STATE.md`). Read the **source set**: `EXPERIENCE.md` (Phase 19.5), `.design/DESIGN.md`, `.design/DESIGN-VERIFICATION.md`, `.design/DESIGN-AUDIT.md` (if present), the decision log, and any Preview/Chromatic screenshots.
|
|
16
16
|
2. **Redact (always) + pseudonymize (opt-in).** Pass every section through `scripts/lib/redact.cjs` (secrets). If `--pseudonymize`, additionally apply `scripts/lib/pseudonymize.cjs` (git identity / paths / hostname) for external sharing. Honor `GDD_DISABLE_NOTION` for the notion format.
|
|
17
17
|
3. **Assemble per `--format`:**
|
|
18
|
-
- **`html`** (default)
|
|
19
|
-
- **`pdf`**
|
|
20
|
-
- **`notion`**
|
|
21
|
-
4. **`--pr`**
|
|
18
|
+
- **`html`** (default) - `node -e "require('scripts/lib/export/build-html.cjs').buildHtml({...})"` → a **self-contained** HTML (inline CSS, base64-embedded screenshots, no external refs). Write to `.design/export/<cycle>.html`.
|
|
19
|
+
- **`pdf`** - the same `buildHtml({ ..., print: true })` (Paged.js-compatible `@page` print CSS). Write `.design/export/<cycle>.print.html`; instruct the user to render it via Paged.js / headless-Chrome (GDD ships **no** PDF runtime - D-02).
|
|
20
|
+
- **`notion`** - probe the Notion MCP (`ToolSearch({query:"notion"})`); if `available`, create a page from the same source (nested toggles + image upload) per `connections/notion.md`; if `not_configured`/disabled → degrade to the `html` format + a note.
|
|
21
|
+
4. **`--pr`** - hand the generated HTML preview to `agents/pr-commenter.md` (via `Task`) to post as a PR comment (degrade-to-noop if no PR / pr-commenter unavailable).
|
|
22
22
|
5. **Print the artifact path** (and the Notion URL / PR comment status when applicable).
|
|
23
23
|
|
|
24
24
|
## Do Not
|
|
25
25
|
|
|
26
|
-
- Do not add a PDF/markdown runtime dependency (`paged`/`puppeteer`/`pdfkit`/a markdown lib)
|
|
27
|
-
- Do not emit an un-redacted artifact
|
|
28
|
-
- Do not block on Notion/PR
|
|
26
|
+
- Do not add a PDF/markdown runtime dependency (`paged`/`puppeteer`/`pdfkit`/a markdown lib) - `build-html.cjs` is pure and the PDF is render-it-yourself print HTML (D-02).
|
|
27
|
+
- Do not emit an un-redacted artifact - redact is mandatory; pseudonymize is the external-sharing opt-in.
|
|
28
|
+
- Do not block on Notion/PR - both degrade to a noop / the html file.
|
|
29
29
|
|
|
30
30
|
## EXPORT COMPLETE
|
|
@@ -16,7 +16,7 @@ tools: Bash, Read, Write, Glob, Grep
|
|
|
16
16
|
|
|
17
17
|
## Protocol
|
|
18
18
|
|
|
19
|
-
### Step 1
|
|
19
|
+
### Step 1 - Gather source artifacts
|
|
20
20
|
|
|
21
21
|
Collect content from available `.design/` files:
|
|
22
22
|
|
|
@@ -26,11 +26,11 @@ ls .design/*.md 2>/dev/null
|
|
|
26
26
|
|
|
27
27
|
Read (if present): DESIGN-CONTEXT.md, DESIGN-VERIFICATION.md, DESIGN-DEBT.md, DESIGN-SUMMARY.md, CYCLES.md
|
|
28
28
|
|
|
29
|
-
### Step 2
|
|
29
|
+
### Step 2 - Invoke gdd-learnings-extractor agent
|
|
30
30
|
|
|
31
31
|
Delegate extraction to the `gdd-learnings-extractor` agent, passing it the list of available files. The agent extracts structured learning entries.
|
|
32
32
|
|
|
33
|
-
### Step 3
|
|
33
|
+
### Step 3 - Write learnings artifact
|
|
34
34
|
|
|
35
35
|
The agent writes or appends to `.design/learnings/LEARNINGS.md`.
|
|
36
36
|
|
|
@@ -53,7 +53,7 @@ Layout of `.design/learnings/LEARNINGS.md`:
|
|
|
53
53
|
---
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
### Step 4
|
|
56
|
+
### Step 4 - Reference file proposal (optional)
|
|
57
57
|
|
|
58
58
|
After writing LEARNINGS.md, check each learning entry with `Proposed reference update: yes`.
|
|
59
59
|
|
|
@@ -78,7 +78,7 @@ If user types `y`: write the addition to the reference file.
|
|
|
78
78
|
If user types `n`: mark the learning as "proposal declined" in LEARNINGS.md.
|
|
79
79
|
If user types `edit`: open the proposed text for the user to modify, then write.
|
|
80
80
|
|
|
81
|
-
### Step 5
|
|
81
|
+
### Step 5 - Summary
|
|
82
82
|
|
|
83
83
|
```
|
|
84
84
|
━━━ Learnings extracted ━━━
|
|
@@ -27,7 +27,7 @@ The leanest possible execution path. No subagents, no STATE.md update, no DESIGN
|
|
|
27
27
|
## Steps
|
|
28
28
|
|
|
29
29
|
1. Parse the task description from the argument.
|
|
30
|
-
2. Use Grep/Glob to locate the target file(s). If ambiguous (>2 candidates), stop and ask the user which to edit
|
|
30
|
+
2. Use Grep/Glob to locate the target file(s). If ambiguous (>2 candidates), stop and ask the user which to edit - do not guess.
|
|
31
31
|
3. Read the target file(s).
|
|
32
32
|
4. Apply the described change with Edit.
|
|
33
33
|
5. Run a relevant sanity check (grep for the old value to confirm it's gone; grep for the new value to confirm it's in).
|
|
@@ -40,12 +40,12 @@ The leanest possible execution path. No subagents, no STATE.md update, no DESIGN
|
|
|
40
40
|
- No `.design/` writes.
|
|
41
41
|
- No STATE.md mutation.
|
|
42
42
|
- No pipeline stage invocation.
|
|
43
|
-
- Do not proceed if the change turns out to be non-trivial
|
|
44
|
-
- Do not skip the `capability_gap` emit on bail-out
|
|
43
|
+
- Do not proceed if the change turns out to be non-trivial - bail out and recommend `/gdd:quick` or the full pipeline.
|
|
44
|
+
- Do not skip the `capability_gap` emit on bail-out - Stage-0 telemetry depends on it (Phase 29 D-01).
|
|
45
45
|
|
|
46
46
|
## Emitting capability_gap on no-skill-match
|
|
47
47
|
|
|
48
|
-
If step 2 cannot locate any candidate files for the task description (or all candidates are filtered out as off-topic), or if the change in step 4 turns out to be non-trivial in a way that has no obvious resolution without a dedicated skill/agent, emit ONE `capability_gap` event before returning control to the user. This feeds Phase 29 Stage-0 telemetry
|
|
48
|
+
If step 2 cannot locate any candidate files for the task description (or all candidates are filtered out as off-topic), or if the change in step 4 turns out to be non-trivial in a way that has no obvious resolution without a dedicated skill/agent, emit ONE `capability_gap` event before returning control to the user. This feeds Phase 29 Stage-0 telemetry - the reflector pattern-detection pass (Plan 29-02) and aggregation (Plan 29-03) read these events from the chain file (`.design/gep/events.jsonl`) to surface recurring capability gaps in `/gdd:apply-reflections`.
|
|
49
49
|
|
|
50
50
|
Synchronous emitter call (via Bash):
|
|
51
51
|
|
|
@@ -75,10 +75,10 @@ appendChainEvent({
|
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Notes:
|
|
78
|
-
- `evidence_refs` is empty `[]` for fast (no trajectory in `/gdd:fast`
|
|
78
|
+
- `evidence_refs` is empty `[]` for fast (no trajectory in `/gdd:fast` - that path is too lean by design).
|
|
79
79
|
- `parent_event_id` is null (root event for the fast bail-out).
|
|
80
80
|
- `suggested_kind` is `"skill"` because fast bail-outs are usually narrow primitives, not multi-step workflows. Plan 29-03's aggregator may upgrade to `"agent"` if a `context_hash` cluster shows multi-step usage.
|
|
81
|
-
- The emitter MUST NOT block
|
|
81
|
+
- The emitter MUST NOT block - `appendChainEvent` already swallows IO errors via its existing try/catch (see `scripts/lib/event-chain.cjs:97-105`).
|
|
82
82
|
- The 7-field payload is preserved verbatim through `appendChainEvent`'s opaque-extras pattern; the chain row carries `type`, `timestamp`, `sessionId`, `payload` as opaque caller-supplied fields and is projected back to the events-schema envelope shape by readers (Plan 29-03 aggregator).
|
|
83
83
|
|
|
84
84
|
Trigger conditions:
|
|
@@ -86,6 +86,6 @@ Trigger conditions:
|
|
|
86
86
|
- **Trigger 2**: Step 2 returns more than 2 candidates AND the user bail-out in step 2 fires (stop and ask).
|
|
87
87
|
- **Trigger 3**: Step 4 reveals the change is non-trivial in a way that has no obvious primitive resolution (the `## Do Not` "Do not proceed" line fires).
|
|
88
88
|
|
|
89
|
-
MCP-probe failures (connection down, transport-layer errors) do NOT emit `capability_gap`
|
|
89
|
+
MCP-probe failures (connection down, transport-layer errors) do NOT emit `capability_gap` - those are Phase 22 connection-status concerns (D-08).
|
|
90
90
|
|
|
91
91
|
## FAST COMPLETE
|
|
@@ -5,7 +5,7 @@ description: Off-context Figma design-system extraction into a compact local dig
|
|
|
5
5
|
|
|
6
6
|
# gdd-figma-extract
|
|
7
7
|
|
|
8
|
-
Pull a whole Figma design system into a compact, queryable local digest
|
|
8
|
+
Pull a whole Figma design system into a compact, queryable local digest - **without** the raw JSON ever entering Claude context. The heavy lifting runs in tested `.cjs` tools; the model reads only the digest outputs.
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
@@ -22,21 +22,21 @@ Pull a whole Figma design system into a compact, queryable local digest — **wi
|
|
|
22
22
|
```
|
|
23
23
|
node -e "process.exit(process.env.FIGMA_TOKEN||process.env.FIGMA_PERSONAL_ACCESS_TOKEN?0:1)"
|
|
24
24
|
```
|
|
25
|
-
If unset, tell the user to `export FIGMA_TOKEN=figd_…` (from https://www.figma.com/developers/api#access-tokens). The token comes from the environment **only**
|
|
25
|
+
If unset, tell the user to `export FIGMA_TOKEN=figd_…` (from https://www.figma.com/developers/api#access-tokens). The token comes from the environment **only** - never ask the user to paste it into a file or the chat, and never echo it back.
|
|
26
26
|
|
|
27
|
-
2. **Stage 1
|
|
27
|
+
2. **Stage 1 - pull.** Pull the file's REST endpoints into the gitignored raw cache (D-09):
|
|
28
28
|
```
|
|
29
29
|
node scripts/lib/figma-extract/pull.cjs "<file-key-or-url>"
|
|
30
30
|
```
|
|
31
|
-
This caches to `.figma-extract-cache/raw/<file-key>/` and skips re-pulling when Figma's `version` is unchanged (D-11). Add `--force` to bypass the cache, `--out <dir>` to relocate the cache. The tool prints a JSON summary (endpoints, bytes, cached) on stdout
|
|
31
|
+
This caches to `.figma-extract-cache/raw/<file-key>/` and skips re-pulling when Figma's `version` is unchanged (D-11). Add `--force` to bypass the cache, `--out <dir>` to relocate the cache. The tool prints a JSON summary (endpoints, bytes, cached) on stdout - the raw bodies stay on disk.
|
|
32
32
|
|
|
33
|
-
3. **Stage 2
|
|
33
|
+
3. **Stage 2 - plugin sync (OPTIONAL, Path C).** Only when the design tokens live in Figma Variables that the REST API cannot return (non-Enterprise plans → the pull summary shows `variables` skipped) and the user wants token coverage:
|
|
34
34
|
```
|
|
35
35
|
node scripts/lib/figma-extract/receiver.cjs --out .figma-extract-cache/raw/<file-key>
|
|
36
36
|
```
|
|
37
|
-
This binds `127.0.0.1:5179` (D-06). Tell the user to run the dev-installed **"GDD Sync"** plugin in Figma and click **"Export to GDD"**
|
|
37
|
+
This binds `127.0.0.1:5179` (D-06). Tell the user to run the dev-installed **"GDD Sync"** plugin in Figma and click **"Export to GDD"** - see `figma-plugin/README.md` for the one-time dev-install. The receiver writes `variables.json` into the cache and exits on receipt or timeout. Skip this stage entirely for design systems whose tokens already come through the REST pull.
|
|
38
38
|
|
|
39
|
-
4. **Stage 3
|
|
39
|
+
4. **Stage 3 - digest.** Transform the cache into the compact digest:
|
|
40
40
|
```
|
|
41
41
|
node scripts/lib/figma-extract/digest.cjs --raw .figma-extract-cache/raw/<file-key> --out .figma-extract-cache/digest
|
|
42
42
|
```
|
|
@@ -46,9 +46,9 @@ Pull a whole Figma design system into a compact, queryable local digest — **wi
|
|
|
46
46
|
|
|
47
47
|
## Required Reading
|
|
48
48
|
|
|
49
|
-
- `.figma-extract-cache/digest/DESIGN.md`
|
|
50
|
-
- `.figma-extract-cache/digest/tokens.json`
|
|
51
|
-
- `.figma-extract-cache/digest/components.json`
|
|
49
|
+
- `.figma-extract-cache/digest/DESIGN.md` - the compact human/LLM-readable spec
|
|
50
|
+
- `.figma-extract-cache/digest/tokens.json` - resolved design tokens (when structured token data is needed)
|
|
51
|
+
- `.figma-extract-cache/digest/components.json` - components with variants/props/defaults (when structured component data is needed)
|
|
52
52
|
|
|
53
53
|
## Notes
|
|
54
54
|
|
|
@@ -59,6 +59,6 @@ Pull a whole Figma design system into a compact, queryable local digest — **wi
|
|
|
59
59
|
## Do Not
|
|
60
60
|
|
|
61
61
|
- **Do NOT read or `cat` the `raw/*.json` cache** (e.g. `.figma-extract-cache/raw/<file-key>/file.json`). It is tool-internal and often 100+ MB; loading it into context defeats the off-context guarantee (D-12). Read only the digest outputs above.
|
|
62
|
-
- **Do not persist, log, echo, or print `FIGMA_TOKEN`** (D-10). It belongs in the environment only
|
|
62
|
+
- **Do not persist, log, echo, or print `FIGMA_TOKEN`** (D-10). It belongs in the environment only - never write it to a file, a commit, or chat output.
|
|
63
63
|
|
|
64
64
|
## FIGMA-EXTRACT COMPLETE
|
|
@@ -14,19 +14,19 @@ Dispatches the `design-figma-writer` agent to write design decisions back to the
|
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
Modes:
|
|
17
|
-
- `annotate`
|
|
18
|
-
- `tokenize`
|
|
19
|
-
- `mappings`
|
|
17
|
+
- `annotate` - add design decision comments to Figma layers
|
|
18
|
+
- `tokenize` - bind hard-coded color/spacing/type values to Figma variables
|
|
19
|
+
- `mappings` - write Code Connect component↔code file mappings
|
|
20
20
|
|
|
21
21
|
Flags:
|
|
22
|
-
- `--dry-run`
|
|
23
|
-
- `--confirm-shared`
|
|
22
|
+
- `--dry-run` - emit the proposal without executing any Figma writes
|
|
23
|
+
- `--confirm-shared` - authorize writes to shared team library components
|
|
24
24
|
|
|
25
25
|
## Prerequisites
|
|
26
26
|
|
|
27
27
|
1. Remote Figma MCP registered (writes are remote-only). Preferred: `claude plugin install figma@claude-plugins-official`. Manual: `claude mcp add --transport http figma https://mcp.figma.com/mcp`.
|
|
28
28
|
2. `.design/DESIGN-CONTEXT.md` exists (run `discover` first)
|
|
29
|
-
3. `.design/STATE.md` `<connections>` shows `figma: available (…, writes=true)`. If `writes=false` (desktop-only variant), writes are not supported
|
|
29
|
+
3. `.design/STATE.md` `<connections>` shows `figma: available (…, writes=true)`. If `writes=false` (desktop-only variant), writes are not supported - the agent will STOP with an instruction to install the remote MCP.
|
|
30
30
|
|
|
31
31
|
## Required Reading
|
|
32
32
|
|
|
@@ -19,7 +19,7 @@ Thin command wrapper around the GSD graphify tools integration.
|
|
|
19
19
|
## Behavior
|
|
20
20
|
|
|
21
21
|
1. Read `.design/STATE.md` to check `graphify` status in `<connections>`.
|
|
22
|
-
2. Check `graphify.enabled` in `.design/config.json` via a direct file read (per D-09
|
|
22
|
+
2. Check `graphify.enabled` in `.design/config.json` via a direct file read (per D-09 - no `config-get` CLI subcommand):
|
|
23
23
|
```
|
|
24
24
|
node -e "try{const c=JSON.parse(require('fs').readFileSync('.design/config.json','utf8'));process.stdout.write(String(c.graphify?.enabled===true))}catch{process.stdout.write('false')}"
|
|
25
25
|
```
|
|
@@ -38,12 +38,12 @@ Thin command wrapper around the GSD graphify tools integration.
|
|
|
38
38
|
|
|
39
39
|
## Required Reading
|
|
40
40
|
|
|
41
|
-
- `.design/STATE.md`
|
|
42
|
-
- `.design/config.json`
|
|
41
|
+
- `.design/STATE.md` - for graphify status in `<connections>`
|
|
42
|
+
- `.design/config.json` - for `graphify.enabled` flag
|
|
43
43
|
|
|
44
44
|
## Notes
|
|
45
45
|
|
|
46
|
-
- Graphify is optional. The native CLI ships in this repo at `bin/gdd-graph` (no external install
|
|
46
|
+
- Graphify is optional. The native CLI ships in this repo at `bin/gdd-graph` (no external install - Node only).
|
|
47
47
|
- Graph is stored at `.design/graph/graph.json` (Ajv-validated against `scripts/lib/graph/schema.json`).
|
|
48
48
|
- Graph covers source code (`src/`, `components/`). It does NOT index `.design/` artifacts by default.
|
|
49
49
|
- Use `query` with node IDs from the graph schema: `component:<name>`, `token:color/<name>`, `decision:D-<nn>`, etc.
|