@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
|
@@ -82,7 +82,7 @@ h1 {
|
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
**Do:** Set `font-variation-settings` on a parent and let children inherit.
|
|
85
|
-
**Don't:** Override `font-variation-settings` on a child while expecting inherited axes to persist
|
|
85
|
+
**Don't:** Override `font-variation-settings` on a child while expecting inherited axes to persist - the property does not merge; it replaces entirely.
|
|
86
86
|
|
|
87
87
|
```css
|
|
88
88
|
/* WRONG — child loses 'wght' axis set on parent */
|
|
@@ -151,9 +151,9 @@ body { font-optical-sizing: auto; }
|
|
|
151
151
|
|
|
152
152
|
| Value | Block period | Swap period | Best for |
|
|
153
153
|
|-------|-------------|-------------|----------|
|
|
154
|
-
| `auto` | Browser default (usually same as `block`) | Varies | Avoid
|
|
154
|
+
| `auto` | Browser default (usually same as `block`) | Varies | Avoid - unpredictable |
|
|
155
155
|
| `block` | ~3s invisible | Infinite swap | Icon fonts where letters must match |
|
|
156
|
-
| `swap` | ~0ms invisible | Infinite swap | Body copy, headings
|
|
156
|
+
| `swap` | ~0ms invisible | Infinite swap | Body copy, headings - text visible immediately |
|
|
157
157
|
| `fallback` | ~100ms invisible | ~3s swap | Performance-sensitive text; graceful if font is slow |
|
|
158
158
|
| `optional` | ~100ms invisible | 0s (no swap) | Decorative fonts, hero text; skip swap if font not cached |
|
|
159
159
|
|
|
@@ -224,7 +224,7 @@ Preload only the subset(s) used above the fold. Preloading unused fonts wastes b
|
|
|
224
224
|
- **1–2 font files maximum** as a general rule. More preloads compete with images, scripts, and CSS.
|
|
225
225
|
- Preload the **regular weight** (400) of the primary typeface first.
|
|
226
226
|
- Preload a **bold weight** (700) only if it appears above the fold in a critical heading.
|
|
227
|
-
- Never preload fonts with `font-display: optional`
|
|
227
|
+
- Never preload fonts with `font-display: optional` - the browser will skip the swap anyway on slow connections.
|
|
228
228
|
|
|
229
229
|
```html
|
|
230
230
|
<!-- Minimal correct preload for a typical site -->
|
|
@@ -278,7 +278,7 @@ Preload only the subset(s) used above the fold. Preloading unused fonts wastes b
|
|
|
278
278
|
|
|
279
279
|
### Subsetting Tools
|
|
280
280
|
|
|
281
|
-
**pyftsubset** (part of fonttools
|
|
281
|
+
**pyftsubset** (part of fonttools - Python):
|
|
282
282
|
|
|
283
283
|
```bash
|
|
284
284
|
# Install
|
|
@@ -300,7 +300,7 @@ pyftsubset inter-variable.ttf \
|
|
|
300
300
|
--retain-gids
|
|
301
301
|
```
|
|
302
302
|
|
|
303
|
-
**glyphhanger** (Node.js
|
|
303
|
+
**glyphhanger** (Node.js - analyzes a live URL and generates subset):
|
|
304
304
|
|
|
305
305
|
```bash
|
|
306
306
|
# Install
|
|
@@ -379,8 +379,8 @@ print(f"descent-override: {descent:.0f}%")
|
|
|
379
379
|
print(f"line-gap-override: {line_gap:.0f}%")
|
|
380
380
|
```
|
|
381
381
|
|
|
382
|
-
**Do:** Tune `size-adjust` first
|
|
383
|
-
**Don't:** Use `ascent-override: 100%` blindly
|
|
382
|
+
**Do:** Tune `size-adjust` first - it has the largest visual impact. Then fine-tune ascent/descent.
|
|
383
|
+
**Don't:** Use `ascent-override: 100%` blindly - 100% is the fallback default; only override when you have real metric data.
|
|
384
384
|
|
|
385
385
|
---
|
|
386
386
|
|
|
@@ -388,7 +388,7 @@ print(f"line-gap-override: {line_gap:.0f}%")
|
|
|
388
388
|
|
|
389
389
|
### GRAD Axis (Grade)
|
|
390
390
|
|
|
391
|
-
The Grade axis (`GRAD`) adjusts apparent weight without changing the advance widths of any glyphs. This means **no layout reflow** when switching between light and dark modes
|
|
391
|
+
The Grade axis (`GRAD`) adjusts apparent weight without changing the advance widths of any glyphs. This means **no layout reflow** when switching between light and dark modes - unlike changing `font-weight`, which can alter character widths.
|
|
392
392
|
|
|
393
393
|
In dark mode, light text on dark backgrounds appears heavier due to irradiation/halation. Lowering `GRAD` compensates for this optical effect.
|
|
394
394
|
|
|
@@ -427,7 +427,7 @@ body {
|
|
|
427
427
|
|
|
428
428
|
### Fonts with a GRAD Axis
|
|
429
429
|
|
|
430
|
-
Notable typefaces: Roboto Flex, Google Fonts variable fonts from 2022+, Amstelvar. Check if a font has `GRAD` using `font-variation-settings: 'GRAD' 0`
|
|
430
|
+
Notable typefaces: Roboto Flex, Google Fonts variable fonts from 2022+, Amstelvar. Check if a font has `GRAD` using `font-variation-settings: 'GRAD' 0` - if it has no effect the font lacks the axis.
|
|
431
431
|
|
|
432
432
|
---
|
|
433
433
|
|
|
@@ -446,8 +446,8 @@ System fonts load instantly (zero network request) and match the platform's nati
|
|
|
446
446
|
| Windows 10+ | Segoe UI | 2006 |
|
|
447
447
|
| Windows 11 | Segoe UI Variable | 2021 |
|
|
448
448
|
| Android 4.0+ | Roboto | 2011 |
|
|
449
|
-
| Linux (GNOME) | Cantarell |
|
|
450
|
-
| Linux (KDE) | Noto Sans |
|
|
449
|
+
| Linux (GNOME) | Cantarell | - |
|
|
450
|
+
| Linux (KDE) | Noto Sans | - |
|
|
451
451
|
|
|
452
452
|
### Modern System Font Stack
|
|
453
453
|
|
|
@@ -523,9 +523,9 @@ For maximum compatibility with older browsers and to ensure San Francisco on mac
|
|
|
523
523
|
| Mistake | Fix |
|
|
524
524
|
|---------|-----|
|
|
525
525
|
| `font-variation-settings` on child loses parent axes | Use CSS custom properties to compose all axes in one declaration |
|
|
526
|
-
| Preloading without `crossorigin` attribute | Always add `crossorigin`
|
|
527
|
-
| Using `font-display: block` on body text | Use `swap`
|
|
528
|
-
| Changing `font-weight` between light/dark modes | Use `GRAD` axis
|
|
526
|
+
| Preloading without `crossorigin` attribute | Always add `crossorigin` - font fetches are CORS requests |
|
|
527
|
+
| Using `font-display: block` on body text | Use `swap` - block causes FOIT, text invisible for up to 3s |
|
|
528
|
+
| Changing `font-weight` between light/dark modes | Use `GRAD` axis - changes weight appearance without layout shift |
|
|
529
529
|
| Missing `font-weight` range in `@font-face` for variable font | Declare `font-weight: 100 900` so browser knows full range |
|
|
530
530
|
| Subsetting variable font without `--retain-gids` | Add `--retain-gids` to pyftsubset to preserve axis interpolation |
|
|
531
531
|
| Setting `font-optical-sizing: auto` alongside manual `opsz` in `font-variation-settings` | Set `font-optical-sizing: none` first, then set `'opsz'` manually |
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Source: nextlevelbuilder/ui-ux-pro-max-skill (MIT) — data/landing.csv -->
|
|
4
4
|
|
|
5
|
-
Visual hierarchy is the system by which a design communicates importance before the user consciously processes it. Every element in a layout has a perceived rank
|
|
5
|
+
Visual hierarchy is the system by which a design communicates importance before the user consciously processes it. Every element in a layout has a perceived rank - determined by size, contrast, position, spacing, and depth - and that rank tells the eye where to go and in what order. A layout without deliberate hierarchy forces the user to negotiate with the design rather than work through it. The principles in this file apply to screens, components, and marketing pages equally.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Z-Order and Depth Cues
|
|
10
10
|
|
|
11
|
-
Shadow is the primary depth signal in modern flat design, because it mimics the physical relationship between surfaces at different altitudes. Shadows do not decorate
|
|
11
|
+
Shadow is the primary depth signal in modern flat design, because it mimics the physical relationship between surfaces at different altitudes. Shadows do not decorate - they locate. A surface with more shadow sits higher in the visual stack, which means it is more foregrounded and more important.
|
|
12
12
|
|
|
13
13
|
### Three-Layer Shadow System
|
|
14
14
|
|
|
@@ -21,7 +21,7 @@ The standard three-layer system maps to real UI altitude needs:
|
|
|
21
21
|
| Floating (elevation 2) | `box-shadow: 0 8px 16px rgba(0,0,0,0.12)` | Dropdowns, tooltips, popovers |
|
|
22
22
|
| Overlay (elevation 3) | `box-shadow: 0 16px 32px rgba(0,0,0,0.18)` | Modals, drawers, sheets |
|
|
23
23
|
|
|
24
|
-
Using only these four levels prevents visual noise from competed shadows and keeps the depth hierarchy readable. An element should never sit at the same shadow level as an element it is meant to overlay
|
|
24
|
+
Using only these four levels prevents visual noise from competed shadows and keeps the depth hierarchy readable. An element should never sit at the same shadow level as an element it is meant to overlay - that collapses the depth relationship.
|
|
25
25
|
|
|
26
26
|
### Blur-as-Scrim for Modal Depth
|
|
27
27
|
|
|
@@ -33,7 +33,7 @@ A consistent z-index scale prevents the stacking context chaos that makes UI deb
|
|
|
33
33
|
|
|
34
34
|
| Level | Value | Purpose |
|
|
35
35
|
|-------|-------|---------|
|
|
36
|
-
| Base | 0 | Static page content
|
|
36
|
+
| Base | 0 | Static page content - no stacking context needed |
|
|
37
37
|
| Sticky | 100 | Sticky headers and footers that must stay above scrolled content |
|
|
38
38
|
| Dropdown | 200 | Menus and autocomplete dropdowns that overlay adjacent content |
|
|
39
39
|
| Modal | 300 | Dialogs and drawers that overlay the entire page |
|
|
@@ -45,19 +45,19 @@ Gaps of 100 between levels exist so intermediate values can be inserted without
|
|
|
45
45
|
|
|
46
46
|
## Whitespace as Design Element
|
|
47
47
|
|
|
48
|
-
Whitespace is not empty space
|
|
48
|
+
Whitespace is not empty space - it is the space that gives meaning to what surrounds it. Without whitespace, elements cannot be perceived as distinct objects; they collapse into visual noise. With intentional whitespace, proximity becomes a communication tool: elements that are close together are related, and elements that are far apart are not.
|
|
49
49
|
|
|
50
50
|
### Micro-Spacing (Related Elements)
|
|
51
51
|
|
|
52
|
-
Elements that belong together
|
|
52
|
+
Elements that belong together - a label and its input, an icon and its caption, a list item and its supporting text - should be separated by 4–8px. This distance signals "these are one thing" without fusing them visually. Tighter than 4px feels merged; looser than 8px starts to break the association.
|
|
53
53
|
|
|
54
54
|
### Macro-Spacing (Section Separation)
|
|
55
55
|
|
|
56
|
-
Distinct content sections
|
|
56
|
+
Distinct content sections - hero to features, features to testimonials, nav to page content - benefit from 32–64px of separation. This spacing creates visual "chapters" in the layout, giving the eye a moment to land before beginning the next section. Without this spacing, the page feels like one undifferentiated mass regardless of the visual variation within it.
|
|
57
57
|
|
|
58
58
|
### Premium vs. Compact
|
|
59
59
|
|
|
60
|
-
More whitespace signals premium and confidence: the brand is not anxious about showing off everything at once. Less whitespace signals density and efficiency: the product respects the user's time and assumes they have a specific goal. Neither is universally correct
|
|
60
|
+
More whitespace signals premium and confidence: the brand is not anxious about showing off everything at once. Less whitespace signals density and efficiency: the product respects the user's time and assumes they have a specific goal. Neither is universally correct - a data dashboard should be compact because users came to see data, while a luxury product landing page should be expansive because users came to be immersed.
|
|
61
61
|
|
|
62
62
|
The rule of thumb: **match whitespace density to the pace at which users should move through the content.** Fast task completion → compact. Consideration and exploration → generous.
|
|
63
63
|
|
|
@@ -65,15 +65,15 @@ The rule of thumb: **match whitespace density to the pace at which users should
|
|
|
65
65
|
|
|
66
66
|
## Asymmetry and Rhythm
|
|
67
67
|
|
|
68
|
-
Symmetric layouts feel stable, balanced, and trustworthy
|
|
68
|
+
Symmetric layouts feel stable, balanced, and trustworthy - which makes them appropriate for institutional, financial, and governmental contexts where those qualities matter. They also feel static, because perfect balance has no direction and creates no tension.
|
|
69
69
|
|
|
70
|
-
Asymmetric layouts create tension and visual interest by violating the expectation of balance. When used purposefully, asymmetry directs the eye along a path
|
|
70
|
+
Asymmetric layouts create tension and visual interest by violating the expectation of balance. When used purposefully, asymmetry directs the eye along a path - a large element on the left creates pressure toward the right, a heavy top creates pressure downward. This directed attention is why most effective marketing layouts use asymmetry: the imbalance leads the user's eye toward the CTA.
|
|
71
71
|
|
|
72
|
-
The key discipline is intentionality. Asymmetry that emerges from neglect
|
|
72
|
+
The key discipline is intentionality. Asymmetry that emerges from neglect - uneven margins, inconsistent column widths - reads as incompetence, not dynamism. Asymmetry that is designed - a deliberate large/small pairing, a grid that breaks at one exact point - reads as craft. Always be able to explain why a layout is asymmetric in terms of what attention it is directing.
|
|
73
73
|
|
|
74
74
|
### Rhythm
|
|
75
75
|
|
|
76
|
-
Rhythm in layout means that repetition creates a predictable visual beat that the eye can lock onto and traverse quickly. A card grid has rhythm. A consistent heading-body-space pattern has rhythm. Rhythm is not uniformity
|
|
76
|
+
Rhythm in layout means that repetition creates a predictable visual beat that the eye can lock onto and traverse quickly. A card grid has rhythm. A consistent heading-body-space pattern has rhythm. Rhythm is not uniformity - it is the reliable expectation that similar content will appear in similar visual form. Break rhythm only to signal importance: a featured item in a grid that is twice the size says "this one matters."
|
|
77
77
|
|
|
78
78
|
**See:** [`./composition.md`](./composition.md) §Visual-Weight Calculus for the `size × contrast × isolation × complexity` formula that quantifies why an asymmetric large/small pairing directs the eye toward the heavier element.
|
|
79
79
|
|
|
@@ -81,7 +81,7 @@ Rhythm in layout means that repetition creates a predictable visual beat that th
|
|
|
81
81
|
|
|
82
82
|
## Compositional Grids
|
|
83
83
|
|
|
84
|
-
Grids are not aesthetic choices
|
|
84
|
+
Grids are not aesthetic choices - they are coordination mechanisms. A grid aligns elements to invisible reference lines, which means users can scan a layout without actively negotiating where each element sits.
|
|
85
85
|
|
|
86
86
|
### Responsive Column Grid
|
|
87
87
|
|
|
@@ -96,7 +96,7 @@ Grids are not aesthetic choices — they are coordination mechanisms. A grid ali
|
|
|
96
96
|
|
|
97
97
|
### Baseline Grid
|
|
98
98
|
|
|
99
|
-
A baseline grid aligns text and element heights to a consistent vertical increment
|
|
99
|
+
A baseline grid aligns text and element heights to a consistent vertical increment - typically 4px or 8px. Every element's height, padding, and margin should be a multiple of this increment. The baseline grid is what makes a layout feel "settled" rather than arbitrarily positioned, because every vertical decision relates to a shared rhythm. In practice, use 8px as the primary increment and 4px for sub-increments only (e.g., within a component's internal padding).
|
|
100
100
|
|
|
101
101
|
**See:** [`./composition.md`](./composition.md) §Golden Ratio and Root Rectangles + §Focal-Point Construction for the pre-Gestalt compositional foundations (φ-grid, root rectangles, rule-of-thirds intersections) that complement the responsive-column / baseline-grid coordinations above.
|
|
102
102
|
|
|
@@ -113,13 +113,13 @@ The primary tools for establishing figure-ground relationships are:
|
|
|
113
113
|
- **Shadow:** Elements with elevation shadows read as physically in front of flat elements.
|
|
114
114
|
- **Blur:** Blurred elements recede perceptually, making sharp elements read as foreground.
|
|
115
115
|
|
|
116
|
-
Never rely on a single cue alone
|
|
116
|
+
Never rely on a single cue alone - a foreground element established only by shadow may become invisible in certain display contexts. Combining contrast + shadow + position creates a solid figure-ground relationship.
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
120
|
## Reading-Order Scoring
|
|
121
121
|
|
|
122
|
-
Users do not read UIs
|
|
122
|
+
Users do not read UIs - they scan them. Understanding the scan pattern users will apply to a layout allows designers to place information where the eye will naturally encounter it in the intended order.
|
|
123
123
|
|
|
124
124
|
### F-Pattern
|
|
125
125
|
|
|
@@ -129,7 +129,7 @@ Users scan the top horizontally, then move down the left side, occasionally scan
|
|
|
129
129
|
|
|
130
130
|
### Z-Pattern
|
|
131
131
|
|
|
132
|
-
Users scan the top-left, move horizontally to the top-right, then diagonally across to the bottom-left, then horizontally to the bottom-right. This pattern dominates sparse layouts with clear visual anchors
|
|
132
|
+
Users scan the top-left, move horizontally to the top-right, then diagonally across to the bottom-left, then horizontally to the bottom-right. This pattern dominates sparse layouts with clear visual anchors - marketing pages with a headline, an image, and a CTA. The Z traces through the key moments of the layout, which is why placing a CTA at the Z-terminal (bottom-right) is effective for conversion-optimized pages.
|
|
133
133
|
|
|
134
134
|
**Implication:** In Z-pattern contexts, place the brand/logo at top-left, the most compelling claim at top-right, the value summary along the diagonal, and the CTA at bottom-right.
|
|
135
135
|
|
|
@@ -145,9 +145,9 @@ The layout starts wide at the top (a full-width headline), narrows through suppo
|
|
|
145
145
|
|
|
146
146
|
Progressive disclosure is the principle that interface complexity should be revealed in proportion to user readiness and need. Showing all complexity at once overwhelms; hiding complexity aggressively creates friction. The correct level of disclosure depends on what the user is trying to do right now.
|
|
147
147
|
|
|
148
|
-
**Accordion:** Use for dense but not immediately required information. FAQs, advanced settings, and multi-section forms benefit from accordions because users can navigate to the section they need without reading everything. Never hide primary actions behind an accordion
|
|
148
|
+
**Accordion:** Use for dense but not immediately required information. FAQs, advanced settings, and multi-section forms benefit from accordions because users can navigate to the section they need without reading everything. Never hide primary actions behind an accordion - only secondary and contextual content belongs there.
|
|
149
149
|
|
|
150
|
-
**Tooltip:** Use for inline definitions and contextual help that would interrupt reading flow if placed in line. Tooltips are appropriate for technical terms, icon meanings, and field constraints. They should appear on hover (not click) for desktop, and on tap for mobile. Tooltip copy must be brief
|
|
150
|
+
**Tooltip:** Use for inline definitions and contextual help that would interrupt reading flow if placed in line. Tooltips are appropriate for technical terms, icon meanings, and field constraints. They should appear on hover (not click) for desktop, and on tap for mobile. Tooltip copy must be brief - if the explanation requires more than two sentences, it belongs in documentation, not a tooltip.
|
|
151
151
|
|
|
152
152
|
**Drill-down:** Use for hierarchical data exploration where showing all levels simultaneously would be overwhelming. File browsers, category navigation, and data dashboards with sub-dimension exploration are appropriate drill-down contexts. Each level should clearly communicate where the user is in the hierarchy and how to return.
|
|
153
153
|
|
|
@@ -159,7 +159,7 @@ Progressive disclosure is the principle that interface complexity should be reve
|
|
|
159
159
|
|
|
160
160
|
<!-- Source: nextlevelbuilder/ui-ux-pro-max-skill (MIT) — data/landing.csv -->
|
|
161
161
|
|
|
162
|
-
A landing-page archetype is a proven structural pattern
|
|
162
|
+
A landing-page archetype is a proven structural pattern - a specific order of sections, CTA placement rule, and visual approach - calibrated to a specific conversion goal and audience state. Matching the archetype to the product's vertical and the visitor's awareness level dramatically improves conversion without requiring creative originality at every decision.
|
|
163
163
|
|
|
164
164
|
The 24 archetypes below are ordered by section sequence. "CTA placement rule" describes where to place the primary call to action relative to page content.
|
|
165
165
|
|
|
@@ -167,15 +167,15 @@ The 24 archetypes below are ordered by section sequence. "CTA placement rule" de
|
|
|
167
167
|
|
|
168
168
|
### 1. Hero-Centric
|
|
169
169
|
**Section order:** Full-viewport hero → brief feature highlights → footer
|
|
170
|
-
**CTA placement rule:** Above the fold, within the hero
|
|
170
|
+
**CTA placement rule:** Above the fold, within the hero - the primary action is visible without scrolling
|
|
171
171
|
**Best for:** SaaS product launches, single-purpose apps, brand launches where one conversion goal dominates
|
|
172
|
-
**Key visual pattern:** Large image or video background, single headline, single CTA button
|
|
172
|
+
**Key visual pattern:** Large image or video background, single headline, single CTA button - nothing competes with the hero
|
|
173
173
|
|
|
174
174
|
### 2. Conversion-Optimized
|
|
175
175
|
**Section order:** Headline → CTA → minimal social proof → secondary CTA
|
|
176
176
|
**CTA placement rule:** Within 200px of the top of the page; repeated on scroll at a consistent interval
|
|
177
177
|
**Best for:** Lead generation, email capture, high-intent landing pages where the visitor already knows what they want
|
|
178
|
-
**Key visual pattern:** Minimal distraction
|
|
178
|
+
**Key visual pattern:** Minimal distraction - no navigation, no secondary offers; everything serves the single conversion action
|
|
179
179
|
|
|
180
180
|
### 3. Feature-Rich Showcase
|
|
181
181
|
**Section order:** Hero → feature grid → social proof → pricing summary → CTA
|
|
@@ -191,7 +191,7 @@ The 24 archetypes below are ordered by section sequence. "CTA placement rule" de
|
|
|
191
191
|
|
|
192
192
|
### 5. Social-Proof-Focused
|
|
193
193
|
**Section order:** Hero → testimonial prominences → customer logo wall → case study summary → CTA
|
|
194
|
-
**CTA placement rule:** After the social proof block
|
|
194
|
+
**CTA placement rule:** After the social proof block - conversion happens once trust is established
|
|
195
195
|
**Best for:** Products where credibility is the primary conversion barrier: enterprise software, high-ticket services, health products
|
|
196
196
|
**Key visual pattern:** Real face photography accompanying testimonials; recognizable logos displayed at full opacity; specific measurable results quoted
|
|
197
197
|
|
|
@@ -199,23 +199,23 @@ The 24 archetypes below are ordered by section sequence. "CTA placement rule" de
|
|
|
199
199
|
**Section order:** Hero with embedded live demo or interactive preview → feature explanation → CTA
|
|
200
200
|
**CTA placement rule:** Inline with the demo; allow the user to try before committing
|
|
201
201
|
**Best for:** Developer tools, SaaS products, any product where the experience is the best argument for conversion
|
|
202
|
-
**Key visual pattern:** Live code editor, interactive prototype, or animated walkthrough embedded directly in the page
|
|
202
|
+
**Key visual pattern:** Live code editor, interactive prototype, or animated walkthrough embedded directly in the page - not behind a click
|
|
203
203
|
|
|
204
204
|
### 7. Trust and Authority
|
|
205
205
|
**Section order:** Credentials and certifications → case study highlights → team or methodology → CTA
|
|
206
|
-
**CTA placement rule:** Conservative
|
|
206
|
+
**CTA placement rule:** Conservative - placed after all trust signals have been presented; below the fold is acceptable
|
|
207
207
|
**Best for:** B2B enterprise sales, consulting services, legal and compliance products where buying risk is high
|
|
208
208
|
**Key visual pattern:** Logo wall with named clients; specific metrics from case studies; certifications and awards displayed prominently
|
|
209
209
|
|
|
210
210
|
### 8. Storytelling-Driven
|
|
211
211
|
**Section order:** Narrative introduction → problem acknowledgment → solution journey → outcome → CTA
|
|
212
|
-
**CTA placement rule:** End of story
|
|
212
|
+
**CTA placement rule:** End of story - the CTA is the natural conclusion of the narrative arc
|
|
213
213
|
**Best for:** Mission-driven brands, founder-led companies, products where the origin story creates emotional investment
|
|
214
214
|
**Key visual pattern:** Full-bleed photography that advances the narrative; minimal UI chrome; scroll-triggered reveals that pace the story
|
|
215
215
|
|
|
216
216
|
### 9. Comparison/Competitive
|
|
217
217
|
**Section order:** Positioning headline → feature comparison matrix → pricing → CTA
|
|
218
|
-
**CTA placement rule:** After the comparison matrix
|
|
218
|
+
**CTA placement rule:** After the comparison matrix - once the product has won the comparison
|
|
219
219
|
**Best for:** Competitive category entries, products explicitly positioning against a named incumbent, switching-cost contexts
|
|
220
220
|
**Key visual pattern:** Side-by-side comparison table with clear visual wins; checkmarks vs. X marks; pricing presented as a conclusion, not an opener
|
|
221
221
|
|
|
@@ -227,31 +227,31 @@ The 24 archetypes below are ordered by section sequence. "CTA placement rule" de
|
|
|
227
227
|
|
|
228
228
|
### 11. Community-Led
|
|
229
229
|
**Section order:** Community value proposition → user-generated content grid → join CTA → community stats
|
|
230
|
-
**CTA placement rule:** After seeing the community in action
|
|
230
|
+
**CTA placement rule:** After seeing the community in action - conversion is to join, not to buy
|
|
231
231
|
**Best for:** Social apps, creator platforms, forums, any product whose value scales with network size
|
|
232
232
|
**Key visual pattern:** Real user content grid; community size metrics; faces and usernames to signal that real people are already here
|
|
233
233
|
|
|
234
234
|
### 12. Free-Tool
|
|
235
235
|
**Section order:** Tool embedded directly at top → output or result preview → upgrade value proposition → CTA
|
|
236
|
-
**CTA placement rule:** After tool use
|
|
236
|
+
**CTA placement rule:** After tool use - show the upgrade CTA once the user has experienced the value
|
|
237
237
|
**Best for:** Freemium SaaS products where the tool itself is the best acquisition mechanism
|
|
238
238
|
**Key visual pattern:** Functional tool widget inline in the page; results visible without signup; upgrade gate triggered by usage limit or advanced feature
|
|
239
239
|
|
|
240
240
|
### 13. Event/Launch
|
|
241
241
|
**Section order:** Event name and date → countdown timer → value proposition → registration form
|
|
242
|
-
**CTA placement rule:** Above the fold alongside the countdown
|
|
242
|
+
**CTA placement rule:** Above the fold alongside the countdown - urgency and action together
|
|
243
243
|
**Best for:** Product launches, webinars, conferences, limited-availability events
|
|
244
244
|
**Key visual pattern:** Countdown timer as the hero element; date and time prominently displayed; registration form short enough to complete immediately
|
|
245
245
|
|
|
246
246
|
### 14. Portfolio/Agency
|
|
247
247
|
**Section order:** Brand positioning → selected work grid → process or approach → contact CTA
|
|
248
|
-
**CTA placement rule:** Bottom of page
|
|
248
|
+
**CTA placement rule:** Bottom of page - the portfolio is the argument; the CTA is the conclusion
|
|
249
249
|
**Best for:** Creative agencies, freelancers, design studios, any service business where the work speaks for itself
|
|
250
250
|
**Key visual pattern:** Full-bleed project images; minimal copy; case study depth available on click; contact form or email rather than a purchase CTA
|
|
251
251
|
|
|
252
252
|
### 15. E-commerce Category
|
|
253
253
|
**Section order:** Category headline → filter controls → product grid → individual product CTAs
|
|
254
|
-
**CTA placement rule:** Per-product
|
|
254
|
+
**CTA placement rule:** Per-product - each product card has its own CTA
|
|
255
255
|
**Best for:** Retail product categories, marketplace verticals, any browsing-first commerce context
|
|
256
256
|
**Key visual pattern:** Masonry or uniform grid layout; filter/sort controls accessible without page navigation; product image as the primary communication vehicle
|
|
257
257
|
|
|
@@ -263,48 +263,48 @@ The 24 archetypes below are ordered by section sequence. "CTA placement rule" de
|
|
|
263
263
|
|
|
264
264
|
### 17. Video-First
|
|
265
265
|
**Section order:** Autoplay background video → overlaid headline and CTA → supporting content below
|
|
266
|
-
**CTA placement rule:** Overlaid on the video
|
|
266
|
+
**CTA placement rule:** Overlaid on the video - visible immediately on page load
|
|
267
267
|
**Best for:** Experiential brands, travel companies, premium consumer products where atmosphere is the argument
|
|
268
268
|
**Key visual pattern:** Full-screen video autoplay (muted); minimal text overlay; the video carries the emotional and brand argument
|
|
269
269
|
|
|
270
270
|
### 18. Pricing-Forward
|
|
271
271
|
**Section order:** Brief positioning → pricing table with tier comparison → per-tier CTA → FAQ
|
|
272
|
-
**CTA placement rule:** Per-tier
|
|
272
|
+
**CTA placement rule:** Per-tier - each pricing column has its own conversion action
|
|
273
273
|
**Best for:** Products with transparent, self-serve pricing; SaaS with clear tier differentiation; subscription businesses
|
|
274
274
|
**Key visual pattern:** Three-tier layout with middle tier highlighted as recommended; feature comparison below price; annual/monthly toggle
|
|
275
275
|
|
|
276
276
|
### 19. Newsletter/Content
|
|
277
277
|
**Section order:** Value proposition → email capture form → sample content or recent issues → social proof subscriber count
|
|
278
|
-
**CTA placement rule:** Above the fold
|
|
278
|
+
**CTA placement rule:** Above the fold - the form is the entire purpose of the page
|
|
279
279
|
**Best for:** Media companies, content creators, thought leaders, any subscription email product
|
|
280
280
|
**Key visual pattern:** Minimal design that does not compete with the form; preview of content quality as the primary trust signal
|
|
281
281
|
|
|
282
282
|
### 20. Data/Analytics Showcase
|
|
283
283
|
**Section order:** Positioning headline → live or animated dashboard preview → capability explanation → CTA
|
|
284
|
-
**CTA placement rule:** After the demo
|
|
284
|
+
**CTA placement rule:** After the demo - once the data quality has been demonstrated
|
|
285
285
|
**Best for:** Analytics platforms, BI tools, data products where the output is the proof
|
|
286
286
|
**Key visual pattern:** Interactive chart or live dashboard preview embedded in the page; real-seeming data rather than placeholders; metric definitions visible to signal depth
|
|
287
287
|
|
|
288
288
|
### 21. Long-Form Sales Page
|
|
289
289
|
**Section order:** Headline → problem → agitation → solution → proof → benefits → objection handling → CTA → guarantee → repeated CTA
|
|
290
|
-
**CTA placement rule:** Repeated multiple times throughout
|
|
290
|
+
**CTA placement rule:** Repeated multiple times throughout - after each major argument and at the end
|
|
291
291
|
**Best for:** High-ticket items, coaching programs, courses, any product requiring significant commitment
|
|
292
292
|
**Key visual pattern:** Text-heavy with strategic visual breaks; testimonials woven throughout rather than grouped; guarantee section near the final CTA to reduce last-minute drop-off
|
|
293
293
|
|
|
294
294
|
### 22. Waitlist/Pre-launch
|
|
295
295
|
**Section order:** Teaser headline → product promise → email capture form → optional: social sharing incentive
|
|
296
|
-
**CTA placement rule:** Above the fold
|
|
296
|
+
**CTA placement rule:** Above the fold - the form is the entire conversion goal
|
|
297
297
|
**Best for:** Pre-launch products, invite-only launches, limited-release products
|
|
298
298
|
**Key visual pattern:** Intentional information scarcity; anticipation over explanation; social proof through waitlist size if available
|
|
299
299
|
|
|
300
300
|
### 23. Marketplace
|
|
301
301
|
**Section order:** Search bar → category navigation → featured listings → browse grid
|
|
302
|
-
**CTA placement rule:** Search-first
|
|
302
|
+
**CTA placement rule:** Search-first - the search bar is the primary CTA; per-listing CTAs secondary
|
|
303
303
|
**Best for:** Two-sided platforms, classified marketplaces, any product where supply browsing is the primary user behavior
|
|
304
304
|
**Key visual pattern:** Search prominence above everything else; category browsing as primary navigation; featured/promoted listings visually distinct but not intrusive
|
|
305
305
|
|
|
306
306
|
### 24. Documentation Hub
|
|
307
307
|
**Section order:** Search bar → quick-start links → navigation tree → content area
|
|
308
|
-
**CTA placement rule:** No primary marketing CTA
|
|
308
|
+
**CTA placement rule:** No primary marketing CTA - navigation is the only action
|
|
309
309
|
**Best for:** Developer documentation, product help centers, API references, any knowledge base
|
|
310
310
|
**Key visual pattern:** Navigation-heavy layout; dense information with strong typographic hierarchy; search is the dominant entry point; no marketing chrome competing with the content
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Phase 44 - harness freshness (shippable pure module). Read by health-mirror + check-harness-freshness.cjs.
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const { readHarnesses } = require('./manifest/index.cjs');
|
|
5
|
+
|
|
6
|
+
const WARN_DAYS = 60;
|
|
7
|
+
const FAIL_DAYS = 180;
|
|
8
|
+
const MS_PER_DAY = 86400000;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Returns the age of a last_verified timestamp in fractional days.
|
|
12
|
+
* Returns Infinity when the timestamp is absent or unparseable.
|
|
13
|
+
* @param {string|null|undefined} last_verified
|
|
14
|
+
* @param {number} nowMs
|
|
15
|
+
* @returns {number}
|
|
16
|
+
*/
|
|
17
|
+
function ageInDays(last_verified, nowMs) {
|
|
18
|
+
if (!last_verified) return Infinity;
|
|
19
|
+
const t = Date.parse(last_verified);
|
|
20
|
+
if (!Number.isFinite(t)) return Infinity;
|
|
21
|
+
return (nowMs - t) / MS_PER_DAY;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Evaluate freshness for every harness in the manifest (or a supplied list).
|
|
26
|
+
*
|
|
27
|
+
* STATUS-AWARE (D-04): only `tested` harnesses can warn/fail on a stale
|
|
28
|
+
* last_verified date. experimental / untested / known-broken harnesses
|
|
29
|
+
* make no freshness promise — their freshness is always 'n/a'.
|
|
30
|
+
*
|
|
31
|
+
* @param {{ nowMs?: number, harnesses?: object[] }} [opts]
|
|
32
|
+
* @returns {{ id: string, status: string, last_verified: string|null, age_days: number|null, freshness: string }[]}
|
|
33
|
+
*/
|
|
34
|
+
function checkFreshness({ nowMs, harnesses } = {}) {
|
|
35
|
+
const list = harnesses || readHarnesses().harnesses || [];
|
|
36
|
+
const now = typeof nowMs === 'number' ? nowMs : Date.now();
|
|
37
|
+
|
|
38
|
+
return list.map((h) => {
|
|
39
|
+
const status = (h.capability_matrix && h.capability_matrix.status) || 'untested';
|
|
40
|
+
const age = ageInDays(h.last_verified, now);
|
|
41
|
+
|
|
42
|
+
// Only `tested` harnesses carry a freshness obligation.
|
|
43
|
+
// All other statuses → 'n/a' (never a build failure).
|
|
44
|
+
let freshness = 'n/a';
|
|
45
|
+
if (status === 'tested') {
|
|
46
|
+
freshness = age >= FAIL_DAYS ? 'fail' : age >= WARN_DAYS ? 'warn' : 'ok';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
id: h.id,
|
|
51
|
+
status,
|
|
52
|
+
last_verified: h.last_verified || null,
|
|
53
|
+
age_days: Number.isFinite(age) ? Math.floor(age) : null,
|
|
54
|
+
freshness,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = { checkFreshness, ageInDays, WARN_DAYS, FAIL_DAYS };
|
|
@@ -51,6 +51,7 @@ const fs = require('node:fs');
|
|
|
51
51
|
const path = require('node:path');
|
|
52
52
|
|
|
53
53
|
const { getDisableReason } = require('../issue-reporter/kill-switch.cjs');
|
|
54
|
+
const { checkFreshness, WARN_DAYS, FAIL_DAYS } = require('../harness-freshness.cjs');
|
|
54
55
|
|
|
55
56
|
function fileExists(p) {
|
|
56
57
|
try {
|
|
@@ -211,6 +212,32 @@ async function getHealthChecks(rootDir) {
|
|
|
211
212
|
checks.push({ name: 'skill_discipline', status, detail });
|
|
212
213
|
}
|
|
213
214
|
|
|
215
|
+
// 8. harness_freshness — per-harness last_verified age (Phase 44). PURE: reads the manifest SoT via the
|
|
216
|
+
// shippable harness-freshness module; status-aware (only `tested` harnesses can warn/fail). NEVER throws.
|
|
217
|
+
{
|
|
218
|
+
let status = 'ok';
|
|
219
|
+
let detail;
|
|
220
|
+
try {
|
|
221
|
+
const results = checkFreshness();
|
|
222
|
+
const failing = results.filter((r) => r.freshness === 'fail');
|
|
223
|
+
const warning = results.filter((r) => r.freshness === 'warn');
|
|
224
|
+
const tested = results.filter((r) => r.status === 'tested');
|
|
225
|
+
if (failing.length) {
|
|
226
|
+
status = 'fail';
|
|
227
|
+
detail = `harness freshness: ${failing.length} stale (>${FAIL_DAYS}d): ${failing.map((r) => r.id).join(', ')}`;
|
|
228
|
+
} else if (warning.length) {
|
|
229
|
+
status = 'warn';
|
|
230
|
+
detail = `harness freshness: ${warning.length} aging (>${WARN_DAYS}d): ${warning.map((r) => r.id).join(', ')}`;
|
|
231
|
+
} else {
|
|
232
|
+
detail = `harness freshness: ${tested.length} tested harness(es) current`;
|
|
233
|
+
}
|
|
234
|
+
} catch {
|
|
235
|
+
status = 'warn';
|
|
236
|
+
detail = 'harness freshness: unavailable';
|
|
237
|
+
}
|
|
238
|
+
checks.push({ name: 'harness_freshness', status, detail });
|
|
239
|
+
}
|
|
240
|
+
|
|
214
241
|
return { checks };
|
|
215
242
|
}
|
|
216
243
|
|