@su-record/vibe 2.7.18 → 2.7.20
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 +37 -37
- package/CLAUDE.md +153 -153
- package/LICENSE +21 -21
- package/README.md +451 -449
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/event/event-comms.md +78 -0
- package/agents/event/event-content.md +68 -0
- package/agents/event/event-image.md +95 -0
- package/agents/event/event-ops.md +84 -0
- package/agents/event/event-scheduler.md +69 -0
- package/agents/event/event-speaker.md +86 -0
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -258
- package/commands/vibe.analyze.md +379 -379
- package/commands/vibe.event.md +163 -0
- package/commands/vibe.review.md +607 -607
- package/commands/vibe.run.md +2217 -2124
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +569 -569
- package/commands/vibe.trace.md +50 -0
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +484 -484
- package/dist/__tests__/architecture.test.d.ts +2 -0
- package/dist/__tests__/architecture.test.d.ts.map +1 -0
- package/dist/__tests__/architecture.test.js +207 -0
- package/dist/__tests__/architecture.test.js.map +1 -0
- package/dist/cli/auth.js +3 -3
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +45 -81
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.d.ts.map +1 -1
- package/dist/cli/detect.js +55 -32
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +52 -52
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +24 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/infra/lib/AutomationLevel.d.ts +48 -0
- package/dist/infra/lib/AutomationLevel.d.ts.map +1 -0
- package/dist/infra/lib/AutomationLevel.js +157 -0
- package/dist/infra/lib/AutomationLevel.js.map +1 -0
- package/dist/infra/lib/DecisionTracer.d.ts +81 -0
- package/dist/infra/lib/DecisionTracer.d.ts.map +1 -0
- package/dist/infra/lib/DecisionTracer.js +135 -0
- package/dist/infra/lib/DecisionTracer.js.map +1 -0
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/InteractiveCheckpoint.d.ts +75 -0
- package/dist/infra/lib/InteractiveCheckpoint.d.ts.map +1 -0
- package/dist/infra/lib/InteractiveCheckpoint.js +179 -0
- package/dist/infra/lib/InteractiveCheckpoint.js.map +1 -0
- package/dist/infra/lib/IterationTracker.d.ts +44 -0
- package/dist/infra/lib/IterationTracker.d.ts.map +1 -1
- package/dist/infra/lib/IterationTracker.js +267 -12
- package/dist/infra/lib/IterationTracker.js.map +1 -1
- package/dist/infra/lib/LoopBreaker.d.ts +56 -0
- package/dist/infra/lib/LoopBreaker.d.ts.map +1 -0
- package/dist/infra/lib/LoopBreaker.js +109 -0
- package/dist/infra/lib/LoopBreaker.js.map +1 -0
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/VerificationLoop.d.ts +105 -0
- package/dist/infra/lib/VerificationLoop.d.ts.map +1 -0
- package/dist/infra/lib/VerificationLoop.js +189 -0
- package/dist/infra/lib/VerificationLoop.js.map +1 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.js +297 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.js.map +1 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.js +274 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.js.map +1 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.js +350 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.js.map +1 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.js +340 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.js.map +1 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.js +486 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.js.map +1 -0
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.js +4 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.js.map +1 -1
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DeprecationDetector.d.ts +68 -0
- package/dist/infra/lib/evolution/DeprecationDetector.d.ts.map +1 -0
- package/dist/infra/lib/evolution/DeprecationDetector.js +207 -0
- package/dist/infra/lib/evolution/DeprecationDetector.js.map +1 -0
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/ParityTester.d.ts +74 -0
- package/dist/infra/lib/evolution/ParityTester.d.ts.map +1 -0
- package/dist/infra/lib/evolution/ParityTester.js +238 -0
- package/dist/infra/lib/evolution/ParityTester.js.map +1 -0
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/evolution/__tests__/deprecation.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.js +251 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.js +319 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.js.map +1 -0
- package/dist/infra/lib/evolution/index.d.ts +4 -0
- package/dist/infra/lib/evolution/index.d.ts.map +1 -1
- package/dist/infra/lib/evolution/index.js +3 -0
- package/dist/infra/lib/evolution/index.js.map +1 -1
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/gpt/specializations.d.ts +1 -1
- package/dist/infra/lib/gpt/specializations.js +1 -1
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/lib/telemetry/SkillTelemetry.d.ts +6 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.js +11 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -1
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +1 -1
- package/dist/infra/orchestrator/BackgroundManager.js +2 -0
- package/dist/infra/orchestrator/BackgroundManager.js.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/PhasePipeline.js +1 -1
- package/dist/infra/orchestrator/PhasePipeline.js.map +1 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/index.d.ts +16 -19
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -27
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/memory/startSession.js +1 -1
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/index.d.ts +0 -4
- package/dist/tools/spec/index.d.ts.map +1 -1
- package/dist/tools/spec/index.js +0 -4
- package/dist/tools/spec/index.js.map +1 -1
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +77 -77
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/evolution-engine.js +69 -0
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -475
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/skill-injector.js +83 -0
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +101 -123
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +63 -63
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -13
- package/skills/e2e-commerce/SKILL.md +61 -61
- package/skills/event-comms/SKILL.md +161 -0
- package/skills/event-ops/SKILL.md +197 -0
- package/skills/event-planning/SKILL.md +131 -0
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -12
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -66
- package/skills/ui-ux-pro-max/SKILL.md +221 -221
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: typescript-advanced-types
|
|
3
|
-
description: "TypeScript advanced type system master guide. Covers Generics, Conditional Types, Mapped Types, Template Literals, Utility Types. Activates for complex type logic, reusable type utilities, and compile-time type safety."
|
|
4
|
-
sections:
|
|
5
|
-
- name: "Core Concepts"
|
|
6
|
-
triggers: [generic, generics, constraint, conditional, infer, mapped, utility, Pick, Omit, Partial, Required, Record, Exclude, Extract, readonly]
|
|
7
|
-
- name: "Advanced Patterns"
|
|
8
|
-
triggers: [template literal, branded, opaque, phantom, discriminated union, exhaustive, builder pattern, recursive type, variadic tuple]
|
|
9
|
-
- name: "Type Inference"
|
|
10
|
-
triggers: [inference, infer, type narrowing, type guard, satisfies, const assertion]
|
|
11
|
-
- name: "Best Practices"
|
|
12
|
-
triggers: [best practice, type safety, convention]
|
|
13
|
-
- name: "Type Testing"
|
|
14
|
-
triggers: [type test, type assertion, expectType, tsd]
|
|
15
|
-
- name: "Common Mistakes"
|
|
16
|
-
triggers: [mistake, pitfall, error, wrong]
|
|
17
|
-
- name: "Performance"
|
|
18
|
-
triggers: [performance, compile time, type complexity, depth limit]
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# TypeScript Advanced Types
|
|
22
|
-
|
|
23
|
-
## Pre-check (K1)
|
|
24
|
-
|
|
25
|
-
> Is this a VIBE-specific type safety issue? Standard TypeScript generics/conditionals/mapped types are well-known — read the code instead. This skill exists for VIBE's strict rules and non-obvious gotchas only.
|
|
26
|
-
|
|
27
|
-
## VIBE Forbidden Patterns
|
|
28
|
-
|
|
29
|
-
| Forbidden | Why | Use Instead |
|
|
30
|
-
|-----------|-----|-------------|
|
|
31
|
-
| `any` | Disables all type checking | `unknown` + type guard |
|
|
32
|
-
| `as any` | Bypasses type system | Define proper interface |
|
|
33
|
-
| `@ts-ignore` | Hides real errors | Fix the type issue at root |
|
|
34
|
-
| Raw generic `T` without constraint | Too permissive | `T extends SomeInterface` |
|
|
35
|
-
|
|
36
|
-
## `unknown` + Type Guard (VIBE's `any` Replacement)
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
// Instead of: function process(data: any)
|
|
40
|
-
function process(data: unknown): string {
|
|
41
|
-
if (typeof data === 'string') return data.toUpperCase();
|
|
42
|
-
if (isUser(data)) return data.name;
|
|
43
|
-
throw new Error('Unexpected data type');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function isUser(value: unknown): value is User {
|
|
47
|
-
return typeof value === 'object' && value !== null && 'name' in value;
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Gotchas
|
|
52
|
-
|
|
53
|
-
| Gotcha | Why Non-obvious | Fix |
|
|
54
|
-
|--------|----------------|-----|
|
|
55
|
-
| Distributive conditionals | `ToArray<string \| number>` → `string[] \| number[]`, not `(string \| number)[]` | Wrap in tuple: `[T] extends [U]` |
|
|
56
|
-
| Recursive type depth | TS has ~50 level depth limit | Use tail-recursive patterns or simplify |
|
|
57
|
-
| `satisfies` vs `as const` | `satisfies` validates + keeps literal types; `as` skips validation | Prefer `satisfies` |
|
|
58
|
-
| Type assertions (`as X`) | Skips checking entirely | Use type guards instead |
|
|
59
|
-
| `interface` vs `type` | `interface` gives better error messages for objects | Use `type` for unions/complex, `interface` for shapes |
|
|
60
|
-
|
|
61
|
-
## Done Criteria (K4)
|
|
62
|
-
|
|
63
|
-
- [ ] No `any`, `as any`, or `@ts-ignore` in code
|
|
64
|
-
- [ ] All `unknown` usages have corresponding type guards
|
|
65
|
-
- [ ] Complex types have `AssertEqual` type tests
|
|
66
|
-
- [ ] Recursive types are bounded (no infinite depth)
|
|
1
|
+
---
|
|
2
|
+
name: typescript-advanced-types
|
|
3
|
+
description: "TypeScript advanced type system master guide. Covers Generics, Conditional Types, Mapped Types, Template Literals, Utility Types. Activates for complex type logic, reusable type utilities, and compile-time type safety."
|
|
4
|
+
sections:
|
|
5
|
+
- name: "Core Concepts"
|
|
6
|
+
triggers: [generic, generics, constraint, conditional, infer, mapped, utility, Pick, Omit, Partial, Required, Record, Exclude, Extract, readonly]
|
|
7
|
+
- name: "Advanced Patterns"
|
|
8
|
+
triggers: [template literal, branded, opaque, phantom, discriminated union, exhaustive, builder pattern, recursive type, variadic tuple]
|
|
9
|
+
- name: "Type Inference"
|
|
10
|
+
triggers: [inference, infer, type narrowing, type guard, satisfies, const assertion]
|
|
11
|
+
- name: "Best Practices"
|
|
12
|
+
triggers: [best practice, type safety, convention]
|
|
13
|
+
- name: "Type Testing"
|
|
14
|
+
triggers: [type test, type assertion, expectType, tsd]
|
|
15
|
+
- name: "Common Mistakes"
|
|
16
|
+
triggers: [mistake, pitfall, error, wrong]
|
|
17
|
+
- name: "Performance"
|
|
18
|
+
triggers: [performance, compile time, type complexity, depth limit]
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# TypeScript Advanced Types
|
|
22
|
+
|
|
23
|
+
## Pre-check (K1)
|
|
24
|
+
|
|
25
|
+
> Is this a VIBE-specific type safety issue? Standard TypeScript generics/conditionals/mapped types are well-known — read the code instead. This skill exists for VIBE's strict rules and non-obvious gotchas only.
|
|
26
|
+
|
|
27
|
+
## VIBE Forbidden Patterns
|
|
28
|
+
|
|
29
|
+
| Forbidden | Why | Use Instead |
|
|
30
|
+
|-----------|-----|-------------|
|
|
31
|
+
| `any` | Disables all type checking | `unknown` + type guard |
|
|
32
|
+
| `as any` | Bypasses type system | Define proper interface |
|
|
33
|
+
| `@ts-ignore` | Hides real errors | Fix the type issue at root |
|
|
34
|
+
| Raw generic `T` without constraint | Too permissive | `T extends SomeInterface` |
|
|
35
|
+
|
|
36
|
+
## `unknown` + Type Guard (VIBE's `any` Replacement)
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// Instead of: function process(data: any)
|
|
40
|
+
function process(data: unknown): string {
|
|
41
|
+
if (typeof data === 'string') return data.toUpperCase();
|
|
42
|
+
if (isUser(data)) return data.name;
|
|
43
|
+
throw new Error('Unexpected data type');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function isUser(value: unknown): value is User {
|
|
47
|
+
return typeof value === 'object' && value !== null && 'name' in value;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Gotchas
|
|
52
|
+
|
|
53
|
+
| Gotcha | Why Non-obvious | Fix |
|
|
54
|
+
|--------|----------------|-----|
|
|
55
|
+
| Distributive conditionals | `ToArray<string \| number>` → `string[] \| number[]`, not `(string \| number)[]` | Wrap in tuple: `[T] extends [U]` |
|
|
56
|
+
| Recursive type depth | TS has ~50 level depth limit | Use tail-recursive patterns or simplify |
|
|
57
|
+
| `satisfies` vs `as const` | `satisfies` validates + keeps literal types; `as` skips validation | Prefer `satisfies` |
|
|
58
|
+
| Type assertions (`as X`) | Skips checking entirely | Use type guards instead |
|
|
59
|
+
| `interface` vs `type` | `interface` gives better error messages for objects | Use `type` for unions/complex, `interface` for shapes |
|
|
60
|
+
|
|
61
|
+
## Done Criteria (K4)
|
|
62
|
+
|
|
63
|
+
- [ ] No `any`, `as any`, or `@ts-ignore` in code
|
|
64
|
+
- [ ] All `unknown` usages have corresponding type guards
|
|
65
|
+
- [ ] Complex types have `AssertEqual` type tests
|
|
66
|
+
- [ ] Recursive types are bounded (no infinite depth)
|
|
@@ -1,221 +1,221 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ui-ux-pro-max
|
|
3
|
-
description: "UI/UX design intelligence with bold aesthetic direction. 50+ styles, 97 palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# UI/UX Pro Max - Design Intelligence
|
|
7
|
-
|
|
8
|
-
Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks.
|
|
9
|
-
|
|
10
|
-
## Pre-check (K1)
|
|
11
|
-
|
|
12
|
-
> Does this project need custom UI/UX design? If using a pre-built template or admin framework (e.g., Retool, Vercel templates), skip this skill.
|
|
13
|
-
|
|
14
|
-
## Rule Categories by Priority
|
|
15
|
-
|
|
16
|
-
| Priority | Category | Impact | Domain |
|
|
17
|
-
|----------|----------|--------|--------|
|
|
18
|
-
| 1 | Accessibility | CRITICAL | `ux` |
|
|
19
|
-
| 2 | Touch & Interaction | CRITICAL | `ux` |
|
|
20
|
-
| 3 | Performance | HIGH | `ux` |
|
|
21
|
-
| 4 | Layout & Responsive | HIGH | `ux` |
|
|
22
|
-
| 5 | Typography & Color | MEDIUM | `typography`, `color` |
|
|
23
|
-
| 6 | Animation | MEDIUM | `ux` |
|
|
24
|
-
| 7 | Style Selection | MEDIUM | `style`, `product` |
|
|
25
|
-
| 8 | Charts & Data | LOW | `chart` |
|
|
26
|
-
|
|
27
|
-
## Quick Reference
|
|
28
|
-
|
|
29
|
-
### 1. Accessibility (CRITICAL)
|
|
30
|
-
|
|
31
|
-
- `color-contrast` - Minimum 4.5:1 ratio for normal text
|
|
32
|
-
- `focus-states` - Visible focus rings on interactive elements
|
|
33
|
-
- `alt-text` - Descriptive alt text for meaningful images
|
|
34
|
-
- `aria-labels` - aria-label for icon-only buttons
|
|
35
|
-
- `keyboard-nav` - Tab order matches visual order
|
|
36
|
-
- `form-labels` - Use label with for attribute
|
|
37
|
-
|
|
38
|
-
### 2. Touch & Interaction (CRITICAL)
|
|
39
|
-
|
|
40
|
-
- `touch-target-size` - Minimum 44x44px touch targets
|
|
41
|
-
- `hover-vs-tap` - Use click/tap for primary interactions
|
|
42
|
-
- `loading-buttons` - Disable button during async operations
|
|
43
|
-
- `error-feedback` - Clear error messages near problem
|
|
44
|
-
- `cursor-pointer` - Add cursor-pointer to clickable elements
|
|
45
|
-
|
|
46
|
-
### 3. Performance (HIGH)
|
|
47
|
-
|
|
48
|
-
- `image-optimization` - Use WebP, srcset, lazy loading
|
|
49
|
-
- `reduced-motion` - Check prefers-reduced-motion
|
|
50
|
-
- `content-jumping` - Reserve space for async content
|
|
51
|
-
|
|
52
|
-
### 4. Layout & Responsive (HIGH)
|
|
53
|
-
|
|
54
|
-
- `viewport-meta` - width=device-width initial-scale=1
|
|
55
|
-
- `readable-font-size` - Minimum 16px body text on mobile
|
|
56
|
-
- `horizontal-scroll` - Ensure content fits viewport width
|
|
57
|
-
- `z-index-management` - Define z-index scale (10, 20, 30, 50)
|
|
58
|
-
|
|
59
|
-
### 5. Typography & Color (MEDIUM)
|
|
60
|
-
|
|
61
|
-
- `line-height` - Use 1.5-1.75 for body text
|
|
62
|
-
- `line-length` - Limit to 65-75 characters per line
|
|
63
|
-
- `font-pairing` - Match heading/body font personalities
|
|
64
|
-
|
|
65
|
-
### 6. Animation (MEDIUM)
|
|
66
|
-
|
|
67
|
-
- `duration-timing` - Use 150-300ms for micro-interactions
|
|
68
|
-
- `transform-performance` - Use transform/opacity, not width/height
|
|
69
|
-
- `loading-states` - Skeleton screens or spinners
|
|
70
|
-
|
|
71
|
-
### 7. Style Selection (MEDIUM)
|
|
72
|
-
|
|
73
|
-
- `style-match` - Match style to product type
|
|
74
|
-
- `consistency` - Use same style across all pages
|
|
75
|
-
- `no-emoji-icons` - Use SVG icons, not emojis
|
|
76
|
-
|
|
77
|
-
### 8. Charts & Data (LOW)
|
|
78
|
-
|
|
79
|
-
- `chart-type` - Match chart type to data type
|
|
80
|
-
- `color-guidance` - Use accessible color palettes
|
|
81
|
-
- `data-table` - Provide table alternative for accessibility
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## How to Use
|
|
86
|
-
|
|
87
|
-
### Step 1: Analyze Requirements
|
|
88
|
-
|
|
89
|
-
Extract from user request: **product type**, **style keywords**, **industry**, **stack** (default: html-tailwind).
|
|
90
|
-
|
|
91
|
-
### Step 2: Generate Design System (REQUIRED)
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
This searches 5 domains in parallel (product, style, color, landing, typography), applies reasoning rules, and returns complete design system.
|
|
98
|
-
|
|
99
|
-
**Persist for cross-session use:**
|
|
100
|
-
```bash
|
|
101
|
-
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Creates `design-system/MASTER.md` (global) + optional `design-system/pages/<page>.md` (overrides).
|
|
105
|
-
|
|
106
|
-
**With page-specific override:**
|
|
107
|
-
```bash
|
|
108
|
-
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Name" --page "dashboard"
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Hierarchical retrieval**: Page file overrides Master. No page file → Master exclusively.
|
|
112
|
-
|
|
113
|
-
### Step 3: Detailed Searches (as needed)
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Domains: `product`, `style`, `typography`, `color`, `landing`, `chart`, `ux`, `react`, `web`, `prompt`
|
|
120
|
-
|
|
121
|
-
### Step 4: Stack Guidelines (default: html-tailwind)
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Common Rules for Professional UI
|
|
132
|
-
|
|
133
|
-
### Icons & Visual Elements
|
|
134
|
-
|
|
135
|
-
| Rule | Do | Don't |
|
|
136
|
-
|------|----|----- |
|
|
137
|
-
| **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis as UI icons |
|
|
138
|
-
| **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
|
|
139
|
-
| **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
|
|
140
|
-
| **Consistent icon sizing** | Fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes |
|
|
141
|
-
|
|
142
|
-
### Interaction & Cursor
|
|
143
|
-
|
|
144
|
-
| Rule | Do | Don't |
|
|
145
|
-
|------|----|----- |
|
|
146
|
-
| **Cursor pointer** | `cursor-pointer` on all clickable elements | Default cursor on interactive elements |
|
|
147
|
-
| **Hover feedback** | Visual feedback (color, shadow, border) | No indication element is interactive |
|
|
148
|
-
| **Smooth transitions** | `transition-colors duration-200` | Instant changes or >500ms |
|
|
149
|
-
|
|
150
|
-
### Light/Dark Mode Contrast
|
|
151
|
-
|
|
152
|
-
| Rule | Do | Don't |
|
|
153
|
-
|------|----|----- |
|
|
154
|
-
| **Glass card light mode** | `bg-white/80` or higher opacity | `bg-white/10` (too transparent) |
|
|
155
|
-
| **Text contrast light** | `#0F172A` (slate-900) for text | `#94A3B8` (slate-400) for body |
|
|
156
|
-
| **Muted text light** | `#475569` (slate-600) minimum | gray-400 or lighter |
|
|
157
|
-
| **Border visibility** | `border-gray-200` in light mode | `border-white/10` (invisible) |
|
|
158
|
-
|
|
159
|
-
### Layout & Spacing
|
|
160
|
-
|
|
161
|
-
| Rule | Do | Don't |
|
|
162
|
-
|------|----|----- |
|
|
163
|
-
| **Floating navbar** | `top-4 left-4 right-4` spacing | Stick to `top-0 left-0 right-0` |
|
|
164
|
-
| **Content padding** | Account for fixed navbar height | Content hidden behind fixed elements |
|
|
165
|
-
| **Consistent max-width** | Same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Pre-Delivery Checklist
|
|
170
|
-
|
|
171
|
-
### Visual Quality
|
|
172
|
-
- [ ] No emojis used as icons (SVG instead)
|
|
173
|
-
- [ ] All icons from consistent set (Heroicons/Lucide)
|
|
174
|
-
- [ ] Brand logos verified (Simple Icons)
|
|
175
|
-
- [ ] Hover states don't cause layout shift
|
|
176
|
-
|
|
177
|
-
### Interaction
|
|
178
|
-
- [ ] All clickable elements have `cursor-pointer`
|
|
179
|
-
- [ ] Hover states provide clear visual feedback
|
|
180
|
-
- [ ] Transitions are smooth (150-300ms)
|
|
181
|
-
- [ ] Focus states visible for keyboard navigation
|
|
182
|
-
|
|
183
|
-
### Light/Dark Mode
|
|
184
|
-
- [ ] Light mode text has sufficient contrast (4.5:1)
|
|
185
|
-
- [ ] Glass/transparent elements visible in light mode
|
|
186
|
-
- [ ] Borders visible in both modes
|
|
187
|
-
- [ ] Both modes tested before delivery
|
|
188
|
-
|
|
189
|
-
### Layout
|
|
190
|
-
- [ ] Floating elements have proper edge spacing
|
|
191
|
-
- [ ] No content hidden behind fixed navbars
|
|
192
|
-
- [ ] Responsive at 375px, 768px, 1024px, 1440px
|
|
193
|
-
- [ ] No horizontal scroll on mobile
|
|
194
|
-
|
|
195
|
-
### Accessibility
|
|
196
|
-
- [ ] All images have alt text
|
|
197
|
-
- [ ] Form inputs have labels
|
|
198
|
-
- [ ] Color is not the only indicator
|
|
199
|
-
- [ ] `prefers-reduced-motion` respected
|
|
200
|
-
|
|
201
|
-
## Design Direction Anti-Patterns
|
|
202
|
-
|
|
203
|
-
Avoid these signs of generic, AI-generated UI:
|
|
204
|
-
|
|
205
|
-
| Anti-Pattern | Fix |
|
|
206
|
-
|---|---|
|
|
207
|
-
| Default Bootstrap/Tailwind without customization | Define design tokens first (colors, typography, spacing, motion) |
|
|
208
|
-
| Overused fonts (Inter, Roboto) without styling | Choose distinctive typefaces that set the tone |
|
|
209
|
-
| Predictable card-based layouts everywhere | Use asymmetry and unconventional layouts when appropriate |
|
|
210
|
-
| Stock photography without curation | Custom icons and illustrations |
|
|
211
|
-
| Safe, corporate color palettes | Develop unique color palettes beyond defaults |
|
|
212
|
-
| No micro-interactions | Add meaningful motion to guide user attention (150-300ms) |
|
|
213
|
-
|
|
214
|
-
## Done Criteria (K4)
|
|
215
|
-
|
|
216
|
-
- [ ] Design system generated before implementation
|
|
217
|
-
- [ ] All pre-delivery checklist items verified
|
|
218
|
-
- [ ] Both light and dark modes tested
|
|
219
|
-
- [ ] Responsive at all breakpoints
|
|
220
|
-
- [ ] No default/uncustomized framework styles remain
|
|
221
|
-
- [ ] All interactive states designed (hover, focus, active, disabled)
|
|
1
|
+
---
|
|
2
|
+
name: ui-ux-pro-max
|
|
3
|
+
description: "UI/UX design intelligence with bold aesthetic direction. 50+ styles, 97 palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UI/UX Pro Max - Design Intelligence
|
|
7
|
+
|
|
8
|
+
Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks.
|
|
9
|
+
|
|
10
|
+
## Pre-check (K1)
|
|
11
|
+
|
|
12
|
+
> Does this project need custom UI/UX design? If using a pre-built template or admin framework (e.g., Retool, Vercel templates), skip this skill.
|
|
13
|
+
|
|
14
|
+
## Rule Categories by Priority
|
|
15
|
+
|
|
16
|
+
| Priority | Category | Impact | Domain |
|
|
17
|
+
|----------|----------|--------|--------|
|
|
18
|
+
| 1 | Accessibility | CRITICAL | `ux` |
|
|
19
|
+
| 2 | Touch & Interaction | CRITICAL | `ux` |
|
|
20
|
+
| 3 | Performance | HIGH | `ux` |
|
|
21
|
+
| 4 | Layout & Responsive | HIGH | `ux` |
|
|
22
|
+
| 5 | Typography & Color | MEDIUM | `typography`, `color` |
|
|
23
|
+
| 6 | Animation | MEDIUM | `ux` |
|
|
24
|
+
| 7 | Style Selection | MEDIUM | `style`, `product` |
|
|
25
|
+
| 8 | Charts & Data | LOW | `chart` |
|
|
26
|
+
|
|
27
|
+
## Quick Reference
|
|
28
|
+
|
|
29
|
+
### 1. Accessibility (CRITICAL)
|
|
30
|
+
|
|
31
|
+
- `color-contrast` - Minimum 4.5:1 ratio for normal text
|
|
32
|
+
- `focus-states` - Visible focus rings on interactive elements
|
|
33
|
+
- `alt-text` - Descriptive alt text for meaningful images
|
|
34
|
+
- `aria-labels` - aria-label for icon-only buttons
|
|
35
|
+
- `keyboard-nav` - Tab order matches visual order
|
|
36
|
+
- `form-labels` - Use label with for attribute
|
|
37
|
+
|
|
38
|
+
### 2. Touch & Interaction (CRITICAL)
|
|
39
|
+
|
|
40
|
+
- `touch-target-size` - Minimum 44x44px touch targets
|
|
41
|
+
- `hover-vs-tap` - Use click/tap for primary interactions
|
|
42
|
+
- `loading-buttons` - Disable button during async operations
|
|
43
|
+
- `error-feedback` - Clear error messages near problem
|
|
44
|
+
- `cursor-pointer` - Add cursor-pointer to clickable elements
|
|
45
|
+
|
|
46
|
+
### 3. Performance (HIGH)
|
|
47
|
+
|
|
48
|
+
- `image-optimization` - Use WebP, srcset, lazy loading
|
|
49
|
+
- `reduced-motion` - Check prefers-reduced-motion
|
|
50
|
+
- `content-jumping` - Reserve space for async content
|
|
51
|
+
|
|
52
|
+
### 4. Layout & Responsive (HIGH)
|
|
53
|
+
|
|
54
|
+
- `viewport-meta` - width=device-width initial-scale=1
|
|
55
|
+
- `readable-font-size` - Minimum 16px body text on mobile
|
|
56
|
+
- `horizontal-scroll` - Ensure content fits viewport width
|
|
57
|
+
- `z-index-management` - Define z-index scale (10, 20, 30, 50)
|
|
58
|
+
|
|
59
|
+
### 5. Typography & Color (MEDIUM)
|
|
60
|
+
|
|
61
|
+
- `line-height` - Use 1.5-1.75 for body text
|
|
62
|
+
- `line-length` - Limit to 65-75 characters per line
|
|
63
|
+
- `font-pairing` - Match heading/body font personalities
|
|
64
|
+
|
|
65
|
+
### 6. Animation (MEDIUM)
|
|
66
|
+
|
|
67
|
+
- `duration-timing` - Use 150-300ms for micro-interactions
|
|
68
|
+
- `transform-performance` - Use transform/opacity, not width/height
|
|
69
|
+
- `loading-states` - Skeleton screens or spinners
|
|
70
|
+
|
|
71
|
+
### 7. Style Selection (MEDIUM)
|
|
72
|
+
|
|
73
|
+
- `style-match` - Match style to product type
|
|
74
|
+
- `consistency` - Use same style across all pages
|
|
75
|
+
- `no-emoji-icons` - Use SVG icons, not emojis
|
|
76
|
+
|
|
77
|
+
### 8. Charts & Data (LOW)
|
|
78
|
+
|
|
79
|
+
- `chart-type` - Match chart type to data type
|
|
80
|
+
- `color-guidance` - Use accessible color palettes
|
|
81
|
+
- `data-table` - Provide table alternative for accessibility
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## How to Use
|
|
86
|
+
|
|
87
|
+
### Step 1: Analyze Requirements
|
|
88
|
+
|
|
89
|
+
Extract from user request: **product type**, **style keywords**, **industry**, **stack** (default: html-tailwind).
|
|
90
|
+
|
|
91
|
+
### Step 2: Generate Design System (REQUIRED)
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
python3 skills/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This searches 5 domains in parallel (product, style, color, landing, typography), applies reasoning rules, and returns complete design system.
|
|
98
|
+
|
|
99
|
+
**Persist for cross-session use:**
|
|
100
|
+
```bash
|
|
101
|
+
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Creates `design-system/MASTER.md` (global) + optional `design-system/pages/<page>.md` (overrides).
|
|
105
|
+
|
|
106
|
+
**With page-specific override:**
|
|
107
|
+
```bash
|
|
108
|
+
python3 skills/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Name" --page "dashboard"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Hierarchical retrieval**: Page file overrides Master. No page file → Master exclusively.
|
|
112
|
+
|
|
113
|
+
### Step 3: Detailed Searches (as needed)
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Domains: `product`, `style`, `typography`, `color`, `landing`, `chart`, `ux`, `react`, `web`, `prompt`
|
|
120
|
+
|
|
121
|
+
### Step 4: Stack Guidelines (default: html-tailwind)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Common Rules for Professional UI
|
|
132
|
+
|
|
133
|
+
### Icons & Visual Elements
|
|
134
|
+
|
|
135
|
+
| Rule | Do | Don't |
|
|
136
|
+
|------|----|----- |
|
|
137
|
+
| **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis as UI icons |
|
|
138
|
+
| **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
|
|
139
|
+
| **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
|
|
140
|
+
| **Consistent icon sizing** | Fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes |
|
|
141
|
+
|
|
142
|
+
### Interaction & Cursor
|
|
143
|
+
|
|
144
|
+
| Rule | Do | Don't |
|
|
145
|
+
|------|----|----- |
|
|
146
|
+
| **Cursor pointer** | `cursor-pointer` on all clickable elements | Default cursor on interactive elements |
|
|
147
|
+
| **Hover feedback** | Visual feedback (color, shadow, border) | No indication element is interactive |
|
|
148
|
+
| **Smooth transitions** | `transition-colors duration-200` | Instant changes or >500ms |
|
|
149
|
+
|
|
150
|
+
### Light/Dark Mode Contrast
|
|
151
|
+
|
|
152
|
+
| Rule | Do | Don't |
|
|
153
|
+
|------|----|----- |
|
|
154
|
+
| **Glass card light mode** | `bg-white/80` or higher opacity | `bg-white/10` (too transparent) |
|
|
155
|
+
| **Text contrast light** | `#0F172A` (slate-900) for text | `#94A3B8` (slate-400) for body |
|
|
156
|
+
| **Muted text light** | `#475569` (slate-600) minimum | gray-400 or lighter |
|
|
157
|
+
| **Border visibility** | `border-gray-200` in light mode | `border-white/10` (invisible) |
|
|
158
|
+
|
|
159
|
+
### Layout & Spacing
|
|
160
|
+
|
|
161
|
+
| Rule | Do | Don't |
|
|
162
|
+
|------|----|----- |
|
|
163
|
+
| **Floating navbar** | `top-4 left-4 right-4` spacing | Stick to `top-0 left-0 right-0` |
|
|
164
|
+
| **Content padding** | Account for fixed navbar height | Content hidden behind fixed elements |
|
|
165
|
+
| **Consistent max-width** | Same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Pre-Delivery Checklist
|
|
170
|
+
|
|
171
|
+
### Visual Quality
|
|
172
|
+
- [ ] No emojis used as icons (SVG instead)
|
|
173
|
+
- [ ] All icons from consistent set (Heroicons/Lucide)
|
|
174
|
+
- [ ] Brand logos verified (Simple Icons)
|
|
175
|
+
- [ ] Hover states don't cause layout shift
|
|
176
|
+
|
|
177
|
+
### Interaction
|
|
178
|
+
- [ ] All clickable elements have `cursor-pointer`
|
|
179
|
+
- [ ] Hover states provide clear visual feedback
|
|
180
|
+
- [ ] Transitions are smooth (150-300ms)
|
|
181
|
+
- [ ] Focus states visible for keyboard navigation
|
|
182
|
+
|
|
183
|
+
### Light/Dark Mode
|
|
184
|
+
- [ ] Light mode text has sufficient contrast (4.5:1)
|
|
185
|
+
- [ ] Glass/transparent elements visible in light mode
|
|
186
|
+
- [ ] Borders visible in both modes
|
|
187
|
+
- [ ] Both modes tested before delivery
|
|
188
|
+
|
|
189
|
+
### Layout
|
|
190
|
+
- [ ] Floating elements have proper edge spacing
|
|
191
|
+
- [ ] No content hidden behind fixed navbars
|
|
192
|
+
- [ ] Responsive at 375px, 768px, 1024px, 1440px
|
|
193
|
+
- [ ] No horizontal scroll on mobile
|
|
194
|
+
|
|
195
|
+
### Accessibility
|
|
196
|
+
- [ ] All images have alt text
|
|
197
|
+
- [ ] Form inputs have labels
|
|
198
|
+
- [ ] Color is not the only indicator
|
|
199
|
+
- [ ] `prefers-reduced-motion` respected
|
|
200
|
+
|
|
201
|
+
## Design Direction Anti-Patterns
|
|
202
|
+
|
|
203
|
+
Avoid these signs of generic, AI-generated UI:
|
|
204
|
+
|
|
205
|
+
| Anti-Pattern | Fix |
|
|
206
|
+
|---|---|
|
|
207
|
+
| Default Bootstrap/Tailwind without customization | Define design tokens first (colors, typography, spacing, motion) |
|
|
208
|
+
| Overused fonts (Inter, Roboto) without styling | Choose distinctive typefaces that set the tone |
|
|
209
|
+
| Predictable card-based layouts everywhere | Use asymmetry and unconventional layouts when appropriate |
|
|
210
|
+
| Stock photography without curation | Custom icons and illustrations |
|
|
211
|
+
| Safe, corporate color palettes | Develop unique color palettes beyond defaults |
|
|
212
|
+
| No micro-interactions | Add meaningful motion to guide user attention (150-300ms) |
|
|
213
|
+
|
|
214
|
+
## Done Criteria (K4)
|
|
215
|
+
|
|
216
|
+
- [ ] Design system generated before implementation
|
|
217
|
+
- [ ] All pre-delivery checklist items verified
|
|
218
|
+
- [ ] Both light and dark modes tested
|
|
219
|
+
- [ ] Responsive at all breakpoints
|
|
220
|
+
- [ ] No default/uncustomized framework styles remain
|
|
221
|
+
- [ ] All interactive states designed (hover, focus, active, disabled)
|