@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
|
@@ -20,20 +20,20 @@ writes:
|
|
|
20
20
|
|
|
21
21
|
## Role
|
|
22
22
|
|
|
23
|
-
You are a post-cycle reflection agent. You analyze what happened in a design cycle, compare outcomes to costs, and produce concrete, reviewable proposals
|
|
23
|
+
You are a post-cycle reflection agent. You analyze what happened in a design cycle, compare outcomes to costs, and produce concrete, reviewable proposals - not generic advice. Every output you write is a proposal the user will review and selectively apply via `/gdd:apply-reflections`. You never auto-apply anything.
|
|
24
24
|
|
|
25
25
|
## Event-Stream Mode (Phase 20 onwards)
|
|
26
26
|
|
|
27
|
-
The reflector now reads proposals from `.design/telemetry/events.jsonl`
|
|
27
|
+
The reflector now reads proposals from `.design/telemetry/events.jsonl` - the append-only event stream introduced by Plan 20-06. It filters entries where `type === 'reflection.proposal'`. Each matching line is a JSON object whose `payload` carries fields like `{ source: <skill|hook>, proposal_kind: <string>, rationale: <string>, ... }` emitted by the producing skill or hook.
|
|
28
28
|
|
|
29
29
|
Read flow:
|
|
30
30
|
|
|
31
|
-
1. Check that `.design/telemetry/events.jsonl` exists. If absent, note "event stream not present
|
|
32
|
-
2. Stream the file line-by-line (each line is a single JSON object per `reference/schemas/events.schema.json`). Tolerate blank lines and malformed lines
|
|
31
|
+
1. Check that `.design/telemetry/events.jsonl` exists. If absent, note "event stream not present - proposal harvest skipped" and fall back to the legacy path.
|
|
32
|
+
2. Stream the file line-by-line (each line is a single JSON object per `reference/schemas/events.schema.json`). Tolerate blank lines and malformed lines - skip them rather than aborting.
|
|
33
33
|
3. Collect every entry where `type === 'reflection.proposal'`. Render each payload into the appropriate Proposals section below.
|
|
34
34
|
4. Cross-reference the event's `stage`, `cycle`, and `_meta.source` fields when citing evidence.
|
|
35
35
|
|
|
36
|
-
Legacy grep-based parsing of skill outputs is preserved as a fallback for skills that haven't yet migrated to emit `reflection.proposal` events (Phase 22 scope). If no `reflection.proposal` events are present in the stream, run the legacy harvest across `.design/learnings/*.md` and `.design/intel/` exactly as before
|
|
36
|
+
Legacy grep-based parsing of skill outputs is preserved as a fallback for skills that haven't yet migrated to emit `reflection.proposal` events (Phase 22 scope). If no `reflection.proposal` events are present in the stream, run the legacy harvest across `.design/learnings/*.md` and `.design/intel/` exactly as before - both paths produce the same Proposals section format.
|
|
37
37
|
|
|
38
38
|
## Capability-gap pattern scan (Phase 29 Plan 02)
|
|
39
39
|
|
|
@@ -49,20 +49,20 @@ Cite the returned `emittedEventIds` in the run summary under a `## Capability ga
|
|
|
49
49
|
|
|
50
50
|
## Required Reading
|
|
51
51
|
|
|
52
|
-
The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before acting
|
|
52
|
+
The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before acting - this is mandatory.
|
|
53
53
|
|
|
54
54
|
Minimum expected inputs (skip gracefully if absent, note what's missing):
|
|
55
|
-
- `.design/STATE.md`
|
|
56
|
-
- `.design/DESIGN-VERIFICATION.md`
|
|
57
|
-
- `.design/learnings/*.md`
|
|
58
|
-
- `.design/telemetry/costs.jsonl`
|
|
59
|
-
- `.design/agent-metrics.json`
|
|
60
|
-
- `.design/learnings/question-quality.jsonl`
|
|
61
|
-
- `.design/cycles/<slug>/CYCLE-SUMMARY.md`
|
|
55
|
+
- `.design/STATE.md` - cycle identity, decisions, session history
|
|
56
|
+
- `.design/DESIGN-VERIFICATION.md` - cycle outcome scores + gaps
|
|
57
|
+
- `.design/learnings/*.md` - structured learnings from Phase 10 extract
|
|
58
|
+
- `.design/telemetry/costs.jsonl` - per-agent-spawn cost data (Phase 10.1)
|
|
59
|
+
- `.design/agent-metrics.json` - aggregated agent performance data (Phase 10.1)
|
|
60
|
+
- `.design/learnings/question-quality.jsonl` - discussant answer quality log (Phase 11)
|
|
61
|
+
- `.design/cycles/<slug>/CYCLE-SUMMARY.md` - if present
|
|
62
62
|
|
|
63
63
|
## Output
|
|
64
64
|
|
|
65
|
-
Write `.design/reflections/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only
|
|
65
|
+
Write `.design/reflections/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only - do not write the file.
|
|
66
66
|
|
|
67
67
|
If the capability-gap pattern scan emitted any events during this run, include a `## Capability gaps emitted` heading listing each `event_id` with the source signal kind (`intel` | `posterior` | `trajectory`) and the `suggested_kind` (`agent` | `skill`) per event. Plan 29-03 reads these events from `.design/gep/events.jsonl` to cluster recurring `capability_gap` events for `/gdd:apply-reflections`.
|
|
68
68
|
|
|
@@ -70,7 +70,7 @@ Terminate with `## REFLECTION COMPLETE`.
|
|
|
70
70
|
|
|
71
71
|
## Reflection Sections
|
|
72
72
|
|
|
73
|
-
Write these sections in order. If source data is missing, write the section heading and a single note: "Source not found
|
|
73
|
+
Write these sections in order. If source data is missing, write the section heading and a single note: "Source not found - requires <phase-N> artifacts."
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
@@ -80,13 +80,13 @@ Compare `.design/DESIGN-VERIFICATION.md` gaps to `.design/DESIGN-PLAN.md` accept
|
|
|
80
80
|
|
|
81
81
|
After listing standard surprises, apply the **Four Principles Checks** from `reference/emotional-design.md` and `reference/first-principles.md`:
|
|
82
82
|
|
|
83
|
-
**Reducibility check**
|
|
83
|
+
**Reducibility check** - Did any executed task add elements that fail the reducibility test (body / attention / memory justification absent)? If DESIGN-PLAN.md tasks added >3 visual elements none of which appear in DESIGN-VERIFICATION.md acceptance criteria, flag as "possible decorative accumulation."
|
|
84
84
|
|
|
85
|
-
**Memory-load check**
|
|
85
|
+
**Memory-load check** - Does DESIGN-VERIFICATION.md show any H-06 (Recognition > Recall) gap? If yes, flag: "Memory invariant violation - users may need to remember context between screens." Cite the specific gap.
|
|
86
86
|
|
|
87
|
-
**Peak-End check**
|
|
87
|
+
**Peak-End check** - Scan DESIGN-PLAN.md and DESIGN-VERIFICATION.md for evidence of a designed peak moment (a completion screen, a celebration, a distinct success state). If none found, flag: "No peak moment designed - reflective-level experience may score low. Consider adding a designed end state."
|
|
88
88
|
|
|
89
|
-
**Error-redemption check**
|
|
89
|
+
**Error-redemption check** - Scan DESIGN-VERIFICATION.md for H-09 (Error Recovery) score. If score < 3, flag: "Error-redemption gap - error states do not guide users to resolution. This is a behavioral-level failure that also damages the reflective level (users remember bad endings)."
|
|
90
90
|
|
|
91
91
|
### 2. Recurring Decisions
|
|
92
92
|
|
|
@@ -120,13 +120,13 @@ Read `.design/telemetry/costs.jsonl` (if exists). Aggregate per agent:
|
|
|
120
120
|
- Sustained underspend: < 40% of allocation for ≥3 cycles → `[BUDGET]` proposal to lower cap
|
|
121
121
|
- Consistent cap breaches: `cap_hit: true` ≥3 times → `[BUDGET]` proposal
|
|
122
122
|
|
|
123
|
-
If `.design/budget.json` doesn't exist: note "budget.json not found
|
|
123
|
+
If `.design/budget.json` doesn't exist: note "budget.json not found - Phase 10.1 budget governance required."
|
|
124
124
|
|
|
125
|
-
### 7. Cross-runtime cost arbitrage (Phase 26
|
|
125
|
+
### 7. Cross-runtime cost arbitrage (Phase 26 - D-09)
|
|
126
126
|
|
|
127
|
-
**Why this exists:** Phase 24 ships gdd to 14 runtimes (claude, codex, gemini, qwen, …). The same `(agent, tier)` pair can cost dramatically different amounts depending on which runtime executed the spawn
|
|
127
|
+
**Why this exists:** Phase 24 ships gdd to 14 runtimes (claude, codex, gemini, qwen, …). The same `(agent, tier)` pair can cost dramatically different amounts depending on which runtime executed the spawn - runtime-author pricing varies, and the user may already be paying for one runtime via subscription while paying per-token in another. This section surfaces those arbitrage opportunities as **structured, measurable signals** - never hand-wavy assumptions.
|
|
128
128
|
|
|
129
|
-
**Data source:** `.design/telemetry/events.jsonl`
|
|
129
|
+
**Data source:** `.design/telemetry/events.jsonl` - filter entries where `type === 'cost.update'`. Each cost row is tagged with `payload.runtime` (Plan 26-05) so spawns from different runtimes are attributable apples-to-apples. The reflector reads cost events from this stream alongside Section 6's `costs.jsonl` rollup; events.jsonl is authoritative for runtime attribution.
|
|
130
130
|
|
|
131
131
|
**The rule:**
|
|
132
132
|
|
|
@@ -139,12 +139,12 @@ For each `(agent, tier)` pair observed in the last 5 cycles (D-09 default window
|
|
|
139
139
|
|
|
140
140
|
**Important guardrails (failure modes the rule must avoid):**
|
|
141
141
|
|
|
142
|
-
- **Mixed-runtime cycles must not crash or double-count.** A single cycle where some agent spawns ran in CC and others in Codex is normal
|
|
143
|
-
- **Single-runtime-only history is silent.** If only one runtime has events for an `(agent, tier)` pair in the window, no arbitrage can be computed
|
|
142
|
+
- **Mixed-runtime cycles must not crash or double-count.** A single cycle where some agent spawns ran in CC and others in Codex is normal - runtime attribution is per-spawn (`payload.runtime`), never per-cycle.
|
|
143
|
+
- **Single-runtime-only history is silent.** If only one runtime has events for an `(agent, tier)` pair in the window, no arbitrage can be computed - emit nothing rather than a misleading "no comparison available" proposal.
|
|
144
144
|
- **Zero-cost denominators are skipped.** A runtime that averaged $0 in the window would produce `delta_pct: Infinity`; skip the pair rather than emit a useless signal.
|
|
145
|
-
- **The 50% threshold is a starting heuristic.** Bandit-style learning over arbitrage outcomes (was the proposal applied? did costs drop?) is **Phase 23.5+ territory**
|
|
145
|
+
- **The 50% threshold is a starting heuristic.** Bandit-style learning over arbitrage outcomes (was the proposal applied? did costs drop?) is **Phase 23.5+ territory** - it lives in the bandit posterior, NOT here. This section's job is to surface measurement signals; tier-selection learning is a separate data product.
|
|
146
146
|
|
|
147
|
-
**Helper:** `scripts/lib/cost-arbitrage.cjs` exports `analyze(events, options) → proposals[]` implementing the above rule deterministically. The executor agent following this skill loads `events.jsonl`, parses each line as JSON (skipping malformed lines), and passes the array of envelopes to `analyze()`. No re-derivation of the rule in prose
|
|
147
|
+
**Helper:** `scripts/lib/cost-arbitrage.cjs` exports `analyze(events, options) → proposals[]` implementing the above rule deterministically. The executor agent following this skill loads `events.jsonl`, parses each line as JSON (skipping malformed lines), and passes the array of envelopes to `analyze()`. No re-derivation of the rule in prose - call the helper.
|
|
148
148
|
|
|
149
149
|
**Proposal output shape** (one entry per arbitrage signal, JSON-serializable for `/gdd:apply-reflections`):
|
|
150
150
|
|
|
@@ -163,22 +163,22 @@ For each `(agent, tier)` pair observed in the last 5 cycles (D-09 default window
|
|
|
163
163
|
}
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
Render each `cost_arbitrage` entry into the Proposals section as a `[BUDGET]`-tagged proposal carrying the structured payload verbatim
|
|
166
|
+
Render each `cost_arbitrage` entry into the Proposals section as a `[BUDGET]`-tagged proposal carrying the structured payload verbatim - `/gdd:apply-reflections` will route it to the runtime-routing layer (Phase 26's tier-resolver / runtime-detect) rather than to `.design/budget.json`.
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
170
|
-
### 8. Bandit-arbitrage analysis (Phase 27.5
|
|
170
|
+
### 8. Bandit-arbitrage analysis (Phase 27.5 - D-10)
|
|
171
171
|
|
|
172
|
-
**Why this exists:** Phase 27.5 (v1.27.5) wired the bandit posterior + delegate dimension into production. The posterior now accumulates per-`(agent, bin, delegate, tier)` win-rates from real spawns. Once the posterior has enough data, the bandit's best-arm tier for an agent may differ from that agent's frontmatter `default-tier:`
|
|
172
|
+
**Why this exists:** Phase 27.5 (v1.27.5) wired the bandit posterior + delegate dimension into production. The posterior now accumulates per-`(agent, bin, delegate, tier)` win-rates from real spawns. Once the posterior has enough data, the bandit's best-arm tier for an agent may differ from that agent's frontmatter `default-tier:` - a measurement signal that the frontmatter is stale. This section surfaces that signal as a `[FRONTMATTER]` proposal.
|
|
173
173
|
|
|
174
174
|
**Data sources:**
|
|
175
175
|
|
|
176
|
-
- `.design/telemetry/posterior.json`
|
|
177
|
-
- `agents/*.md`
|
|
176
|
+
- `.design/telemetry/posterior.json` - the bandit posterior file written by Phase 23.5's `bandit-router.cjs` + Phase 27.5-02/03's production callers. Path matches `bandit-router.cjs`'s `DEFAULT_POSTERIOR_PATH`. If the file does not exist, skip this section with note "posterior.json not found - Phase 27.5 wiring required."
|
|
177
|
+
- `agents/*.md` - read each agent's frontmatter `default-tier:` value. The reflector already parses frontmatter in Section 3 ("Agent Performance"); reuse that parse pass and build a `{agent: defaultTier}` map keyed by the agent's `name:` field.
|
|
178
178
|
|
|
179
179
|
**The rule:**
|
|
180
180
|
|
|
181
|
-
For each `(agent, bin)` slice in the posterior (defaulting to `delegate='none'` arms
|
|
181
|
+
For each `(agent, bin)` slice in the posterior (defaulting to `delegate='none'` arms - focuses on local-call routing):
|
|
182
182
|
|
|
183
183
|
1. Compute per-tier posterior mean = `α / (α + β)` and stddev = `sqrt(αβ / ((α+β)² · (α+β+1)))`.
|
|
184
184
|
2. Identify `posterior_best_tier = argmax(mean)` across the tiers present in the slice.
|
|
@@ -191,12 +191,12 @@ For each `(agent, bin)` slice in the posterior (defaulting to `delegate='none'`
|
|
|
191
191
|
|
|
192
192
|
**Important guardrails (failure modes the rule must avoid):**
|
|
193
193
|
|
|
194
|
-
- **Single-tier-only history is silent.** If only one tier has been pulled for `(agent, bin)`, no comparison is possible
|
|
194
|
+
- **Single-tier-only history is silent.** If only one tier has been pulled for `(agent, bin)`, no comparison is possible - emit nothing rather than a misleading "winner" proposal.
|
|
195
195
|
- **Wide credible intervals are silent.** Bandit posteriors are noisy early on; the 0.05 stddev gate ensures we only surface signals where the bandit is confident.
|
|
196
|
-
- **The 50% threshold is a starting heuristic.** Same discipline as cost-arbitrage Section 7
|
|
196
|
+
- **The 50% threshold is a starting heuristic.** Same discipline as cost-arbitrage Section 7 - bandit-learning over which arbitrage proposals were APPLIED (and whether the posterior subsequently shifted) is a separate (future) phase.
|
|
197
197
|
- **delegateFilter='none' is the v1.27.5 default.** Arbitrage analysis on the 5 peer-delegate slices is left for a future plan; current peer data is too sparse to credibly disagree with frontmatter.
|
|
198
198
|
|
|
199
|
-
**Helper:** `scripts/lib/bandit-arbitrage.cjs` exports `analyze(posterior, options) → proposals[]` implementing the above rule deterministically. The executor agent following this skill loads the posterior via `bandit-router.loadPosterior()`, builds the `{agent: defaultTier}` map from `agents/*.md` frontmatter, and passes both to `analyze()`. No re-derivation of the rule in prose
|
|
199
|
+
**Helper:** `scripts/lib/bandit-arbitrage.cjs` exports `analyze(posterior, options) → proposals[]` implementing the above rule deterministically. The executor agent following this skill loads the posterior via `bandit-router.loadPosterior()`, builds the `{agent: defaultTier}` map from `agents/*.md` frontmatter, and passes both to `analyze()`. No re-derivation of the rule in prose - call the helper.
|
|
200
200
|
|
|
201
201
|
**Proposal output shape** (one entry per stale-frontmatter signal, JSON-serializable for `/gdd:apply-reflections`):
|
|
202
202
|
|
|
@@ -219,20 +219,20 @@ Render each `bandit_arbitrage` entry into the Proposals section as a `[FRONTMATT
|
|
|
219
219
|
|
|
220
220
|
---
|
|
221
221
|
|
|
222
|
-
### 9. Capability gaps observed (Phase 29
|
|
222
|
+
### 9. Capability gaps observed (Phase 29 - D-01 / D-03)
|
|
223
223
|
|
|
224
224
|
**Why this exists:** Plans 29-01 and 29-02 emit `capability_gap` events to `.design/gep/events.jsonl` whenever `/gdd:fast`, `gdd-router`, or the reflector pattern-detection pass identifies a lookup-fail with no dedicated owner. This section surfaces those events as clusters in the cycle markdown and evaluates the Stage-0 → Stage-1 gate per `reference/capability-gap-stage-gate.md`.
|
|
225
225
|
|
|
226
226
|
**Data sources:**
|
|
227
227
|
|
|
228
|
-
- `.design/gep/events.jsonl`
|
|
229
|
-
- `.design/config.json` (optional)
|
|
228
|
+
- `.design/gep/events.jsonl` - the Phase 22 causal event chain. Rows where `type === 'capability_gap'` (or `outcome === 'capability_gap'`) are aggregated by `payload.context_hash`.
|
|
229
|
+
- `.design/config.json` (optional) - `capability_gap_gate.{K, M, stddev_threshold}` overrides. Defaults: `K=3`, `M=10`, `stddev_threshold=0.05` per D-03.
|
|
230
230
|
|
|
231
231
|
**The mechanism:**
|
|
232
232
|
|
|
233
233
|
1. Invoke `scripts/lib/reflections-cycle-writer.cjs` via Bash with `--chain=.design/gep/events.jsonl` and (when available) `--history=<path>` pointing at an array of prior cycle cluster lists.
|
|
234
234
|
2. The shim calls `aggregateCapabilityGaps()` from `scripts/lib/reflector-capability-gap-aggregator.cjs` which clusters events by `context_hash`, caps each cluster's example evidence at 3, and orders by size desc.
|
|
235
|
-
3. The shim calls `renderGapsSection(clusters)` which returns the `## Capability gaps observed` markdown block. The block is empty (no header emitted) when there are no clusters in this cycle
|
|
235
|
+
3. The shim calls `renderGapsSection(clusters)` which returns the `## Capability gaps observed` markdown block. The block is empty (no header emitted) when there are no clusters in this cycle - the cycle markdown is unchanged.
|
|
236
236
|
4. When `--history` is supplied AND at least M cycles have been observed, the shim also calls `evaluateStageGate(history, config)`. If the gate is crossed AND `.design/config.json` does NOT already carry `capability_gap_gate.user_prompted_at`, a one-time prompt block is appended (verbatim text in `reference/capability-gap-stage-gate.md` § 5).
|
|
237
237
|
|
|
238
238
|
**Bash invocation (executor follows verbatim):**
|
|
@@ -243,13 +243,13 @@ node scripts/lib/reflections-cycle-writer.cjs \
|
|
|
243
243
|
--config=.design/config.json
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
Append stdout to the cycle markdown body (after Section 8 / before the Proposals header). If `--history=<path>` is wired by a future cycle-aggregator, add the flag. For Stage 0 (this phase), per-cycle cluster aggregation alone is the deliverable
|
|
246
|
+
Append stdout to the cycle markdown body (after Section 8 / before the Proposals header). If `--history=<path>` is wired by a future cycle-aggregator, add the flag. For Stage 0 (this phase), per-cycle cluster aggregation alone is the deliverable - gate evaluation surfaces additively when history is present.
|
|
247
247
|
|
|
248
248
|
**Important discipline (D-01 lock):**
|
|
249
249
|
|
|
250
250
|
- This section NEVER auto-flips `capability_gap_gate.stage` or any other runtime state. The output is markdown only; the user opts in via Plan 29-05's apply-reflections extension.
|
|
251
251
|
- The shim is read-only with respect to `.design/config.json`. The only state-mutating writer is the user-driven opt-in path (deferred to 29-05).
|
|
252
|
-
- `evidence_refs[]` content is rendered as-is in the markdown table examples column
|
|
252
|
+
- `evidence_refs[]` content is rendered as-is in the markdown table examples column - per the plan's threat model T-29.03-04, evidence refs are trusted-content (file:line or event-id strings from the 29-01 schema).
|
|
253
253
|
|
|
254
254
|
**Helper:** `scripts/lib/reflector-capability-gap-aggregator.cjs` exports `aggregateCapabilityGaps`, `renderGapsSection`, `evaluateStageGate`. The shim wraps these for invocation from the agent prompt; tests in `tests/reflector-capability-gap-aggregation.test.cjs` cover the helper directly with synthetic fixtures (D-11).
|
|
255
255
|
|
|
@@ -257,7 +257,7 @@ Append stdout to the cycle markdown body (after Section 8 / before the Proposals
|
|
|
257
257
|
|
|
258
258
|
## Proposals
|
|
259
259
|
|
|
260
|
-
After all sections, write a **Proposals** section. Number proposals sequentially. Every proposal must include evidence
|
|
260
|
+
After all sections, write a **Proposals** section. Number proposals sequentially. Every proposal must include evidence - no vague observations.
|
|
261
261
|
|
|
262
262
|
**Proposal types**: `[FRONTMATTER]` `[REFERENCE]` `[BUDGET]` `[QUESTION]` `[GLOBAL-SKILL]`
|
|
263
263
|
|
|
@@ -302,7 +302,7 @@ For each keyword cluster meeting threshold:
|
|
|
302
302
|
|
|
303
303
|
## Discussant Question Quality (generates [QUESTION] proposals)
|
|
304
304
|
|
|
305
|
-
Read `.design/learnings/question-quality.jsonl` (if exists). If it doesn't exist: skip and note "question-quality.jsonl not found
|
|
305
|
+
Read `.design/learnings/question-quality.jsonl` (if exists). If it doesn't exist: skip and note "question-quality.jsonl not found - requires at least one discuss session with Phase 11 discussant."
|
|
306
306
|
|
|
307
307
|
Aggregate per `question_id` across all entries:
|
|
308
308
|
- Compute: `(count_skipped + count_low) / total_asks`
|
|
@@ -320,9 +320,9 @@ For each flagged question, emit a `[QUESTION]` proposal:
|
|
|
320
320
|
|
|
321
321
|
## Budget Analysis (generates [BUDGET] proposals)
|
|
322
322
|
|
|
323
|
-
Read `.design/telemetry/costs.jsonl` (if exists). If it doesn't exist: skip and note "costs.jsonl not found
|
|
323
|
+
Read `.design/telemetry/costs.jsonl` (if exists). If it doesn't exist: skip and note "costs.jsonl not found - Phase 10.1 telemetry required."
|
|
324
324
|
|
|
325
|
-
Read `.design/budget.json` to get per-agent cap allocations. If it doesn't exist: skip budget analysis and note "budget.json not found
|
|
325
|
+
Read `.design/budget.json` to get per-agent cap allocations. If it doesn't exist: skip budget analysis and note "budget.json not found - Phase 10.1 budget governance required."
|
|
326
326
|
|
|
327
327
|
Aggregate per agent across cycles:
|
|
328
328
|
- **Sustained overspend**: `est_cost_usd` > (budget allocation × 1.2) in ≥3 consecutive cycles → propose raising cap
|
|
@@ -338,8 +338,8 @@ Aggregate per agent across cycles:
|
|
|
338
338
|
|
|
339
339
|
## Discipline
|
|
340
340
|
|
|
341
|
-
- Every proposal cites specific evidence. "The agent seems slow" is not valid
|
|
342
|
-
- Proposals are additive
|
|
341
|
+
- Every proposal cites specific evidence. "The agent seems slow" is not valid - cite the measured figure.
|
|
342
|
+
- Proposals are additive - propose additions, not deletions of existing content, unless the evidence is clear (e.g., wrong frontmatter value).
|
|
343
343
|
- Maximum 20 proposals per reflection file. If more are warranted, batch the lowest-priority ones into a single summary note at the end.
|
|
344
344
|
|
|
345
345
|
## Record
|
|
@@ -21,15 +21,15 @@ Aggregates outputs from the 5 mappers, discussant decisions, phase-researcher fi
|
|
|
21
21
|
|
|
22
22
|
## Inputs (check existence before reading)
|
|
23
23
|
|
|
24
|
-
- `.design/map/tokens.md`
|
|
25
|
-
- `.design/map/components.md`
|
|
26
|
-
- `.design/map/visual-hierarchy.md`
|
|
27
|
-
- `.design/map/a11y.md`
|
|
28
|
-
- `.design/map/motion.md`
|
|
29
|
-
- `.design/STATE.md`
|
|
24
|
+
- `.design/map/tokens.md` - token-mapper output
|
|
25
|
+
- `.design/map/components.md` - component-taxonomy-mapper output
|
|
26
|
+
- `.design/map/visual-hierarchy.md` - visual-hierarchy-mapper output
|
|
27
|
+
- `.design/map/a11y.md` - a11y-mapper output
|
|
28
|
+
- `.design/map/motion.md` - motion-mapper output
|
|
29
|
+
- `.design/STATE.md` - `<decisions>` block (D-XX entries) and `<connections>` block
|
|
30
30
|
- Any phase-researcher output provided in the spawn prompt `<research>` block
|
|
31
|
-
- Pinterest MCP (if `pinterest: available` in STATE.md `<connections>`)
|
|
32
|
-
- Claude Design handoff bundle (if `handoff_source` is present in STATE.md `<position>`)
|
|
31
|
+
- Pinterest MCP (if `pinterest: available` in STATE.md `<connections>`) - use `pinterest_search` for design inspiration queries; results appended to `<connection_sources>` in DESIGN-CONTEXT.md
|
|
32
|
+
- Claude Design handoff bundle (if `handoff_source` is present in STATE.md `<position>`) - activates Handoff mode (see section below)
|
|
33
33
|
|
|
34
34
|
Use Glob to confirm presence; skip absent files gracefully and mark section as `source: missing`.
|
|
35
35
|
|
|
@@ -46,9 +46,9 @@ Use Glob to confirm presence; skip absent files gracefully and mark section as `
|
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Search queries (run in sequence, 2-3 max):
|
|
49
|
-
- `<project_name> design system`
|
|
50
|
-
- `<dominant_color_from_tokens> UI palette`
|
|
51
|
-
- `<component_type> component design`
|
|
49
|
+
- `<project_name> design system` - general design language reference
|
|
50
|
+
- `<dominant_color_from_tokens> UI palette` - color direction (use primary token value from token-mapper output)
|
|
51
|
+
- `<component_type> component design` - if a specific component type is the focus
|
|
52
52
|
|
|
53
53
|
For each result (top 5 per query): record `{ query, pin_title, pin_url }`. Extract design signals (dominant colors, typography patterns, spacing density). Append to `<connection_sources>`: `source: pinterest (N pins from M queries)`.
|
|
54
54
|
|
|
@@ -65,15 +65,15 @@ Use Glob to confirm presence; skip absent files gracefully and mark section as `
|
|
|
65
65
|
Note in synthesis header: `pen-sources: N components read from .pen files` (or `pen-sources: 0 — pencil-dev not_configured` if skipped).
|
|
66
66
|
|
|
67
67
|
4. Produce `.design/DESIGN-CONTEXT.md` with the following sections, each wrapped in XML tags:
|
|
68
|
-
- `<token_system>`
|
|
69
|
-
- `<component_inventory>`
|
|
70
|
-
- `<visual_hierarchy>`
|
|
71
|
-
- `<a11y_baseline>`
|
|
72
|
-
- `<motion_system>`
|
|
73
|
-
- `<decisions>`
|
|
74
|
-
- `<research_findings>`
|
|
75
|
-
- `<handoff_context>`
|
|
76
|
-
- `<connection_sources>`
|
|
68
|
+
- `<token_system>` - from token-mapper
|
|
69
|
+
- `<component_inventory>` - from component-taxonomy-mapper
|
|
70
|
+
- `<visual_hierarchy>` - from visual-hierarchy-mapper
|
|
71
|
+
- `<a11y_baseline>` - from a11y-mapper
|
|
72
|
+
- `<motion_system>` - from motion-mapper
|
|
73
|
+
- `<decisions>` - D-XX items from STATE.md (numbered, deduplicated)
|
|
74
|
+
- `<research_findings>` - from phase-researcher (if present)
|
|
75
|
+
- `<handoff_context>` - handoff bundle summary (if handoff mode active; see section below)
|
|
76
|
+
- `<connection_sources>` - active connections and what each contributed (including Pinterest and Claude Design status)
|
|
77
77
|
4. Tag each section with a `source:` line (e.g., `source: token-mapper v1.0.1`).
|
|
78
78
|
5. De-duplicate across sections; when two inputs conflict, prefer the more recent (by mtime) and note the conflict.
|
|
79
79
|
6. Write `.design/DESIGN-CONTEXT.md` with frontmatter:
|
|
@@ -121,7 +121,7 @@ Read .design/STATE.md
|
|
|
121
121
|
|
|
122
122
|
**PPTX branch:** Extract slide text (Bash: unzip `.pptx`, parse `ppt/slides/*.xml` for `<a:t>` text nodes). Set text_content. Skip to step 3b.
|
|
123
123
|
|
|
124
|
-
2. **Parse HTML export** (primary
|
|
124
|
+
2. **Parse HTML export** (primary - html_content available):
|
|
125
125
|
- Extract all CSS custom properties from `<style>` blocks: grep for `--[a-z]+-[a-z-]+:\s*[^;]+`
|
|
126
126
|
- Categorize by prefix:
|
|
127
127
|
- `--color-*` → `[Color]` decisions
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-start-writer
|
|
3
|
-
description: "Writes .design/START-REPORT.md
|
|
3
|
+
description: "Writes .design/START-REPORT.md - 7 fixed sections plus a machine-readable JSON block. Consumes the findings-engine output, interview answers, and detection result from .design/.start-context.json. Never writes STATE.md. Parameter-free: reads the context JSON path from the prompt and emits the report."
|
|
4
4
|
tools: Read, Write, Grep, Glob
|
|
5
5
|
color: green
|
|
6
6
|
|
|
@@ -29,7 +29,7 @@ Write `.design/START-REPORT.md` for `/gdd:start`. The report is the single artif
|
|
|
29
29
|
|
|
30
30
|
## Required Reading
|
|
31
31
|
|
|
32
|
-
- `.design/.start-context.json`
|
|
32
|
+
- `.design/.start-context.json` - produced by `skills/start/SKILL.md` before spawning this agent. Contains detection result, interview answers, and the findings-engine output.
|
|
33
33
|
|
|
34
34
|
## Inputs
|
|
35
35
|
|
|
@@ -121,7 +121,7 @@ Write `.design/START-REPORT.md` exactly matching this shape. **All seven H2 sect
|
|
|
121
121
|
| Figma | <…> | <`/gdd:connections figma` or "already configured"> |
|
|
122
122
|
| Canvas (.canvas) | <…> | <…> |
|
|
123
123
|
|
|
124
|
-
<one-line note if `interview.figma_workflow` picked a specific surface
|
|
124
|
+
<one-line note if `interview.figma_workflow` picked a specific surface - nudge toward that one first.>
|
|
125
125
|
|
|
126
126
|
## Full pipeline path
|
|
127
127
|
|
|
@@ -129,7 +129,7 @@ If you want more than a single fix, the full pipeline would do this on this proj
|
|
|
129
129
|
|
|
130
130
|
## Connections / writeback optional
|
|
131
131
|
|
|
132
|
-
If you want to push design decisions back into Figma, paper.design, pencil.dev, or a Claude Design handoff bundle, run `/gdd:connections` to wire up the surfaces. Writeback is never required
|
|
132
|
+
If you want to push design decisions back into Figma, paper.design, pencil.dev, or a Claude Design handoff bundle, run `/gdd:connections` to wire up the surfaces. Writeback is never required - the pipeline runs code-first by default.
|
|
133
133
|
|
|
134
134
|
---
|
|
135
135
|
|
|
@@ -205,7 +205,7 @@ The JSON block at the bottom is the contract future `/gdd:fast` / `/gdd:do` invo
|
|
|
205
205
|
|
|
206
206
|
- Finding IDs stay stable `F1`..`F3`.
|
|
207
207
|
- `text` is always a ready-to-run command, single-line.
|
|
208
|
-
- All string values are JSON-safe
|
|
208
|
+
- All string values are JSON-safe - escape embedded quotes.
|
|
209
209
|
|
|
210
210
|
---
|
|
211
211
|
|
|
@@ -213,10 +213,10 @@ The JSON block at the bottom is the contract future `/gdd:fast` / `/gdd:do` invo
|
|
|
213
213
|
|
|
214
214
|
- Do not write `.design/STATE.md`, `.design/config.json`, or any source file.
|
|
215
215
|
- Do not invent findings that are not in the context JSON.
|
|
216
|
-
- Do not re-score or re-rank findings
|
|
216
|
+
- Do not re-score or re-rank findings - the engine already picked `bestFirstProofId` deterministically.
|
|
217
217
|
- Do not add marketing prose, emojis, or playful copy.
|
|
218
218
|
- Do not emit more than three findings.
|
|
219
|
-
- Do not omit any of the seven H2 sections
|
|
219
|
+
- Do not omit any of the seven H2 sections - even empty, they must exist for downstream regression fixtures.
|
|
220
220
|
|
|
221
221
|
## START-WRITER COMPLETE
|
|
222
222
|
|
|
@@ -22,7 +22,7 @@ You are the `design-update-checker` agent. `/gdd:check-update --prompt` spawns y
|
|
|
22
22
|
|
|
23
23
|
You have zero session memory. One invocation = one release summarized. Everything you need is in the prompt plus the files listed in `<required_reading>`.
|
|
24
24
|
|
|
25
|
-
**Return inline text only
|
|
25
|
+
**Return inline text only - do NOT write any file.** The spawning skill captures your response and displays it inline. Mirrors the `design-advisor` / `design-plan-checker` contract.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -30,8 +30,8 @@ You have zero session memory. One invocation = one release summarized. Everythin
|
|
|
30
30
|
|
|
31
31
|
Before producing output you MUST read:
|
|
32
32
|
|
|
33
|
-
1. `.design/update-cache.json`
|
|
34
|
-
2. Any `release_body` string supplied in the spawning prompt context
|
|
33
|
+
1. `.design/update-cache.json` - canonical delta classification, `current_tag`, `latest_tag`, `changelog_excerpt` (up to 500 chars of the release body). Written by `hooks/update-check.sh` (Phase 13.3 plan 02).
|
|
34
|
+
2. Any `release_body` string supplied in the spawning prompt context - may be fuller than the 500-char cache excerpt. Prefer it over `changelog_excerpt` when both are present.
|
|
35
35
|
|
|
36
36
|
If `.design/update-cache.json` does not exist, return exactly:
|
|
37
37
|
|
|
@@ -80,7 +80,7 @@ Bullets must name concrete user impact (new command, changed behavior, fixed bug
|
|
|
80
80
|
|
|
81
81
|
**Examples of bad bullets (do not produce these):**
|
|
82
82
|
- `- Refactors internal cache module` (internal; not a user-facing impact)
|
|
83
|
-
- `- Probably improves performance` (speculation
|
|
83
|
+
- `- Probably improves performance` (speculation - release body did not say so)
|
|
84
84
|
- `- Updates dependencies` (user-irrelevant unless it changes behavior)
|
|
85
85
|
|
|
86
86
|
---
|
|
@@ -89,7 +89,7 @@ Bullets must name concrete user impact (new command, changed behavior, fixed bug
|
|
|
89
89
|
|
|
90
90
|
Do NOT reclassify the delta. The hot-path script (`hooks/update-check.sh`) already wrote `delta` into `.design/update-cache.json` per D-10 (4-segment semver compare). Echo the incoming delta verbatim.
|
|
91
91
|
|
|
92
|
-
If the incoming delta looks wrong given the release body (e.g. body headlines a breaking change but `delta` is `patch`), note the discrepancy in a single inline line after the bullets
|
|
92
|
+
If the incoming delta looks wrong given the release body (e.g. body headlines a breaking change but `delta` is `patch`), note the discrepancy in a single inline line after the bullets - but do **not** override the field. Example:
|
|
93
93
|
|
|
94
94
|
> Note: release notes describe a breaking change; cached delta is `patch`. Consider `/gdd:check-update --refresh` to re-verify.
|
|
95
95
|
|
|
@@ -97,9 +97,9 @@ If the incoming delta looks wrong given the release body (e.g. body headlines a
|
|
|
97
97
|
|
|
98
98
|
## Do Not
|
|
99
99
|
|
|
100
|
-
- Do not read `.design/config.json`
|
|
101
|
-
- Do not fetch from GitHub or any URL
|
|
102
|
-
- Do not write `.design/update-available.md`
|
|
100
|
+
- Do not read `.design/config.json` - dismissal state is for the skill/hook, not you.
|
|
101
|
+
- Do not fetch from GitHub or any URL - the cache is the source of truth. (You have no `WebFetch` / `Bash` / `Write` tool.)
|
|
102
|
+
- Do not write `.design/update-available.md` - that is the hot-path hook's responsibility.
|
|
103
103
|
- Do not reformat the release body as-is. Your job is to compress + reframe, not echo.
|
|
104
104
|
- Do not invent bullets not grounded in the release body text.
|
|
105
105
|
- Do not exceed 3 bullets or 5 total content lines.
|
|
@@ -5,7 +5,7 @@ tools: Read, Bash, Grep
|
|
|
5
5
|
color: green
|
|
6
6
|
model: inherit
|
|
7
7
|
default-tier: haiku
|
|
8
|
-
tier-rationale: "Cheap diff-scan gate
|
|
8
|
+
tier-rationale: "Cheap diff-scan gate - expensive verifier spawned only on heuristic hit"
|
|
9
9
|
size_budget: S
|
|
10
10
|
parallel-safe: always
|
|
11
11
|
typical-duration-seconds: 10
|
|
@@ -27,9 +27,9 @@ You run once per verify invocation. You are read-only (no Write tool). You do no
|
|
|
27
27
|
|
|
28
28
|
The orchestrator supplies three fields in the prompt context:
|
|
29
29
|
|
|
30
|
-
- `diff_files`
|
|
31
|
-
- `diff_body`
|
|
32
|
-
- `baseline_sha`
|
|
30
|
+
- `diff_files` - newline-separated list of paths changed since the last verified commit (output of `git diff --name-only <baseline_sha>..HEAD`).
|
|
31
|
+
- `diff_body` - unified-diff body truncated to ~4000 lines (output of `git diff <baseline_sha>..HEAD`).
|
|
32
|
+
- `baseline_sha` - the SHA the diff is computed against (from `.design/STATE.md` `last_verified_sha`, or `HEAD~1` if absent).
|
|
33
33
|
|
|
34
34
|
## Heuristic
|
|
35
35
|
|
|
@@ -92,7 +92,7 @@ You MAY:
|
|
|
92
92
|
|
|
93
93
|
## Why this agent exists
|
|
94
94
|
|
|
95
|
-
Per 10.1-CONTEXT decision **D-21** (Lazy Checker Spawning): "Cheap Haiku gate agents at `agents/*-gate.md` decide whether to spawn full checker. Gate agent: reads DIFF of changed files, applies heuristic (design-system paths touched? copy strings touched? token files touched?), returns `{spawn: true|false, rationale: '...'}`. If false, skip full checker, log as `lazy_skipped: true` in telemetry." This gate is the verifier-specific instance of that pattern
|
|
95
|
+
Per 10.1-CONTEXT decision **D-21** (Lazy Checker Spawning): "Cheap Haiku gate agents at `agents/*-gate.md` decide whether to spawn full checker. Gate agent: reads DIFF of changed files, applies heuristic (design-system paths touched? copy strings touched? token files touched?), returns `{spawn: true|false, rationale: '...'}`. If false, skip full checker, log as `lazy_skipped: true` in telemetry." This gate is the verifier-specific instance of that pattern - full `design-verifier` is an XL-size spawn and the most expensive single agent in the pipeline, so gating it behind a cheap Haiku diff-scan yields the largest single cost win in Phase 10.1.
|
|
96
96
|
|
|
97
97
|
## Record
|
|
98
98
|
|