@hegemonart/get-design-done 1.42.0 → 1.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +1080 -1038
- package/README.md +157 -155
- package/SKILL.md +42 -42
- package/agents/README.md +53 -53
- package/agents/a11y-mapper.md +3 -3
- package/agents/component-benchmark-harvester.md +8 -8
- package/agents/component-benchmark-synthesizer.md +11 -11
- package/agents/component-taxonomy-mapper.md +5 -5
- package/agents/compose-executor.md +25 -25
- package/agents/conflict-resolver.md +8 -8
- package/agents/cost-forecaster.md +12 -12
- package/agents/decision-journal-exporter.md +5 -5
- package/agents/design-advisor.md +19 -19
- package/agents/design-assumptions-analyzer.md +16 -16
- package/agents/design-auditor.md +39 -39
- package/agents/design-authority-watcher.md +28 -28
- package/agents/design-component-generator.md +27 -27
- package/agents/design-context-builder.md +66 -66
- package/agents/design-context-checker-gate.md +5 -5
- package/agents/design-context-checker.md +20 -20
- package/agents/design-discussant.md +23 -23
- package/agents/design-doc-writer.md +12 -12
- package/agents/design-executor.md +38 -38
- package/agents/design-figma-writer.md +31 -31
- package/agents/design-fixer.md +27 -27
- package/agents/design-integration-checker-gate.md +5 -5
- package/agents/design-integration-checker.md +29 -29
- package/agents/design-paper-writer.md +14 -14
- package/agents/design-pattern-mapper.md +9 -9
- package/agents/design-pencil-writer.md +12 -12
- package/agents/design-phase-researcher.md +14 -14
- package/agents/design-plan-checker.md +13 -13
- package/agents/design-planner.md +24 -24
- package/agents/design-reflector.md +48 -48
- package/agents/design-research-synthesizer.md +21 -21
- package/agents/design-start-writer.md +7 -7
- package/agents/design-update-checker.md +8 -8
- package/agents/design-verifier-gate.md +5 -5
- package/agents/design-verifier.md +80 -80
- package/agents/ds-generator.md +14 -14
- package/agents/ds-migration-planner.md +12 -12
- package/agents/email-executor.md +26 -26
- package/agents/experiment-result-ingester.md +10 -10
- package/agents/flutter-executor.md +28 -28
- package/agents/gdd-graph-refresh.md +10 -10
- package/agents/gdd-intel-updater.md +11 -11
- package/agents/gdd-learnings-extractor.md +2 -2
- package/agents/motion-mapper.md +8 -8
- package/agents/motion-verifier.md +16 -16
- package/agents/pdf-executor.md +27 -27
- package/agents/perf-analyzer.md +20 -20
- package/agents/pr-commenter.md +24 -24
- package/agents/prototype-gate.md +29 -29
- package/agents/quality-gate-runner.md +21 -21
- package/agents/rollout-coordinator.md +8 -8
- package/agents/swift-executor.md +41 -41
- package/agents/ticket-sync-agent.md +19 -19
- package/agents/token-mapper.md +6 -6
- package/agents/user-research-synthesizer.md +13 -13
- package/agents/visual-hierarchy-mapper.md +2 -2
- package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/dist/claude-code/.claude/skills/audit/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/brief/SKILL.md +20 -20
- package/dist/claude-code/.claude/skills/budget/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +5 -5
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/compare/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +17 -17
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/connections/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +76 -76
- package/dist/claude-code/.claude/skills/continue/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/dist/claude-code/.claude/skills/debug/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +12 -12
- package/dist/claude-code/.claude/skills/design/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/design/design-procedure.md +23 -23
- package/dist/claude-code/.claude/skills/discover/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +18 -18
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/do/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/explore/SKILL.md +21 -21
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +48 -48
- package/dist/claude-code/.claude/skills/export/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/fast/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/health/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +3 -3
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +6 -6
- package/dist/claude-code/.claude/skills/help/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/map/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/next/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/note/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/pause/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +14 -14
- package/dist/claude-code/.claude/skills/peers/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/plan/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +24 -24
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/progress/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +22 -22
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +19 -19
- package/dist/claude-code/.claude/skills/quick/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +27 -27
- package/dist/claude-code/.claude/skills/resume/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/roi/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/router/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +6 -6
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +9 -9
- package/dist/claude-code/.claude/skills/router/router-rules.md +7 -7
- package/dist/claude-code/.claude/skills/scan/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +42 -42
- package/dist/claude-code/.claude/skills/settings/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/ship/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/spike/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/start/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/start/start-procedure.md +9 -9
- package/dist/claude-code/.claude/skills/stats/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/style/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +12 -12
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/todo/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/update/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/verify/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +34 -34
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +4 -4
- package/package.json +5 -2
- package/reference/DEPRECATIONS.md +10 -10
- package/reference/STATE-TEMPLATE.md +26 -26
- package/reference/accessibility.md +13 -13
- package/reference/adr-format.md +13 -13
- package/reference/ai-native-tool-interface.md +5 -5
- package/reference/anti-patterns.md +9 -9
- package/reference/architecture-vocabulary.md +31 -31
- package/reference/audit-scoring.md +13 -13
- package/reference/authority-feeds.md +36 -36
- package/reference/bandit-integration.md +25 -25
- package/reference/brand-voice.md +36 -36
- package/reference/capability-gap-stage-gate.md +20 -20
- package/reference/checklists.md +26 -26
- package/reference/cli-localization.md +13 -13
- package/reference/codex-tools.md +2 -2
- package/reference/color-theory.md +28 -28
- package/reference/component-authoring.md +4 -4
- package/reference/components/README.md +13 -13
- package/reference/components/TEMPLATE.md +13 -13
- package/reference/components/accordion.md +15 -15
- package/reference/components/alert.md +25 -25
- package/reference/components/badge.md +18 -18
- package/reference/components/breadcrumbs.md +24 -24
- package/reference/components/button.md +21 -21
- package/reference/components/card.md +13 -13
- package/reference/components/checkbox.md +20 -20
- package/reference/components/chip.md +20 -20
- package/reference/components/command-palette.md +15 -15
- package/reference/components/date-picker.md +22 -22
- package/reference/components/drawer.md +13 -13
- package/reference/components/file-upload.md +22 -22
- package/reference/components/input.md +18 -18
- package/reference/components/label.md +25 -25
- package/reference/components/link.md +19 -19
- package/reference/components/list.md +17 -17
- package/reference/components/menu.md +19 -19
- package/reference/components/modal-dialog.md +16 -16
- package/reference/components/navbar.md +19 -19
- package/reference/components/pagination.md +18 -18
- package/reference/components/popover.md +12 -12
- package/reference/components/progress.md +18 -18
- package/reference/components/radio.md +17 -17
- package/reference/components/rich-text-editor.md +24 -24
- package/reference/components/select-combobox.md +16 -16
- package/reference/components/sidebar.md +15 -15
- package/reference/components/skeleton.md +20 -20
- package/reference/components/slider.md +20 -20
- package/reference/components/stepper.md +24 -24
- package/reference/components/switch.md +19 -19
- package/reference/components/table.md +21 -21
- package/reference/components/tabs.md +11 -11
- package/reference/components/toast.md +19 -19
- package/reference/components/tooltip.md +19 -19
- package/reference/components/tree.md +17 -17
- package/reference/composition.md +38 -38
- package/reference/config-schema.md +37 -37
- package/reference/context-md-format.md +9 -9
- package/reference/contrast-advanced.md +29 -29
- package/reference/conversational-ui.md +17 -17
- package/reference/cost-governance.md +14 -14
- package/reference/css-grid-layout.md +8 -8
- package/reference/cycle-handoff-preamble.md +3 -3
- package/reference/data-visualization.md +67 -67
- package/reference/debugger-philosophy.md +5 -5
- package/reference/design-system-guidance.md +21 -21
- package/reference/design-systems-catalog.md +20 -20
- package/reference/design-variants.md +11 -11
- package/reference/domains/civic-patterns.md +10 -10
- package/reference/domains/finance-patterns.md +9 -9
- package/reference/domains/gaming-patterns.md +9 -9
- package/reference/domains/healthcare-patterns.md +11 -11
- package/reference/ds-bootstrap-rubric.md +13 -13
- package/reference/email-design.md +22 -22
- package/reference/emotional-design.md +10 -10
- package/reference/error-recovery.md +11 -11
- package/reference/export-formats.md +7 -7
- package/reference/figma-sandbox.md +6 -6
- package/reference/first-principles.md +10 -10
- package/reference/form-patterns.md +26 -26
- package/reference/framer-motion-patterns.md +49 -49
- package/reference/gdd-runtime-audit.md +17 -17
- package/reference/gdd-threat-model.md +44 -44
- package/reference/gemini-tools.md +3 -3
- package/reference/gestalt.md +24 -24
- package/reference/heuristics.md +32 -32
- package/reference/i18n.md +44 -44
- package/reference/iconography.md +24 -24
- package/reference/image-optimization.md +14 -14
- package/reference/information-architecture.md +47 -47
- package/reference/intel-schema.md +1 -1
- package/reference/known-failure-modes.md +37 -37
- package/reference/meta-rules.md +5 -5
- package/reference/migrations/material-3-to-4.md +17 -17
- package/reference/migrations/mui-v6.md +16 -16
- package/reference/migrations/shadcn-v2.md +25 -25
- package/reference/migrations/tailwind-v4.md +21 -21
- package/reference/model-prices.md +3 -3
- package/reference/model-tiers.md +40 -40
- package/reference/motion-advanced.md +21 -21
- package/reference/motion-easings.md +29 -29
- package/reference/motion-interpolate.md +1 -1
- package/reference/motion-spring.md +13 -13
- package/reference/motion-transition-taxonomy.md +34 -34
- package/reference/motion.md +31 -31
- package/reference/multi-author-model.md +13 -13
- package/reference/native-platforms.md +28 -28
- package/reference/notification-routing.md +6 -6
- package/reference/onboarding-progressive-disclosure.md +32 -32
- package/reference/openrouter-tier-mapping.md +8 -8
- package/reference/palette-catalog.md +37 -37
- package/reference/parallelism-rules.md +20 -20
- package/reference/peer-cli-capabilities.md +14 -14
- package/reference/peer-protocols.md +21 -21
- package/reference/perf-budget.md +21 -21
- package/reference/performance.md +22 -22
- package/reference/platforms.md +51 -51
- package/reference/pr-review-integration.md +7 -7
- package/reference/prices/antigravity.md +3 -3
- package/reference/prices/augment.md +3 -3
- package/reference/prices/claude.md +2 -2
- package/reference/prices/cline.md +4 -4
- package/reference/prices/codebuddy.md +3 -3
- package/reference/prices/codex.md +2 -2
- package/reference/prices/copilot.md +3 -3
- package/reference/prices/cursor.md +3 -3
- package/reference/prices/gemini.md +2 -2
- package/reference/prices/kilo.md +3 -3
- package/reference/prices/opencode.md +4 -4
- package/reference/prices/qwen.md +2 -2
- package/reference/prices/trae.md +3 -3
- package/reference/prices/windsurf.md +3 -3
- package/reference/prices.openrouter.md +5 -5
- package/reference/print-design.md +36 -36
- package/reference/priority-matrix.md +2 -2
- package/reference/project-skills-guide.md +3 -3
- package/reference/proportion-systems.md +23 -23
- package/reference/pseudonymization-rules.md +30 -30
- package/reference/retrieval-contract.md +14 -14
- package/reference/review-format.md +7 -7
- package/reference/rollout-coordination.md +10 -10
- package/reference/rtl-cjk-cultural.md +39 -39
- package/reference/runtime-models.md +28 -28
- package/reference/shared-preamble.md +26 -26
- package/reference/skill-authoring-contract.md +16 -16
- package/reference/skill-placeholders.md +3 -3
- package/reference/start-interview.md +10 -10
- package/reference/style-vocabulary.md +25 -25
- package/reference/surfaces.md +4 -4
- package/reference/ticket-sync.md +9 -9
- package/reference/typography.md +64 -64
- package/reference/user-research.md +54 -54
- package/reference/variable-fonts-loading.md +15 -15
- package/reference/visual-hierarchy-layout.md +41 -41
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/skills/add-backlog/SKILL.md +3 -3
- package/skills/analyze-dependencies/SKILL.md +10 -10
- package/skills/apply-reflections/SKILL.md +13 -13
- package/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/skills/audit/SKILL.md +7 -7
- package/skills/bandit-status/SKILL.md +7 -7
- package/skills/benchmark/SKILL.md +7 -7
- package/skills/bootstrap-ds/SKILL.md +10 -10
- package/skills/brief/SKILL.md +20 -20
- package/skills/budget/SKILL.md +4 -4
- package/skills/cache-manager/SKILL.md +6 -6
- package/skills/cache-manager/cache-policy.md +5 -5
- package/skills/check-update/SKILL.md +5 -5
- package/skills/compare/SKILL.md +15 -15
- package/skills/compare/compare-rubric.md +17 -17
- package/skills/complete-cycle/SKILL.md +5 -5
- package/skills/connections/SKILL.md +11 -11
- package/skills/connections/connections-onboarding.md +76 -76
- package/skills/continue/SKILL.md +2 -2
- package/skills/darkmode/SKILL.md +17 -17
- package/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/skills/debug/SKILL.md +3 -3
- package/skills/debug/debug-feedback-loops.md +12 -12
- package/skills/design/SKILL.md +12 -12
- package/skills/design/design-procedure.md +23 -23
- package/skills/discover/SKILL.md +7 -7
- package/skills/discover/discover-procedure.md +18 -18
- package/skills/discuss/SKILL.md +12 -12
- package/skills/do/SKILL.md +1 -1
- package/skills/explore/SKILL.md +21 -21
- package/skills/explore/explore-procedure.md +48 -48
- package/skills/export/SKILL.md +9 -9
- package/skills/extract-learnings/SKILL.md +5 -5
- package/skills/fast/SKILL.md +7 -7
- package/skills/figma-extract/SKILL.md +11 -11
- package/skills/figma-write/SKILL.md +6 -6
- package/skills/graphify/SKILL.md +4 -4
- package/skills/health/SKILL.md +16 -16
- package/skills/health/health-mcp-detection.md +3 -3
- package/skills/health/health-skill-length-report.md +6 -6
- package/skills/help/SKILL.md +1 -1
- package/skills/list-assumptions/SKILL.md +4 -4
- package/skills/map/SKILL.md +12 -12
- package/skills/migrate/SKILL.md +5 -5
- package/skills/new-cycle/SKILL.md +2 -2
- package/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/skills/new-project/SKILL.md +1 -1
- package/skills/next/SKILL.md +5 -5
- package/skills/note/SKILL.md +1 -1
- package/skills/openrouter-status/SKILL.md +4 -4
- package/skills/optimize/SKILL.md +15 -15
- package/skills/pause/SKILL.md +5 -5
- package/skills/peer-cli-add/SKILL.md +11 -11
- package/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/skills/peer-cli-customize/SKILL.md +14 -14
- package/skills/peers/SKILL.md +4 -4
- package/skills/plan/SKILL.md +13 -13
- package/skills/plan/plan-procedure.md +24 -24
- package/skills/plant-seed/SKILL.md +4 -4
- package/skills/pr-branch/SKILL.md +2 -2
- package/skills/progress/SKILL.md +15 -15
- package/skills/quality-gate/SKILL.md +22 -22
- package/skills/quality-gate/threat-modeling.md +19 -19
- package/skills/quick/SKILL.md +5 -5
- package/skills/reapply-patches/SKILL.md +7 -7
- package/skills/reflect/SKILL.md +3 -3
- package/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/skills/report-issue/SKILL.md +5 -5
- package/skills/report-issue/report-issue-procedure.md +27 -27
- package/skills/resume/SKILL.md +9 -9
- package/skills/review-backlog/SKILL.md +3 -3
- package/skills/review-decisions/SKILL.md +3 -3
- package/skills/roi/SKILL.md +5 -5
- package/skills/rollout-status/SKILL.md +4 -4
- package/skills/router/SKILL.md +11 -11
- package/skills/router/capability-gap-emitter.md +6 -6
- package/skills/router/router-pick-emitter.md +9 -9
- package/skills/router/router-rules.md +7 -7
- package/skills/scan/SKILL.md +16 -16
- package/skills/scan/scan-procedure.md +42 -42
- package/skills/settings/SKILL.md +2 -2
- package/skills/ship/SKILL.md +7 -7
- package/skills/sketch/SKILL.md +10 -10
- package/skills/sketch-wrap-up/SKILL.md +12 -12
- package/skills/skill-manifest/SKILL.md +5 -5
- package/skills/spike/SKILL.md +7 -7
- package/skills/spike-wrap-up/SKILL.md +13 -13
- package/skills/start/SKILL.md +8 -8
- package/skills/start/start-procedure.md +9 -9
- package/skills/stats/SKILL.md +5 -5
- package/skills/style/SKILL.md +12 -12
- package/skills/style/style-doc-procedure.md +12 -12
- package/skills/synthesize/SKILL.md +10 -10
- package/skills/timeline/SKILL.md +4 -4
- package/skills/todo/SKILL.md +3 -3
- package/skills/turn-closeout/SKILL.md +10 -10
- package/skills/unlock-decision/SKILL.md +3 -3
- package/skills/update/SKILL.md +9 -9
- package/skills/using-gdd/SKILL.md +17 -17
- package/skills/verify/SKILL.md +13 -13
- package/skills/verify/verify-procedure.md +34 -34
- package/skills/warm-cache/SKILL.md +8 -8
- package/skills/watch-authorities/SKILL.md +9 -9
- package/skills/zoom-out/SKILL.md +4 -4
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quality-gate-runner
|
|
3
|
-
description: "Cheap Haiku classifier that ingests {command, exit_code, stderr} tuples from the quality-gate skill's parallel run and emits a JSON verdict
|
|
3
|
+
description: "Cheap Haiku classifier that ingests {command, exit_code, stderr} tuples from the quality-gate skill's parallel run and emits a JSON verdict - pass/fail plus per-bucket failure groupings (lint / type / test / visual). Read-only. Does not run commands itself."
|
|
4
4
|
tools: Read, Bash, Grep
|
|
5
5
|
color: amber
|
|
6
6
|
model: inherit
|
|
7
7
|
default-tier: haiku
|
|
8
|
-
tier-rationale: "Pattern-match exit codes and bucket stderr into four named categories
|
|
8
|
+
tier-rationale: "Pattern-match exit codes and bucket stderr into four named categories - no synthesis, no rewrites, no spawning. Belongs on Haiku to keep classification cost trivial relative to the actual command runs."
|
|
9
9
|
size_budget: S
|
|
10
10
|
parallel-safe: always
|
|
11
11
|
typical-duration-seconds: 5
|
|
@@ -19,13 +19,13 @@ writes: []
|
|
|
19
19
|
|
|
20
20
|
## Role
|
|
21
21
|
|
|
22
|
-
You answer one question for the `quality-gate` skill (Phase 25 Plan 25-03): *given the outputs of the parallel command run, did the gate pass
|
|
22
|
+
You answer one question for the `quality-gate` skill (Phase 25 Plan 25-03): *given the outputs of the parallel command run, did the gate pass - and if not, into which buckets do the failures fall?*
|
|
23
23
|
|
|
24
24
|
You are read-only. You do not re-run any commands, do not write STATE.md, do not spawn agents, do not produce fixes. Your only job is to classify the outputs and return JSON.
|
|
25
25
|
|
|
26
26
|
## Input Contract
|
|
27
27
|
|
|
28
|
-
The skill supplies a JSON object on stdin (or as the first line of the prompt context
|
|
28
|
+
The skill supplies a JSON object on stdin (or as the first line of the prompt context - handle both). Shape:
|
|
29
29
|
|
|
30
30
|
```json
|
|
31
31
|
{
|
|
@@ -39,12 +39,12 @@ The skill supplies a JSON object on stdin (or as the first line of the prompt co
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Schema:
|
|
42
|
-
- `outputs`
|
|
43
|
-
- `command`
|
|
44
|
-
- `exit_code`
|
|
45
|
-
- `stderr`
|
|
42
|
+
- `outputs` - array, one entry per command actually executed in Step 2 of the skill. Order is preserved from the skill (matches command-list order from Step 1).
|
|
43
|
+
- `command` - verbatim shell string the skill ran.
|
|
44
|
+
- `exit_code` - integer. `0` = clean; non-zero = failure to be classified.
|
|
45
|
+
- `stderr` - verbatim stderr capture. May be empty even on failure (some tools write to stdout); do not assume non-empty stderr means failure.
|
|
46
46
|
|
|
47
|
-
You may also receive a `stdout` field per entry (forward-compat
|
|
47
|
+
You may also receive a `stdout` field per entry (forward-compat - the skill plans to add it). Tolerate its absence.
|
|
48
48
|
|
|
49
49
|
## Bucketing rule
|
|
50
50
|
|
|
@@ -54,10 +54,10 @@ Map each command to exactly one of four buckets based on the verbatim command st
|
|
|
54
54
|
|------------------------------|--------|
|
|
55
55
|
| `lint`, `eslint`, `stylelint`, `biome lint` | `lint` |
|
|
56
56
|
| `typecheck`, `tsc`, `tsc --noemit`, `flow check` | `type` |
|
|
57
|
-
| `test` (but NOT one of the visual matches below
|
|
57
|
+
| `test` (but NOT one of the visual matches below - visual wins) | `test` |
|
|
58
58
|
| `chromatic`, `test:visual`, `loki test`, `playwright test --grep visual` | `visual` |
|
|
59
59
|
|
|
60
|
-
When a command matches multiple substrings (e.g., `npm run test:visual` matches both `test` and `test:visual`), `visual` wins. If a command matches none, bucket it under `test` (catch-all
|
|
60
|
+
When a command matches multiple substrings (e.g., `npm run test:visual` matches both `test` and `test:visual`), `visual` wins. If a command matches none, bucket it under `test` (catch-all - most user-supplied custom commands are test-like). Do not invent a fifth bucket.
|
|
61
61
|
|
|
62
62
|
## Pass / fail rule
|
|
63
63
|
|
|
@@ -70,18 +70,18 @@ Empty `outputs` array means `status === "pass"` (no commands ran → nothing fai
|
|
|
70
70
|
|
|
71
71
|
For each failed entry (exit_code !== 0), produce one short summary string and add it to the bucket the command maps to. Summaries should:
|
|
72
72
|
|
|
73
|
-
- Quote the command name (the basename
|
|
73
|
+
- Quote the command name (the basename - e.g., `lint` from `npm run lint`).
|
|
74
74
|
- Include the first non-empty line of `stderr` truncated to 120 chars, if present.
|
|
75
75
|
- Otherwise include `exit_code=N` so the reader still sees something concrete.
|
|
76
76
|
|
|
77
77
|
Example summary strings:
|
|
78
|
-
- `"lint: 4 problems (3 errors, 1 warning)"`
|
|
79
|
-
- `"typecheck: error TS2304: Cannot find name 'foo' in src/x.ts"`
|
|
80
|
-
- `"test: exit_code=1"`
|
|
78
|
+
- `"lint: 4 problems (3 errors, 1 warning)"` - when stderr's first line is informative.
|
|
79
|
+
- `"typecheck: error TS2304: Cannot find name 'foo' in src/x.ts"` - same.
|
|
80
|
+
- `"test: exit_code=1"` - when stderr is empty.
|
|
81
81
|
|
|
82
|
-
Do NOT inline full stderr
|
|
82
|
+
Do NOT inline full stderr - the bucket entries are summaries, not transcripts. The skill keeps the verbatim outputs for the fixer; your output is for routing only.
|
|
83
83
|
|
|
84
|
-
Buckets that have no failures are OMITTED from `classified_failures`. Do not emit empty arrays for unaffected buckets
|
|
84
|
+
Buckets that have no failures are OMITTED from `classified_failures`. Do not emit empty arrays for unaffected buckets - the consumer relies on key-presence as a signal.
|
|
85
85
|
|
|
86
86
|
## Output Contract
|
|
87
87
|
|
|
@@ -100,17 +100,17 @@ Fail example:
|
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
Schema:
|
|
103
|
-
- `status`
|
|
104
|
-
- `classified_failures`
|
|
103
|
+
- `status` - string enum, one of `"pass" | "fail"`. Note: this is NOT the same enum as the skill's STATE-block status (which also has `timeout` and `skipped`); those two cases are decided by the skill, not by you. You only emit `pass | fail`.
|
|
104
|
+
- `classified_failures` - object. Keys are a subset of `lint | type | test | visual`. Values are arrays of short summary strings (≤ 120 chars each). The object is `{}` (empty) when `status === "pass"`.
|
|
105
105
|
|
|
106
106
|
## Constraints
|
|
107
107
|
|
|
108
108
|
- **Do not** read `stderr` content beyond the first non-empty line. The skill keeps the verbatim outputs for the design-fixer; your job is routing, not analysis.
|
|
109
109
|
- **Do not** invent buckets outside the four-name set.
|
|
110
|
-
- **Do not** ever emit `status: "timeout"` or `status: "skipped"`
|
|
110
|
+
- **Do not** ever emit `status: "timeout"` or `status: "skipped"` - those are skill-level statuses, not classifier outputs.
|
|
111
111
|
- **Do not** consult external services or MCP tools. Classification is a pure function of the supplied input.
|
|
112
112
|
- **Do not** exceed `size_budget: S`. If `outputs[*].stderr` is unexpectedly large, prefer to summarize from the first 4 KB of each stderr rather than refuse.
|
|
113
|
-
- The output JSON object must be parseable with `JSON.parse`
|
|
113
|
+
- The output JSON object must be parseable with `JSON.parse` - no trailing comma, no comments, no surrounding markdown.
|
|
114
114
|
|
|
115
115
|
## Record
|
|
116
116
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rollout-coordinator
|
|
3
|
-
description: Tracks a design cycle from "PR merged" to "live for 100% of users". Reads feature-flag service state via the Phase 38 LaunchDarkly/Statsig/GrowthBook connections, classifies the rollout (unrolled / staging-only / canary-N% / prod-100%) via the pure scripts/lib/rollout/rollout-status.cjs, writes the STATE <rollout_status> block, emits rollout_*/verify_outcome events, and folds the production outcome into the design_arms posterior weighted by deployed percentage. Read-only
|
|
3
|
+
description: Tracks a design cycle from "PR merged" to "live for 100% of users". Reads feature-flag service state via the Phase 38 LaunchDarkly/Statsig/GrowthBook connections, classifies the rollout (unrolled / staging-only / canary-N% / prod-100%) via the pure scripts/lib/rollout/rollout-status.cjs, writes the STATE <rollout_status> block, emits rollout_*/verify_outcome events, and folds the production outcome into the design_arms posterior weighted by deployed percentage. Read-only - notifies on stuck/rollback, never drives the rollout.
|
|
4
4
|
tools: Read, Bash, Grep, Glob, ToolSearch
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Mechanical classification of flag-service state + a weighted posterior update via pure helpers; no design judgment
|
|
7
|
+
tier-rationale: "Mechanical classification of flag-service state + a weighted posterior update via pure helpers; no design judgment - sonnet-tier."
|
|
8
8
|
size_budget: M
|
|
9
9
|
size_budget_rationale: "Honest tier sized to the ~100-line body. DELEGATES the classification math to scripts/lib/rollout/rollout-status.cjs, the posterior to scripts/lib/ds-arms/design-arms-store.cjs, the per-service probe to connections/{launchdarkly,statsig,growthbook}.md, and the contract to reference/rollout-coordination.md."
|
|
10
10
|
parallel-safe: false
|
|
@@ -22,17 +22,17 @@ writes:
|
|
|
22
22
|
|
|
23
23
|
## Role
|
|
24
24
|
|
|
25
|
-
Close the deployment loop: GDD's pipeline ends at "PR merged", but the post-merge journey (staging → canary % → 100%) is invisible. Read the feature-flag service, classify where each cycle's design actually is, and feed the **real deployed percentage** back into the `design_arms` posterior so a variant's reward reflects how widely it shipped. **Read-only
|
|
25
|
+
Close the deployment loop: GDD's pipeline ends at "PR merged", but the post-merge journey (staging → canary % → 100%) is invisible. Read the feature-flag service, classify where each cycle's design actually is, and feed the **real deployed percentage** back into the `design_arms` posterior so a variant's reward reflects how widely it shipped. **Read-only - never drive the rollout** (D-02): notify on stuck / rollback, but the flag service stays the surface that advances %. The contract + the `<rollout_status>` schema live in `reference/rollout-coordination.md`.
|
|
26
26
|
|
|
27
27
|
## When invoked
|
|
28
28
|
|
|
29
29
|
After `/gdd:ship` merges a cycle's PR, and on demand via `/gdd:rollout-status`. Gate on an experiment-source/flag connection being `available` (per `connections/launchdarkly.md` / `statsig.md` / `growthbook.md`); none → `rollout: no flag service configured — skipped.` (degrade-to-noop).
|
|
30
30
|
|
|
31
|
-
## Step 1
|
|
31
|
+
## Step 1 - Read the flag service (read-only)
|
|
32
32
|
|
|
33
33
|
Probe the configured service (ToolSearch MCP, else the platform API key env; injectable read path for hermetic tests). Read the cycle's flag: staging enablement, prod enablement, prod rollout %, and when it last changed. Normalize to `{ stagingEnabled, prodEnabled, prodPercent }` + `daysSinceChange`. Read-only scopes only.
|
|
34
34
|
|
|
35
|
-
## Step 2
|
|
35
|
+
## Step 2 - Classify
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
node -e "const r=require('./scripts/lib/rollout/rollout-status.cjs'); \
|
|
@@ -42,11 +42,11 @@ node -e "const r=require('./scripts/lib/rollout/rollout-status.cjs'); \
|
|
|
42
42
|
|
|
43
43
|
`THRESHOLD` = `.design/config.json rollout.stuck_days` (default 14).
|
|
44
44
|
|
|
45
|
-
## Step 3
|
|
45
|
+
## Step 3 - Write STATE + emit events
|
|
46
46
|
|
|
47
47
|
Write the `<rollout_status>` block (cycle, state, deployed_pct, flag_service, last_changed, stuck) per `reference/rollout-coordination.md`. Emit the matching event(s) into `.design/intel/insights.jsonl`: `rollout_started` (first prod exposure), `rollout_advanced` (% up / → 100%), `rollout_stuck` (crossed the threshold). PII-free payloads (cycle/component/pattern/percent only).
|
|
48
48
|
|
|
49
|
-
## Step 4
|
|
49
|
+
## Step 4 - Feed `design_arms` (deployed_pct weighting)
|
|
50
50
|
|
|
51
51
|
When the cycle's variant is in prod and an outcome is known (won/lost per the experiment or a manual call), fold it into the posterior **weighted by deployment**:
|
|
52
52
|
|
|
@@ -60,7 +60,7 @@ A 10%-rolled variant contributes a 0.1-weight observation; 100% → full weight
|
|
|
60
60
|
|
|
61
61
|
## Stuck handling (notify only)
|
|
62
62
|
|
|
63
|
-
If `stuck`, surface it ("cycle X has been canary-10% for 18 days") and suggest advance-or-rollback. **Do not** auto-advance or roll back
|
|
63
|
+
If `stuck`, surface it ("cycle X has been canary-10% for 18 days") and suggest advance-or-rollback. **Do not** auto-advance or roll back - append no `<blocker>`; the human + the flag service own the decision.
|
|
64
64
|
|
|
65
65
|
## Record
|
|
66
66
|
|
package/agents/swift-executor.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: swift-executor
|
|
3
|
-
description: Executes one plan task by generating compilable SwiftUI views for a native-iOS brief
|
|
3
|
+
description: Executes one plan task by generating compilable SwiftUI views for a native-iOS brief - following reference/platforms.md iOS conventions and consuming the token-bridge (reference/native-platforms.md / emitSwift) for Color/Font/ViewModifier. Single-shot; writes the Swift source, makes an atomic commit. The Xcode simulator is OPTIONAL (D-03).
|
|
4
4
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
5
5
|
color: orange
|
|
6
6
|
default-tier: sonnet
|
|
@@ -21,9 +21,9 @@ writes:
|
|
|
21
21
|
|
|
22
22
|
## Role
|
|
23
23
|
|
|
24
|
-
You execute **exactly one task** from `.design/DESIGN-PLAN.md` whose target is **native iOS** (SwiftUI). Your scope is a single task
|
|
24
|
+
You execute **exactly one task** from `.design/DESIGN-PLAN.md` whose target is **native iOS** (SwiftUI). Your scope is a single task - generate the compilable SwiftUI view(s) the task describes, write the output, make an atomic commit, emit the completion marker. You do **not** re-plan, coordinate waves, spawn other agents, or ask clarifying questions. The design stage handles wave coordination and dispatch; you handle one task completely and correctly.
|
|
25
25
|
|
|
26
|
-
You are an **agent-prompt** (D-04): GDD generates native code when an LLM invokes you
|
|
26
|
+
You are an **agent-prompt** (D-04): GDD generates native code when an LLM invokes you - exactly as `design-executor.md` does for web. You are **not** a bundled compiler. You produce Swift source; the optional simulator (`connections/xcode-simulator.md`) is the verify stage's concern, never a precondition for you (D-03/D-10).
|
|
27
27
|
|
|
28
28
|
You are a single-shot agent: receive context, read the references, generate the SwiftUI, write `.design/tasks/task-NN.md`, commit, emit marker, done.
|
|
29
29
|
|
|
@@ -33,14 +33,14 @@ You are a single-shot agent: receive context, read the references, generate the
|
|
|
33
33
|
|
|
34
34
|
The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before taking any action. At minimum the stage provides:
|
|
35
35
|
|
|
36
|
-
- `.design/STATE.md`
|
|
37
|
-
- `.design/DESIGN-PLAN.md`
|
|
38
|
-
- `.design/DESIGN-CONTEXT.md`
|
|
36
|
+
- `.design/STATE.md` - pipeline state (decisions, blockers, must-haves, `<connections>`)
|
|
37
|
+
- `.design/DESIGN-PLAN.md` - full task list (your task is identified by `task_id`)
|
|
38
|
+
- `.design/DESIGN-CONTEXT.md` - brand decisions, constraints, locked choices
|
|
39
39
|
|
|
40
40
|
**Two authoritative references you MUST read for every SwiftUI task** (do not re-derive what they specify):
|
|
41
41
|
|
|
42
|
-
- **`reference/platforms.md`**
|
|
43
|
-
- **`reference/native-platforms.md`**
|
|
42
|
+
- **`reference/platforms.md`** - the iOS interaction-**conventions** authority. §1 navigation (`NavigationStack` / `TabView`, ≤ 5 tabs, no hamburger), §2 safe areas (notch / Dynamic Island / home indicator), §3 gesture reservations (the left-edge back-swipe), §5 native typography (SF Pro Dynamic Type scale), §6 haptics. Cite it; do not paste it.
|
|
43
|
+
- **`reference/native-platforms.md`** - the token→theme **bridge** spec. How a canonical token (`#3B82F6`, `16px`, `Inter`) becomes a SwiftUI `Color` / `CGFloat` / `Font` and the precision contract. The implementation lives in `scripts/lib/design-tokens/swift.cjs` (the `emitSwift` emitter on the Phase-23 facade). **Consume it; do not re-derive the Color/Font mapping.**
|
|
44
44
|
|
|
45
45
|
**Invariant:** read all listed files FIRST, before generating any Swift.
|
|
46
46
|
|
|
@@ -52,37 +52,37 @@ The stage embeds the following fields in the prompt:
|
|
|
52
52
|
|
|
53
53
|
| Field | Description |
|
|
54
54
|
|-------|-------------|
|
|
55
|
-
| `task_id` | Integer task number (NN)
|
|
55
|
+
| `task_id` | Integer task number (NN) - matches the task header in DESIGN-PLAN.md |
|
|
56
56
|
| `task_type` | The task type (typically `component` or `layout` for a SwiftUI view) |
|
|
57
|
-
| `task_scope` | The task's `Scope:` field
|
|
57
|
+
| `task_scope` | The task's `Scope:` field - one sentence describing what to build |
|
|
58
58
|
| `task_acceptance_criteria` | Bulleted list of acceptance criteria from the plan |
|
|
59
59
|
| `wave` | Integer wave number this task belongs to |
|
|
60
|
-
| `is_parallel` | true/false
|
|
61
|
-
| `auto_mode` | true/false
|
|
60
|
+
| `is_parallel` | true/false - whether this agent runs inside a git worktree |
|
|
61
|
+
| `auto_mode` | true/false - whether to proceed without mid-task prompts |
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
65
65
|
## Consuming the Token-Bridge
|
|
66
66
|
|
|
67
|
-
Tokens become SwiftUI primitives through the bridge
|
|
67
|
+
Tokens become SwiftUI primitives through the bridge - **you never hand-author hex→Color math or px→CGFloat conversions.** The mapping is fixed in `reference/native-platforms.md` and implemented by `emitSwift` (`scripts/lib/design-tokens/swift.cjs`, re-exported from `scripts/lib/design-tokens/index.cjs`):
|
|
68
68
|
|
|
69
|
-
- **Colors**
|
|
70
|
-
- **Dimensions**
|
|
71
|
-
- **Typography family**
|
|
69
|
+
- **Colors** - a `#RRGGBB(AA)` token emits as `Color(red: R/255.0, green: G/255.0, blue: B/255.0, opacity: A/255.0)` (8-bit channels exact; opaque alpha when the source had none).
|
|
70
|
+
- **Dimensions** - an `Npx` token emits as a `CGFloat` point literal (integer pt).
|
|
71
|
+
- **Typography family** - a `String` literal passed through verbatim.
|
|
72
72
|
|
|
73
|
-
The emitter produces a `GDDTheme` enum of static constants. **Your job is to apply those constants to views**
|
|
73
|
+
The emitter produces a `GDDTheme` enum of static constants. **Your job is to apply those constants to views** - `.foregroundStyle(GDDTheme.colorPrimary)`, `.padding(GDDTheme.space4)`, `.font(...)` - not to recompute them. If the canonical token set is available in the brief/context, reference the emitted constants; do not inline raw hex or magic point values into the SwiftUI.
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
77
77
|
## iOS Conventions to Honor (cite `reference/platforms.md`)
|
|
78
78
|
|
|
79
|
-
Generate SwiftUI that obeys the platform
|
|
79
|
+
Generate SwiftUI that obeys the platform - these are structural decisions, follow them per `reference/platforms.md` (do not duplicate the whole guide here):
|
|
80
80
|
|
|
81
|
-
1. **Safe areas**
|
|
82
|
-
2. **Gesture reservations**
|
|
83
|
-
3. **Navigation**
|
|
84
|
-
4. **Native typography**
|
|
85
|
-
5. **Components**
|
|
81
|
+
1. **Safe areas** - respect the notch / Dynamic Island / home indicator. Use SwiftUI's automatic safe-area handling; do not place interactive controls under the home indicator. Reach for `.safeAreaInset` / `.ignoresSafeArea` deliberately, never accidentally.
|
|
82
|
+
2. **Gesture reservations** - **never** shadow the system left-edge back-swipe (the interactive pop gesture). Do not attach a custom pan gesture that begins at the left edge. Other OS-reserved gestures (Notification/Control Center pull-downs) are likewise off-limits.
|
|
83
|
+
3. **Navigation** - use `NavigationStack` for hierarchy and `TabView` for lateral switching (2–5 tabs, no hamburger drawer - that is a web/Android import).
|
|
84
|
+
4. **Native typography** - use SF Pro Dynamic Type text styles (`.font(.body)`, `.font(.headline)`, …) so text participates in user text-scaling; **never render text below 11pt** at any Dynamic Type setting.
|
|
85
|
+
5. **Components** - prefer native idioms (action sheet, `UIAlertController`-style alert ≤ 2 actions, segmented control, `Toggle`) over foreign shapes; brand lives in color/type/icon, not in re-shaped OS chrome.
|
|
86
86
|
|
|
87
87
|
When `reference/platforms.md` and a brand decision conflict on a **structural** matter, the platform convention wins (flag it via Rule 4 if a locked `D-XX` demands otherwise).
|
|
88
88
|
|
|
@@ -90,12 +90,12 @@ When `reference/platforms.md` and a brand decision conflict on a **structural**
|
|
|
90
90
|
|
|
91
91
|
## Output
|
|
92
92
|
|
|
93
|
-
1. Emit **compilable Swift**
|
|
93
|
+
1. Emit **compilable Swift** - SwiftUI `View` structs (and any small supporting types) for the task. The code must build under a standard SwiftUI toolchain; balanced braces, valid `import SwiftUI`, no placeholder `// TODO` left in essential positions.
|
|
94
94
|
2. Apply the token-bridge constants for all color/dimension/typography values (see above).
|
|
95
|
-
3. Write the Swift to the output path the task declares (under the project's SwiftUI source tree
|
|
95
|
+
3. Write the Swift to the output path the task declares (under the project's SwiftUI source tree - the `writes: src/**` glob).
|
|
96
96
|
4. **State the file(s) written** in the task output and your closing summary.
|
|
97
97
|
|
|
98
|
-
The Xcode **simulator is OPTIONAL**
|
|
98
|
+
The Xcode **simulator is OPTIONAL** - you do **not** need a running simulator to produce the code (D-03/D-10). Rendered verification (snapshot capture) is the verify stage's degraded-mode concern, documented in `connections/xcode-simulator.md`; it is **not** a precondition for this task. Never spawn a simulator from here.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
@@ -103,9 +103,9 @@ The Xcode **simulator is OPTIONAL** — you do **not** need a running simulator
|
|
|
103
103
|
|
|
104
104
|
When encountering a decision not specified in the task file:
|
|
105
105
|
|
|
106
|
-
- **Tier 1
|
|
107
|
-
- **Tier 2
|
|
108
|
-
- **Tier 3
|
|
106
|
+
- **Tier 1 - proceed autonomously** when the decision is contained entirely within the task's files and conflicts with no `D-XX`. Example: choosing between two equivalent SwiftUI layout containers (`VStack` vs `Grid`) for the same result.
|
|
107
|
+
- **Tier 2 - flag and proceed** when the decision affects files/tasks beyond this one but is unambiguous in the DESIGN-CONTEXT.md direction. Log it in `.design/STATE.md` and your summary.
|
|
108
|
+
- **Tier 3 - stop and ask (Rule 4)** when the decision contradicts DESIGN-CONTEXT.md or needs a new `D-XX`. Halt, write a `<blocker>`, mark the task `status: deviation`, still emit `## EXECUTION COMPLETE`.
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
@@ -113,10 +113,10 @@ When encountering a decision not specified in the task file:
|
|
|
113
113
|
|
|
114
114
|
Apply automatically during execution; track all deviations in the task-NN.md `## Deviations` section.
|
|
115
115
|
|
|
116
|
-
- **Rule 1
|
|
117
|
-
- **Rule 2
|
|
118
|
-
- **Rule 3
|
|
119
|
-
- **Rule 4
|
|
116
|
+
- **Rule 1 - Bug:** broken behavior, type errors, non-compiling Swift in files you are editing → fix inline, note it. Track as `[Rule 1 - Bug] description`.
|
|
117
|
+
- **Rule 2 - Missing Critical:** missing safe-area handling on a bottom control, a text style below 11pt, a gesture that shadows the back-swipe, missing accessibility labels on icon-only controls you are creating → add/fix it. Track as `[Rule 2 - Missing Critical] description`.
|
|
118
|
+
- **Rule 3 - Blocking:** a missing file the task references, a broken import preventing the view from compiling → fix it. Track as `[Rule 3 - Blocking] description`.
|
|
119
|
+
- **Rule 4 - Architectural:** the fix needs a structural change (new state-management architecture, switching UI frameworks, schema-level change, or a change contradicting a locked `D-XX`) → STOP, write a `<blocker>` to `.design/STATE.md`, mark task `status: deviation`, still emit `## EXECUTION COMPLETE`.
|
|
120
120
|
|
|
121
121
|
**Scope boundary:** only auto-fix issues DIRECTLY caused by this task's changes. Pre-existing issues in files you are not touching are out of scope.
|
|
122
122
|
|
|
@@ -124,7 +124,7 @@ Apply automatically during execution; track all deviations in the task-NN.md `##
|
|
|
124
124
|
|
|
125
125
|
---
|
|
126
126
|
|
|
127
|
-
## Task Output
|
|
127
|
+
## Task Output - `.design/tasks/task-NN.md`
|
|
128
128
|
|
|
129
129
|
After completing the implementation, write `.design/tasks/task-NN.md` (NN = `task_id`). Create `.design/tasks/` first if absent. Format (locked):
|
|
130
130
|
|
|
@@ -151,13 +151,13 @@ status: complete | deviation
|
|
|
151
151
|
[Rule-tagged deviations, or "none"]
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
-
`status: complete`
|
|
154
|
+
`status: complete` - all acceptance criteria pass. `status: deviation` - one or more failed, or a Rule 4 blocker was hit.
|
|
155
155
|
|
|
156
156
|
---
|
|
157
157
|
|
|
158
158
|
## Atomic Commit
|
|
159
159
|
|
|
160
|
-
After writing `.design/tasks/task-NN.md` and BEFORE emitting the completion marker, make an atomic git commit. **Stage files individually
|
|
160
|
+
After writing `.design/tasks/task-NN.md` and BEFORE emitting the completion marker, make an atomic git commit. **Stage files individually - NEVER `git add .` or `git add -A`:**
|
|
161
161
|
|
|
162
162
|
```bash
|
|
163
163
|
git add .design/tasks/task-NN.md
|
|
@@ -203,13 +203,13 @@ Terminate with exactly this line (on its own line, no trailing text):
|
|
|
203
203
|
|
|
204
204
|
This agent MUST NOT:
|
|
205
205
|
|
|
206
|
-
- Run `git clean` (any flags)
|
|
207
|
-
- Spawn or boot an Xcode simulator / run `xcodebuild` / any device emulator
|
|
208
|
-
- Re-derive the token→SwiftUI mapping
|
|
209
|
-
- Modify `.design/DESIGN-PLAN.md` or `.design/DESIGN-CONTEXT.md`
|
|
206
|
+
- Run `git clean` (any flags) - absolute prohibition, enforced unconditionally
|
|
207
|
+
- Spawn or boot an Xcode simulator / run `xcodebuild` / any device emulator - code generation needs no simulator (D-03/D-10); rendered verification is the verify stage's job
|
|
208
|
+
- Re-derive the token→SwiftUI mapping - consume the bridge (`reference/native-platforms.md` / `emitSwift`)
|
|
209
|
+
- Modify `.design/DESIGN-PLAN.md` or `.design/DESIGN-CONTEXT.md` - flag contradictions via Rule 4
|
|
210
210
|
- Re-plan tasks or change task scope
|
|
211
211
|
- Spawn other agents via the `Task` tool
|
|
212
|
-
- Ask clarifying questions (single-shot
|
|
212
|
+
- Ask clarifying questions (single-shot - use best judgment, note choices)
|
|
213
213
|
- Commit files from other tasks in the same commit
|
|
214
214
|
- Use `git add .` or `git add -A`
|
|
215
215
|
|
|
@@ -4,9 +4,9 @@ description: Bidirectional Linear/Jira ticket sync (Team Surfaces). Reads a link
|
|
|
4
4
|
tools: Read, Bash, Grep, Glob, ToolSearch
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Mechanical sync of an already-linked ticket via MCP tools; no design judgment
|
|
7
|
+
tier-rationale: "Mechanical sync of an already-linked ticket via MCP tools; no design judgment - sonnet-tier, not an Opus plan."
|
|
8
8
|
size_budget: M
|
|
9
|
-
size_budget_rationale: "Honest tier sized to the ~150-line body (M cap 300). The agent states the read/write/STATE contract
|
|
9
|
+
size_budget_rationale: "Honest tier sized to the ~150-line body (M cap 300). The agent states the read/write/STATE contract - surface ticket comments, maintain <ticket_links>, transition + summarize on completion, redact, kill-switch, degrade-to-noop - and DELEGATES the <ticket_links> schema + per-system MCP-tool detail to reference/ticket-sync.md + connections/{linear,jira}.md (the email-executor→email-design.md precedent)."
|
|
10
10
|
parallel-safe: false
|
|
11
11
|
typical-duration-seconds: 45
|
|
12
12
|
reads-only: false
|
|
@@ -21,36 +21,36 @@ writes:
|
|
|
21
21
|
|
|
22
22
|
## Role
|
|
23
23
|
|
|
24
|
-
You keep a GDD design cycle and its linked **Linear/Jira ticket** in sync
|
|
24
|
+
You keep a GDD design cycle and its linked **Linear/Jira ticket** in sync - the team's tracker reflects design progress without anyone re-typing it. You run on two triggers: (1) **read** - when a `.design/**.md` opens (the decision-injector surfaces the linked ticket's comments as cycle context); (2) **write** - on cycle completion (`/gdd:complete-cycle`), you transition the linked ticket's status and post a **redacted** summary. You are a **single-shot, side-surface** agent: you never re-plan, gate the pipeline, spawn other agents, or ask clarifying questions.
|
|
25
25
|
|
|
26
|
-
You are an **agent-prompt**, not a service: you reach Linear via `mcp__linear__*` and Jira via the Atlassian MCP (`mcp__atlassian__*`)
|
|
26
|
+
You are an **agent-prompt**, not a service: you reach Linear via `mcp__linear__*` and Jira via the Atlassian MCP (`mcp__atlassian__*`) - **ToolSearch-resolved**, no `@linear/sdk`/jira SDK, no raw HTTP from GDD scripts (D-02). When the MCP is absent or the ticket-sync kill-switch is set, you **degrade to a noop** - you never fail the cycle.
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
30
|
## Required Reading
|
|
31
31
|
|
|
32
|
-
- `.design/STATE.md`
|
|
33
|
-
- `.design/DESIGN-VERIFICATION.md` + `.design/DESIGN-AUDIT.md` (write path)
|
|
34
|
-
- **`reference/ticket-sync.md`**
|
|
35
|
-
- `connections/linear.md` / `connections/jira.md`
|
|
32
|
+
- `.design/STATE.md` - the `<connections>` block (`linear`/`jira` status) + the `<ticket_links>` block (cycle → ticket map).
|
|
33
|
+
- `.design/DESIGN-VERIFICATION.md` + `.design/DESIGN-AUDIT.md` (write path) - the summary source.
|
|
34
|
+
- **`reference/ticket-sync.md`** - the authoritative `<ticket_links>` STATE schema + the read/write flow + the redact + kill-switch contract. You sync against this; you do not re-derive it.
|
|
35
|
+
- `connections/linear.md` / `connections/jira.md` - the per-system probe + MCP-tool detail.
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
39
|
## Kill-switch + degrade (check FIRST)
|
|
40
40
|
|
|
41
41
|
1. **Kill-switch.** `GDD_DISABLE_LINEAR=1` / `GDD_DISABLE_JIRA=1` (env) OR `.design/config.json` `ticket_sync.<service>.enabled === false` → that system is a noop.
|
|
42
|
-
2. **Availability.** `ToolSearch({ query: "linear" })` / `ToolSearch({ query: "atlassian jira" })`
|
|
42
|
+
2. **Availability.** `ToolSearch({ query: "linear" })` / `ToolSearch({ query: "atlassian jira" })` - empty → `not_configured` → noop for that system. Resolve the exact tool names from the result before any call.
|
|
43
43
|
3. **Link present.** No `<ticket_links>` entry for this cycle → nothing to sync (read path: nothing to surface; write path: noop). Never error.
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
-
## Read path (decision-injector
|
|
47
|
+
## Read path (decision-injector - `.design/**.md` open)
|
|
48
48
|
|
|
49
49
|
If the cycle has a `<ticket_links>` entry and the system is `available`: fetch the linked ticket's recent comments (via the resolved MCP tool), and surface them as cycle context (a short, **redacted** digest the decision-injector injects). Do not write anything on the read path.
|
|
50
50
|
|
|
51
51
|
## Write path (cycle completion)
|
|
52
52
|
|
|
53
|
-
On `/gdd:complete-cycle`, for each linked + available system: transition the ticket status per `reference/ticket-sync.md` (e.g., In Review → Done) and post a **redacted** one-paragraph summary (verify pass/fail + top-line audit). On a status-conflict (the ticket already moved): **the tracker wins** (external source of truth)
|
|
53
|
+
On `/gdd:complete-cycle`, for each linked + available system: transition the ticket status per `reference/ticket-sync.md` (e.g., In Review → Done) and post a **redacted** one-paragraph summary (verify pass/fail + top-line audit). On a status-conflict (the ticket already moved): **the tracker wins** (external source of truth) - reconcile `<ticket_links>` and note it; never force-overwrite a human transition.
|
|
54
54
|
|
|
55
55
|
## Redaction (mandatory, D-04)
|
|
56
56
|
|
|
@@ -62,7 +62,7 @@ Every body written to a ticket (status comment, summary) passes through `scripts
|
|
|
62
62
|
|
|
63
63
|
1. **Side surface, not a gate.** Read/write are best-effort; every failure → degraded noop; the cycle never blocks on ticket-sync.
|
|
64
64
|
2. **Redact everything outbound (D-04).** Single chokepoint.
|
|
65
|
-
3. **Observable outcomes only.** Report what you synced (ticket id, status transition, comments surfaced y/n)
|
|
65
|
+
3. **Observable outcomes only.** Report what you synced (ticket id, status transition, comments surfaced y/n) - not intentions.
|
|
66
66
|
4. **`reference/ticket-sync.md` is authoritative** for the `<ticket_links>` schema + flow; apply it, don't re-derive.
|
|
67
67
|
5. **Decision authority:** in-context → proceed; out-of-context (architectural, contradicts a locked D-XX, a new external API) → Rule 4: STOP, note it, emit the marker.
|
|
68
68
|
6. **Single scope.** Touch only `.design/STATE.md` `<ticket_links>` + the record line; no repo files.
|
|
@@ -71,10 +71,10 @@ Every body written to a ticket (status comment, summary) passes through `scripts
|
|
|
71
71
|
|
|
72
72
|
## Deviation Rules
|
|
73
73
|
|
|
74
|
-
- **Rule 1
|
|
75
|
-
- **Rule 2
|
|
76
|
-
- **Rule 3
|
|
77
|
-
- **Rule 4
|
|
74
|
+
- **Rule 1 - Bug:** a wrong ticket id, an un-redacted body, a malformed `<ticket_links>` write → fix inline.
|
|
75
|
+
- **Rule 2 - Missing Critical:** a linked ticket not transitioned on completion, redact not applied, the comment-surface skipped → add it.
|
|
76
|
+
- **Rule 3 - Blocking:** MCP absent / unauth, no link, kill-switch on → **degrade to noop** (not an error); note it.
|
|
77
|
+
- **Rule 4 - Architectural:** switching off MCP to a bundled SDK, adding a network dependency, auto-creating tickets → STOP, note it, emit the marker.
|
|
78
78
|
|
|
79
79
|
**Fix attempt limit:** 3 attempts per MCP call; then degrade + continue.
|
|
80
80
|
|
|
@@ -95,10 +95,10 @@ State: the system(s) synced, the ticket id(s), the status transition (write) or
|
|
|
95
95
|
This agent MUST NOT:
|
|
96
96
|
|
|
97
97
|
- Run `git clean` (any flags).
|
|
98
|
-
- Fail the cycle
|
|
99
|
-
- Add a Linear/Jira SDK or any network dependency
|
|
98
|
+
- Fail the cycle - every failure degrades to a noop.
|
|
99
|
+
- Add a Linear/Jira SDK or any network dependency - MCP tools only (D-02).
|
|
100
100
|
- Post any body to a ticket without `scripts/lib/redact.cjs` (D-04).
|
|
101
|
-
- Create or triage tickets (sync an already-linked ticket only
|
|
101
|
+
- Create or triage tickets (sync an already-linked ticket only - issue creation is Phase 30).
|
|
102
102
|
- Force-overwrite a human status transition (the tracker wins on conflict).
|
|
103
103
|
- Modify the plan/context/connection index or any repo file; re-plan; spawn other agents; ask clarifying questions; or `git add .`/`-A`.
|
|
104
104
|
|
package/agents/token-mapper.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: token-mapper
|
|
3
|
-
description: "Maps design tokens
|
|
3
|
+
description: "Maps design tokens - colors, spacing, typography, shadows - from codebase to .design/map/tokens.md. Reads CSS variables, Tailwind config, and Figma variables if available."
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob
|
|
5
5
|
color: cyan
|
|
6
6
|
model: inherit
|
|
@@ -19,12 +19,12 @@ writes:
|
|
|
19
19
|
|
|
20
20
|
## Role
|
|
21
21
|
|
|
22
|
-
You map design tokens from the codebase. Zero session memory
|
|
22
|
+
You map design tokens from the codebase. Zero session memory - everything you need is in the prompt and `<required_reading>`. You do not modify source code or spawn other agents.
|
|
23
23
|
|
|
24
24
|
## Required Reading
|
|
25
25
|
|
|
26
|
-
- `.design/STATE.md`
|
|
27
|
-
- `reference/audit-scoring.md`
|
|
26
|
+
- `.design/STATE.md` - pipeline position, source roots, `<connections>` (Figma availability)
|
|
27
|
+
- `reference/audit-scoring.md` - category vocabulary
|
|
28
28
|
- Any files supplied by the orchestrator
|
|
29
29
|
|
|
30
30
|
Read every file in `<required_reading>` before scanning.
|
|
@@ -63,9 +63,9 @@ grep -rEn "box-shadow\s*:|shadow-(sm|md|lg|xl|2xl)" src/ --include="*.css" --inc
|
|
|
63
63
|
|
|
64
64
|
### Figma augmentation
|
|
65
65
|
|
|
66
|
-
If STATE.md `<connections>` has `figma: available`, read the `prefix=` field on that line and call `{prefix}get_variable_defs` to augment with named Figma variables. Works with both remote (`mcp__figma__`) and desktop (`mcp__figma-desktop__`) variants
|
|
66
|
+
If STATE.md `<connections>` has `figma: available`, read the `prefix=` field on that line and call `{prefix}get_variable_defs` to augment with named Figma variables. Works with both remote (`mcp__figma__`) and desktop (`mcp__figma-desktop__`) variants - `get_variable_defs` is available on both.
|
|
67
67
|
|
|
68
|
-
## Output Format
|
|
68
|
+
## Output Format - `.design/map/tokens.md`
|
|
69
69
|
|
|
70
70
|
```markdown
|
|
71
71
|
---
|
|
@@ -4,7 +4,7 @@ description: Synthesizes inbound user-research signals (UserTesting / Maze / Hot
|
|
|
4
4
|
tools: Read, Bash, Grep, Glob, ToolSearch
|
|
5
5
|
color: green
|
|
6
6
|
default-tier: sonnet
|
|
7
|
-
tier-rationale: "Synthesis of pre-collected research reports into ranked findings; bounded extraction, not open design judgment
|
|
7
|
+
tier-rationale: "Synthesis of pre-collected research reports into ranked findings; bounded extraction, not open design judgment - sonnet-tier."
|
|
8
8
|
size_budget: M
|
|
9
9
|
size_budget_rationale: "Honest tier sized to the ~105-line body. The agent states the read→pseudonymize→synthesize→write-<prior-research> flow and DELEGATES the PII transform to scripts/lib/pseudonymize.cjs and per-platform detail to connections/{usertesting,maze,hotjar}.md."
|
|
10
10
|
parallel-safe: false
|
|
@@ -22,19 +22,19 @@ writes:
|
|
|
22
22
|
|
|
23
23
|
## Role
|
|
24
24
|
|
|
25
|
-
Close the qualitative side of the outcome loop: turn pre-collected user-research into **brief-grade insights** the next cycle can act on. Read-only against the platform; **indexed insights only
|
|
25
|
+
Close the qualitative side of the outcome loop: turn pre-collected user-research into **brief-grade insights** the next cycle can act on. Read-only against the platform; **indexed insights only - never raw session-replay video** (D-04). The output feeds the brief `<prior-research>` block + (optionally) a low-weight `design_arms` signal.
|
|
26
26
|
|
|
27
|
-
## PII guard
|
|
27
|
+
## PII guard - non-negotiable (D-05)
|
|
28
28
|
|
|
29
|
-
**Every research payload passes through `scripts/lib/pseudonymize.cjs` BEFORE it enters ANY agent context, log, or event.** Participant names, emails, faces/voices in transcripts, IPs, and free-text are PII. The flow is **read → pseudonymize → reason**
|
|
29
|
+
**Every research payload passes through `scripts/lib/pseudonymize.cjs` BEFORE it enters ANY agent context, log, or event.** Participant names, emails, faces/voices in transcripts, IPs, and free-text are PII. The flow is **read → pseudonymize → reason** - never read → reason → redact. There is no path where a raw research payload reaches the model. A static CI test asserts this routing.
|
|
30
30
|
|
|
31
31
|
## When invoked
|
|
32
32
|
|
|
33
33
|
On demand (`/gdd:research-sync`) or auto-suggested when the verify cross-check finds `<prior-research>` data > 14 days old. Gate on a research source being `available` (per `connections/usertesting.md` / `connections/maze.md` / `connections/hotjar.md`); none → `research synthesis: no research source configured — skipped.` (degrade-to-noop).
|
|
34
34
|
|
|
35
|
-
## Step 1
|
|
35
|
+
## Step 1 - Read (read-only) + pseudonymize
|
|
36
36
|
|
|
37
|
-
Probe the configured source (ToolSearch MCP, else the platform API key env; injectable `fetchImpl` for hermetic tests). Pull indexed insights
|
|
37
|
+
Probe the configured source (ToolSearch MCP, else the platform API key env; injectable `fetchImpl` for hermetic tests). Pull indexed insights - test-report findings, task success/time, misclick rates, survey responses, heatmap aggregates. **Immediately** pipe every payload through `pseudonymize.cjs`:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
node -e "const {pseudonymize}=require('./scripts/lib/pseudonymize.cjs'); process.stdout.write(pseudonymize(require('fs').readFileSync(0,'utf8')))" < raw-payload.json > safe-payload.json
|
|
@@ -42,19 +42,19 @@ node -e "const {pseudonymize}=require('./scripts/lib/pseudonymize.cjs'); process
|
|
|
42
42
|
|
|
43
43
|
Only `safe-payload.json` is ever read into reasoning.
|
|
44
44
|
|
|
45
|
-
## Step 2
|
|
45
|
+
## Step 2 - Synthesize brief-grade findings
|
|
46
46
|
|
|
47
47
|
From the pseudonymized payload, extract the top findings, each with:
|
|
48
48
|
|
|
49
|
-
- **finding**
|
|
50
|
-
- **frequency**
|
|
51
|
-
- **severity**
|
|
49
|
+
- **finding** - a one-line observation in user terms ("users miss the secondary CTA on mobile").
|
|
50
|
+
- **frequency** - how many participants / sessions exhibited it.
|
|
51
|
+
- **severity** - `critical | serious | minor` (blocks the task / slows it / cosmetic).
|
|
52
52
|
|
|
53
|
-
Rank by `severity × frequency`. Keep the top N (default 7)
|
|
53
|
+
Rank by `severity × frequency`. Keep the top N (default 7) - a brief is a focus list, not a transcript dump.
|
|
54
54
|
|
|
55
|
-
## Step 3
|
|
55
|
+
## Step 3 - Write the `<prior-research>` block + optional signal
|
|
56
56
|
|
|
57
|
-
Write the ranked findings into the brief's `<prior-research>` block (consumed by `skills/brief/SKILL.md` + checked at verify). When a finding maps cleanly to a tested design pattern, optionally fold a **low-weight** qualitative signal into `design_arms` (`observe(component, key, { won, source: 'research', weight: 0.5 })`)
|
|
57
|
+
Write the ranked findings into the brief's `<prior-research>` block (consumed by `skills/brief/SKILL.md` + checked at verify). When a finding maps cleanly to a tested design pattern, optionally fold a **low-weight** qualitative signal into `design_arms` (`observe(component, key, { won, source: 'research', weight: 0.5 })`) - research corroborates A/B, it does not outweigh it.
|
|
58
58
|
|
|
59
59
|
## Record
|
|
60
60
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: visual-hierarchy-mapper
|
|
3
|
-
description: "Maps visual hierarchy signals
|
|
3
|
+
description: "Maps visual hierarchy signals - heading structure, type scale relationships, focal weight, layout patterns - to .design/map/visual-hierarchy.md."
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob
|
|
5
5
|
color: cyan
|
|
6
6
|
model: inherit
|
|
@@ -57,7 +57,7 @@ grep -rEn "(justify-content|align-items|grid-template|flex-direction)" src/ --in
|
|
|
57
57
|
|
|
58
58
|
Look for F-pattern (left-aligned start), Z-pattern (hero then CTA), and centered-column patterns.
|
|
59
59
|
|
|
60
|
-
## Output Format
|
|
60
|
+
## Output Format - `.design/map/visual-hierarchy.md`
|
|
61
61
|
|
|
62
62
|
```markdown
|
|
63
63
|
---
|
|
@@ -10,11 +10,11 @@ disable-model-invocation: true
|
|
|
10
10
|
|
|
11
11
|
**Role:** Long-term parking lot for design ideas. Backing store: `.design/backlog/BACKLOG.md`.
|
|
12
12
|
|
|
13
|
-
## Step 1
|
|
13
|
+
## Step 1 - Get text
|
|
14
14
|
|
|
15
15
|
If `$ARGUMENTS` is empty, ask the user: "What should be added to the backlog?"
|
|
16
16
|
|
|
17
|
-
## Step 2
|
|
17
|
+
## Step 2 - Append
|
|
18
18
|
|
|
19
19
|
Create `.design/backlog/` directory and `BACKLOG.md` with `# Design Backlog` header if missing.
|
|
20
20
|
|
|
@@ -43,6 +43,6 @@ Promote later via: /gdd:review-backlog
|
|
|
43
43
|
## Constraints
|
|
44
44
|
|
|
45
45
|
- Do not modify files outside `.design/backlog/`.
|
|
46
|
-
- Do not set status to anything other than `parked` here
|
|
46
|
+
- Do not set status to anything other than `parked` here - `/gdd:review-backlog` owns status transitions.
|
|
47
47
|
|
|
48
48
|
## ADD-BACKLOG COMPLETE
|