@su-record/vibe 2.16.3 → 3.0.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/.env.example +15 -0
- package/CLAUDE.md +8 -8
- package/README.en.md +46 -29
- package/README.md +41 -24
- package/agents/acceptance-tester.md +56 -0
- package/agents/architect.md +25 -67
- package/agents/build-error-resolver.md +28 -97
- package/agents/code-reviewer.md +89 -0
- package/agents/diagrammer.md +34 -165
- package/agents/documenter.md +43 -0
- package/agents/e2e-tester.md +46 -277
- package/agents/event/event-ops.md +54 -77
- package/agents/event/event-planner.md +63 -0
- package/agents/figma/figma-engineer.md +76 -0
- package/agents/implementer.md +26 -41
- package/agents/security-reviewer.md +56 -0
- package/agents/tester.md +37 -33
- package/agents/ui/design-reviewer.md +62 -0
- package/agents/ui/design-system-gen.md +63 -0
- package/dist/__tests__/agent-model-sync.test.d.ts +2 -0
- package/dist/__tests__/agent-model-sync.test.d.ts.map +1 -0
- package/dist/__tests__/agent-model-sync.test.js +71 -0
- package/dist/__tests__/agent-model-sync.test.js.map +1 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +8 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +2 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/llm.d.ts +11 -0
- package/dist/cli/commands/llm.d.ts.map +1 -0
- package/dist/cli/commands/llm.js +62 -0
- package/dist/cli/commands/llm.js.map +1 -0
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +8 -10
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +35 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +59 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/config.d.ts.map +1 -1
- package/dist/cli/llm/config.js +7 -0
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/index.d.ts +1 -0
- package/dist/cli/llm/index.d.ts.map +1 -1
- package/dist/cli/llm/index.js +1 -0
- package/dist/cli/llm/index.js.map +1 -1
- package/dist/cli/llm/model-refresh.d.ts +29 -0
- package/dist/cli/llm/model-refresh.d.ts.map +1 -0
- package/dist/cli/llm/model-refresh.js +139 -0
- package/dist/cli/llm/model-refresh.js.map +1 -0
- package/dist/cli/llm/zai-commands.d.ts +15 -0
- package/dist/cli/llm/zai-commands.d.ts.map +1 -0
- package/dist/cli/llm/zai-commands.js +64 -0
- package/dist/cli/llm/zai-commands.js.map +1 -0
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +16 -77
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +81 -296
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
- package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +26 -68
- package/dist/cli/postinstall/cursor-agents.js.map +1 -1
- package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-skills.js +26 -30
- package/dist/cli/postinstall/cursor-skills.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +0 -2
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/Provisioner.d.ts.map +1 -1
- package/dist/cli/setup/Provisioner.js +19 -21
- package/dist/cli/setup/Provisioner.js.map +1 -1
- package/dist/cli/types.d.ts +15 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/utils.d.ts +4 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +4 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/FrameworkDetector.js +4 -4
- package/dist/infra/lib/FrameworkDetector.js.map +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/infra/lib/browser/launch.js +1 -1
- package/dist/infra/lib/browser/launch.js.map +1 -1
- package/dist/infra/lib/browser/types.d.ts +1 -1
- package/dist/infra/lib/browser/types.js +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.d.ts +2 -0
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.js +6 -0
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
- package/dist/infra/lib/constants.d.ts +1 -1
- package/dist/infra/lib/constants.d.ts.map +1 -1
- package/dist/infra/lib/constants.js +4 -5
- package/dist/infra/lib/constants.js.map +1 -1
- package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
- package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
- package/dist/infra/lib/llm-availability.d.ts +4 -0
- package/dist/infra/lib/llm-availability.d.ts.map +1 -1
- package/dist/infra/lib/llm-availability.js +9 -1
- package/dist/infra/lib/llm-availability.js.map +1 -1
- package/dist/infra/lib/memory/index.d.ts +0 -2
- package/dist/infra/lib/memory/index.d.ts.map +1 -1
- package/dist/infra/lib/memory/index.js +0 -2
- package/dist/infra/lib/memory/index.js.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
- package/dist/infra/lib/zai/client.d.ts +30 -0
- package/dist/infra/lib/zai/client.d.ts.map +1 -0
- package/dist/infra/lib/zai/client.js +124 -0
- package/dist/infra/lib/zai/client.js.map +1 -0
- package/dist/infra/lib/zai/index.d.ts +11 -0
- package/dist/infra/lib/zai/index.d.ts.map +1 -0
- package/dist/infra/lib/zai/index.js +10 -0
- package/dist/infra/lib/zai/index.js.map +1 -0
- package/dist/infra/lib/zai/orchestration.d.ts +15 -0
- package/dist/infra/lib/zai/orchestration.d.ts.map +1 -0
- package/dist/infra/lib/zai/orchestration.js +54 -0
- package/dist/infra/lib/zai/orchestration.js.map +1 -0
- package/dist/infra/lib/zai/types.d.ts +40 -0
- package/dist/infra/lib/zai/types.d.ts.map +1 -0
- package/dist/infra/lib/zai/types.js +5 -0
- package/dist/infra/lib/zai/types.js.map +1 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.js +16 -34
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
- package/dist/infra/orchestrator/index.d.ts +1 -0
- package/dist/infra/orchestrator/index.d.ts.map +1 -1
- package/dist/infra/orchestrator/index.js +11 -9
- package/dist/infra/orchestrator/index.js.map +1 -1
- package/dist/infra/orchestrator/types.d.ts +32 -9
- package/dist/infra/orchestrator/types.d.ts.map +1 -1
- package/dist/infra/orchestrator/types.js +68 -37
- package/dist/infra/orchestrator/types.js.map +1 -1
- package/dist/infra/orchestrator/types.test.d.ts +2 -0
- package/dist/infra/orchestrator/types.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/types.test.js +57 -0
- package/dist/infra/orchestrator/types.test.js.map +1 -0
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts +0 -1
- package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +13 -27
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
- package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
- package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
- package/hooks/scripts/__tests__/step-counter.test.js +1 -1
- package/hooks/scripts/code-check.js +16 -203
- package/hooks/scripts/context-save.js +0 -11
- package/hooks/scripts/lib/scope-from-spec.js +9 -6
- package/hooks/scripts/llm-orchestrate.js +49 -0
- package/hooks/scripts/post-edit-dispatcher.js +1 -1
- package/hooks/scripts/prompt-dispatcher.js +7 -18
- package/hooks/scripts/session-start.js +25 -35
- package/package.json +4 -4
- package/skills/agents-md/SKILL.md +62 -15
- package/skills/arch-guard/SKILL.md +1 -1
- package/skills/brand-assets/SKILL.md +2 -2
- package/skills/capability-loop/SKILL.md +1 -1
- package/skills/chub-usage/SKILL.md +1 -1
- package/skills/commerce-patterns/SKILL.md +2 -2
- package/skills/commit-push-pr/SKILL.md +0 -1
- package/skills/context7-usage/SKILL.md +1 -1
- package/skills/create-prd/agents/edge-case-finder.md +4 -4
- package/skills/create-prd/agents/prioritizer.md +4 -4
- package/skills/create-prd/agents/requirements-writer.md +3 -3
- package/skills/create-prd/agents/researcher.md +3 -3
- package/skills/create-prd/agents/reviewer.md +3 -3
- package/skills/create-prd/orchestrator.md +2 -0
- package/skills/design-refine/SKILL.md +140 -0
- package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
- package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
- package/skills/design-review/SKILL.md +143 -0
- package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
- package/skills/{design-audit → design-review}/orchestrator.md +5 -3
- package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
- package/skills/{design-audit → design-review}/templates/report.md +3 -3
- package/skills/design-teach/SKILL.md +11 -11
- package/skills/docs/SKILL.md +14 -16
- package/skills/e2e-commerce/SKILL.md +1 -1
- package/skills/event-comms/SKILL.md +1 -1
- package/skills/event-ops/SKILL.md +2 -2
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +2 -2
- package/skills/exec-plan/orchestrator.md +2 -0
- package/skills/figma/SKILL.md +240 -148
- package/skills/figma/rubrics/css-mapping.md +125 -0
- package/skills/git-worktree/SKILL.md +1 -1
- package/skills/handoff/SKILL.md +1 -1
- package/skills/parallel-research/SKILL.md +14 -28
- package/skills/parallel-research/orchestrator.md +2 -0
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/regress/SKILL.md +11 -0
- package/skills/restraint/SKILL.md +72 -0
- package/skills/seo-checklist/SKILL.md +2 -2
- package/skills/spec/SKILL.md +65 -836
- package/skills/test/SKILL.md +3 -3
- package/skills/tool-fallback/SKILL.md +2 -2
- package/skills/vercel-react-best-practices/SKILL.md +1 -1
- package/skills/vibe/SKILL.md +20 -35
- package/skills/vibe.analyze/SKILL.md +7 -9
- package/skills/vibe.docs/SKILL.md +1 -1
- package/skills/vibe.event/SKILL.md +27 -27
- package/skills/vibe.figma/SKILL.md +14 -18
- package/skills/vibe.harness/SKILL.md +5 -5
- package/skills/vibe.llm/SKILL.md +50 -0
- package/skills/vibe.reason/SKILL.md +0 -2
- package/skills/vibe.review/SKILL.md +45 -49
- package/skills/vibe.run/SKILL.md +2 -5
- package/skills/vibe.run/references/parallel-agents.md +33 -98
- package/skills/vibe.spec/SKILL.md +38 -535
- package/skills/vibe.utils/SKILL.md +3 -3
- package/skills/vibe.verify/SKILL.md +70 -542
- package/skills/video-production/SKILL.md +1 -1
- package/vibe/rules/orchestrator-contract.md +57 -0
- package/vibe/rules/quality/performance.md +1 -1
- package/vibe/templates/claudemd-template.md +1 -1
- package/vibe/templates/spec-template.md +35 -185
- package/agents/architect-low.md +0 -41
- package/agents/architect-medium.md +0 -59
- package/agents/compounder.md +0 -261
- package/agents/docs/api-documenter.md +0 -99
- package/agents/docs/changelog-writer.md +0 -93
- package/agents/event/event-comms.md +0 -78
- package/agents/event/event-content.md +0 -68
- package/agents/event/event-image.md +0 -95
- package/agents/event/event-scheduler.md +0 -69
- package/agents/event/event-speaker.md +0 -86
- package/agents/explorer-low.md +0 -42
- package/agents/explorer-medium.md +0 -59
- package/agents/explorer.md +0 -48
- package/agents/figma/figma-analyst.md +0 -52
- package/agents/figma/figma-architect.md +0 -112
- package/agents/figma/figma-auditor.md +0 -82
- package/agents/figma/figma-builder.md +0 -100
- package/agents/implementer-low.md +0 -43
- package/agents/implementer-medium.md +0 -52
- package/agents/junior-mentor.md +0 -141
- package/agents/planning/requirements-analyst.md +0 -84
- package/agents/planning/ux-advisor.md +0 -83
- package/agents/qa/acceptance-tester.md +0 -86
- package/agents/qa/edge-case-finder.md +0 -93
- package/agents/qa/qa-coordinator.md +0 -131
- package/agents/refactor-cleaner.md +0 -143
- package/agents/research/best-practices.md +0 -199
- package/agents/research/codebase-patterns.md +0 -157
- package/agents/research/framework-docs.md +0 -188
- package/agents/research/security-advisory.md +0 -213
- package/agents/review/architecture-reviewer.md +0 -107
- package/agents/review/complexity-reviewer.md +0 -116
- package/agents/review/data-integrity-reviewer.md +0 -88
- package/agents/review/git-history-reviewer.md +0 -103
- package/agents/review/performance-reviewer.md +0 -86
- package/agents/review/python-reviewer.md +0 -150
- package/agents/review/rails-reviewer.md +0 -139
- package/agents/review/react-reviewer.md +0 -144
- package/agents/review/security-reviewer.md +0 -80
- package/agents/review/simplicity-reviewer.md +0 -140
- package/agents/review/test-coverage-reviewer.md +0 -116
- package/agents/review/typescript-reviewer.md +0 -127
- package/agents/searcher.md +0 -54
- package/agents/simplifier.md +0 -120
- package/agents/teams/debug-team.md +0 -70
- package/agents/teams/dev-team.md +0 -88
- package/agents/teams/docs-team.md +0 -80
- package/agents/teams/figma-team.md +0 -85
- package/agents/teams/fullstack-team.md +0 -83
- package/agents/teams/lite-team.md +0 -69
- package/agents/teams/migration-team.md +0 -78
- package/agents/teams/refactor-team.md +0 -94
- package/agents/teams/research-team.md +0 -86
- package/agents/teams/review-debate-team.md +0 -125
- package/agents/teams/security-team.md +0 -81
- package/agents/ui/ui-a11y-auditor.md +0 -93
- package/agents/ui/ui-antipattern-detector.md +0 -102
- package/agents/ui/ui-dataviz-advisor.md +0 -69
- package/agents/ui/ui-design-system-gen.md +0 -57
- package/agents/ui/ui-industry-analyzer.md +0 -49
- package/agents/ui/ui-layout-architect.md +0 -65
- package/agents/ui/ui-stack-implementer.md +0 -68
- package/agents/ui/ux-compliance-reviewer.md +0 -81
- package/agents/ui-previewer.md +0 -258
- package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
- package/hooks/scripts/keyword-detector.js +0 -226
- package/skills/characterization-test/SKILL.md +0 -209
- package/skills/characterization-test/agents/behavior-capturer.md +0 -50
- package/skills/characterization-test/agents/coverage-checker.md +0 -54
- package/skills/characterization-test/agents/reporter.md +0 -50
- package/skills/characterization-test/agents/test-writer.md +0 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
- package/skills/characterization-test/templates/test-template.ts +0 -101
- package/skills/claude-md-guide/SKILL.md +0 -353
- package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
- package/skills/design-audit/SKILL.md +0 -154
- package/skills/design-critique/SKILL.md +0 -140
- package/skills/design-distill/SKILL.md +0 -131
- package/skills/design-normalize/SKILL.md +0 -135
- package/skills/design-polish/SKILL.md +0 -132
- package/skills/figma-convert/SKILL.md +0 -236
- package/skills/figma-extract/SKILL.md +0 -242
- package/skills/interview/SKILL.md +0 -358
- package/skills/interview/checklists/api.md +0 -101
- package/skills/interview/checklists/feature.md +0 -88
- package/skills/interview/checklists/library.md +0 -95
- package/skills/interview/checklists/mobile.md +0 -89
- package/skills/interview/checklists/webapp.md +0 -97
- package/skills/interview/checklists/website.md +0 -99
- package/skills/plan/SKILL.md +0 -254
- package/skills/rob-pike/SKILL.md +0 -66
- package/skills/spec/references/askuser-examples.md +0 -57
- package/skills/spec/references/example-session.md +0 -87
- package/skills/spec/references/templates.md +0 -194
- package/skills/spec-review/SKILL.md +0 -725
- package/skills/systematic-debugging/SKILL.md +0 -142
- package/skills/techdebt/SKILL.md +0 -126
- package/skills/techdebt/agents/analyzer.md +0 -50
- package/skills/techdebt/agents/fixer.md +0 -41
- package/skills/techdebt/agents/reviewer.md +0 -47
- package/skills/techdebt/agents/scanner.md +0 -44
- package/skills/techdebt/orchestrator.md +0 -70
- package/skills/techdebt/rubrics/severity.md +0 -51
- package/skills/techdebt/scripts/scan.js +0 -90
- package/skills/techdebt/templates/report.md +0 -86
- package/skills/typescript-advanced-types/SKILL.md +0 -68
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
- package/skills/yagni-ladder/SKILL.md +0 -90
- /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
- /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
- /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
- /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
- /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
- /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
- /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
- /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
- /package/skills/{figma-convert → figma}/templates/component.md +0 -0
|
@@ -3,20 +3,29 @@ name: agents-md
|
|
|
3
3
|
user-invocable: false
|
|
4
4
|
invocation: [auto, chain]
|
|
5
5
|
tier: standard
|
|
6
|
-
description: "
|
|
7
|
-
triggers: [agents.md, claude.md, context file, optimize agents, optimize claude]
|
|
6
|
+
description: "Author and optimize AGENTS.md / CLAUDE.md (same doctrine, different filenames): write new context files from scratch, or strip discoverable info and keep only gotchas. Based on Addy Osmani's AGENTS.md principles + Curse of Instructions research. Activates on agents.md, claude.md, context file authoring/optimization."
|
|
7
|
+
triggers: [agents.md, claude.md, context file, optimize agents, optimize claude, write claude.md, create claude.md, project instructions]
|
|
8
8
|
priority: 50
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# agents-md — Context File Optimizer
|
|
11
|
+
# agents-md — Context File Author & Optimizer
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Author and optimize AGENTS.md / CLAUDE.md files. They are the **same doctrine
|
|
14
|
+
under different filenames** — everything below applies to both.
|
|
14
15
|
Reference: https://addyosmani.com/blog/agents-md/
|
|
15
16
|
|
|
16
|
-
## Core
|
|
17
|
+
## Core Principles
|
|
17
18
|
|
|
18
19
|
**One-line test**: "Can the agent discover this by reading the code?" → Yes = delete.
|
|
19
20
|
|
|
21
|
+
**Every line has a cost** (Curse of Instructions): LLM compliance drops
|
|
22
|
+
exponentially with instruction count — roughly 90% at 1 instruction, ~59% at 5,
|
|
23
|
+
~44% at 10, ~15% at 15+. A short, precise file beats a long, comprehensive one.
|
|
24
|
+
|
|
25
|
+
**Lost in the Middle**: LLMs attend to the beginning and end of a document and
|
|
26
|
+
under-weight the middle. Most important rules → top. Frequently violated rules
|
|
27
|
+
→ bottom. Background context → middle (OK if ignored).
|
|
28
|
+
|
|
20
29
|
## Step 1: Find Target Files
|
|
21
30
|
|
|
22
31
|
Search project root for these files:
|
|
@@ -29,7 +38,32 @@ Glob: pattern=".github/copilot-instructions.md"
|
|
|
29
38
|
Glob: pattern=".windsurfrules"
|
|
30
39
|
```
|
|
31
40
|
|
|
32
|
-
If
|
|
41
|
+
If a target exists → optimize it (Steps 2–3). If none exists and the user wants
|
|
42
|
+
one → author it (Step 1b), then run the same optimization pass on the draft.
|
|
43
|
+
|
|
44
|
+
## Step 1b: Authoring From Scratch
|
|
45
|
+
|
|
46
|
+
Explore before writing: `package.json` (stack, scripts), `*.config.*`,
|
|
47
|
+
`tsconfig.json`, `.env.example`, `Makefile`, `docker-compose.*`. Everything
|
|
48
|
+
found this way is **discoverable — leave it out**.
|
|
49
|
+
|
|
50
|
+
Then interview for what exploration cannot reveal (one question at a time,
|
|
51
|
+
multiple-choice when possible):
|
|
52
|
+
|
|
53
|
+
1. **Runtime traps** — differences invisible in code (Bun vs Node, ESM vs CJS)
|
|
54
|
+
2. **Forbidden patterns** — libraries/approaches that burned the team before
|
|
55
|
+
3. **Non-standard conventions** — naming/structure rules that differ from defaults
|
|
56
|
+
4. **Architecture decisions** — business context the code can't explain
|
|
57
|
+
5. **Boundaries** — files never to touch, changes requiring approval first
|
|
58
|
+
|
|
59
|
+
Draft using `templates/claude-md.md`. Keep per-feature detail out — that
|
|
60
|
+
belongs in SPEC files (`.vibe/specs/`), loaded only when relevant, not in the
|
|
61
|
+
always-loaded context file. For large monorepos: one shared root file plus a
|
|
62
|
+
small per-package file, instead of one giant root.
|
|
63
|
+
|
|
64
|
+
Don't aim for perfect on day one: start minimal (30–50 lines), observe where
|
|
65
|
+
the agent actually errs, add one line per *recurring* mistake. If the root
|
|
66
|
+
cause is code structure, fix the code instead of adding a rule.
|
|
33
67
|
|
|
34
68
|
## Step 2: Classify Current Content
|
|
35
69
|
|
|
@@ -48,6 +82,7 @@ Information the agent can find by exploring the code:
|
|
|
48
82
|
| API endpoint lists | "POST /api/users" | Router code |
|
|
49
83
|
| Feature descriptions | "Phase 3 implements circuit breaker" | Readable from the code itself |
|
|
50
84
|
| Architecture diagrams | ASCII box diagrams | Conceptual only, no mistake prevention |
|
|
85
|
+
| Code style rules | Indentation, semicolons | Linter/formatter enforces them |
|
|
51
86
|
|
|
52
87
|
### Keep (Non-discoverable)
|
|
53
88
|
|
|
@@ -67,7 +102,13 @@ Traps and rules the agent cannot know from code alone:
|
|
|
67
102
|
|
|
68
103
|
### Anchoring Warning
|
|
69
104
|
|
|
70
|
-
Mentioning a technology name anchors the agent toward it. "Don't use X" is
|
|
105
|
+
Mentioning a technology name anchors the agent toward it. "Don't use X" is
|
|
106
|
+
useful, but "We use X" is unnecessary if already visible in code.
|
|
107
|
+
|
|
108
|
+
### Emphasis Budget
|
|
109
|
+
|
|
110
|
+
`**IMPORTANT**` / `**MUST**` / `**NEVER**` work only while rare. Reserve them
|
|
111
|
+
for P1 rules; emphasis on every line nullifies all of it.
|
|
71
112
|
|
|
72
113
|
## Step 3: Restructure
|
|
73
114
|
|
|
@@ -92,17 +133,15 @@ Rules:
|
|
|
92
133
|
- Maximum 3 sections (Intro, Gotchas, Naming)
|
|
93
134
|
- Each gotcha has **bold title + specific do/don't**
|
|
94
135
|
- "Don't use X" is more useful than "We use X"
|
|
95
|
-
- Target under 50 lines total
|
|
136
|
+
- Target under 50 lines total; 60–150 acceptable for complex projects; at 300+ the agent ignores half of it
|
|
137
|
+
- Don't inline everything — Claude Code follows `@docs/FILE.md` references and loads them on demand (progressive disclosure)
|
|
96
138
|
|
|
97
139
|
## Step 4: CLAUDE.md Separation (if applicable)
|
|
98
140
|
|
|
99
|
-
If
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Put common rules in AGENTS.md. Claude Code reads both.
|
|
141
|
+
If both files exist, put common rules in AGENTS.md and keep only
|
|
142
|
+
Claude-specific directives (e.g., "Always respond in Korean") in CLAUDE.md.
|
|
143
|
+
Claude Code reads both. If only one file exists, it carries everything —
|
|
144
|
+
same content rules apply.
|
|
106
145
|
|
|
107
146
|
## Step 5: Report Results
|
|
108
147
|
|
|
@@ -121,3 +160,11 @@ Put common rules in AGENTS.md. Claude Code reads both.
|
|
|
121
160
|
### Kept/Added Items
|
|
122
161
|
- {Item}: {Reason for keeping}
|
|
123
162
|
```
|
|
163
|
+
|
|
164
|
+
## Maintenance Signals
|
|
165
|
+
|
|
166
|
+
| Signal | Meaning | Response |
|
|
167
|
+
|--------|---------|----------|
|
|
168
|
+
| Over 300 lines | Information overload | Split or trim |
|
|
169
|
+
| Same mistake repeats | Rule is lost in noise | Emphasize or consolidate |
|
|
170
|
+
| Adding rules has no effect | File is too long | Fix root cause |
|
|
@@ -180,4 +180,4 @@ The test generator reads this file and adds custom rules to the test suite.
|
|
|
180
180
|
- `vibe init` → auto-detect and generate initial arch-guard tests
|
|
181
181
|
- `vibe update` → refresh rules if directory structure changed
|
|
182
182
|
- Pre-commit hook → run arch-guard tests before commit
|
|
183
|
-
- `vibe.review` (skill) →
|
|
183
|
+
- `vibe.review` (skill) → code-reviewer (focus: architecture) checks against arch-rules.json
|
|
@@ -3,8 +3,8 @@ name: brand-assets
|
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: standard
|
|
5
5
|
description: "Auto-generate app icons (iOS/Android/PWA), favicons, and OG images from SPEC brand information using the Antigravity image backend. Use when the project needs visual brand assets, when user mentions 'icon', 'favicon', 'logo', or 'brand assets', or when a SPEC defines brand colors/identity but no assets exist yet. Outputs multiple sizes and formats ready for deployment. Not for complex illustration or marketing graphics — focused on app identity assets."
|
|
6
|
-
triggers: [
|
|
7
|
-
priority:
|
|
6
|
+
triggers: [favicon, logo, app icon, brand assets, branding, og image]
|
|
7
|
+
priority: 60
|
|
8
8
|
---
|
|
9
9
|
# Brand Assets Generation Skill
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@ invocation: [auto]
|
|
|
5
5
|
tier: standard
|
|
6
6
|
description: "When an agent fails, diagnose which capability is missing and build it into the repo. Activates after repeated agent failures, tool errors, or when a task keeps failing in the same way. Analyzes failure transcripts, identifies the missing guardrail/tool/abstraction/doc, and creates it permanently. Use this skill whenever you see 3+ similar failures, an agent hitting the same wall repeatedly, or the user asking 'why does this keep failing'."
|
|
7
7
|
triggers: [capability loop, failure loop, build capability, missing capability, agent failed, why did it fail]
|
|
8
|
-
priority:
|
|
8
|
+
priority: 60
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Capability Loop — Failure → Capability Building
|
|
@@ -4,7 +4,7 @@ invocation: [auto]
|
|
|
4
4
|
tier: optional
|
|
5
5
|
description: "Context Hub (chub) — fetch vetted, up-to-date API documentation. Write accurate code based on the latest docs instead of training data when working with external APIs/SDKs."
|
|
6
6
|
triggers: [chub, context hub, API docs, latest API, deprecated API, SDK documentation, api reference, 최신 문서]
|
|
7
|
-
priority:
|
|
7
|
+
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Context Hub (chub) Usage
|
|
@@ -3,8 +3,8 @@ name: commerce-patterns
|
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: core
|
|
5
5
|
description: "E-commerce domain patterns — cart management, payment processing (Toss/Stripe/PG), inventory tracking, and order state machines with transaction safety. Use when implementing any shopping cart, checkout flow, payment integration, stock management, or order lifecycle. Covers idempotency keys, double-charge prevention, stock reservation, and refund flows. Must use this skill when the codebase involves e-commerce — even for seemingly simple 'add to cart' features."
|
|
6
|
-
triggers: [commerce, ecommerce, cart, payment, checkout, inventory,
|
|
7
|
-
priority:
|
|
6
|
+
triggers: [commerce, ecommerce, cart, payment, checkout, inventory, toss, stripe, order flow]
|
|
7
|
+
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Commerce Patterns
|
|
@@ -3,7 +3,7 @@ name: context7-usage
|
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: optional
|
|
5
5
|
description: "Context7 plugin for latest library documentation. Auto-activates when docs, documentation, latest version, official docs, API reference, or library help is needed."
|
|
6
|
-
triggers: [
|
|
6
|
+
triggers: [latest version, official docs, API reference, library help, context7]
|
|
7
7
|
priority: 60
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: edge-case-finder
|
|
2
|
+
name: prd-edge-case-finder
|
|
3
3
|
role: Identifies edge cases, constraints, and risks for each requirement
|
|
4
4
|
tools: [Read, WebSearch]
|
|
5
5
|
---
|
|
@@ -17,8 +17,8 @@ Stress-tests the requirements by systematically exploring what happens at bounda
|
|
|
17
17
|
- Flag security concerns: injection, over-fetching, authorization bypass
|
|
18
18
|
|
|
19
19
|
## Input
|
|
20
|
-
- User stories and acceptance criteria from requirements-writer
|
|
21
|
-
- Research brief from researcher (constraints section)
|
|
20
|
+
- User stories and acceptance criteria from prd-requirements-writer
|
|
21
|
+
- Research brief from prd-researcher (constraints section)
|
|
22
22
|
|
|
23
23
|
## Output
|
|
24
24
|
Edge cases and risks appended to each user story, plus a global risks section:
|
|
@@ -41,7 +41,7 @@ Edge cases and risks appended to each user story, plus a global risks section:
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Communication
|
|
44
|
-
- Reports findings to: prioritizer, reviewer
|
|
44
|
+
- Reports findings to: prd-prioritizer, prd-reviewer
|
|
45
45
|
- Receives instructions from: orchestrator (create-prd skill)
|
|
46
46
|
|
|
47
47
|
## Domain Knowledge
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: prioritizer
|
|
2
|
+
name: prd-prioritizer
|
|
3
3
|
role: Applies RICE and MoSCoW scoring to rank requirements for implementation
|
|
4
4
|
tools: [Read]
|
|
5
5
|
---
|
|
@@ -17,8 +17,8 @@ Applies structured scoring frameworks to the full requirements list to produce a
|
|
|
17
17
|
- Document prioritization rationale so it can be revisited
|
|
18
18
|
|
|
19
19
|
## Input
|
|
20
|
-
- User stories from requirements-writer
|
|
21
|
-
- Edge cases from edge-case-finder
|
|
20
|
+
- User stories from prd-requirements-writer
|
|
21
|
+
- Edge cases from prd-edge-case-finder
|
|
22
22
|
- Optional: team velocity or sprint capacity
|
|
23
23
|
|
|
24
24
|
## Output
|
|
@@ -53,7 +53,7 @@ US-01 must ship before US-02 (filter requires results to exist)
|
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
## Communication
|
|
56
|
-
- Reports findings to: reviewer
|
|
56
|
+
- Reports findings to: prd-reviewer
|
|
57
57
|
- Receives instructions from: orchestrator (create-prd skill)
|
|
58
58
|
|
|
59
59
|
## Domain Knowledge
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: requirements-writer
|
|
2
|
+
name: prd-requirements-writer
|
|
3
3
|
role: Writes user stories and acceptance criteria from research brief
|
|
4
4
|
tools: [Read, Write]
|
|
5
5
|
---
|
|
@@ -17,7 +17,7 @@ Translates research findings and user goals into structured user stories with cl
|
|
|
17
17
|
- Avoid implementation details — describe behavior, not code
|
|
18
18
|
|
|
19
19
|
## Input
|
|
20
|
-
- Research brief from researcher
|
|
20
|
+
- Research brief from prd-researcher
|
|
21
21
|
- User personas or target segment description
|
|
22
22
|
- Optional: existing SPEC or feature file for context
|
|
23
23
|
|
|
@@ -41,7 +41,7 @@ so that I can find items without browsing all categories.
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Communication
|
|
44
|
-
- Reports findings to: edge-case-finder, prioritizer, reviewer
|
|
44
|
+
- Reports findings to: prd-edge-case-finder, prd-prioritizer, prd-reviewer
|
|
45
45
|
- Receives instructions from: orchestrator (create-prd skill)
|
|
46
46
|
|
|
47
47
|
## Domain Knowledge
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: researcher
|
|
2
|
+
name: prd-researcher
|
|
3
3
|
role: Gathers market context and user needs using web search and codebase analysis
|
|
4
4
|
tools: [WebSearch, Read, Glob, Grep, Bash]
|
|
5
5
|
---
|
|
@@ -14,7 +14,7 @@ Gathers external context — competitor patterns, industry standards, user expec
|
|
|
14
14
|
- Identify common user expectations and mental models for this feature type
|
|
15
15
|
- Review existing codebase for related patterns, conventions, or prior art
|
|
16
16
|
- Surface relevant regulatory, accessibility, or compliance constraints
|
|
17
|
-
- Compile source references so requirements-writer can cite evidence
|
|
17
|
+
- Compile source references so prd-requirements-writer can cite evidence
|
|
18
18
|
|
|
19
19
|
## Input
|
|
20
20
|
- Feature or problem description from the user
|
|
@@ -48,7 +48,7 @@ Research brief:
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Communication
|
|
51
|
-
- Reports findings to: requirements-writer, edge-case-finder
|
|
51
|
+
- Reports findings to: prd-requirements-writer, prd-edge-case-finder
|
|
52
52
|
- Receives instructions from: orchestrator (create-prd skill)
|
|
53
53
|
|
|
54
54
|
## Domain Knowledge
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: reviewer
|
|
2
|
+
name: prd-reviewer
|
|
3
3
|
role: Reviews PRD completeness and testability before sign-off
|
|
4
4
|
tools: [Read]
|
|
5
5
|
---
|
|
@@ -18,8 +18,8 @@ Final quality gate for the PRD. Checks that every requirement is testable, every
|
|
|
18
18
|
|
|
19
19
|
## Input
|
|
20
20
|
- Complete PRD draft assembled from all agents
|
|
21
|
-
- Edge cases from edge-case-finder
|
|
22
|
-
- Prioritized backlog from prioritizer
|
|
21
|
+
- Edge cases from prd-edge-case-finder
|
|
22
|
+
- Prioritized backlog from prd-prioritizer
|
|
23
23
|
|
|
24
24
|
## Output
|
|
25
25
|
PRD review report:
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-refine
|
|
3
|
+
user-invocable: true
|
|
4
|
+
invocation: [command, auto]
|
|
5
|
+
tier: standard
|
|
6
|
+
description: "Design refinement — distill (remove visual complexity), normalize (hardcoded values → design tokens), polish (pre-ship micro-details). Modifying passes. Use when design-refine, design-polish, design-normalize, token-align, simplify-ui, ship-ready."
|
|
7
|
+
triggers: [design-refine, design-polish, design-normalize, token-align, design-distill, simplify-ui, ship-ready]
|
|
8
|
+
priority: 50
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Design Refine — Distill / Normalize / Polish
|
|
12
|
+
|
|
13
|
+
Modifying design-improvement passes. Mode selected by the first argument; default runs the full pipeline in order: **distill → normalize → polish**.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/design-refine <target> # Full pipeline (distill → normalize → polish)
|
|
19
|
+
/design-refine distill <target> # Remove visual complexity only
|
|
20
|
+
/design-refine normalize <target> # Token alignment only
|
|
21
|
+
/design-refine polish <target> # Pre-ship final pass only
|
|
22
|
+
/design-refine . # Refine all changed UI files
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Mode: distill — Remove Visual Complexity
|
|
28
|
+
|
|
29
|
+
Every remaining element must justify its existence: **if it doesn't help the user complete their task, remove it.**
|
|
30
|
+
|
|
31
|
+
### Targets
|
|
32
|
+
|
|
33
|
+
1. **Decorative clutter** — purposeless gradients/patterns/textures, dividers between already-spaced sections, ornamental icons, stacked borders/shadows on nested containers
|
|
34
|
+
2. **Redundant information** — headings repeating page title/parent context, labels duplicating placeholders, "Welcome to {App}" banners, descriptions restating the obvious
|
|
35
|
+
3. **Over-wrapped containers** — cards wrapping a single element, nested cards, cosmetic-only wrapper divs, single-child sections
|
|
36
|
+
4. **Excessive animation** — entry animations on every element, hover effects on non-interactive elements, transitions > 300ms for feedback, parallax on content pages
|
|
37
|
+
5. **Progressive disclosure opportunities** — 10+ visible form fields → steps; flat settings → grouped collapsibles; 8+ nav items → categories; all-metrics dashboards → top 3 + expand
|
|
38
|
+
|
|
39
|
+
### Principles
|
|
40
|
+
|
|
41
|
+
| Principle | Question |
|
|
42
|
+
|-----------|----------|
|
|
43
|
+
| Purpose | Does this help the user complete a task? |
|
|
44
|
+
| Duplication | Is this information already on screen? |
|
|
45
|
+
| Cognitive load | Would removal reduce decision fatigue? |
|
|
46
|
+
| Visual weight | Does this compete with more important content? |
|
|
47
|
+
| Progressive disclosure | Can this be hidden until needed? |
|
|
48
|
+
|
|
49
|
+
Before removing: verify functionality survives, check semantic meaning, confirm signal-to-noise improves. Preserve brand-expressive elements (per `brand.personality`); calibrate aggressiveness by `aesthetic.style` (minimal → aggressive, bold → lenient).
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Mode: normalize — Design Token Alignment
|
|
54
|
+
|
|
55
|
+
Replace hardcoded design values with tokens. Naming conventions: `rubrics/token-naming.md`.
|
|
56
|
+
|
|
57
|
+
### Process
|
|
58
|
+
|
|
59
|
+
1. **Load token source** (priority): `.vibe/design-system/{project}/MASTER.md` → `.vibe/design-context.json` → default detection (with prompt: "Run `/design-teach` or create MASTER.md first")
|
|
60
|
+
2. **Scan for hardcoded values**:
|
|
61
|
+
|
|
62
|
+
| Category | Pattern | Example |
|
|
63
|
+
|----------|---------|---------|
|
|
64
|
+
| Colors | hex, `rgb()`, `hsl()` | `#3B82F6` → `var(--color-primary)` |
|
|
65
|
+
| Typography | `font-size`, `font-weight` | `14px` → `var(--text-sm)` |
|
|
66
|
+
| Spacing | `margin`/`padding`/`gap` px | `16px` → `var(--space-4)` |
|
|
67
|
+
| Shadows | inline `box-shadow` | → `var(--shadow-sm)` |
|
|
68
|
+
| Border radius | `border-radius: 8px` | → `var(--radius-md)` |
|
|
69
|
+
|
|
70
|
+
3. **Map to tokens**: exact match → replace; close match (within 2px / similar hue) → replace + note; no match → flag for manual review (may need new token)
|
|
71
|
+
4. **Apply**, preserving: `/* intentional */` one-offs, animation keyframes, SVG path data, third-party overrides
|
|
72
|
+
|
|
73
|
+
Use `detectedStack.styling` to pick token format (CSS vars, Tailwind, etc.). New-token suggestions go to MASTER.md, then re-run.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Mode: polish — Pre-Ship Final Pass
|
|
78
|
+
|
|
79
|
+
Last-mile pixel-level check with **direct fixes**. Detailed pass/fail criteria: `rubrics/polish-checklist.md`.
|
|
80
|
+
|
|
81
|
+
### Checklist
|
|
82
|
+
|
|
83
|
+
1. **Alignment & spacing** — 4/8px grid, section rhythm, baselines across columns, icons vertically centered with text, symmetric container padding
|
|
84
|
+
2. **Interaction states (complete set)** — Default / Hover / Focus (visible ring) / Active / Disabled (`aria-disabled` + reduced opacity) / Loading / Error / Success
|
|
85
|
+
3. **Typography & copy** — no orphaned words, consistent capitalization, no placeholder text, ellipsis truncation, line length ≤ 75ch
|
|
86
|
+
4. **Visual consistency** — border radius per level, shadow matches elevation, icon sizes (16/20/24), semantic color usage
|
|
87
|
+
5. **Cleanup** — no `console.log`, no commented-out JSX/HTML, no `z-index` > 100 undocumented, no inline styles that should be tokens, no dead CSS
|
|
88
|
+
|
|
89
|
+
### Auto-Fix Rules
|
|
90
|
+
|
|
91
|
+
| Issue | Fix |
|
|
92
|
+
|-------|-----|
|
|
93
|
+
| Missing hover / focus / disabled state | Add using existing tokens (`focus-visible` outline, reduced-opacity disabled) |
|
|
94
|
+
| Inconsistent border radius | Normalize to nearest token |
|
|
95
|
+
| Inline color values | Replace with CSS variable |
|
|
96
|
+
| `console.log` / commented-out code | Remove |
|
|
97
|
+
|
|
98
|
+
Only auto-fix items with clear, safe remediation — ambiguous items are flagged for manual review. Re-verify fixed files pass the checklist.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Preparation (all modes)
|
|
103
|
+
|
|
104
|
+
1. **Read** `.vibe/design-context.json`
|
|
105
|
+
- Missing → display "Run `/design-teach` first for better results" → proceed with defaults
|
|
106
|
+
- Parse error → warn → proceed with defaults → recommend `/design-teach`
|
|
107
|
+
2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) as authoritative token source
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Design Refine: {target} (mode: {distill|normalize|polish|full})
|
|
113
|
+
|
|
114
|
+
### Changed
|
|
115
|
+
- ✂️ {file}:{line} — removed decorative gradient (distill)
|
|
116
|
+
- 🔄 {file}:{line} — #3B82F6 → var(--color-primary), confidence: exact (normalize)
|
|
117
|
+
- ✅ {file}:{line} — added hover state to submit button (polish)
|
|
118
|
+
|
|
119
|
+
### Manual Review Needed
|
|
120
|
+
- ⚠️ {file}:{line} — no matching token / layout choice / missing loading state
|
|
121
|
+
|
|
122
|
+
### Summary
|
|
123
|
+
- Reviewed: {N} · Changed: {N} · New tokens suggested: {N} · Manual review: {N}
|
|
124
|
+
- Ship-ready: {yes/no}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Report templates: `templates/polish-report.md` · `templates/token-audit.md` · `templates/design-system.md`.
|
|
128
|
+
|
|
129
|
+
## Next Steps
|
|
130
|
+
|
|
131
|
+
| If Result Shows | Recommended Next |
|
|
132
|
+
|----------------|-----------------|
|
|
133
|
+
| New tokens suggested | Add to MASTER.md → re-run `/design-refine normalize` |
|
|
134
|
+
| Broad quality concerns | `/design-review` — audit + UX critique |
|
|
135
|
+
| All items pass | Ship ready |
|
|
136
|
+
|
|
137
|
+
## Important
|
|
138
|
+
|
|
139
|
+
- **Modifying**: applies changes directly (conservative — safe items only; removals listed for easy revert).
|
|
140
|
+
- **Pairs with**: `/design-review` first for findings, then `/design-refine` to fix.
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
|
|
61
61
|
| Condition | Recommended Skill |
|
|
62
62
|
|-----------|-------------------|
|
|
63
|
-
| Design system gaps found | `/design-normalize` then re-run `/design-polish` |
|
|
63
|
+
| Design system gaps found | `/design-refine normalize` then re-run `/design-refine polish` |
|
|
64
64
|
| All items pass | Ship ready |
|
|
@@ -84,6 +84,6 @@ These values appear 3+ times with no matching token. Candidates for addition to
|
|
|
84
84
|
|
|
85
85
|
## Next Steps
|
|
86
86
|
|
|
87
|
-
1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-normalize`{{/HAS_SUGGESTED_TOKENS}}
|
|
88
|
-
2. {{#HAS_HARDCODED}}Run `/design-normalize` to apply replacements{{/HAS_HARDCODED}}
|
|
89
|
-
3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-polish`{{/ALL_TOKENIZED}}
|
|
87
|
+
1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-refine normalize`{{/HAS_SUGGESTED_TOKENS}}
|
|
88
|
+
2. {{#HAS_HARDCODED}}Run `/design-refine normalize` to apply replacements{{/HAS_HARDCODED}}
|
|
89
|
+
3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-refine polish`{{/ALL_TOKENIZED}}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-review
|
|
3
|
+
user-invocable: true
|
|
4
|
+
invocation: [command, auto]
|
|
5
|
+
tier: standard
|
|
6
|
+
description: "Design quality review — technical audit (a11y, performance, responsive, theming, AI slop) + UX critique (Nielsen heuristics, persona red flags). Read-only report. Use when design-review, design-audit, ui-audit, a11y-check, ux-review."
|
|
7
|
+
triggers: [design-review, design-audit, ui-audit, a11y-check, design-critique, ux-review]
|
|
8
|
+
priority: 50
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Design Review — Technical Audit + UX Critique
|
|
12
|
+
|
|
13
|
+
Read-only design quality review. Two modes selected by the first argument. No code modifications — report only.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/design-review <target> # Both modes (audit + critique)
|
|
19
|
+
/design-review audit <target> # Technical quality audit only
|
|
20
|
+
/design-review critique <target> # UX critique only
|
|
21
|
+
/design-review . # Review all changed UI files
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Shared Scoring Scale (0–4)
|
|
25
|
+
|
|
26
|
+
| Score | Meaning |
|
|
27
|
+
|-------|---------|
|
|
28
|
+
| 0 | Violated / critical failures |
|
|
29
|
+
| 1 | Major issues — degraded experience |
|
|
30
|
+
| 2 | Moderate — functional but rough |
|
|
31
|
+
| 3 | Good — minor friction/polish only |
|
|
32
|
+
| 4 | Excellent — production ready |
|
|
33
|
+
|
|
34
|
+
Detailed per-level criteria: `rubrics/scoring.md` (audit) · `rubrics/ux-heuristics.md` (critique).
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Mode: audit — 5-Dimension Technical Quality
|
|
39
|
+
|
|
40
|
+
### 1. Accessibility (a11y)
|
|
41
|
+
- Interactive elements keyboard-reachable, visible focus indicator, focus order
|
|
42
|
+
- ARIA roles/labels on custom widgets; inputs linked to `<label>` or `aria-label`
|
|
43
|
+
- Color contrast ≥ 4.5:1 (text), ≥ 3:1 (large text, UI components)
|
|
44
|
+
- Meaningful `alt` text; `aria-live` for dynamic content; skip-to-content link
|
|
45
|
+
|
|
46
|
+
### 2. Performance
|
|
47
|
+
- Images: `loading="lazy"` below fold, `srcset`, WebP/AVIF
|
|
48
|
+
- Fonts: `font-display: swap`, ≤3 font files; no blocking scripts in `<head>`
|
|
49
|
+
- Route-level code-splitting; explicit media `width`/`height` (no layout shift); no duplicate deps
|
|
50
|
+
|
|
51
|
+
### 3. Responsive
|
|
52
|
+
- Mobile-first `min-width` breakpoints (or consistent direction); no horizontal scroll
|
|
53
|
+
- Touch targets ≥ 44×44px; typography scales (clamp or breakpoints)
|
|
54
|
+
- `@container` where component-level responsiveness needed; navigation adapts on mobile
|
|
55
|
+
|
|
56
|
+
### 4. Theming
|
|
57
|
+
- Colors/spacing/radius/shadows via design tokens (CSS custom properties, not hardcoded)
|
|
58
|
+
- Dark mode support or documented opt-out; variants via classes/data attributes, not inline styles
|
|
59
|
+
|
|
60
|
+
### 5. AI Slop Detection (full pattern list: `rubrics/ai-slop-patterns.md`)
|
|
61
|
+
- No cyan-on-dark / neon accents or purple-to-blue gradients without brand justification
|
|
62
|
+
- No hero-metric template, identical icon+title+description card grids, gradient text on stats
|
|
63
|
+
- No default glassmorphism, bounce/elastic easing on functional animations, lazy Inter/Roboto choice
|
|
64
|
+
|
|
65
|
+
### Severity Tagging
|
|
66
|
+
|
|
67
|
+
| Severity | Meaning | Example |
|
|
68
|
+
|----------|---------|---------|
|
|
69
|
+
| P0 | Blocker — breaks functionality | Missing focus trap on modal |
|
|
70
|
+
| P1 | Critical — significant UX impact | No keyboard navigation |
|
|
71
|
+
| P2 | Important — noticeable quality gap | Touch targets too small |
|
|
72
|
+
| P3 | Minor — polish opportunity | Inconsistent border radius |
|
|
73
|
+
|
|
74
|
+
Multi-agent orchestration (parallel dimension auditors): `orchestrator.md` + `agents/`. Frameworks: `frameworks/wcag-checklist.md`, `frameworks/core-web-vitals.md`.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Mode: critique — UX Review
|
|
79
|
+
|
|
80
|
+
### Nielsen's 10 Heuristics (0–4 each; code-level evidence in `rubrics/ux-heuristics.md`)
|
|
81
|
+
|
|
82
|
+
| # | Heuristic | What to Check |
|
|
83
|
+
|---|-----------|---------------|
|
|
84
|
+
| H1 | Visibility of system status | Loading indicators, progress, state feedback |
|
|
85
|
+
| H2 | Match with real world | Natural language, familiar icons, logical groupings |
|
|
86
|
+
| H3 | User control and freedom | Undo/redo, cancel, exit paths |
|
|
87
|
+
| H4 | Consistency and standards | Same action = same pattern, platform conventions |
|
|
88
|
+
| H5 | Error prevention | Confirmations, input constraints, disabled states |
|
|
89
|
+
| H6 | Recognition over recall | Visible options, contextual help, breadcrumbs |
|
|
90
|
+
| H7 | Flexibility and efficiency | Shortcuts, defaults, power-user paths |
|
|
91
|
+
| H8 | Aesthetic and minimalist design | Signal-to-noise, essential info only |
|
|
92
|
+
| H9 | Error recognition and recovery | Clear messages, suggested fixes |
|
|
93
|
+
| H10 | Help and documentation | Tooltips, onboarding, contextual guidance |
|
|
94
|
+
|
|
95
|
+
### 5-Persona Red Flag Analysis
|
|
96
|
+
|
|
97
|
+
| Persona | Red-Flag Questions |
|
|
98
|
+
|---------|-------------------|
|
|
99
|
+
| Power User | Fast task completion? Shortcuts/bulk actions? Adequate density? |
|
|
100
|
+
| First-Time User | Obvious entry point? Primary task without docs? Progressive disclosure? |
|
|
101
|
+
| Accessibility-Dependent | Screen-reader navigation sane? Color not the only channel? Text resizable? |
|
|
102
|
+
| Stressed / Distracted | Easy mistake recovery? Destructive actions guarded? Critical info scannable? |
|
|
103
|
+
| Mobile-Only | Touch targets adequate? One-thumb reach? Minimal typing in forms? |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Platform Adaptation
|
|
108
|
+
|
|
109
|
+
On mobile stacks (React Native, Flutter, iOS, Android): skip web-specific items (CSS variables, `@container`, `srcset`, `font-display`, breadcrumbs/URLs); evaluate against platform HIG / Material Design; adapt responsive checks (safe areas, orientation); focus on hierarchy, cognitive load, a11y, AI slop.
|
|
110
|
+
|
|
111
|
+
## Preparation
|
|
112
|
+
|
|
113
|
+
1. **Read** `.vibe/design-context.json`
|
|
114
|
+
- Missing → display "Run `/design-teach` first for better results" → proceed with defaults
|
|
115
|
+
- Parse error → warn → proceed with defaults → recommend `/design-teach`
|
|
116
|
+
- Present → weight audit findings by `audience.context` / `constraints.accessibility` / `brand.personality`; adjust critique persona priorities by `audience.primary` / `audience.expertise`
|
|
117
|
+
2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) for token reference
|
|
118
|
+
|
|
119
|
+
## Output Format
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
## Design Review: {target} (mode: {audit|critique|both})
|
|
123
|
+
|
|
124
|
+
### Scores — | Dimension / Heuristic | Score | Key Issue | ... | **Overall N/M (NN%)** |
|
|
125
|
+
### Findings — audit: P0→P3 with {file}:{line} · critique: persona red flags 🔴🟡🟢
|
|
126
|
+
### Top Recommendations — priority-ordered actionable items
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Full report templates: `templates/report.md` (audit) · `templates/critique-report.md` (critique).
|
|
130
|
+
|
|
131
|
+
## Next Steps
|
|
132
|
+
|
|
133
|
+
| If Result Shows | Recommended Next |
|
|
134
|
+
|----------------|-----------------|
|
|
135
|
+
| Visual complexity / clutter | `/design-refine distill` |
|
|
136
|
+
| Token / design-system inconsistencies | `/design-refine normalize` |
|
|
137
|
+
| Ship-ready or minor polish only | `/design-refine polish` |
|
|
138
|
+
|
|
139
|
+
## Important
|
|
140
|
+
|
|
141
|
+
- **Read-only**: produces a report. Does NOT modify code.
|
|
142
|
+
- **Context-aware**: weighted by `.vibe/design-context.json` when present.
|
|
143
|
+
- **Incremental**: on `.`, only reviews files in the current diff.
|
|
@@ -37,7 +37,7 @@ Score: {passed}/{total} criteria checked
|
|
|
37
37
|
|
|
38
38
|
## Communication
|
|
39
39
|
- Reports findings to: `design-scorer`
|
|
40
|
-
- Receives instructions from: design-
|
|
40
|
+
- Receives instructions from: design-review orchestrator (SKILL.md)
|
|
41
41
|
|
|
42
42
|
## Domain Knowledge
|
|
43
43
|
WCAG 2.1 AA criteria (critical subset): 1.1.1 Non-text Content, 1.3.1 Info and Relationships, 1.4.3 Contrast (4.5:1 normal text / 3:1 large text), 1.4.11 Non-text Contrast (3:1), 2.1.1 Keyboard, 2.4.3 Focus Order, 2.4.7 Focus Visible, 3.3.2 Labels or Instructions, 4.1.2 Name Role Value. ARIA 1.1 authoring practices for widget patterns.
|
|
@@ -40,7 +40,7 @@ Score: {passed}/{total} checks
|
|
|
40
40
|
|
|
41
41
|
## Communication
|
|
42
42
|
- Reports findings to: `design-scorer`
|
|
43
|
-
- Receives instructions from: design-
|
|
43
|
+
- Receives instructions from: design-review orchestrator (SKILL.md)
|
|
44
44
|
|
|
45
45
|
## Domain Knowledge
|
|
46
46
|
Core Web Vitals targets: LCP < 2.5s (good), FID/INP < 100ms, CLS < 0.1. Image optimization: WebP/AVIF preferred, explicit dimensions prevent CLS, lazy loading below fold. Font loading: `font-display: swap` prevents FOIT, `preload` for critical fonts. Bundle: code splitting, tree shaking, dynamic imports for route-level splitting.
|