@hegemonart/get-design-done 1.41.5 → 1.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +1120 -1029
- package/README.md +158 -154
- package/SKILL.md +42 -42
- package/agents/README.md +53 -53
- package/agents/a11y-mapper.md +3 -3
- package/agents/component-benchmark-harvester.md +8 -8
- package/agents/component-benchmark-synthesizer.md +11 -11
- package/agents/component-taxonomy-mapper.md +5 -5
- package/agents/compose-executor.md +25 -25
- package/agents/conflict-resolver.md +8 -8
- package/agents/cost-forecaster.md +12 -12
- package/agents/decision-journal-exporter.md +5 -5
- package/agents/design-advisor.md +19 -19
- package/agents/design-assumptions-analyzer.md +16 -16
- package/agents/design-auditor.md +39 -39
- package/agents/design-authority-watcher.md +28 -28
- package/agents/design-component-generator.md +27 -27
- package/agents/design-context-builder.md +66 -66
- package/agents/design-context-checker-gate.md +5 -5
- package/agents/design-context-checker.md +20 -20
- package/agents/design-discussant.md +23 -23
- package/agents/design-doc-writer.md +12 -12
- package/agents/design-executor.md +38 -38
- package/agents/design-figma-writer.md +31 -31
- package/agents/design-fixer.md +27 -27
- package/agents/design-integration-checker-gate.md +5 -5
- package/agents/design-integration-checker.md +29 -29
- package/agents/design-paper-writer.md +14 -14
- package/agents/design-pattern-mapper.md +9 -9
- package/agents/design-pencil-writer.md +12 -12
- package/agents/design-phase-researcher.md +14 -14
- package/agents/design-plan-checker.md +13 -13
- package/agents/design-planner.md +24 -24
- package/agents/design-reflector.md +48 -48
- package/agents/design-research-synthesizer.md +21 -21
- package/agents/design-start-writer.md +7 -7
- package/agents/design-update-checker.md +8 -8
- package/agents/design-verifier-gate.md +5 -5
- package/agents/design-verifier.md +80 -80
- package/agents/ds-generator.md +14 -14
- package/agents/ds-migration-planner.md +12 -12
- package/agents/email-executor.md +26 -26
- package/agents/experiment-result-ingester.md +10 -10
- package/agents/flutter-executor.md +28 -28
- package/agents/gdd-graph-refresh.md +10 -10
- package/agents/gdd-intel-updater.md +11 -11
- package/agents/gdd-learnings-extractor.md +2 -2
- package/agents/motion-mapper.md +8 -8
- package/agents/motion-verifier.md +16 -16
- package/agents/pdf-executor.md +27 -27
- package/agents/perf-analyzer.md +20 -20
- package/agents/pr-commenter.md +24 -24
- package/agents/prototype-gate.md +29 -29
- package/agents/quality-gate-runner.md +21 -21
- package/agents/rollout-coordinator.md +8 -8
- package/agents/swift-executor.md +41 -41
- package/agents/ticket-sync-agent.md +19 -19
- package/agents/token-mapper.md +6 -6
- package/agents/user-research-synthesizer.md +13 -13
- package/agents/visual-hierarchy-mapper.md +2 -2
- package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +170 -0
- package/dist/claude-code/.claude/skills/audit/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +65 -0
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +43 -0
- package/dist/claude-code/.claude/skills/brief/SKILL.md +128 -0
- package/dist/claude-code/.claude/skills/budget/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +126 -0
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/compare/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +171 -0
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/connections/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +608 -0
- package/dist/claude-code/.claude/skills/continue/SKILL.md +24 -0
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +76 -0
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +258 -0
- package/dist/claude-code/.claude/skills/debug/SKILL.md +41 -0
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +119 -0
- package/dist/claude-code/.claude/skills/design/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/design/design-procedure.md +304 -0
- package/dist/claude-code/.claude/skills/discover/SKILL.md +72 -0
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +222 -0
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/do/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/explore/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +267 -0
- package/dist/claude-code/.claude/skills/export/SKILL.md +30 -0
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/fast/SKILL.md +91 -0
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +39 -0
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +49 -0
- package/dist/claude-code/.claude/skills/health/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +44 -0
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +69 -0
- package/dist/claude-code/.claude/skills/help/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +61 -0
- package/dist/claude-code/.claude/skills/locale/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/map/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +70 -0
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +37 -0
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +87 -0
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/next/SKILL.md +68 -0
- package/dist/claude-code/.claude/skills/note/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +97 -0
- package/dist/claude-code/.claude/skills/pause/SKILL.md +77 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +88 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +161 -0
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/peers/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/plan/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +278 -0
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/progress/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +101 -0
- package/dist/claude-code/.claude/skills/quick/SKILL.md +44 -0
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/recall/SKILL.md +75 -0
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +85 -0
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +120 -0
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +120 -0
- package/dist/claude-code/.claude/skills/resume/SKILL.md +93 -0
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +46 -0
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +42 -0
- package/dist/claude-code/.claude/skills/roi/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +35 -0
- package/dist/claude-code/.claude/skills/router/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +65 -0
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +78 -0
- package/dist/claude-code/.claude/skills/router/router-rules.md +84 -0
- package/dist/claude-code/.claude/skills/scan/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +732 -0
- package/dist/claude-code/.claude/skills/settings/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/ship/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/spike/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/start/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/start/start-procedure.md +115 -0
- package/dist/claude-code/.claude/skills/stats/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/style/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +150 -0
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/todo/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/undo/SKILL.md +31 -0
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/update/SKILL.md +56 -0
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/verify/SKILL.md +113 -0
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +512 -0
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +26 -0
- package/package.json +8 -2
- package/reference/DEPRECATIONS.md +21 -7
- package/reference/STATE-TEMPLATE.md +26 -26
- package/reference/accessibility.md +13 -13
- package/reference/adr-format.md +13 -13
- package/reference/ai-native-tool-interface.md +5 -5
- package/reference/anti-patterns.md +9 -9
- package/reference/architecture-vocabulary.md +31 -31
- package/reference/audit-scoring.md +13 -13
- package/reference/authority-feeds.md +36 -36
- package/reference/bandit-integration.md +25 -25
- package/reference/brand-voice.md +36 -36
- package/reference/capability-gap-stage-gate.md +20 -20
- package/reference/checklists.md +26 -26
- package/reference/cli-localization.md +13 -13
- package/reference/codex-tools.md +2 -2
- package/reference/color-theory.md +28 -28
- package/reference/component-authoring.md +4 -4
- package/reference/components/README.md +13 -13
- package/reference/components/TEMPLATE.md +13 -13
- package/reference/components/accordion.md +15 -15
- package/reference/components/alert.md +25 -25
- package/reference/components/badge.md +18 -18
- package/reference/components/breadcrumbs.md +24 -24
- package/reference/components/button.md +21 -21
- package/reference/components/card.md +13 -13
- package/reference/components/checkbox.md +20 -20
- package/reference/components/chip.md +20 -20
- package/reference/components/command-palette.md +15 -15
- package/reference/components/date-picker.md +22 -22
- package/reference/components/drawer.md +13 -13
- package/reference/components/file-upload.md +22 -22
- package/reference/components/input.md +18 -18
- package/reference/components/label.md +25 -25
- package/reference/components/link.md +19 -19
- package/reference/components/list.md +17 -17
- package/reference/components/menu.md +19 -19
- package/reference/components/modal-dialog.md +16 -16
- package/reference/components/navbar.md +19 -19
- package/reference/components/pagination.md +18 -18
- package/reference/components/popover.md +12 -12
- package/reference/components/progress.md +18 -18
- package/reference/components/radio.md +17 -17
- package/reference/components/rich-text-editor.md +24 -24
- package/reference/components/select-combobox.md +16 -16
- package/reference/components/sidebar.md +15 -15
- package/reference/components/skeleton.md +20 -20
- package/reference/components/slider.md +20 -20
- package/reference/components/stepper.md +24 -24
- package/reference/components/switch.md +19 -19
- package/reference/components/table.md +21 -21
- package/reference/components/tabs.md +11 -11
- package/reference/components/toast.md +19 -19
- package/reference/components/tooltip.md +19 -19
- package/reference/components/tree.md +17 -17
- package/reference/composition.md +38 -38
- package/reference/config-schema.md +37 -37
- package/reference/context-md-format.md +9 -9
- package/reference/contrast-advanced.md +29 -29
- package/reference/conversational-ui.md +17 -17
- package/reference/cost-governance.md +14 -14
- package/reference/css-grid-layout.md +8 -8
- package/reference/cycle-handoff-preamble.md +3 -3
- package/reference/data-visualization.md +67 -67
- package/reference/debugger-philosophy.md +5 -5
- package/reference/design-system-guidance.md +21 -21
- package/reference/design-systems-catalog.md +20 -20
- package/reference/design-variants.md +11 -11
- package/reference/domains/civic-patterns.md +10 -10
- package/reference/domains/finance-patterns.md +9 -9
- package/reference/domains/gaming-patterns.md +9 -9
- package/reference/domains/healthcare-patterns.md +11 -11
- package/reference/ds-bootstrap-rubric.md +13 -13
- package/reference/email-design.md +22 -22
- package/reference/emotional-design.md +10 -10
- package/reference/error-recovery.md +11 -11
- package/reference/export-formats.md +7 -7
- package/reference/figma-sandbox.md +6 -6
- package/reference/first-principles.md +10 -10
- package/reference/form-patterns.md +26 -26
- package/reference/framer-motion-patterns.md +49 -49
- package/reference/gdd-runtime-audit.md +17 -17
- package/reference/gdd-threat-model.md +44 -44
- package/reference/gemini-tools.md +3 -3
- package/reference/gestalt.md +24 -24
- package/reference/heuristics.md +32 -32
- package/reference/i18n.md +44 -44
- package/reference/iconography.md +24 -24
- package/reference/image-optimization.md +14 -14
- package/reference/information-architecture.md +47 -47
- package/reference/intel-schema.md +1 -1
- package/reference/known-failure-modes.md +37 -37
- package/reference/meta-rules.md +5 -5
- package/reference/migrations/material-3-to-4.md +17 -17
- package/reference/migrations/mui-v6.md +16 -16
- package/reference/migrations/shadcn-v2.md +25 -25
- package/reference/migrations/tailwind-v4.md +21 -21
- package/reference/model-prices.md +3 -3
- package/reference/model-tiers.md +40 -40
- package/reference/motion-advanced.md +21 -21
- package/reference/motion-easings.md +29 -29
- package/reference/motion-interpolate.md +1 -1
- package/reference/motion-spring.md +13 -13
- package/reference/motion-transition-taxonomy.md +34 -34
- package/reference/motion.md +31 -31
- package/reference/multi-author-model.md +13 -13
- package/reference/native-platforms.md +28 -28
- package/reference/notification-routing.md +6 -6
- package/reference/onboarding-progressive-disclosure.md +32 -32
- package/reference/openrouter-tier-mapping.md +8 -8
- package/reference/palette-catalog.md +37 -37
- package/reference/parallelism-rules.md +20 -20
- package/reference/peer-cli-capabilities.md +14 -14
- package/reference/peer-protocols.md +21 -21
- package/reference/perf-budget.md +21 -21
- package/reference/performance.md +22 -22
- package/reference/platforms.md +51 -51
- package/reference/pr-review-integration.md +7 -7
- package/reference/prices/antigravity.md +3 -3
- package/reference/prices/augment.md +3 -3
- package/reference/prices/claude.md +2 -2
- package/reference/prices/cline.md +4 -4
- package/reference/prices/codebuddy.md +3 -3
- package/reference/prices/codex.md +2 -2
- package/reference/prices/copilot.md +3 -3
- package/reference/prices/cursor.md +3 -3
- package/reference/prices/gemini.md +2 -2
- package/reference/prices/kilo.md +3 -3
- package/reference/prices/opencode.md +4 -4
- package/reference/prices/qwen.md +2 -2
- package/reference/prices/trae.md +3 -3
- package/reference/prices/windsurf.md +3 -3
- package/reference/prices.openrouter.md +5 -5
- package/reference/print-design.md +36 -36
- package/reference/priority-matrix.md +2 -2
- package/reference/project-skills-guide.md +3 -3
- package/reference/proportion-systems.md +23 -23
- package/reference/pseudonymization-rules.md +30 -30
- package/reference/registry.json +7 -0
- package/reference/retrieval-contract.md +14 -14
- package/reference/review-format.md +7 -7
- package/reference/rollout-coordination.md +10 -10
- package/reference/rtl-cjk-cultural.md +39 -39
- package/reference/runtime-models.md +28 -28
- package/reference/shared-preamble.md +26 -26
- package/reference/skill-authoring-contract.md +16 -16
- package/reference/skill-placeholders.md +71 -0
- package/reference/start-interview.md +10 -10
- package/reference/style-vocabulary.md +25 -25
- package/reference/surfaces.md +4 -4
- package/reference/ticket-sync.md +9 -9
- package/reference/typography.md +64 -64
- package/reference/user-research.md +54 -54
- package/reference/variable-fonts-loading.md +15 -15
- package/reference/visual-hierarchy-layout.md +41 -41
- package/scripts/lib/build/factory.cjs +62 -0
- package/scripts/lib/build/harness-configs.cjs +64 -0
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/sdk/cli/commands/build.ts +106 -0
- package/sdk/cli/index.js +84 -2
- package/sdk/cli/index.ts +7 -0
- package/skills/add-backlog/SKILL.md +3 -3
- package/skills/analyze-dependencies/SKILL.md +10 -10
- package/skills/apply-reflections/SKILL.md +13 -13
- package/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/skills/audit/SKILL.md +7 -7
- package/skills/bandit-status/SKILL.md +7 -7
- package/skills/benchmark/SKILL.md +7 -7
- package/skills/bootstrap-ds/SKILL.md +10 -10
- package/skills/brief/SKILL.md +20 -20
- package/skills/budget/SKILL.md +4 -4
- package/skills/cache-manager/SKILL.md +6 -6
- package/skills/cache-manager/cache-policy.md +5 -5
- package/skills/check-update/SKILL.md +5 -5
- package/skills/compare/SKILL.md +15 -15
- package/skills/compare/compare-rubric.md +17 -17
- package/skills/complete-cycle/SKILL.md +5 -5
- package/skills/connections/SKILL.md +11 -11
- package/skills/connections/connections-onboarding.md +76 -76
- package/skills/continue/SKILL.md +2 -2
- package/skills/darkmode/SKILL.md +17 -17
- package/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/skills/debug/SKILL.md +3 -3
- package/skills/debug/debug-feedback-loops.md +12 -12
- package/skills/design/SKILL.md +12 -12
- package/skills/design/design-procedure.md +23 -23
- package/skills/discover/SKILL.md +7 -7
- package/skills/discover/discover-procedure.md +18 -18
- package/skills/discuss/SKILL.md +12 -12
- package/skills/do/SKILL.md +1 -1
- package/skills/explore/SKILL.md +21 -21
- package/skills/explore/explore-procedure.md +48 -48
- package/skills/export/SKILL.md +9 -9
- package/skills/extract-learnings/SKILL.md +5 -5
- package/skills/fast/SKILL.md +7 -7
- package/skills/figma-extract/SKILL.md +11 -11
- package/skills/figma-write/SKILL.md +6 -6
- package/skills/graphify/SKILL.md +4 -4
- package/skills/health/SKILL.md +16 -16
- package/skills/health/health-mcp-detection.md +3 -3
- package/skills/health/health-skill-length-report.md +6 -6
- package/skills/help/SKILL.md +1 -1
- package/skills/list-assumptions/SKILL.md +4 -4
- package/skills/map/SKILL.md +12 -12
- package/skills/migrate/SKILL.md +5 -5
- package/skills/new-cycle/SKILL.md +2 -2
- package/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/skills/new-project/SKILL.md +1 -1
- package/skills/next/SKILL.md +5 -5
- package/skills/note/SKILL.md +1 -1
- package/skills/openrouter-status/SKILL.md +4 -4
- package/skills/optimize/SKILL.md +15 -15
- package/skills/pause/SKILL.md +5 -5
- package/skills/peer-cli-add/SKILL.md +11 -11
- package/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/skills/peer-cli-customize/SKILL.md +14 -14
- package/skills/peers/SKILL.md +4 -4
- package/skills/plan/SKILL.md +13 -13
- package/skills/plan/plan-procedure.md +24 -24
- package/skills/plant-seed/SKILL.md +4 -4
- package/skills/pr-branch/SKILL.md +2 -2
- package/skills/progress/SKILL.md +15 -15
- package/skills/quality-gate/SKILL.md +22 -22
- package/skills/quality-gate/threat-modeling.md +19 -19
- package/skills/quick/SKILL.md +5 -5
- package/skills/reapply-patches/SKILL.md +7 -7
- package/skills/reflect/SKILL.md +3 -3
- package/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/skills/report-issue/SKILL.md +5 -5
- package/skills/report-issue/report-issue-procedure.md +27 -27
- package/skills/resume/SKILL.md +9 -9
- package/skills/review-backlog/SKILL.md +3 -3
- package/skills/review-decisions/SKILL.md +3 -3
- package/skills/roi/SKILL.md +5 -5
- package/skills/rollout-status/SKILL.md +4 -4
- package/skills/router/SKILL.md +11 -11
- package/skills/router/capability-gap-emitter.md +6 -6
- package/skills/router/router-pick-emitter.md +9 -9
- package/skills/router/router-rules.md +7 -7
- package/skills/scan/SKILL.md +16 -16
- package/skills/scan/scan-procedure.md +42 -42
- package/skills/settings/SKILL.md +2 -2
- package/skills/ship/SKILL.md +7 -7
- package/skills/sketch/SKILL.md +10 -10
- package/skills/sketch-wrap-up/SKILL.md +12 -12
- package/skills/skill-manifest/SKILL.md +5 -5
- package/skills/spike/SKILL.md +7 -7
- package/skills/spike-wrap-up/SKILL.md +13 -13
- package/skills/start/SKILL.md +8 -8
- package/skills/start/start-procedure.md +9 -9
- package/skills/stats/SKILL.md +5 -5
- package/skills/style/SKILL.md +12 -12
- package/skills/style/style-doc-procedure.md +12 -12
- package/skills/synthesize/SKILL.md +10 -10
- package/skills/timeline/SKILL.md +4 -4
- package/skills/todo/SKILL.md +3 -3
- package/skills/turn-closeout/SKILL.md +10 -10
- package/skills/unlock-decision/SKILL.md +3 -3
- package/skills/update/SKILL.md +9 -9
- package/skills/using-gdd/SKILL.md +17 -17
- package/skills/verify/SKILL.md +13 -13
- package/skills/verify/verify-procedure.md +34 -34
- package/skills/warm-cache/SKILL.md +8 -8
- package/skills/watch-authorities/SKILL.md +9 -9
- package/skills/zoom-out/SKILL.md +4 -4
|
@@ -7,11 +7,11 @@ tags: [architecture, ousterhout, module, interface, depth, seam, adapter, levera
|
|
|
7
7
|
last_updated: 2026-05-18
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
Source: mattpocock/skills (MIT) via Ousterhout, *A Philosophy of Software Design*
|
|
10
|
+
Source: mattpocock/skills (MIT) via Ousterhout, *A Philosophy of Software Design* - adapted with permission. See `../NOTICE` for the full attribution block.
|
|
11
11
|
|
|
12
12
|
# Architecture Vocabulary
|
|
13
13
|
|
|
14
|
-
A shared vocabulary for architectural reasoning across GDD skills. Same words mean the same things across `zoom-out`, `debug`, `analyze-dependencies`, `map`, `quality-gate`, and the planning skills
|
|
14
|
+
A shared vocabulary for architectural reasoning across GDD skills. Same words mean the same things across `zoom-out`, `debug`, `analyze-dependencies`, `map`, `quality-gate`, and the planning skills - so agents and humans do not re-litigate "what did you mean by *module*" every conversation. Drawn from John Ousterhout's *A Philosophy of Software Design* via mattpocock's `improve-codebase-architecture/LANGUAGE.md`. GDD design-engineering analogs are surfaced where applicable - a UI component is a module, a design-token API is an interface, a token theme is an adapter.
|
|
15
15
|
|
|
16
16
|
This file is the canonical reference; skills cite it instead of re-defining terms inline.
|
|
17
17
|
|
|
@@ -19,13 +19,13 @@ This file is the canonical reference; skills cite it instead of re-defining term
|
|
|
19
19
|
|
|
20
20
|
A unit of code that hides implementation behind an interface. The module's value to its caller is everything inside that the caller no longer has to think about.
|
|
21
21
|
|
|
22
|
-
- A React component is a module
|
|
23
|
-
- A skill is a module
|
|
22
|
+
- A React component is a module - props are the interface, internal state and effects are the implementation.
|
|
23
|
+
- A skill is a module - frontmatter + workflow are the interface, the SKILL.md body is the implementation.
|
|
24
24
|
- See `./design-system-guidance.md` for the design-system-level analog: a component is a module; the token contract is its interface.
|
|
25
25
|
|
|
26
26
|
## Interface
|
|
27
27
|
|
|
28
|
-
What a module exposes to callers
|
|
28
|
+
What a module exposes to callers - function signatures, props, return types, error contracts, side-effect promises. The interface is what callers depend on; everything else they must NOT depend on. Small, stable interfaces are the goal.
|
|
29
29
|
|
|
30
30
|
- `function fetchUser(id: string): Promise<User>` is the interface. How `fetchUser` calls the database is implementation.
|
|
31
31
|
- A React component's `props` plus its rendered DOM contract is the interface; useState, useEffect, internal helpers are not.
|
|
@@ -33,27 +33,27 @@ What a module exposes to callers — function signatures, props, return types, e
|
|
|
33
33
|
|
|
34
34
|
## Implementation
|
|
35
35
|
|
|
36
|
-
What the module hides
|
|
36
|
+
What the module hides - the code that does the work. Callers must not depend on it. Implementation is free to change as long as the interface holds.
|
|
37
37
|
|
|
38
38
|
- Switching `fetchUser` from REST to GraphQL without changing the call site = implementation change without interface change. Healthy.
|
|
39
39
|
- Renaming a private helper inside a React component does not break callers. Healthy.
|
|
40
|
-
- Exposing a class's "private" field that callers started reading turns implementation into de-facto interface. Unhealthy
|
|
40
|
+
- Exposing a class's "private" field that callers started reading turns implementation into de-facto interface. Unhealthy - fix by either formalizing the field as interface or stopping the leak.
|
|
41
41
|
|
|
42
42
|
## Depth
|
|
43
43
|
|
|
44
|
-
A module is **deep** when the interface is simple and the implementation hides genuine complexity. A module is **shallow** when the interface is as complex as the implementation
|
|
44
|
+
A module is **deep** when the interface is simple and the implementation hides genuine complexity. A module is **shallow** when the interface is as complex as the implementation - the wrapper adds no use and just shuffles the caller's mental load sideways.
|
|
45
45
|
|
|
46
|
-
- `Array.sort()` is deep
|
|
47
|
-
- `class Wrapper { getX() { return this.x; } }` is shallow
|
|
46
|
+
- `Array.sort()` is deep - one method name hides ~50 lines of comparison-sort logic plus stable-ordering guarantees.
|
|
47
|
+
- `class Wrapper { getX() { return this.x; } }` is shallow - the wrapper adds no use; the caller has to know about `Wrapper` AND `x`.
|
|
48
48
|
- Asymmetry in the caller's favor is the goal. Shallow modules cost the caller mental complexity without paying it back.
|
|
49
|
-
- See `./component-authoring.md` "Minimal API"
|
|
49
|
+
- See `./component-authoring.md` "Minimal API" - a 1-prop `<Image src=... />` that handles preload, lazy load, srcset, blur placeholder, error fallback is the depth principle applied to component design.
|
|
50
50
|
|
|
51
51
|
## Seam
|
|
52
52
|
|
|
53
|
-
The boundary where two abstractions meet
|
|
53
|
+
The boundary where two abstractions meet - where one module's interface is consumed by another. Seams are where you can replace one side without touching the other.
|
|
54
54
|
|
|
55
|
-
- **Hypothetical seam.** Only one implementation exists behind the boundary. Nothing yet validates the abstraction is meaningful
|
|
56
|
-
- **Real seam.** Two or more implementations exist; the boundary has been proved
|
|
55
|
+
- **Hypothetical seam.** Only one implementation exists behind the boundary. Nothing yet validates the abstraction is meaningful - the seam is a possibility statement.
|
|
56
|
+
- **Real seam.** Two or more implementations exist; the boundary has been proved essential by actual substitution. The seam is evidence.
|
|
57
57
|
- "One adapter = hypothetical seam; two adapters = real seam." See `## Principles` below.
|
|
58
58
|
- A `fetchUser` function backed only by Postgres is hypothetical; once a test double + a Postgres impl coexist, the seam is real.
|
|
59
59
|
|
|
@@ -61,42 +61,42 @@ The boundary where two abstractions meet — where one module's interface is con
|
|
|
61
61
|
|
|
62
62
|
A module that transforms one interface into another to enable substitution behind a seam. Adapters create seams; the count of distinct adapters approximates the seam's realism.
|
|
63
63
|
|
|
64
|
-
- A Redux-to-Zustand adapter exposes Redux's `store.dispatch` while wrapping a Zustand store underneath
|
|
64
|
+
- A Redux-to-Zustand adapter exposes Redux's `store.dispatch` while wrapping a Zustand store underneath - callers keep their Redux API; the implementation moved.
|
|
65
65
|
- A design-token theme is an adapter: it transforms one token contract (`--color-bg`) into specific concrete values (`oklch(98% 0 0)` in light theme, `oklch(15% 0 0)` in dark).
|
|
66
|
-
- An `acp-client` plus an `asp-client` are two adapters over the same "peer-CLI" seam
|
|
66
|
+
- An `acp-client` plus an `asp-client` are two adapters over the same "peer-CLI" seam - the second one proves the seam is meaningful (Phase 27).
|
|
67
67
|
|
|
68
|
-
##
|
|
68
|
+
## Use
|
|
69
69
|
|
|
70
|
-
The ratio of work-the-system-does to interface-the-caller-touches. High
|
|
70
|
+
The ratio of work-the-system-does to interface-the-caller-touches. High use = high depth = the caller buys a lot of work for a little API. Architectural choices that maximize use reduce future cost across all callers.
|
|
71
71
|
|
|
72
|
-
- `<Image />` with a `src` prop that handles preload, lazy load, srcset generation, blur placeholder, error fallback
|
|
73
|
-
- A 5-prop `<Button variant size leftIcon rightIcon onClick />` that only renders a styled `<button>`
|
|
74
|
-
-
|
|
72
|
+
- `<Image />` with a `src` prop that handles preload, lazy load, srcset generation, blur placeholder, error fallback - high use from a 1-prop API. Every caller benefits.
|
|
73
|
+
- A 5-prop `<Button variant size leftIcon rightIcon onClick />` that only renders a styled `<button>` - low use; the caller is still doing most of the configuration work.
|
|
74
|
+
- Use compounds. A high-impact primitive used by 20 components multiplies the original investment 20×.
|
|
75
75
|
|
|
76
76
|
## Locality
|
|
77
77
|
|
|
78
|
-
Related changes happen in the same place; unrelated changes do not ripple. Spatial cohesion of the change footprint. Locality is what makes a codebase "easy to modify"
|
|
78
|
+
Related changes happen in the same place; unrelated changes do not ripple. Spatial cohesion of the change footprint. Locality is what makes a codebase "easy to modify" - you can find the thing and change just the thing.
|
|
79
79
|
|
|
80
80
|
- Healthy: adding a new chart type touches `chart-types/<new-type>.ts` only.
|
|
81
81
|
- Broken: adding a new chart type touches `chart-types.ts` AND `chart-renderer.ts` AND `chart-config.ts` AND `chart-styles.css` AND `chart-icons.svg`. The system is forcing the author to remember 5 files for a 1-concept change.
|
|
82
|
-
- Test it with the **deletion test** (see `## Principles`)
|
|
82
|
+
- Test it with the **deletion test** (see `## Principles`) - if removing the feature requires touching the same N files, locality is asymmetric and the abstraction is leaking.
|
|
83
83
|
|
|
84
84
|
## Principles
|
|
85
85
|
|
|
86
|
-
Three
|
|
86
|
+
Three essential rules that operationalize the vocabulary above. Each one is a question you can ask during review.
|
|
87
87
|
|
|
88
|
-
- **Deletion test.** Can you delete the implementation and the interface still tells callers what they could do? If yes, the interface is well-defined and the module is properly encapsulated. If no, the interface is leaking implementation
|
|
89
|
-
- **Interface is the test surface.** Tests target the interface; implementation churn does not churn tests. If a refactor that preserves behavior breaks tests, the test was implementation-coupled
|
|
90
|
-
- **One adapter = hypothetical seam; two adapters = real seam.** One substitution is a possibility statement; two substitutions are evidence the boundary is meaningful. Do not over-design seams without ≥2 implementations
|
|
88
|
+
- **Deletion test.** Can you delete the implementation and the interface still tells callers what they could do? If yes, the interface is well-defined and the module is properly encapsulated. If no, the interface is leaking implementation - callers are reaching past the abstraction. Apply this when reviewing a new module: imagine deleting the body; can a reader still describe the surface from the signature alone?
|
|
89
|
+
- **Interface is the test surface.** Tests target the interface; implementation churn does not churn tests. If a refactor that preserves behavior breaks tests, the test was implementation-coupled - fix the test, not the refactor. This is also the diagnostic for whether you have a real interface at all: if you cannot test through it, the interface is too narrow or the implementation is leaking.
|
|
90
|
+
- **One adapter = hypothetical seam; two adapters = real seam.** One substitution is a possibility statement; two substitutions are evidence the boundary is meaningful. Do not over-design seams without ≥2 implementations - the second one teaches you what the seam actually needs. This is YAGNI for boundaries: ship the first impl, extract the seam when the second one arrives.
|
|
91
91
|
|
|
92
92
|
## How this applies to skill authoring
|
|
93
93
|
|
|
94
|
-
Skills are modules. The frontmatter (`name`, `description`, `tags`) plus the workflow signature is the interface; the SKILL.md body is the implementation. A deep skill has a small, predictable interface (clear when to invoke, clear output shape) hiding genuine workflow value. A shallow skill is one whose body adds little beyond what the frontmatter already implies
|
|
94
|
+
Skills are modules. The frontmatter (`name`, `description`, `tags`) plus the workflow signature is the interface; the SKILL.md body is the implementation. A deep skill has a small, predictable interface (clear when to invoke, clear output shape) hiding genuine workflow value. A shallow skill is one whose body adds little beyond what the frontmatter already implies - those skills should be either deepened or deleted. The skill-authoring contract's 100-line cap is the depth principle applied to skills: if the implementation cannot fit in 100 lines, either the workflow is too broad (split it) or supporting domain content should move to `reference/*.md` (extract-then-link, D-10). See `./skill-authoring-contract.md` for the full spec.
|
|
95
95
|
|
|
96
96
|
## Cross-references
|
|
97
97
|
|
|
98
|
-
- Design-system-level analog
|
|
99
|
-
- Component-library-level analog
|
|
100
|
-
- Skill-authoring application
|
|
98
|
+
- Design-system-level analog - component-as-module, design-token-as-interface: see `./design-system-guidance.md`.
|
|
99
|
+
- Component-library-level analog - the 6-principle quality standard (Minimal API, Composability, ...): see `./component-authoring.md`.
|
|
100
|
+
- Skill-authoring application - extract-then-link, 100-line cap, refs-one-level-deep: see `./skill-authoring-contract.md`.
|
|
101
101
|
- `CONTEXT.md` glossary format (project-scoped ubiquitous language alongside this vocabulary): see `./context-md-format.md`.
|
|
102
102
|
- ADR format (heavier project-scoped decisions about architectural seams): see `./adr-format.md`.
|
|
@@ -8,7 +8,7 @@ Use during Discover (establishing baseline) and Verify (measuring improvement).
|
|
|
8
8
|
|
|
9
9
|
| Level | Code | Impact | Action |
|
|
10
10
|
|---|---|---|---|
|
|
11
|
-
| Blocker | **P0** | Breaks functionality or violates a hard requirement | Fix before shipping
|
|
11
|
+
| Blocker | **P0** | Breaks functionality or violates a hard requirement | Fix before shipping - no exceptions |
|
|
12
12
|
| Major | **P1** | Significantly degrades UX or fails accessibility standard | Fix in this design pass |
|
|
13
13
|
| Minor | **P2** | Noticeable issue but doesn't break flows | Fix if time allows |
|
|
14
14
|
| Cosmetic | **P3** | Polish item only, subjective quality issue | Deferred to polish pass |
|
|
@@ -24,10 +24,10 @@ Score each category 0–10. Overall score = weighted average.
|
|
|
24
24
|
| Score | Criteria |
|
|
25
25
|
|---|---|
|
|
26
26
|
| 10 | All WCAG 2.1 AA criteria pass. Keyboard nav works end-to-end. Focus rings visible. No color-only meaning. |
|
|
27
|
-
| 8–9 | Minor issues
|
|
28
|
-
| 5–7 | Several violations
|
|
29
|
-
| 3–4 | Multiple failures
|
|
30
|
-
| 0–2 | Critical failures
|
|
27
|
+
| 8–9 | Minor issues - 1–2 non-critical violations, no contrast failures on primary text |
|
|
28
|
+
| 5–7 | Several violations - contrast issues on secondary text, some missing labels |
|
|
29
|
+
| 3–4 | Multiple failures - some interactive elements inaccessible, missing alt text |
|
|
30
|
+
| 0–2 | Critical failures - primary text fails contrast, keyboard nav broken, missing form labels |
|
|
31
31
|
|
|
32
32
|
Auto-checkable:
|
|
33
33
|
- Body text contrast ≥ 4.5:1
|
|
@@ -73,7 +73,7 @@ grep -rEn "(padding|margin|gap):\s*(8|12|16)px" src/ --include="*.css" 2>/dev/nu
|
|
|
73
73
|
grep -rEn "(margin-top|margin-bottom|gap):\s*(32|40|48|64)px" src/ --include="*.css" 2>/dev/null | head -5
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
These patterns supplement the qualitative rubric above
|
|
76
|
+
These patterns supplement the qualitative rubric above - they cannot replace
|
|
77
77
|
visual inspection but reduce false positives during automated audit passes.
|
|
78
78
|
|
|
79
79
|
### 3. Typography (Weight: 15%)
|
|
@@ -162,11 +162,11 @@ Score = (Accessibility × 0.25)
|
|
|
162
162
|
|
|
163
163
|
| Grade | Score | Meaning |
|
|
164
164
|
|---|---|---|
|
|
165
|
-
| A | 90–100 | Excellent
|
|
166
|
-
| B | 75–89 | Good
|
|
167
|
-
| C | 60–74 | Acceptable
|
|
168
|
-
| D | 45–59 | Poor
|
|
169
|
-
| F | 0–44 | Failing
|
|
165
|
+
| A | 90–100 | Excellent - production ready |
|
|
166
|
+
| B | 75–89 | Good - minor polish needed |
|
|
167
|
+
| C | 60–74 | Acceptable - notable issues to address |
|
|
168
|
+
| D | 45–59 | Poor - significant redesign needed |
|
|
169
|
+
| F | 0–44 | Failing - fundamental problems |
|
|
170
170
|
|
|
171
171
|
---
|
|
172
172
|
|
|
@@ -226,7 +226,7 @@ Check for (see `reference/checklists.md` Micro-Polish Check gate):
|
|
|
226
226
|
- Font smoothing at `:root` only
|
|
227
227
|
- Dynamic numbers: `font-variant-numeric: tabular-nums`
|
|
228
228
|
- Nested elements: concentric radius (`innerRadius = outerRadius − padding`)
|
|
229
|
-
- Images: `outline: 1px solid rgba(0,0,0,0.08)`
|
|
229
|
+
- Images: `outline: 1px solid rgba(0,0,0,0.08)` - no tinted outlines
|
|
230
230
|
- Interactive elements <40px: `::after` hit-area extension to 40×40
|
|
231
231
|
- Press feedback: `scale(0.96)` exactly
|
|
232
232
|
- `AnimatePresence` on persistent UI: `initial={false}`
|
|
@@ -239,7 +239,7 @@ Check for (see `reference/checklists.md` Micro-Polish Check gate):
|
|
|
239
239
|
|
|
240
240
|
## Lens-Tags (Orthogonal)
|
|
241
241
|
|
|
242
|
-
Tags auditors attach to findings under existing pillars to record cross-cutting dimensions without changing the pillar structure or weights. Same orthogonal pattern as Phase 19.6 `emotion_levels` and `authoring_principles`. Adding a lens-tag does NOT change pillar weights, scoring math, or audit output format
|
|
242
|
+
Tags auditors attach to findings under existing pillars to record cross-cutting dimensions without changing the pillar structure or weights. Same orthogonal pattern as Phase 19.6 `emotion_levels` and `authoring_principles`. Adding a lens-tag does NOT change pillar weights, scoring math, or audit output format - it is a label on an existing finding.
|
|
243
243
|
|
|
244
244
|
### `composition_alignment`
|
|
245
245
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Authority Feeds
|
|
1
|
+
# Authority Feeds - Whitelist
|
|
2
2
|
|
|
3
|
-
> **Scope:** Curated whitelist of **design authorities**
|
|
3
|
+
> **Scope:** Curated whitelist of **design authorities** - sources that ship specs, guidelines, or named-practitioner curation. Consumed by `agents/design-authority-watcher.md` at runtime. Rejected kinds are listed explicitly below and enforced by `scripts/tests/test-authority-rejected-kinds.sh`.
|
|
4
4
|
>
|
|
5
5
|
> **Anti-slop thesis:** No Dribbble. No Behance. No LinkedIn. No generic trending aggregators. See `.planning/PROJECT.md` and `.planning/phases/13.2-external-authority-watcher/13.2-CONTEXT.md` §D-08.
|
|
6
6
|
|
|
@@ -11,43 +11,43 @@
|
|
|
11
11
|
|
|
12
12
|
## Spec sources (4-5 feeds)
|
|
13
13
|
|
|
14
|
-
- **[WAI-ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/)**
|
|
15
|
-
- **[Material Design 3](https://m3.material.io/)**
|
|
16
|
-
- **[Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)**
|
|
17
|
-
- **[Fluent 2 Design System](https://fluent2.microsoft.design/)**
|
|
18
|
-
- **[W3C Design Tokens Community Group](https://www.w3.org/community/design-tokens/)**
|
|
14
|
+
- **[WAI-ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/)** - `kind: spec-source` · `url: https://github.com/w3c/aria-practices/releases.atom` · `cadence-hint: monthly` · *Normative accessibility patterns from the W3C ARIA working group; release-tagged on each APG update.*
|
|
15
|
+
- **[Material Design 3](https://m3.material.io/)** - `kind: spec-source` · `url: https://github.com/material-components/material-web/releases.atom` · `cadence-hint: weekly` · *Google's design system release notes; new tokens and components land here first.*
|
|
16
|
+
- **[Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)** - `kind: spec-source` · `url: https://developer.apple.com/news/releases/rss/releases.rss` · `cadence-hint: irregular` · *Apple developer release feed - HIG updates ship alongside SDK announcements.*
|
|
17
|
+
- **[Fluent 2 Design System](https://fluent2.microsoft.design/)** - `kind: spec-source` · `url: https://github.com/microsoft/fluentui/releases.atom` · `cadence-hint: weekly` · *Microsoft's cross-platform design system; normative component API and token changes.*
|
|
18
|
+
- **[W3C Design Tokens Community Group](https://www.w3.org/community/design-tokens/)** - `kind: spec-source` · `url: https://github.com/design-tokens/community-group/commits/main.atom` · `cadence-hint: monthly` · *Draft tokens format spec; commit feed surfaces spec edits before formal publication.*
|
|
19
19
|
|
|
20
20
|
## Component systems (6-8 feeds)
|
|
21
21
|
|
|
22
|
-
- **[Radix UI](https://www.radix-ui.com/)**
|
|
23
|
-
- **[shadcn/ui](https://ui.shadcn.com/)**
|
|
24
|
-
- **[Shopify Polaris](https://polaris.shopify.com/)**
|
|
25
|
-
- **[IBM Carbon](https://carbondesignsystem.com/)**
|
|
26
|
-
- **[GitHub Primer](https://primer.style/)**
|
|
27
|
-
- **[Atlassian Design System](https://atlassian.design/)**
|
|
28
|
-
- **[Ant Design](https://ant.design/)**
|
|
29
|
-
- **[Mantine](https://mantine.dev/)**
|
|
22
|
+
- **[Radix UI](https://www.radix-ui.com/)** - `kind: component-system` · `url: https://github.com/radix-ui/primitives/releases.atom` · `cadence-hint: weekly` · *Unstyled accessible primitives; release notes document ARIA behavior changes.*
|
|
23
|
+
- **[shadcn/ui](https://ui.shadcn.com/)** - `kind: component-system` · `url: https://github.com/shadcn-ui/ui/releases.atom` · `cadence-hint: weekly` · *Copy-paste component library built on Radix + Tailwind; release notes map to new patterns.*
|
|
24
|
+
- **[Shopify Polaris](https://polaris.shopify.com/)** - `kind: component-system` · `url: https://github.com/Shopify/polaris/releases.atom` · `cadence-hint: weekly` · *Shopify admin design system; commerce-tuned component patterns.*
|
|
25
|
+
- **[IBM Carbon](https://carbondesignsystem.com/)** - `kind: component-system` · `url: https://github.com/carbon-design-system/carbon/releases.atom` · `cadence-hint: weekly` · *IBM's enterprise design system; strong on data-dense patterns and accessibility.*
|
|
26
|
+
- **[GitHub Primer](https://primer.style/)** - `kind: component-system` · `url: https://github.com/primer/react/releases.atom` · `cadence-hint: weekly` · *GitHub's design system; opinionated developer-tool patterns.*
|
|
27
|
+
- **[Atlassian Design System](https://atlassian.design/)** - `kind: component-system` · `url: https://github.com/atlassian/design-system/releases.atom` · `cadence-hint: weekly` · *Jira/Confluence design system; strong on collaboration and editor patterns.*
|
|
28
|
+
- **[Ant Design](https://ant.design/)** - `kind: component-system` · `url: https://github.com/ant-design/ant-design/releases.atom` · `cadence-hint: weekly` · *Enterprise React component library with deep form and table patterns.*
|
|
29
|
+
- **[Mantine](https://mantine.dev/)** - `kind: component-system` · `url: https://github.com/mantinedev/mantine/releases.atom` · `cadence-hint: weekly` · *React components with hooks-first architecture; strong accessibility defaults.*
|
|
30
30
|
|
|
31
31
|
## Research institutions (2-3 feeds)
|
|
32
32
|
|
|
33
|
-
- **[Nielsen Norman Group Articles](https://www.nngroup.com/articles/)**
|
|
34
|
-
- **[Laws of UX](https://lawsofux.com/)**
|
|
35
|
-
- **[Baymard Institute](https://baymard.com/)**
|
|
33
|
+
- **[Nielsen Norman Group Articles](https://www.nngroup.com/articles/)** - `kind: research` · `url: https://www.nngroup.com/feed/rss/` · `cadence-hint: weekly` · *UX research articles from the Nielsen Norman Group; heuristic updates and usability findings ship here.*
|
|
34
|
+
- **[Laws of UX](https://lawsofux.com/)** - `kind: research` · `url: https://github.com/jonyablonski/laws-of-ux/releases.atom` · `cadence-hint: monthly` · *Jon Yablonski's curated catalogue of psychology-rooted UX principles; release feed tracks new laws and revisions.*
|
|
35
|
+
- **[Baymard Institute](https://baymard.com/)** - `kind: research` · `url: https://baymard.com/blog/rss` · `cadence-hint: monthly` · *E-commerce UX research with empirical benchmarks; public surface of their large-scale usability studies.*
|
|
36
36
|
|
|
37
37
|
## Named practitioners (10-12 feeds)
|
|
38
38
|
|
|
39
|
-
- **[Adam Wathan](https://adamwathan.me/)**
|
|
40
|
-
- **[Ryan Mulligan](https://ryanmulligan.dev/)**
|
|
41
|
-
- **[Rachel Andrew](https://rachelandrew.co.uk/)**
|
|
42
|
-
- **[Josh W. Comeau](https://www.joshwcomeau.com/)**
|
|
43
|
-
- **[Ahmad Shadeed](https://ishadeed.com/)**
|
|
44
|
-
- **[Sara Soueidan](https://www.sarasoueidan.com/)**
|
|
45
|
-
- **[Lea Verou](https://lea.verou.me/)**
|
|
46
|
-
- **[Scott Jehl](https://scottjehl.com/)**
|
|
47
|
-
- **[Heydon Pickering](https://heydonworks.com/)**
|
|
48
|
-
- **[Una Kravets](https://una.im/)**
|
|
49
|
-
- **[Don Norman
|
|
50
|
-
- **[Vitsœ
|
|
39
|
+
- **[Adam Wathan](https://adamwathan.me/)** - `kind: named-practitioner` · `url: https://adamwathan.me/feed.xml` · `cadence-hint: monthly` · *Tailwind creator; utility-first CSS, component API design, refactoring patterns.*
|
|
40
|
+
- **[Ryan Mulligan](https://ryanmulligan.dev/)** - `kind: named-practitioner` · `url: https://ryanmulligan.dev/feed.xml` · `cadence-hint: monthly` · *CSS craft at spec-adjacent depth; cascade layers, container queries, color functions.*
|
|
41
|
+
- **[Rachel Andrew](https://rachelandrew.co.uk/)** - `kind: named-practitioner` · `url: https://rachelandrew.co.uk/feed/atom` · `cadence-hint: monthly` · *CSS Working Group member; grid, layout, and evolving layout-engine features.*
|
|
42
|
+
- **[Josh W. Comeau](https://www.joshwcomeau.com/)** - `kind: named-practitioner` · `url: https://www.joshwcomeau.com/rss.xml` · `cadence-hint: monthly` · *Interactive explainers on CSS, animation, and React rendering; durable reference-quality deep dives.*
|
|
43
|
+
- **[Ahmad Shadeed](https://ishadeed.com/)** - `kind: named-practitioner` · `url: https://ishadeed.com/rss.xml` · `cadence-hint: monthly` · *CSS layout and component articles grounded in real interface patterns.*
|
|
44
|
+
- **[Sara Soueidan](https://www.sarasoueidan.com/)** - `kind: named-practitioner` · `url: https://www.sarasoueidan.com/feed.xml` · `cadence-hint: quarterly` · *SVG, accessibility, and inclusive design with spec-level rigor.*
|
|
45
|
+
- **[Lea Verou](https://lea.verou.me/)** - `kind: named-practitioner` · `url: https://lea.verou.me/feed/atom` · `cadence-hint: quarterly` · *CSS Working Group invited expert; writes about the spec surface before it ships.*
|
|
46
|
+
- **[Scott Jehl](https://scottjehl.com/)** - `kind: named-practitioner` · `url: https://scottjehl.com/feed/` · `cadence-hint: monthly` · *Progressive enhancement and web performance; long-form durable analysis.*
|
|
47
|
+
- **[Heydon Pickering](https://heydonworks.com/)** - `kind: named-practitioner` · `url: https://heydonworks.com/feed.xml` · `cadence-hint: irregular` · *Accessibility-first component design; Inclusive Components author.*
|
|
48
|
+
- **[Una Kravets](https://una.im/)** - `kind: named-practitioner` · `url: https://una.im/feed.xml` · `cadence-hint: monthly` · *Chrome DevRel on CSS; surfaces and explains new platform capabilities.*
|
|
49
|
+
- **[Don Norman - jnd.org](https://jnd.org/)** - `kind: named-practitioner` · `url: https://jnd.org/feed/` · `cadence-hint: monthly` · *Don Norman's essays on emotional design, affordances, cognitive design, and human-centered AI. Primary source for `reference/emotional-design.md`.*
|
|
50
|
+
- **[Vitsœ - Dieter Rams](https://www.vitsoe.com/gb/about/good-design)** - `kind: named-practitioner` · `url: https://www.vitsoe.com/feed` · `cadence-hint: irregular` · *Canonical source for Rams's 10 Principles of Good Design. Published by Vitsœ, who worked directly with Rams at Braun. Primary source for the Rams Lens in `reference/checklists.md`.*
|
|
51
51
|
|
|
52
52
|
## User-added Are.na channels (user-extensible)
|
|
53
53
|
|
|
@@ -59,13 +59,13 @@ Are.na channels are user-curated reference collections. Add your own channel by
|
|
|
59
59
|
|
|
60
60
|
## Rejected kinds
|
|
61
61
|
|
|
62
|
-
The following hosts and feed kinds are **explicitly rejected** from this whitelist. This list is enforced by `scripts/tests/test-authority-rejected-kinds.sh`
|
|
62
|
+
The following hosts and feed kinds are **explicitly rejected** from this whitelist. This list is enforced by `scripts/tests/test-authority-rejected-kinds.sh` - any merge that adds a matching URL fails CI.
|
|
63
63
|
|
|
64
|
-
- **dribbble.com**
|
|
65
|
-
- **behance.net**
|
|
66
|
-
- **linkedin.com**
|
|
67
|
-
- **medium.com/topic/\***
|
|
68
|
-
- **"trending"-style aggregators** (e.g., product-hunt daily digests, "top 10 UI" roundups)
|
|
64
|
+
- **dribbble.com** - visual-trend aggregator; no normative content, no named-practitioner curation.
|
|
65
|
+
- **behance.net** - portfolio aggregator; same category.
|
|
66
|
+
- **linkedin.com** - social feed; signal-to-noise ratio incompatible with the plugin's anti-slop thesis.
|
|
67
|
+
- **medium.com/topic/\*** - generic topic feeds; named Medium authors may appear as `named-practitioner` entries, but topic-level feeds are rejected wholesale.
|
|
68
|
+
- **"trending"-style aggregators** (e.g., product-hunt daily digests, "top 10 UI" roundups) - curatorial output indistinguishable from advertising.
|
|
69
69
|
|
|
70
70
|
Rationale: the whitelist is restricted to sources that ship specs, guidelines, or named-practitioner curation (PROJECT.md, ROADMAP.md SC 8, CONTEXT.md D-08).
|
|
71
71
|
|
|
@@ -3,10 +3,10 @@ name: bandit-integration
|
|
|
3
3
|
phase: 27.5
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
type: meta-rules
|
|
6
|
-
description: Bandit posterior + production-integration shim cheat sheet
|
|
6
|
+
description: Bandit posterior + production-integration shim cheat sheet - signatures, reward function semantics, adaptive_mode gate, posterior path conventions.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# Bandit Integration
|
|
9
|
+
# Bandit Integration - Developer Cheat Sheet
|
|
10
10
|
|
|
11
11
|
**Phase 27.5 (v1.27.5).** Reference for the bandit production-integration surface. Authoring or modifying a caller of the bandit posterior? Debugging a routing decision at the code level? Start here.
|
|
12
12
|
|
|
@@ -21,20 +21,20 @@ In-scope modules:
|
|
|
21
21
|
|
|
22
22
|
## The two-stage architecture
|
|
23
23
|
|
|
24
|
-
Phase 23.5 ships the bandit primitives
|
|
24
|
+
Phase 23.5 ships the bandit primitives - Thompson-sampling pull, posterior update, computeReward, atomic persistence. Phase 27-07 added the `delegate?` arm dimension (5 peer-CLI arms + the local `none` arm). Both phases shipped library-only with no production callers.
|
|
25
25
|
|
|
26
26
|
Phase 27.5 ships the production-integration shim that wraps the primitives behind two purpose-built entry points and hides the `pull` vs `pullWithDelegate` choice. Callers pass a `delegate` argument and the shim routes internally.
|
|
27
27
|
|
|
28
|
-
### Phase 23.5 + 27-07 surface
|
|
28
|
+
### Phase 23.5 + 27-07 surface - `scripts/lib/bandit-router.cjs`
|
|
29
29
|
|
|
30
30
|
Exports: `pull`, `update`, `pullWithDelegate`, `updateWithDelegate`, `computeReward`, `loadPosterior`, `savePosterior`, `reset`, `decayArm`, `sampleBeta`, `priorFor`, `binForGlobCount`, `DEFAULT_DELEGATES`, `DELEGATE_NONE`, `TIER_PRIOR`, `PRIOR_STRENGTH`, `TOUCHES_BINS`, `DEFAULT_POSTERIOR_PATH`, `SCHEMA_VERSION`.
|
|
31
31
|
|
|
32
32
|
The two-pair primitive split:
|
|
33
33
|
|
|
34
|
-
- `pull({agent, bin, ...})` / `update({agent, bin, tier, reward, ...})`
|
|
35
|
-
- `pullWithDelegate({agent, bin, delegates, ...})` / `updateWithDelegate({agent, bin, tier, delegate, reward, ...})`
|
|
34
|
+
- `pull({agent, bin, ...})` / `update({agent, bin, tier, reward, ...})` - operate on the `(agent, bin, tier)` arm slice. Equivalent to `delegate='none'`.
|
|
35
|
+
- `pullWithDelegate({agent, bin, delegates, ...})` / `updateWithDelegate({agent, bin, tier, delegate, reward, ...})` - operate on the `(agent, bin, tier, delegate)` arm slice for any `delegate ∈ DEFAULT_DELEGATES`.
|
|
36
36
|
|
|
37
|
-
### Phase 27.5 surface
|
|
37
|
+
### Phase 27.5 surface - `scripts/lib/bandit-router/integration.cjs`
|
|
38
38
|
|
|
39
39
|
Exports: `consultBandit`, `recordOutcome`, `DELEGATE_NONE`.
|
|
40
40
|
|
|
@@ -75,7 +75,7 @@ consultBandit({
|
|
|
75
75
|
}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
`decision_log.source` is the audit trail
|
|
78
|
+
`decision_log.source` is the audit trail - it tells observability tools which routing branch ran. Tests use it to assert the correct path was taken.
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
@@ -108,9 +108,9 @@ Phase 27.5 passes `wallTimeMs: 0` always (D-08 unchanged from Phase 23.5).
|
|
|
108
108
|
|
|
109
109
|
Phase 23.5 ladder (D-07):
|
|
110
110
|
|
|
111
|
-
- `static`
|
|
112
|
-
- `hedge`
|
|
113
|
-
- `full`
|
|
111
|
+
- `static` - default. Bandit silent. `default-tier:` is authoritative. No reads, no writes.
|
|
112
|
+
- `hedge` - measurement-only. Bandit silent on reads, but `recordOutcome` may still write to seed the posterior. Currently identical to `static` in Phase 27.5; reserved for Phase 28+ explicit "hedge mode".
|
|
113
|
+
- `full` - bandit active. Reads pick via Thompson sampling; writes update posterior.
|
|
114
114
|
|
|
115
115
|
The shim respects the gate transparently. Operators flip via `.design/budget.json#adaptive_mode`.
|
|
116
116
|
|
|
@@ -122,8 +122,8 @@ The shim respects the gate transparently. Operators flip via `.design/budget.jso
|
|
|
122
122
|
|
|
123
123
|
Two-stage lexicographic (D-08, unchanged from Phase 23.5):
|
|
124
124
|
|
|
125
|
-
- Stage 1
|
|
126
|
-
- Stage 2
|
|
125
|
+
- Stage 1 - correctness: if `solidify_pass !== true`, return `0`.
|
|
126
|
+
- Stage 2 - cost: return `1 - lambda * normalize(cost_usd + epsilon * wall_time_ms)`.
|
|
127
127
|
|
|
128
128
|
Defaults: `lambda = 0.3`, `epsilon = 0.05`. `normalize` maps `[0, $5]` linearly to `[0, 1]`, clamped.
|
|
129
129
|
|
|
@@ -137,7 +137,7 @@ Canonical path: `.design/telemetry/posterior.json` (Phase 23.5 D-08, Phase 27.5
|
|
|
137
137
|
|
|
138
138
|
Test injection: pass `baseDir` (anchors path under a different workspace root) or `posteriorPath` (overrides the file path directly). Both `consultBandit` and `recordOutcome` accept these options.
|
|
139
139
|
|
|
140
|
-
Write discipline: atomic via `.tmp` + rename. Read failures yield an empty posterior; subsequent writes overwrite. Concurrent writers within the same process are not synchronized
|
|
140
|
+
Write discipline: atomic via `.tmp` + rename. Read failures yield an empty posterior; subsequent writes overwrite. Concurrent writers within the same process are not synchronized - gdd's session-runner is single-threaded.
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
@@ -145,19 +145,19 @@ Write discipline: atomic via `.tmp` + rename. Read failures yield an empty poste
|
|
|
145
145
|
|
|
146
146
|
Phase 27.5 wires these consumers:
|
|
147
147
|
|
|
148
|
-
- **`hooks/budget-enforcer.ts`** (Plan 27.5-02)
|
|
149
|
-
- **`scripts/lib/session-runner/index.ts`** (Plan 27.5-03)
|
|
150
|
-
- **`agents/design-reflector.md` Section 8** (Plan 27.5-04)
|
|
151
|
-
- **`skills/peers/SKILL.md` Step 5 + `skills/bandit-status/SKILL.md`** (Plan 27.5-05)
|
|
148
|
+
- **`hooks/budget-enforcer.ts`** (Plan 27.5-02) - per Agent spawn, after `resolved_models` is computed, before SDK call. Calls `consultBandit({agent, bin, delegate, agentFrontmatter, adaptiveMode})`. Overrides `resolved_models[agent]` with the bandit tier via `tier-resolver.cjs`. Emits `bandit.tier_selected` event for observability.
|
|
149
|
+
- **`scripts/lib/session-runner/index.ts`** (Plan 27.5-03) - terminal-emit path. Calls `recordOutcome({agent, bin, delegate, tier, status, costUsd})` after every `emit('session.completed', ...)` site (4 sites: rate-limited, peer-success, turn-cap-zero, terminal retry-exit). Posterior write is best-effort; missing optional fields silent.
|
|
150
|
+
- **`agents/design-reflector.md` Section 8** (Plan 27.5-04) - bandit-arbitrage analysis. `scripts/lib/bandit-arbitrage.cjs` reads `.design/telemetry/posterior.json` and surfaces stale-frontmatter proposals. Mirrors Phase 26-06's `cost-arbitrage.cjs` shape.
|
|
151
|
+
- **`skills/peers/SKILL.md` Step 5 + `skills/bandit-status/SKILL.md`** (Plan 27.5-05) - read-only diagnostic surfaces. `/gdd:peers` posterior delta column populated; `/gdd:bandit-status` renders per-`(agent, bin, delegate, tier)` snapshots.
|
|
152
152
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
155
|
## Cross-references
|
|
156
156
|
|
|
157
|
-
- `docs/BANDIT-INTEGRATION.md`
|
|
158
|
-
- `reference/peer-protocols.md`
|
|
159
|
-
- `scripts/lib/bandit-router.cjs`
|
|
160
|
-
- `scripts/lib/bandit-router/integration.cjs`
|
|
161
|
-
- `scripts/lib/bandit-arbitrage.cjs`
|
|
162
|
-
- `hooks/budget-enforcer.ts`
|
|
163
|
-
- `scripts/lib/session-runner/index.ts`
|
|
157
|
+
- `docs/BANDIT-INTEGRATION.md` - operator guide (when bandit fires, how to disable, troubleshooting).
|
|
158
|
+
- `reference/peer-protocols.md` - Phase 27 ACP/ASP cheat sheet (peer-CLI delegation transport).
|
|
159
|
+
- `scripts/lib/bandit-router.cjs` - Phase 23.5 primitives surface.
|
|
160
|
+
- `scripts/lib/bandit-router/integration.cjs` - Phase 27.5 production shim.
|
|
161
|
+
- `scripts/lib/bandit-arbitrage.cjs` - Phase 27.5 reflector analyzer (Section 8 of `design-reflector.md`).
|
|
162
|
+
- `hooks/budget-enforcer.ts` - bandit consultation site.
|
|
163
|
+
- `scripts/lib/session-runner/index.ts` - `recordOutcome` site.
|