agemon 0.1.0 → 6.3.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/README.md +983 -30
- package/assets/skills/architecture/agemon-architecture/LICENSE +21 -0
- package/assets/skills/architecture/agemon-architecture/NOTICE.md +9 -0
- package/assets/skills/architecture/agemon-architecture/SKILL.md +275 -0
- package/assets/skills/code-quality/agemon-clean-code/LICENSE +21 -0
- package/assets/skills/code-quality/agemon-clean-code/NOTICE.md +9 -0
- package/assets/skills/code-quality/agemon-clean-code/SKILL.md +78 -0
- package/assets/skills/code-quality/agemon-house-rules/SKILL.md +103 -0
- package/assets/skills/commit/agemon-commit/SKILL.md +87 -0
- package/assets/skills/design/agemon-design/LICENSE +21 -0
- package/assets/skills/design/agemon-design/NOTICE.md +43 -0
- package/assets/skills/design/agemon-design/SKILL.md +128 -0
- package/assets/skills/design/agemon-design/references/accessibility.md +182 -0
- package/assets/skills/design/agemon-design/references/actions.md +215 -0
- package/assets/skills/design/agemon-design/references/ai-chat.md +158 -0
- package/assets/skills/design/agemon-design/references/brief.md +190 -0
- package/assets/skills/design/agemon-design/references/color.md +216 -0
- package/assets/skills/design/agemon-design/references/components.md +91 -0
- package/assets/skills/design/agemon-design/references/copy.md +300 -0
- package/assets/skills/design/agemon-design/references/core-rules.md +166 -0
- package/assets/skills/design/agemon-design/references/craft-intent.md +162 -0
- package/assets/skills/design/agemon-design/references/dashboard.md +131 -0
- package/assets/skills/design/agemon-design/references/dataviz.md +197 -0
- package/assets/skills/design/agemon-design/references/finish-bar.md +243 -0
- package/assets/skills/design/agemon-design/references/forms.md +192 -0
- package/assets/skills/design/agemon-design/references/heuristics.md +319 -0
- package/assets/skills/design/agemon-design/references/inspiration.md +287 -0
- package/assets/skills/design/agemon-design/references/layout.md +236 -0
- package/assets/skills/design/agemon-design/references/loops.md +155 -0
- package/assets/skills/design/agemon-design/references/metadata.md +98 -0
- package/assets/skills/design/agemon-design/references/modern-css.md +448 -0
- package/assets/skills/design/agemon-design/references/motion.md +434 -0
- package/assets/skills/design/agemon-design/references/personas.md +206 -0
- package/assets/skills/design/agemon-design/references/preset-dashboard.md +109 -0
- package/assets/skills/design/agemon-design/references/preset-editorial.md +94 -0
- package/assets/skills/design/agemon-design/references/preset-minimal.md +93 -0
- package/assets/skills/design/agemon-design/references/principles-catalog.md +299 -0
- package/assets/skills/design/agemon-design/references/recipe-auth.md +88 -0
- package/assets/skills/design/agemon-design/references/recipe-dashboard.md +130 -0
- package/assets/skills/design/agemon-design/references/recipe-landing.md +120 -0
- package/assets/skills/design/agemon-design/references/responsive.md +168 -0
- package/assets/skills/design/agemon-design/references/review.md +340 -0
- package/assets/skills/design/agemon-design/references/routing.md +143 -0
- package/assets/skills/design/agemon-design/references/sound.md +150 -0
- package/assets/skills/design/agemon-design/references/spec.md +123 -0
- package/assets/skills/design/agemon-design/references/stack.md +522 -0
- package/assets/skills/design/agemon-design/references/stage-assets.md +106 -0
- package/assets/skills/design/agemon-design/references/stage-build.md +46 -0
- package/assets/skills/design/agemon-design/references/stage-critique.md +34 -0
- package/assets/skills/design/agemon-design/references/stage-directions.md +44 -0
- package/assets/skills/design/agemon-design/references/stage-intake.md +34 -0
- package/assets/skills/design/agemon-design/references/stage-verify.md +44 -0
- package/assets/skills/design/agemon-design/references/state-design.md +188 -0
- package/assets/skills/design/agemon-design/references/tells-2026-11.md +32 -0
- package/assets/skills/design/agemon-design/references/themes.md +233 -0
- package/assets/skills/design/agemon-design/references/third-party-licenses.md +323 -0
- package/assets/skills/design/agemon-design/references/tokens.md +350 -0
- package/assets/skills/design/agemon-design/references/typography.md +248 -0
- package/assets/skills/design/agemon-design/scripts/audit-page.js +532 -0
- package/assets/skills/design/agemon-design/scripts/check-source.mjs +358 -0
- package/assets/skills/design/agemon-design/scripts/deal.mjs +231 -0
- package/assets/skills/design/agemon-design/scripts/inventory.mjs +676 -0
- package/assets/skills/essentials/web-design-guidelines/LICENSE +21 -0
- package/assets/skills/essentials/web-design-guidelines/NOTICE.md +14 -0
- package/assets/skills/essentials/web-design-guidelines/SKILL.md +18 -0
- package/assets/skills/essentials/web-design-guidelines/references/guidelines.md +184 -0
- package/assets/skills/essentials/writing-guidelines/LICENSE +21 -0
- package/assets/skills/essentials/writing-guidelines/NOTICE.md +14 -0
- package/assets/skills/essentials/writing-guidelines/SKILL.md +18 -0
- package/assets/skills/essentials/writing-guidelines/references/guidelines.md +250 -0
- package/assets/skills/founder/agemon-founder-board/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-board/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-board/SKILL.md +111 -0
- package/assets/skills/founder/agemon-founder-board/lenses.md +84 -0
- package/assets/skills/founder/agemon-founder-brand/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-brand/NOTICE.md +12 -0
- package/assets/skills/founder/agemon-founder-brand/SKILL.md +77 -0
- package/assets/skills/founder/agemon-founder-cfo/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-cfo/NOTICE.md +12 -0
- package/assets/skills/founder/agemon-founder-cfo/SKILL.md +109 -0
- package/assets/skills/founder/agemon-founder-cfo/example.json +27 -0
- package/assets/skills/founder/agemon-founder-cfo/unit_economics.py +270 -0
- package/assets/skills/founder/agemon-founder-competitors/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-competitors/NOTICE.md +12 -0
- package/assets/skills/founder/agemon-founder-competitors/SKILL.md +84 -0
- package/assets/skills/founder/agemon-founder-consumer/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-consumer/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-consumer/SKILL.md +126 -0
- package/assets/skills/founder/agemon-founder-consumer/customer.example.json +34 -0
- package/assets/skills/founder/agemon-founder-consumer/panel.py +424 -0
- package/assets/skills/founder/agemon-founder-consumer/pitch.example.md +3 -0
- package/assets/skills/founder/agemon-founder-launch/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-launch/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-launch/SKILL.md +65 -0
- package/assets/skills/founder/agemon-founder-marketing/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-marketing/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-marketing/SKILL.md +80 -0
- package/assets/skills/founder/agemon-founder-offer/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-offer/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-offer/SKILL.md +75 -0
- package/assets/skills/founder/agemon-founder-ops/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-ops/NOTICE.md +12 -0
- package/assets/skills/founder/agemon-founder-ops/SKILL.md +77 -0
- package/assets/skills/founder/agemon-founder-plan/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-plan/NOTICE.md +11 -0
- package/assets/skills/founder/agemon-founder-plan/SKILL.md +88 -0
- package/assets/skills/founder/agemon-founder-plan/compile.py +178 -0
- package/assets/skills/founder/agemon-founder-pricing/LICENSE +21 -0
- package/assets/skills/founder/agemon-founder-pricing/NOTICE.md +12 -0
- package/assets/skills/founder/agemon-founder-pricing/SKILL.md +92 -0
- package/assets/skills/founder/agemon-founder-pricing/van_westendorp.py +172 -0
- package/assets/skills/geo-seo/geo/LICENSE +21 -0
- package/assets/skills/geo-seo/geo/NOTICE.md +18 -0
- package/assets/skills/geo-seo/geo/SKILL.md +145 -0
- package/assets/skills/geo-seo/geo-audit/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-audit/NOTICE.md +17 -0
- package/assets/skills/geo-seo/geo-audit/SKILL.md +371 -0
- package/assets/skills/geo-seo/geo-audit/references/ai-visibility.md +233 -0
- package/assets/skills/geo-seo/geo-audit/references/content.md +329 -0
- package/assets/skills/geo-seo/geo-audit/references/platform-analysis.md +294 -0
- package/assets/skills/geo-seo/geo-audit/references/schema.md +383 -0
- package/assets/skills/geo-seo/geo-audit/references/technical.md +368 -0
- package/assets/skills/geo-seo/geo-brand-mentions/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-brand-mentions/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-brand-mentions/SKILL.md +459 -0
- package/assets/skills/geo-seo/geo-citability/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-citability/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-citability/SKILL.md +320 -0
- package/assets/skills/geo-seo/geo-content/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-content/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-content/SKILL.md +352 -0
- package/assets/skills/geo-seo/geo-crawlers/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-crawlers/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-crawlers/SKILL.md +388 -0
- package/assets/skills/geo-seo/geo-llmstxt/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-llmstxt/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-llmstxt/SKILL.md +433 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-platform-optimizer/SKILL.md +282 -0
- package/assets/skills/geo-seo/geo-report/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-report/NOTICE.md +14 -0
- package/assets/skills/geo-seo/geo-report/SKILL.md +406 -0
- package/assets/skills/geo-seo/geo-report-pdf/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-report-pdf/NOTICE.md +20 -0
- package/assets/skills/geo-seo/geo-report-pdf/SKILL.md +153 -0
- package/assets/skills/geo-seo/geo-report-pdf/templates/geo-report-template.html +548 -0
- package/assets/skills/geo-seo/geo-schema/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-schema/NOTICE.md +16 -0
- package/assets/skills/geo-seo/geo-schema/SKILL.md +396 -0
- package/assets/skills/geo-seo/geo-technical/LICENSE +21 -0
- package/assets/skills/geo-seo/geo-technical/NOTICE.md +15 -0
- package/assets/skills/geo-seo/geo-technical/SKILL.md +566 -0
- package/assets/skills/output-style/agemon-adhd/LICENSE +21 -0
- package/assets/skills/output-style/agemon-adhd/NOTICE.md +13 -0
- package/assets/skills/output-style/agemon-adhd/SKILL.md +138 -0
- package/assets/skills/performance/agemon-performance/NOTICE.md +1 -0
- package/assets/skills/performance/agemon-performance/SKILL.md +76 -0
- package/assets/skills/security/agemon-security/LICENSE +21 -0
- package/assets/skills/security/agemon-security/NOTICE.md +8 -0
- package/assets/skills/security/agemon-security/SKILL.md +356 -0
- package/assets/skills/security/agemon-security-audit/AI-AND-LLM.md +83 -0
- package/assets/skills/security/agemon-security-audit/ATTACK-CLASSES.md +130 -0
- package/assets/skills/security/agemon-security-audit/CLIENT-SIDE.md +83 -0
- package/assets/skills/security/agemon-security-audit/CLOUD-AND-DEPLOYMENT.md +86 -0
- package/assets/skills/security/agemon-security-audit/DATA-ISOLATION-AND-LIFECYCLE.md +84 -0
- package/assets/skills/security/agemon-security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md +89 -0
- package/assets/skills/security/agemon-security-audit/HUNTING.md +251 -0
- package/assets/skills/security/agemon-security-audit/LICENSE +21 -0
- package/assets/skills/security/agemon-security-audit/MEMORY-SAFETY-AND-BINARY.md +101 -0
- package/assets/skills/security/agemon-security-audit/NOTICE.md +12 -0
- package/assets/skills/security/agemon-security-audit/PROTOCOLS-RPC-AND-MESSAGING.md +81 -0
- package/assets/skills/security/agemon-security-audit/RECONNAISSANCE.md +156 -0
- package/assets/skills/security/agemon-security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md +78 -0
- package/assets/skills/security/agemon-security-audit/SKILL.md +192 -0
- package/assets/skills/security/agemon-security-audit/SUPPLY-CHAIN-AND-RELEASE.md +73 -0
- package/assets/skills/security/agemon-security-audit/VALIDATION-AND-REPORTING.md +186 -0
- package/assets/skills/security/agemon-security-audit/WEB-PROTOCOL-AND-AUTH.md +105 -0
- package/assets/skills/security/agemon-security-audit/report-schema.json +461 -0
- package/assets/skills/security/agemon-security-audit/validate-coverage-ledger.cjs +872 -0
- package/assets/skills/security/agemon-security-audit/validate-findings.cjs +773 -0
- package/assets/skills/self-review/agemon-review-intake/LICENSE +21 -0
- package/assets/skills/self-review/agemon-review-intake/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-review-intake/SKILL.md +205 -0
- package/assets/skills/self-review/agemon-review-request/LICENSE +21 -0
- package/assets/skills/self-review/agemon-review-request/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-review-request/SKILL.md +104 -0
- package/assets/skills/self-review/agemon-review-request/code-reviewer.md +188 -0
- package/assets/skills/self-review/agemon-root-cause/LICENSE +21 -0
- package/assets/skills/self-review/agemon-root-cause/NOTICE.md +10 -0
- package/assets/skills/self-review/agemon-root-cause/SKILL.md +283 -0
- package/assets/skills/self-review/agemon-root-cause/condition-based-waiting-example.ts +158 -0
- package/assets/skills/self-review/agemon-root-cause/condition-based-waiting.md +115 -0
- package/assets/skills/self-review/agemon-root-cause/defense-in-depth.md +122 -0
- package/assets/skills/self-review/agemon-root-cause/find-polluter.sh +72 -0
- package/assets/skills/self-review/agemon-root-cause/root-cause-tracing.md +169 -0
- package/assets/skills/self-review/agemon-root-cause/test-academic.md +14 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-1.md +58 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-2.md +68 -0
- package/assets/skills/self-review/agemon-root-cause/test-pressure-3.md +69 -0
- package/assets/skills/self-review/agemon-verify-before-done/LICENSE +21 -0
- package/assets/skills/self-review/agemon-verify-before-done/NOTICE.md +9 -0
- package/assets/skills/self-review/agemon-verify-before-done/SKILL.md +120 -0
- package/assets/skills/team-lead/agemon-plan-rfc/SKILL.md +317 -0
- package/assets/skills/team-lead/prd-generator/SKILL.md +437 -0
- package/assets/skills/team-lead/skill-headofit-audit/SKILL.md +72 -0
- package/assets/skills/team-lead/skill-incident-rca/SKILL.md +66 -0
- package/assets/skills/team-lead/skill-meeting-lifecycle/SKILL.md +63 -0
- package/assets/skills/team-lead/skill-obsidian-vault-sync/SKILL.md +69 -0
- package/assets/skills/team-lead/skill-prd-decomposer/SKILL.md +71 -0
- package/assets/skills/team-lead/skill-sec-check/SKILL.md +70 -0
- package/assets/skills/team-lead/skill-task-extractor/SKILL.md +79 -0
- package/assets/skills/team-lead/skill-tech-spike/SKILL.md +57 -0
- package/assets/skills/team-lead/skill-techlead-reviewer/SKILL.md +81 -0
- package/assets/skills/workflow/agemon-brainstorming/LICENSE +21 -0
- package/assets/skills/workflow/agemon-brainstorming/NOTICE.md +14 -0
- package/assets/skills/workflow/agemon-brainstorming/SKILL.md +287 -0
- package/assets/skills/workflow/agemon-brainstorming/builder-check-prompt.md +23 -0
- package/assets/skills/workflow/agemon-dispatching-parallel-agents/LICENSE +21 -0
- package/assets/skills/workflow/agemon-dispatching-parallel-agents/NOTICE.md +13 -0
- package/assets/skills/workflow/agemon-dispatching-parallel-agents/SKILL.md +167 -0
- package/assets/skills/workflow/agemon-executing-plans/LICENSE +21 -0
- package/assets/skills/workflow/agemon-executing-plans/NOTICE.md +15 -0
- package/assets/skills/workflow/agemon-executing-plans/SKILL.md +322 -0
- package/assets/skills/workflow/agemon-executing-plans/scripts/task-done +55 -0
- package/assets/skills/workflow/agemon-executing-plans/scripts/task-start +32 -0
- package/assets/skills/workflow/agemon-finishing-a-development-branch/LICENSE +21 -0
- package/assets/skills/workflow/agemon-finishing-a-development-branch/NOTICE.md +13 -0
- package/assets/skills/workflow/agemon-finishing-a-development-branch/SKILL.md +225 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/LICENSE +21 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/NOTICE.md +15 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/SKILL.md +339 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/code-reviewer.md +198 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/implementer-prompt.md +154 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/re-review-prompt.md +116 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/batching.md +11 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/cannot-verify.md +10 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/final-review.md +49 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/fix-loop.md +77 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/handling-reports.md +15 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/preflight.md +26 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/resuming.md +12 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/role-scout.md +18 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/references/role-worker.md +19 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/scripts/review-package +64 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/scripts/sdd-repo +54 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/scripts/sdd-workspace +110 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/scripts/task-brief +108 -0
- package/assets/skills/workflow/agemon-subagent-driven-development/task-reviewer-prompt.md +209 -0
- package/assets/skills/workflow/agemon-test-driven-development/LICENSE +21 -0
- package/assets/skills/workflow/agemon-test-driven-development/NOTICE.md +14 -0
- package/assets/skills/workflow/agemon-test-driven-development/SKILL.md +330 -0
- package/assets/skills/workflow/agemon-test-driven-development/writing-good-tests.md +198 -0
- package/assets/skills/workflow/agemon-using-git-worktrees/LICENSE +21 -0
- package/assets/skills/workflow/agemon-using-git-worktrees/NOTICE.md +13 -0
- package/assets/skills/workflow/agemon-using-git-worktrees/SKILL.md +167 -0
- package/assets/skills/workflow/agemon-writing-plans/LICENSE +21 -0
- package/assets/skills/workflow/agemon-writing-plans/NOTICE.md +13 -0
- package/assets/skills/workflow/agemon-writing-plans/SKILL.md +204 -0
- package/assets/tools/code-review-graph-constraints.txt +1418 -0
- package/assets/tools/package-lock.json +111 -0
- package/assets/tools/package.json +6 -0
- package/dist/chunk-ZZBF3GOV.js +3451 -0
- package/dist/chunk-ZZBF3GOV.js.map +1 -0
- package/dist/fake-subprocess-IV4ML77S.js +636 -0
- package/dist/fake-subprocess-IV4ML77S.js.map +1 -0
- package/dist/index.js +23836 -1945
- package/dist/index.js.map +1 -1
- package/package.json +37 -17
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# UI Review & Critique
|
|
2
|
+
|
|
3
|
+
Systematic methodology for reviewing interface quality — visual design, interaction, accessibility, and performance.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Feedback Hierarchy
|
|
8
|
+
|
|
9
|
+
Evaluate in order: Value → Ease of Use → Delight. Aesthetic feedback that arrives before Value and Ease is feedback misallocation — it tells the team to polish a thing that may not be solving the right problem, or polish a thing the user can't actually use.
|
|
10
|
+
|
|
11
|
+
### 1. Value — does this solve the problem the user came for?
|
|
12
|
+
|
|
13
|
+
- Confirm the surface answers the user's question (cite the brief.md success metric if available).
|
|
14
|
+
- Test against the primary user (also from brief.md) — does the path from arrival to outcome exist, and is it the shortest path the design allows?
|
|
15
|
+
- Findings here block all subsequent feedback. If Value fails, the visual review is not yet useful.
|
|
16
|
+
- Examples of Value findings:
|
|
17
|
+
- "User cannot find the report they came to read — search is hidden in a settings menu."
|
|
18
|
+
- "The empty state is decorative but doesn't explain how to add the first item."
|
|
19
|
+
- "Primary CTA leads somewhere unexpected — clicked Save, taken to a list view, no confirmation."
|
|
20
|
+
|
|
21
|
+
### 2. Ease of Use — can the user accomplish the task?
|
|
22
|
+
|
|
23
|
+
- Path length: count clicks/taps from arrival to outcome. Compare against the user's expectation.
|
|
24
|
+
- State coverage: every state the user encounters has explicit affordance (loading, empty, error, partial, success).
|
|
25
|
+
- Friction points: where does the user need to think, type, or wait? Each friction point earns a finding.
|
|
26
|
+
- Accessibility floor: if a path is unusable for a keyboard or screen-reader user, it's an Ease of Use failure (not a Delight failure — defer this in your head before promoting).
|
|
27
|
+
- Cross-ref: `accessibility.md`, `state-design.md`, `forms.md`.
|
|
28
|
+
|
|
29
|
+
### 3. Delight — does it feel polished?
|
|
30
|
+
|
|
31
|
+
- This is the layer most reviews start with — and most reviews stay here, missing the failures above.
|
|
32
|
+
- Delight findings are real and valuable, but they are **the last 20% of leverage**, not the first.
|
|
33
|
+
- The full Delight pass is the Finish Bar (`finish-bar.md` — 10 passes).
|
|
34
|
+
- Common Delight findings: hierarchy ratios off, type weights inconsistent, motion missing, microcopy generic, surface stack flat.
|
|
35
|
+
|
|
36
|
+
### How to triage
|
|
37
|
+
|
|
38
|
+
- Start by reading the surface against the brief (Value).
|
|
39
|
+
- If Value findings exist, write them as the first section of the report. Recommend the team fix Value before considering Delight feedback. **Do not include Delight findings in a report where Value is failing — it dilutes the signal.**
|
|
40
|
+
- If Value passes, evaluate Ease of Use. Same rule: surface Ease findings before Delight.
|
|
41
|
+
- If Value and Ease both pass, run the Finish Bar.
|
|
42
|
+
- The brief's principles can downgrade or defer findings (e.g., a brief that records "speed over completeness" defers some Ease findings about progressive disclosure).
|
|
43
|
+
|
|
44
|
+
### When to skip Value-first
|
|
45
|
+
|
|
46
|
+
- Pure visual review at the request of design (e.g., "review this hero animation") — the user has explicitly scoped to Delight. Honor it; note in the report header that Value was not assessed.
|
|
47
|
+
- Library/component reviews where the component is generic and Value depends on consumer code. Run Ease and Delight only.
|
|
48
|
+
- Brand/marketing surfaces where conversion is the metric — Value is "did the user do the conversion action?" — apply the hierarchy but the bar shifts.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## How to Use
|
|
53
|
+
|
|
54
|
+
- **`/agemon-design review <file>`** — UX critique, flag issues, no code changes
|
|
55
|
+
- **`/agemon-design audit <file>`** — Technical audit (a11y, perf, responsive), severity-ranked
|
|
56
|
+
- **`/agemon-design polish <file>`** — Apply the Polish Pass compound details directly
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Review Output Format
|
|
61
|
+
|
|
62
|
+
For file reviews, use terse findings:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
file:line - [category] description of issue → fix
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Example:
|
|
69
|
+
```
|
|
70
|
+
components/modal.tsx:45 - [animation] Exit 400ms exceeds 300ms limit → reduce to 200ms
|
|
71
|
+
components/button.css:12 - [interaction] Missing :active transform → add scale(0.97)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Critique Methodology (for screenshots or deep review)
|
|
77
|
+
|
|
78
|
+
Follow this sequence. Each section is a separate lens.
|
|
79
|
+
|
|
80
|
+
### Step 0: Context
|
|
81
|
+
- **What is this?** (app type, screen purpose, target user)
|
|
82
|
+
- **Emotional context?** (stressful? casual? high-stakes? routine?)
|
|
83
|
+
|
|
84
|
+
### Step 1: Anti-Slop Detection (CRITICAL)
|
|
85
|
+
|
|
86
|
+
Run the Anti-Slop Test from [core-rules.md](core-rules.md) (Critical → Major → Minor). Every item present is a finding.
|
|
87
|
+
|
|
88
|
+
**The test**: "If someone said AI made this, would they believe it immediately?"
|
|
89
|
+
|
|
90
|
+
### Step 2: First Impressions
|
|
91
|
+
One paragraph on gut reaction. Be honest and direct. This is the "noticing" step — seeing what's actually there, not what you expect.
|
|
92
|
+
|
|
93
|
+
### Step 3: Visual Design
|
|
94
|
+
|
|
95
|
+
| Dimension | What to Look For |
|
|
96
|
+
|-----------|-----------------|
|
|
97
|
+
| Color intentionality | Every color purposeful? Too many competing backgrounds/accents? |
|
|
98
|
+
| Typographic hierarchy | Clear scale from most to least important? Count distinct sizes/weights |
|
|
99
|
+
| Shadow & stroke quality | Crisp or muddy? Borders competing with content? |
|
|
100
|
+
| Visual weight vs importance | Heaviest elements = most important? Decorative stealing attention? |
|
|
101
|
+
| Spacing & alignment | Consistent? Clear grid? Excess padding? |
|
|
102
|
+
| Icon consistency | Same family, weight, stroke width, optical size? |
|
|
103
|
+
|
|
104
|
+
For each issue:
|
|
105
|
+
> **[Issue name]** — [Specific factual observation]. [Impact on user]. [What it could be instead.]
|
|
106
|
+
|
|
107
|
+
Be precise. Count things. Quote text. Name colors. Measure relative sizes.
|
|
108
|
+
|
|
109
|
+
### Step 4: Interface Design
|
|
110
|
+
|
|
111
|
+
| Dimension | What to Look For |
|
|
112
|
+
|-----------|-----------------|
|
|
113
|
+
| Focusing mechanism | Clear where to look first? Visual entry point? |
|
|
114
|
+
| Progressive disclosure | Complexity revealed gradually? 40 things when 5 would suffice? |
|
|
115
|
+
| Information density | Appropriate for context? |
|
|
116
|
+
| Expectation setting | User knows what happens next? Progress communicated? |
|
|
117
|
+
| Feedback & reward | Actions acknowledged? Completed items celebrated? |
|
|
118
|
+
| Redundancy | Labels repeating known information? Can anything be removed? |
|
|
119
|
+
|
|
120
|
+
Frame as missed opportunities:
|
|
121
|
+
> "We're missing an opportunity to [reward progress / reduce cognitive load / etc.]"
|
|
122
|
+
|
|
123
|
+
### Step 5: Consistency & Conventions
|
|
124
|
+
|
|
125
|
+
| Dimension | What to Look For |
|
|
126
|
+
|-----------|-----------------|
|
|
127
|
+
| Pattern consistency | Similar actions handled the same way? |
|
|
128
|
+
| Platform conventions | Follows established patterns? Deviations intentional? |
|
|
129
|
+
| Component reuse | Elements that should be same component but aren't? |
|
|
130
|
+
| Visual language cohesion | Feels like one designer or assembled from different kits? |
|
|
131
|
+
|
|
132
|
+
### Step 6: User Context
|
|
133
|
+
- **How does this make the user feel?** Name the emotion.
|
|
134
|
+
- **User's likely state of mind?** Anxious? Focused? Under pressure?
|
|
135
|
+
- **Does the interface respect that state?**
|
|
136
|
+
- **What would "uncommon care" look like here?**
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Evidence Gate
|
|
141
|
+
|
|
142
|
+
A finding only counts once it clears three bars. Anything missing one of these is a **candidate**, not a finding — drop it or keep investigating, but don't write it into the report as-is.
|
|
143
|
+
|
|
144
|
+
1. **Cite the rule.** Name the specific rule or decision the issue violates — a line from this file, from `brief.md`, from the token spine, from an explicit accessibility requirement. "This feels off" is not a citation.
|
|
145
|
+
2. **Prove it reaches the rendered surface.** Trace the real path — file:line through the actual render, import, or token-resolution chain — that gets you from the code you're pointing at to the pixels the user sees. Two components sharing a name, or a token that merely looks related, is not proof; grep proximity is not proof. If you can't walk the chain, you don't have a finding yet.
|
|
146
|
+
3. **One concrete fix.** Exactly one, specific enough to apply directly — not a menu of options, not "consider revisiting."
|
|
147
|
+
|
|
148
|
+
**Falsification pass.** Before the report goes out, re-open the evidence for every candidate and actively try to disprove it — check whether the cited rule actually applies in this context, whether the traced path really executes, whether the fix could break something the candidate didn't account for. Only candidates that survive an honest attempt to kill them get written up.
|
|
149
|
+
|
|
150
|
+
**Signal cap.** Rank surviving findings by impact × confidence and report the ones that matter — roughly the top 3-5, not an exhaustive list. Say explicitly what else was observed and cut, so the reader knows the noise was filtered, not missed. A short, high-confidence report beats an exhaustive, noisy one.
|
|
151
|
+
|
|
152
|
+
**Scope discipline.** A review or audit pass fixes what it found — it does not refactor unrelated code, swap libraries or frameworks, or add ARIA and abstraction layers where native semantics already solve the problem. The smallest change that resolves the finding is the correct one.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Craft Report
|
|
157
|
+
|
|
158
|
+
Every review, polish, audit, or refine pass ends with a Craft Report — a receipt of the run. This is non-negotiable: **a pass that changes nothing still produces the report.** "Everything checked out" is a finding, and the most important one to surface — a silent no-op reads as the tool doing nothing, while a receipt turns the same no-op into validation the user can act on.
|
|
159
|
+
|
|
160
|
+
Sections may be omitted when empty, except **Checked** and **Verdict** — those two always appear, even on a pure pass.
|
|
161
|
+
|
|
162
|
+
- **Checked** — which dimensions or rule sets actually ran (anti-slop scan, hierarchy, type, color/contrast, motion, a11y, states…) and over what scope (which files or surfaces). Never imply coverage broader than what actually ran.
|
|
163
|
+
- **Passed** — what was inspected and found sound, with a word on the evidence behind it (e.g. "focus states present on all interactive elements in nav + forms," not "looks fine"). This is the payload when little or nothing changed — treat it with the same rigor as a finding, not as filler.
|
|
164
|
+
- **Changed** — each change, one line, with a file reference and the rule or decision it serves. Every entry here already cleared the Evidence Gate above — no changes ship without a citation and a fix.
|
|
165
|
+
- **Left alone** — deliberate non-changes: things that look unusual but are intentional or brand, things technically correct so untouched, things out of scope or that need a user decision. One line each with the why — this is what separates "didn't notice" from "noticed, chose not to touch."
|
|
166
|
+
- **Verdict** — one sentence: overall state, plus the single highest-leverage next step if one exists (or "no open findings in what was checked" if none does). Never a ship or no-ship ruling.
|
|
167
|
+
|
|
168
|
+
Keep it honest and short. The report reflects what this run actually inspected — no padding, no invented coverage, no claiming a dimension was checked because it usually is.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Comprehensive Audit Checklist
|
|
173
|
+
|
|
174
|
+
### Animation Audit
|
|
175
|
+
- [ ] No `transition: all` — properties listed explicitly
|
|
176
|
+
- [ ] No `scale(0)` entry — starts from `scale(0.95)` with `opacity: 0`
|
|
177
|
+
- [ ] No `ease-in` on UI elements — use `ease-out` or custom curve
|
|
178
|
+
- [ ] No `transform-origin: center` on popovers — set to trigger location (modals exempt)
|
|
179
|
+
- [ ] No animation on keyboard actions
|
|
180
|
+
- [ ] No duration > 300ms on UI elements
|
|
181
|
+
- [ ] No hover animation without `@media (hover: hover) and (pointer: fine)`
|
|
182
|
+
- [ ] No keyframes on rapidly-triggered elements — use CSS transitions
|
|
183
|
+
- [ ] Animation library uses compositor-promoted properties under load
|
|
184
|
+
- [ ] Exit faster than enter
|
|
185
|
+
- [ ] Stagger delays ≤ 50ms per item
|
|
186
|
+
- [ ] `prefers-reduced-motion` respected
|
|
187
|
+
- [ ] No entrance animation on first paint for default-state elements (`initial={false}` on `AnimatePresence`)
|
|
188
|
+
|
|
189
|
+
### Interaction Audit
|
|
190
|
+
|
|
191
|
+
Full checklist lives in `accessibility.md` (**Quick Checklist** + **Forms**). Fast pass:
|
|
192
|
+
|
|
193
|
+
- [ ] Full keyboard navigation (WAI-ARIA APG)
|
|
194
|
+
- [ ] Visible focus rings (`:focus-visible`)
|
|
195
|
+
- [ ] Hit targets ≥ 24px (44px mobile)
|
|
196
|
+
- [ ] URL reflects state (filters, tabs, pagination)
|
|
197
|
+
- [ ] Links use `<a>`/`<Link>`, not `<div onClick>`
|
|
198
|
+
- [ ] Destructive actions confirmed or Undo provided
|
|
199
|
+
- [ ] Loading buttons show spinner + keep label
|
|
200
|
+
- [ ] Forms: paste not blocked, errors inline, autocomplete set
|
|
201
|
+
- [ ] `overscroll-behavior: contain` in modals/drawers
|
|
202
|
+
- [ ] `touch-action: manipulation` on controls
|
|
203
|
+
|
|
204
|
+
### Layout Audit
|
|
205
|
+
- [ ] Optical alignment (±1px adjustments where needed)
|
|
206
|
+
- [ ] Deliberate grid/baseline/edge alignment
|
|
207
|
+
- [ ] Responsive: mobile, laptop, ultra-wide verified
|
|
208
|
+
- [ ] Safe areas respected
|
|
209
|
+
- [ ] No unwanted scrollbars
|
|
210
|
+
- [ ] Flex children have `min-w-0` for truncation
|
|
211
|
+
- [ ] Text containers handle long content
|
|
212
|
+
- [ ] Empty states handled
|
|
213
|
+
|
|
214
|
+
### Design Audit
|
|
215
|
+
- [ ] Layered shadows (ambient + direct)
|
|
216
|
+
- [ ] Nested radii: child ≤ parent
|
|
217
|
+
- [ ] Hue-consistent borders/shadows on colored backgrounds
|
|
218
|
+
- [ ] APCA contrast met
|
|
219
|
+
- [ ] Interactions increase contrast
|
|
220
|
+
- [ ] `color-scheme: dark` on html in dark themes
|
|
221
|
+
- [ ] `theme-color` matches background
|
|
222
|
+
- [ ] `tabular-nums` for number comparisons
|
|
223
|
+
- [ ] `text-wrap: balance` on headings
|
|
224
|
+
- [ ] Images have inset outline `black/10` (light) / `white/10` (dark) — never tinted
|
|
225
|
+
- [ ] `-webkit-font-smoothing: antialiased` on root (macOS)
|
|
226
|
+
|
|
227
|
+
### Performance Audit
|
|
228
|
+
- [ ] Only compositor props animated (`transform`, `opacity`)
|
|
229
|
+
- [ ] No layout thrashing (interleaved reads/writes)
|
|
230
|
+
- [ ] Large lists virtualized (>50 items)
|
|
231
|
+
- [ ] Images: preload above-fold, lazy rest, explicit dimensions
|
|
232
|
+
- [ ] Re-renders minimized
|
|
233
|
+
- [ ] CSS variables not animated on deep trees
|
|
234
|
+
- [ ] `will-change` used temporarily and surgically
|
|
235
|
+
- [ ] Blur ≤ 8px, never continuous, never on large surfaces
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Output Format for Critiques
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
## Context
|
|
243
|
+
[1-2 sentences]
|
|
244
|
+
|
|
245
|
+
## Anti-Slop Tells
|
|
246
|
+
[Each tell present, with the element and viewport; "none found" if clean]
|
|
247
|
+
|
|
248
|
+
## First Impressions
|
|
249
|
+
[1 paragraph, direct]
|
|
250
|
+
|
|
251
|
+
## Visual Design
|
|
252
|
+
[Issues as: **Issue Name** — observation. Impact. Opportunity.]
|
|
253
|
+
|
|
254
|
+
## Interface Design
|
|
255
|
+
[Issues framed as missed opportunities]
|
|
256
|
+
|
|
257
|
+
## Consistency & Conventions
|
|
258
|
+
[Pattern issues]
|
|
259
|
+
|
|
260
|
+
## User Context
|
|
261
|
+
[Empathy-driven observations]
|
|
262
|
+
|
|
263
|
+
## Top Opportunities
|
|
264
|
+
[Ranked 3-5 highest-impact changes, one sentence each]
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Voice Rules
|
|
270
|
+
|
|
271
|
+
### BE:
|
|
272
|
+
- **Specific** — "There are six columns per row" not "a lot of data"
|
|
273
|
+
- **Decisive** — "This is overwhelming" not "might feel overwhelming"
|
|
274
|
+
- **Factual first** — State what you see before judging
|
|
275
|
+
- **Impact-aware** — Connect observation to user impact
|
|
276
|
+
- **Constructive** — Every problem paired with opportunity
|
|
277
|
+
- **Quantitative** — Count elements, name colors, measure sizes
|
|
278
|
+
|
|
279
|
+
### DO NOT:
|
|
280
|
+
- Hedge ("maybe", "perhaps")
|
|
281
|
+
- Apologize ("unfortunately")
|
|
282
|
+
- Be vague ("feels off" without specifics)
|
|
283
|
+
- Add praise padding (no manufactured positivity)
|
|
284
|
+
- Prescribe without reasoning
|
|
285
|
+
|
|
286
|
+
### Severity Priority
|
|
287
|
+
1. **Structural** — information architecture, mental model, missing functionality
|
|
288
|
+
2. **Behavioral** — response, flow, communication
|
|
289
|
+
3. **Visual** — color, type, spacing, shadows
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Polish Pass (Compound Details)
|
|
294
|
+
|
|
295
|
+
The difference between "correct" and "crafted" is 20 small things done right. Run this checklist after the UI works (required when CRAFT_LEVEL is 8+):
|
|
296
|
+
|
|
297
|
+
- **Brand names use ` `** — prevent "UI" on one line and "Craft" on the next
|
|
298
|
+
- **Confirmation feedback is visual, not just color** — swap icon to checkmark, not just green tint
|
|
299
|
+
- **One visual anchor per text-heavy page** — a code block, screenshot, or diagram breaks monotony
|
|
300
|
+
- **Headings sit closer to their content than to the previous section** — unequal spacing creates grouping
|
|
301
|
+
- **Footer earns its space or disappears** — generic "Built by Name" adds nothing
|
|
302
|
+
- **Test on mobile before declaring done** — drag interactions, overflow, label overlap, touch targets
|
|
303
|
+
- **Secondary actions don't compete with primary** — outline/ghost for secondary, solid for primary
|
|
304
|
+
- **Data-heavy content uses monospace or tabular-nums** — even in casual contexts
|
|
305
|
+
- **Images inside interactive containers can't be natively dragged** — kills slider/carousel UX
|
|
306
|
+
- **Every `<section>` on a landing page answers one question** — if it answers two, split it
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Common Issues (What We See in Real Projects)
|
|
311
|
+
|
|
312
|
+
When reviewing or polishing existing UI, these are the most frequent problems:
|
|
313
|
+
|
|
314
|
+
| Issue | How to spot it | Fix |
|
|
315
|
+
|-------|---------------|-----|
|
|
316
|
+
| Everything is the same shade of gray | Squint test — no visual hierarchy | Darken headings to 900, lighten secondary to 500, add one accent |
|
|
317
|
+
| Cards all look identical | 4+ cards with same border, radius, shadow | Differentiate primary card, vary content types, break the grid |
|
|
318
|
+
| Hover states missing or default | Buttons/cards don't respond to cursor | Add translateY(-1px) + shadow on cards, bg darken on buttons |
|
|
319
|
+
| Spacing is uniform everywhere | Same gap between all sections | Vary: tighter within groups, looser between sections |
|
|
320
|
+
| No loading/empty/error states | Only the happy path is designed | Add skeleton, empty state with CTA, inline errors |
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Component Craft
|
|
325
|
+
|
|
326
|
+
- **Interactive elements have three states minimum** — rest, hover/focus, active/pressed. If it looks the same when you click it, it feels broken.
|
|
327
|
+
- **Button hierarchy guides action** — primary = solid, secondary = outline/ghost, destructive = red outline. Only ONE primary per view section.
|
|
328
|
+
- **Feedback must be visual, not just color** — swap icon to checkmark, show inline confirmation, animate the state change. Color alone fails colorblind users.
|
|
329
|
+
- **Metric cards vary treatment** — if 3+ cards share structure, differentiate the primary (heavier weight, slightly larger number, subtle bg tint — never thick colored borders).
|
|
330
|
+
- **Price typography splits weight** — dollar sign lighter/smaller than the number, period label ("/month") in secondary color.
|
|
331
|
+
- **Prevent native image drag** on interactive overlays — `user-drag: none; -webkit-user-drag: none; pointer-events: none` on images inside sliders/carousels.
|
|
332
|
+
- **Placeholders are visual, not text** — skeleton bars, subtle grid lines, muted pattern. "Chart would render here" looks unfinished.
|
|
333
|
+
|
|
334
|
+
**Hover & interaction micro-details** (gate behind `@media (hover: hover) and (pointer: fine)`):
|
|
335
|
+
|
|
336
|
+
- Cards: `transform: translateY(-1px)` + shadow increase — `transition: transform 200ms ease-out, box-shadow 200ms ease-out` / Tailwind: `hover:-translate-y-px hover:shadow-md transition-[transform,box-shadow] duration-200`
|
|
337
|
+
- Buttons: slight bg darkening, not a full color swap — `transition: background 150ms ease-out` / Tailwind: `hover:bg-accent/90 transition-colors duration-150`
|
|
338
|
+
- Table rows: subtle bg — `hover:bg-gray-50` / Tailwind: `hover:bg-slate-50/50`
|
|
339
|
+
- Links: `text-underline-offset: 2px; text-decoration-skip-ink: auto` / Tailwind: `underline-offset-2 decoration-skip-ink-auto`
|
|
340
|
+
- Active/pressed: `transform: scale(0.98)` on buttons for tactile feedback
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Routing detail
|
|
2
|
+
|
|
3
|
+
The ladder, intent table and reference tiers that used to sit in `SKILL.md`. Use it when a request does not map cleanly to a track or action. The reference map in [SKILL.md](../SKILL.md) is the short version.
|
|
4
|
+
|
|
5
|
+
## The Ladder (use this when explaining agemon-design to the user)
|
|
6
|
+
|
|
7
|
+
One progression, three rungs. Never describe agemon-design as "layers" or "modes" — use these rung names, and name the rung the user is on before suggesting an action.
|
|
8
|
+
|
|
9
|
+
| Rung | User wants | They do | They get | Effort |
|
|
10
|
+
|------|-----------|---------|----------|--------|
|
|
11
|
+
| **0 · Ask** | better UI, zero effort | ask for UI as always | taste by default: real hierarchy, system tokens, no slop | none |
|
|
12
|
+
| **1 · Direct** | control one pass | `/agemon-design build`, `review`, `polish`, `harden`, `audit`, `animate` | a focused pass on one surface | one request |
|
|
13
|
+
| **2 · Persist** | consistency across sessions | `/agemon-design brief`, `/agemon-design tokens` | durable design context every future session reads | write once |
|
|
14
|
+
|
|
15
|
+
When a pass finishes, name the natural next step (`build` → `review`, `brief` → `tokens`, `audit` → `harden`).
|
|
16
|
+
|
|
17
|
+
## Intent routing
|
|
18
|
+
|
|
19
|
+
Invoke an action as `/agemon-design <action>`, or just say what you want in plain words — "review this page", "write the brief", "harden the settings form" route the same way. The actions are `brief`, `tokens`, `build`, `review`, `polish`, `harden`, `audit` and `animate`; each is defined in [actions.md](actions.md). Anything else routes by the table below.
|
|
20
|
+
|
|
21
|
+
| Intent | Pass / Reference |
|
|
22
|
+
|--------|------------------|
|
|
23
|
+
| Pre-build: write the project's design brief | Action `brief` → [actions.md](actions.md#brief), format in [brief.md](brief.md) |
|
|
24
|
+
| Pre-build: establish or audit token spine | Action `tokens` → [actions.md](actions.md#tokens), contract in [tokens.md](tokens.md) |
|
|
25
|
+
| Build a whole surface in one shot | Action `build <surface>` → [actions.md](actions.md#build); outcome recipes: [recipe-dashboard.md](recipe-dashboard.md), [recipe-landing.md](recipe-landing.md), [recipe-auth.md](recipe-auth.md) |
|
|
26
|
+
| Pick a ready-made theme (no token system exists) | [themes.md](themes.md) — 4 production token presets |
|
|
27
|
+
| Building new UI | **Build pass** (rung 0/1) — [stage-build.md](stage-build.md) + relevant references |
|
|
28
|
+
| Adding/fixing animations | Action `animate` → [actions.md](actions.md#animate) + **Motion pass** — [motion.md](motion.md) |
|
|
29
|
+
| Reviewing existing UI, UX critique, no code changes | Action `review` → [actions.md](actions.md#review) + **Review pass** — [review.md](review.md), [inspiration.md](inspiration.md) — ends with a Craft Report |
|
|
30
|
+
| Polishing existing UI | Action `polish` → [actions.md](actions.md#polish) + [review.md](review.md) Polish Pass — ends with a Craft Report |
|
|
31
|
+
| Multi-stage animations | [motion.md](motion.md) — choreography and stagger |
|
|
32
|
+
| Layout / spacing | [layout.md](layout.md) |
|
|
33
|
+
| Typography | [typography.md](typography.md) |
|
|
34
|
+
| Color / theming / dark mode | [color.md](color.md) |
|
|
35
|
+
| Accessibility / technical audit | Action `audit` → [actions.md](actions.md#audit) + [accessibility.md](accessibility.md) |
|
|
36
|
+
| Production hardening (states, i18n, edge cases) | Action `harden` → [actions.md](actions.md#harden) + [state-design.md](state-design.md) |
|
|
37
|
+
| Amplify personality ("make it bolder") or tone down ("quieter", "more restrained") | [craft-intent.md](craft-intent.md) — raise or lower DESIGN_VARIANCE and MOTION_INTENSITY |
|
|
38
|
+
| Purposeful micro-interactions | [motion.md](motion.md) |
|
|
39
|
+
| Animation performance | [motion.md](motion.md) — Rendering Performance section |
|
|
40
|
+
| Advanced CSS / View Transitions | [modern-css.md](modern-css.md) |
|
|
41
|
+
| Sound design | [sound.md](sound.md) |
|
|
42
|
+
| UX copy / voice / tone / microcopy | [copy.md](copy.md) — errors, empty states, CTAs, voice matrix, reading level, locale, inclusive language |
|
|
43
|
+
| Responsive | [responsive.md](responsive.md) |
|
|
44
|
+
| Page metadata correctness (title/description/canonical, social cards, structured data, favicons) | [metadata.md](metadata.md) |
|
|
45
|
+
| Three.js / GSAP / Motion | [stack.md](stack.md) — **OPT-IN ONLY — do not load unless the user chose Motion/GSAP/Three.js during intake** |
|
|
46
|
+
| PM-ready, severity-ranked heuristic critique | Action `review`, heuristic review → [heuristics.md](heuristics.md) + [personas.md](personas.md) |
|
|
47
|
+
| State-first design (before happy path) | [state-design.md](state-design.md) |
|
|
48
|
+
| Data visualization / charts / dashboards | [dataviz.md](dataviz.md) — Cleveland-McGill, color for data, Tufte |
|
|
49
|
+
| Motion system / tokens / choreography | [motion.md](motion.md) — duration + easing scale, motion budget |
|
|
50
|
+
| Wireframe-first: lay out states and content before coding | [state-design.md](state-design.md) — state lattice + content inventory |
|
|
51
|
+
| AI / chat / streaming surfaces | [ai-chat.md](ai-chat.md) — streaming contract, tool traces, citations, feedback |
|
|
52
|
+
| Forms (multi-step, validation timing, autosave) | [forms.md](forms.md) — holistic form system design |
|
|
53
|
+
| Component anatomy (buttons, menus, modals, search, cards, nav) | [components.md](components.md) — contracts below the surface level |
|
|
54
|
+
| Pre-ship: full finishing bar before merge | [finish-bar.md](finish-bar.md) |
|
|
55
|
+
| Iterate a surface until a quality bar passes (converge, not one-shot) | [loops.md](loops.md) — loop engine + presets |
|
|
56
|
+
| Remember a design correction (record as a learned constraint) | [brief.md](brief.md) — Self-Correction |
|
|
57
|
+
| Ambiguous | Ask which action |
|
|
58
|
+
|
|
59
|
+
**Overlap with other skills:** defer marketing copy to a copywriting skill; defer SEO strategy to an SEO skill — agemon-design covers the correctness of metadata already being emitted ([metadata.md](metadata.md)), not keyword or ranking strategy. agemon-design is the visual and interaction layer.
|
|
60
|
+
|
|
61
|
+
**Out of scope.** These are surface classes the recipes do not help with. Say so, name the right tool, and still apply agemon-design to the web surfaces around them — a brief containing one of these is rarely only that.
|
|
62
|
+
|
|
63
|
+
| Not this | Use instead |
|
|
64
|
+
|---|---|
|
|
65
|
+
| Code editor surfaces (syntax, gutters, diff views) | Monaco or CodeMirror with their own theming API |
|
|
66
|
+
| Native mobile apps | Apple HIG or Material directly — agemon-design covers web |
|
|
67
|
+
| Realtime collaboration UI (presence, live cursors, conflict states) | Liveblocks, or Yjs / Automerge if you own the sync layer — the recipes assume a single actor |
|
|
68
|
+
| HTML email | MJML or a dedicated email framework — the CSS rules here are void in mail clients |
|
|
69
|
+
|
|
70
|
+
Refusing with a pointer beats confident bad output. Silence produces the second one.
|
|
71
|
+
|
|
72
|
+
## Reference Files
|
|
73
|
+
|
|
74
|
+
Tiered by signal. Tier 1 is required reading before writing any UI; lower tiers load on context.
|
|
75
|
+
|
|
76
|
+
### Tier 1 — Always load before writing UI
|
|
77
|
+
|
|
78
|
+
Two entries, because two is what a build actually loads. This list used to hold seven; build evals showed a passing dashboard opened one of them and a passing landing opened two, while both reached for the surface recipe that was filed a tier below. A required list that nobody reads is not a standard, it is a wish — so the list now names what carries the build, and everything else below states the trigger that pulls it in.
|
|
79
|
+
|
|
80
|
+
| Reference | When to Read |
|
|
81
|
+
|-----------|--------------|
|
|
82
|
+
| [craft-intent.md](craft-intent.md) | Craft Read, DESIGN_VARIANCE, signature bets, product + marketing build patterns. The one reference every full-surface build needs. |
|
|
83
|
+
| **The surface recipe** | [recipe-dashboard.md](recipe-dashboard.md) · [recipe-landing.md](recipe-landing.md) · [recipe-auth.md](recipe-auth.md) — whichever matches what you are building. Every numeric limit that keeps a surface off template grammar lives here (hero subtext ≤20 words, eyebrow budget, form column width, acceptance bar). Skipping it does not soften those limits, it removes them. |
|
|
84
|
+
|
|
85
|
+
### Tier 1b — Load on trigger
|
|
86
|
+
|
|
87
|
+
Same references as before, same weight when their trigger fires. Only the claim changed: these are conditional, and pretending otherwise made the whole Tier-1 label unreliable — including for the two above.
|
|
88
|
+
|
|
89
|
+
| Reference | Trigger |
|
|
90
|
+
|-----------|---------|
|
|
91
|
+
| [brief.md](brief.md) | `.design/brief.md` or an older `.ui-craft/brief.md` exists — then read it first, it anchors every decision and its learned constraints override skill defaults. Absent: run `/agemon-design brief` or proceed from [stage-intake.md](stage-intake.md). |
|
|
92
|
+
| [tokens.md](tokens.md) | The project has a token system to respect or extend, or you are establishing one. With neither, derive tokens from the brief; [themes.md](themes.md) offers presets only when the user asks for one or no direction exists. |
|
|
93
|
+
| [accessibility.md](accessibility.md) | Any form, any custom interactive control, any focus or keyboard work. The a11y floor in [core-rules.md](core-rules.md) is the minimum; this is the detail. |
|
|
94
|
+
| [color.md](color.md) | Choosing or changing a palette, building dark mode, or auditing accent budget. Not needed to apply a preset the user asked for. |
|
|
95
|
+
| [layout.md](layout.md) | Composing a surface from scratch, or a spacing/hierarchy pass. Not needed when a recipe already prescribes the composition. |
|
|
96
|
+
| [inspiration.md](inspiration.md) | Highest-signal reference in the skill. Read it when the build needs an archetype or a signature detail, and whenever the result feels generic. |
|
|
97
|
+
|
|
98
|
+
> **What this measured, and what it did not.** The evidence is greenfield builds — an empty
|
|
99
|
+
> sandbox with no brief and no tokens, so `brief` and `tokens` could not have been read
|
|
100
|
+
> whatever the label said. It shows the label was not causing loads. It does **not** show the
|
|
101
|
+
> references are unnecessary: `layout` and `color` govern craft that automated checks
|
|
102
|
+
> barely cover, so a build can pass every check with mediocre spacing rhythm. Re-measure before
|
|
103
|
+
> trimming anything further, and re-measure on a project that already has a design system.
|
|
104
|
+
|
|
105
|
+
### Tier 2 — Surface-specific (read when building this surface)
|
|
106
|
+
|
|
107
|
+
| Reference | When to Read |
|
|
108
|
+
|-----------|--------------|
|
|
109
|
+
| [spec.md](spec.md) | Durable composition spec at `.design/spec.md` — the "what". Read after `brief.md` when a spec exists for the surface being built. |
|
|
110
|
+
| **Outcome recipes** | Promoted to Tier 1 — see *Always load*. Listed there and not here so the recipe has one home; two descriptions of the same requirement is how one of them goes stale. |
|
|
111
|
+
| [themes.md](themes.md) | 4 named production token presets (Graphite, Porcelain, Carbon, Signal). Load only when the user asks for a preset or no design direction exists. |
|
|
112
|
+
| [dashboard.md](dashboard.md) | Dashboards, metric cards, charts, tables, sidebar, filters. |
|
|
113
|
+
| [forms.md](forms.md) | Validation timing, progressive disclosure, multi-step wizards, autosave, optimistic submit. |
|
|
114
|
+
| [components.md](components.md) | Component anatomy contracts: buttons (padding ratio, icon-side semantics), menus (5-option threshold, scroll affordance), modals (verb labels, ways out), search, content cards, nav bar. |
|
|
115
|
+
| [ai-chat.md](ai-chat.md) | Streaming contract, 7-state affordance model for AI surfaces, tool traces, citations, generative UI. |
|
|
116
|
+
| [review.md](review.md) | Critique methodology, Polish Pass, common issues, component craft. Load when reviewing or refining. |
|
|
117
|
+
| [finish-bar.md](finish-bar.md) | 10-pass finishing protocol. Load at CRAFT_LEVEL ≥ 8, or when the user asks for a full pre-ship pass. |
|
|
118
|
+
| [loops.md](loops.md) | Loop engine: read→evaluate→fix-one→re-evaluate→stop contract + 3 presets. Load when the user asks to iterate a surface or a token audit until a bar passes. |
|
|
119
|
+
| [principles-catalog.md](principles-catalog.md) | 42 example design principles across 8 product categories. Load during the `/agemon-design brief` principles workshop branch as conversation seed. |
|
|
120
|
+
|
|
121
|
+
### Tier 3 — Foundations (read for the relevant discipline)
|
|
122
|
+
|
|
123
|
+
| Reference | When to Read |
|
|
124
|
+
|-----------|--------------|
|
|
125
|
+
| [typography.md](typography.md) | Scale, font choice, readability, weight — scoped per script and role. |
|
|
126
|
+
| [motion.md](motion.md) | Decision ladder, duration + easing scales with perceptual grounding, interaction rules, motion-gap audit. |
|
|
127
|
+
| [modern-css.md](modern-css.md) | View Transitions, scroll timelines, container queries, `@starting-style`. |
|
|
128
|
+
| [responsive.md](responsive.md) | Mobile/tablet/desktop, breakpoints, touch zones. |
|
|
129
|
+
| [metadata.md](metadata.md) | Title/description/canonical consistency, deterministic metadata, social cards, noindex on staging, structured data honesty, favicons. |
|
|
130
|
+
| [tells-2026-11.md](tells-2026-11.md) | Checking your own palette, type and layout plan against what generated interfaces converge on. Calibration only: it never overrides a brand or a brief. |
|
|
131
|
+
| [copy.md](copy.md) | Voice/tone matrix, reading level (Flesch ≥70), terminology, inclusive language, errors, empty states, CTAs. |
|
|
132
|
+
| [sound.md](sound.md) | Web Audio, UI sound, appropriateness matrix. Rare — load when explicitly building audio feedback. |
|
|
133
|
+
|
|
134
|
+
### Tier 4 — Opt-in (only on explicit request or specific commands)
|
|
135
|
+
|
|
136
|
+
| Reference | When to Read |
|
|
137
|
+
|-----------|--------------|
|
|
138
|
+
| [stack.md](stack.md) | Three.js / GSAP / Motion — **opt-in only — do not load unless the user chose Motion/GSAP/Three.js during intake.** |
|
|
139
|
+
| [heuristics.md](heuristics.md) | Nielsen's 10 + 6 design laws (Fitts, Hick, Doherty, Cleveland-McGill, Miller, Tesler) as a checklist. Load for the heuristic review of `/agemon-design review`. |
|
|
140
|
+
| [personas.md](personas.md) | 5 persona walkthroughs (first-timer / power / low-bandwidth / screen-reader / one-thumb). Load when a heuristic review names a persona. |
|
|
141
|
+
| [state-design.md](state-design.md) | State lattice — idle / loading / empty / error / partial / conflict / offline. Load for `/agemon-design harden` and state-first design. |
|
|
142
|
+
| [dataviz.md](dataviz.md) | Cleveland-McGill perceptual hierarchy, chart selection matrix, ColorBrewer/Okabe-Ito palettes, Tufte, direct labeling. Load when designing charts. |
|
|
143
|
+
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Sound Design for UI
|
|
2
|
+
|
|
3
|
+
Web Audio API best practices, UI sound appropriateness, and implementation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## When Sound is Appropriate
|
|
8
|
+
|
|
9
|
+
| Interaction | Sound? | Reason |
|
|
10
|
+
|-------------|--------|--------|
|
|
11
|
+
| Payment success | Yes | Significant confirmation |
|
|
12
|
+
| Form submission | Yes | User needs assurance |
|
|
13
|
+
| Error state | Yes | Can't be overlooked |
|
|
14
|
+
| Notification | Yes | User may not be looking |
|
|
15
|
+
| Significant button | Maybe | Only for important actions |
|
|
16
|
+
| Typing | **No** | Too frequent |
|
|
17
|
+
| Hover | **No** | Decorative only |
|
|
18
|
+
| Scroll | **No** | Too frequent |
|
|
19
|
+
| Navigation | **No** | Keyboard nav would be noisy |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Accessibility Rules
|
|
24
|
+
|
|
25
|
+
- Every audio cue MUST have a visual equivalent — sound never replaces visual feedback
|
|
26
|
+
- Provide explicit toggle to disable sounds in settings
|
|
27
|
+
- Respect `prefers-reduced-motion` as a default proxy for sound sensitivity, AND provide an explicit independent sound toggle. **Why caveat:** the proxy is imperfect — some users tolerate visual motion but not audio (vestibular conditions, hearing aids), some users tolerate audio but not motion. Always offer a sound toggle separate from motion preference; reduced-motion is the default-off, not the only signal.
|
|
28
|
+
- Allow volume adjustment independent of system volume
|
|
29
|
+
- Never add sound to high-frequency interactions
|
|
30
|
+
- Sound should inform, not punish — avoid harsh sounds for mistakes
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Web Audio API Implementation
|
|
35
|
+
|
|
36
|
+
### Single AudioContext
|
|
37
|
+
|
|
38
|
+
Single AudioContext per page. Never create new AudioContext per sound. **Why critical:** browsers limit AudioContext instances (typically 6 per page); exhausting them silently fails new sounds. A shared AudioContext also synchronizes timing across rapid-fire UI feedback (typing keystrokes, button clicks within 50ms) — independent contexts desync.
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
let audioContext: AudioContext | null = null;
|
|
42
|
+
function getAudioContext(): AudioContext {
|
|
43
|
+
if (!audioContext) audioContext = new AudioContext();
|
|
44
|
+
return audioContext;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Resume Suspended Context
|
|
49
|
+
```ts
|
|
50
|
+
if (ctx.state === "suspended") ctx.resume();
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Clean Up Nodes
|
|
54
|
+
```ts
|
|
55
|
+
source.onended = () => { source.disconnect(); gain.disconnect(); };
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Sound Design Patterns
|
|
61
|
+
|
|
62
|
+
### Clicks/Taps (Percussion) — Use Filtered Noise
|
|
63
|
+
```ts
|
|
64
|
+
const buffer = ctx.createBuffer(1, ctx.sampleRate * 0.008, ctx.sampleRate);
|
|
65
|
+
const data = buffer.getChannelData(0);
|
|
66
|
+
for (let i = 0; i < data.length; i++) {
|
|
67
|
+
data[i] = (Math.random() * 2 - 1) * Math.exp(-i / 50);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const filter = ctx.createBiquadFilter();
|
|
71
|
+
filter.type = "bandpass";
|
|
72
|
+
filter.frequency.value = 4000; // 3000-6000Hz range
|
|
73
|
+
filter.Q.value = 3; // 2-5 for focused but not harsh
|
|
74
|
+
source.connect(filter).connect(gain).connect(ctx.destination);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Confirmations/Pops (Tonal) — Use Oscillators
|
|
78
|
+
```ts
|
|
79
|
+
const osc = ctx.createOscillator();
|
|
80
|
+
osc.frequency.setValueAtTime(400, t);
|
|
81
|
+
osc.frequency.exponentialRampToValueAtTime(600, t + 0.04);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Envelope
|
|
85
|
+
|
|
86
|
+
Use exponential decay (not linear) for sound envelopes. **Why:** linear decay produces an audible click as the envelope hits zero — the abrupt stop creates a high-frequency artifact at the cutoff. Exponential decay mimics natural acoustic decay (room reverberation, string damping) — it reaches zero asymptotically, no click.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
gain.gain.setValueAtTime(0.3, t); // set initial value first
|
|
90
|
+
gain.gain.exponentialRampToValueAtTime(0.001, t + 0.05); // never target 0
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Parameters
|
|
96
|
+
|
|
97
|
+
| Parameter | Range | Notes |
|
|
98
|
+
|-----------|-------|-------|
|
|
99
|
+
| Click duration | 5-15ms | Quick and percussive |
|
|
100
|
+
| Filter frequency | 3000-6000Hz | For click sounds |
|
|
101
|
+
| Filter Q | 2-5 | Focused but not harsh |
|
|
102
|
+
| Gain | ≤ 1.0 | Prevent clipping |
|
|
103
|
+
| Default volume | 0.3 | Subtle, not loud |
|
|
104
|
+
| "too harsh" | → lower filter frequency, reduce Q | |
|
|
105
|
+
| "too muffled" | → higher filter frequency | |
|
|
106
|
+
| "too long" | → shorter duration, faster decay | |
|
|
107
|
+
| "cuts off" | → use exponential decay | |
|
|
108
|
+
| "more mechanical" | → higher Q, faster decay | |
|
|
109
|
+
| "softer" | → lower gain, triangle wave | |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Weight Matching
|
|
114
|
+
|
|
115
|
+
Sound weight should match action importance:
|
|
116
|
+
- **Subtle click** for toggle switches
|
|
117
|
+
- **Soft pop** for adding items
|
|
118
|
+
- **Rich confirmation** for purchases/payments
|
|
119
|
+
- **Brief alert** for errors
|
|
120
|
+
|
|
121
|
+
Sound duration should match action duration:
|
|
122
|
+
- **50ms** for clicks/taps
|
|
123
|
+
- **100-200ms** for confirmations
|
|
124
|
+
- **Longer** for uploads/completions
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Preloading
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
const sounds = {
|
|
132
|
+
success: new Audio("/sounds/success.mp3"),
|
|
133
|
+
error: new Audio("/sounds/error.mp3"),
|
|
134
|
+
};
|
|
135
|
+
Object.values(sounds).forEach(audio => audio.load());
|
|
136
|
+
|
|
137
|
+
// Reset before replay for rapid triggering
|
|
138
|
+
function play(sound: HTMLAudioElement) {
|
|
139
|
+
sound.currentTime = 0;
|
|
140
|
+
sound.play();
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Cross-Refs
|
|
147
|
+
|
|
148
|
+
- `accessibility.md` — the full reduced-motion contract; `prefers-reduced-motion` as a sound-sensitivity proxy lives there.
|
|
149
|
+
- `motion.md` — sound duration should match the duration of the action it accompanies, the same pairing rule as interaction timing.
|
|
150
|
+
- `state-design.md` — sound cues for state transitions (error, success) must never be the only signal; pair with the visual state.
|