contextos-agents 1.5.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/.agents/AGENTS.md +421 -0
- package/.agents/adapters/aider/export.js +137 -0
- package/.agents/adapters/claude/export.js +55 -0
- package/.agents/adapters/copilot/export.js +107 -0
- package/.agents/adapters/cursor/export.js +210 -0
- package/.agents/adapters/gemini/export.js +115 -0
- package/.agents/adapters/shared.js +119 -0
- package/.agents/adapters/zed/export.js +111 -0
- package/.agents/core/profiles/backend.yaml +47 -0
- package/.agents/core/profiles/enterprise.yaml +46 -0
- package/.agents/core/profiles/frontend.yaml +46 -0
- package/.agents/core/profiles/hackathon.yaml +45 -0
- package/.agents/core/profiles/mvp.yaml +43 -0
- package/.agents/core/profiles/startup.yaml +48 -0
- package/.agents/core/skills/adapters/EXAMPLES.md +19 -0
- package/.agents/core/skills/adapters/SKILL.md +105 -0
- package/.agents/core/skills/adapters/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/adapters/VALIDATION.json +12 -0
- package/.agents/core/skills/adapters/skill.yaml +10 -0
- package/.agents/core/skills/architecture-diagrams/SKILL.md +108 -0
- package/.agents/core/skills/architecture-diagrams/VALIDATION.json +12 -0
- package/.agents/core/skills/architecture-diagrams/skill.yaml +8 -0
- package/.agents/core/skills/brutalist-design/SKILL.md +150 -0
- package/.agents/core/skills/brutalist-design/VALIDATION.json +12 -0
- package/.agents/core/skills/brutalist-design/skill.yaml +8 -0
- package/.agents/core/skills/context-manager/EXAMPLES.md +19 -0
- package/.agents/core/skills/context-manager/SKILL.md +126 -0
- package/.agents/core/skills/context-manager/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/context-manager/VALIDATION.json +12 -0
- package/.agents/core/skills/context-manager/skill.yaml +10 -0
- package/.agents/core/skills/context-os/EXAMPLES.md +21 -0
- package/.agents/core/skills/context-os/SKILL.md +169 -0
- package/.agents/core/skills/context-os/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/context-os/VALIDATION.json +12 -0
- package/.agents/core/skills/context-os/packs.yaml +59 -0
- package/.agents/core/skills/context-os/references/context-rules.md +68 -0
- package/.agents/core/skills/context-os/references/pipeline.md +119 -0
- package/.agents/core/skills/context-os/references/project-graph.md +103 -0
- package/.agents/core/skills/context-os/rules.yaml +135 -0
- package/.agents/core/skills/context-os/skill.yaml +10 -0
- package/.agents/core/skills/database/EXAMPLES.md +74 -0
- package/.agents/core/skills/database/SKILL.md +101 -0
- package/.agents/core/skills/database/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/database/VALIDATION.json +11 -0
- package/.agents/core/skills/database/skill.yaml +25 -0
- package/.agents/core/skills/ddd/EXAMPLES.md +42 -0
- package/.agents/core/skills/ddd/SKILL.md +247 -0
- package/.agents/core/skills/ddd/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ddd/VALIDATION.json +12 -0
- package/.agents/core/skills/ddd/ddd.md +178 -0
- package/.agents/core/skills/ddd/skill.yaml +10 -0
- package/.agents/core/skills/decisions/EXAMPLES.md +35 -0
- package/.agents/core/skills/decisions/SKILL.md +90 -0
- package/.agents/core/skills/decisions/TROUBLESHOOTING.md +13 -0
- package/.agents/core/skills/decisions/VALIDATION.json +12 -0
- package/.agents/core/skills/decisions/skill.yaml +10 -0
- package/.agents/core/skills/docker/EXAMPLES.md +56 -0
- package/.agents/core/skills/docker/SKILL.md +63 -0
- package/.agents/core/skills/docker/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/docker/VALIDATION.json +11 -0
- package/.agents/core/skills/docker/skill.yaml +23 -0
- package/.agents/core/skills/engineering-workflow/EXAMPLES.md +57 -0
- package/.agents/core/skills/engineering-workflow/SKILL.md +343 -0
- package/.agents/core/skills/engineering-workflow/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/engineering-workflow/VALIDATION.json +12 -0
- package/.agents/core/skills/engineering-workflow/skill.yaml +13 -0
- package/.agents/core/skills/fastapi/EXAMPLES.md +36 -0
- package/.agents/core/skills/fastapi/SKILL.md +148 -0
- package/.agents/core/skills/fastapi/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/fastapi/VALIDATION.json +12 -0
- package/.agents/core/skills/fastapi/fastapi.md +112 -0
- package/.agents/core/skills/fastapi/skill.yaml +10 -0
- package/.agents/core/skills/gemini-precision/SKILL.md +169 -0
- package/.agents/core/skills/gemini-precision/VALIDATION.json +12 -0
- package/.agents/core/skills/gemini-precision/skill.yaml +9 -0
- package/.agents/core/skills/generators/EXAMPLES.md +19 -0
- package/.agents/core/skills/generators/SKILL.md +112 -0
- package/.agents/core/skills/generators/TROUBLESHOOTING.md +7 -0
- package/.agents/core/skills/generators/VALIDATION.json +12 -0
- package/.agents/core/skills/generators/skill.yaml +10 -0
- package/.agents/core/skills/generators/templates/API.md +77 -0
- package/.agents/core/skills/generators/templates/ARCHITECTURE.md +70 -0
- package/.agents/core/skills/generators/templates/DATABASE.md +42 -0
- package/.agents/core/skills/generators/templates/DECISION.md +46 -0
- package/.agents/core/skills/generators/templates/PRD.md +67 -0
- package/.agents/core/skills/generators/templates/PROJECT_GRAPH.md +56 -0
- package/.agents/core/skills/generators/templates/ROADMAP.md +51 -0
- package/.agents/core/skills/generators/templates/TASKS.md +43 -0
- package/.agents/core/skills/generators/templates/UI.md +73 -0
- package/.agents/core/skills/graphify/EXAMPLES.md +73 -0
- package/.agents/core/skills/graphify/SKILL.md +130 -0
- package/.agents/core/skills/graphify/VALIDATION.json +12 -0
- package/.agents/core/skills/graphify/skill.yaml +13 -0
- package/.agents/core/skills/gstack-roles/EXAMPLES.md +23 -0
- package/.agents/core/skills/gstack-roles/SKILL.md +152 -0
- package/.agents/core/skills/gstack-roles/TROUBLESHOOTING.md +13 -0
- package/.agents/core/skills/gstack-roles/VALIDATION.json +12 -0
- package/.agents/core/skills/gstack-roles/skill.yaml +12 -0
- package/.agents/core/skills/impeccable-design/EXAMPLES.md +26 -0
- package/.agents/core/skills/impeccable-design/SKILL.md +201 -0
- package/.agents/core/skills/impeccable-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/impeccable-design/VALIDATION.json +12 -0
- package/.agents/core/skills/impeccable-design/skill.yaml +14 -0
- package/.agents/core/skills/interview-me/SKILL.md +97 -0
- package/.agents/core/skills/interview-me/VALIDATION.json +12 -0
- package/.agents/core/skills/interview-me/skill.yaml +8 -0
- package/.agents/core/skills/microservices/EXAMPLES.md +38 -0
- package/.agents/core/skills/microservices/SKILL.md +164 -0
- package/.agents/core/skills/microservices/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/microservices/VALIDATION.json +12 -0
- package/.agents/core/skills/microservices/microservices.md +119 -0
- package/.agents/core/skills/microservices/skill.yaml +10 -0
- package/.agents/core/skills/minimalist-design/SKILL.md +113 -0
- package/.agents/core/skills/minimalist-design/VALIDATION.json +12 -0
- package/.agents/core/skills/minimalist-design/skill.yaml +8 -0
- package/.agents/core/skills/nestjs/EXAMPLES.md +40 -0
- package/.agents/core/skills/nestjs/SKILL.md +139 -0
- package/.agents/core/skills/nestjs/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/nestjs/VALIDATION.json +12 -0
- package/.agents/core/skills/nestjs/nestjs.md +103 -0
- package/.agents/core/skills/nestjs/skill.yaml +10 -0
- package/.agents/core/skills/nextjs/EXAMPLES.md +40 -0
- package/.agents/core/skills/nextjs/SKILL.md +163 -0
- package/.agents/core/skills/nextjs/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/nextjs/VALIDATION.json +12 -0
- package/.agents/core/skills/nextjs/nextjs.md +67 -0
- package/.agents/core/skills/nextjs/skill.yaml +10 -0
- package/.agents/core/skills/node/EXAMPLES.md +80 -0
- package/.agents/core/skills/node/SKILL.md +128 -0
- package/.agents/core/skills/node/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/node/VALIDATION.json +12 -0
- package/.agents/core/skills/node/node.md +87 -0
- package/.agents/core/skills/node/skill.yaml +10 -0
- package/.agents/core/skills/performance/EXAMPLES.md +30 -0
- package/.agents/core/skills/performance/SKILL.md +75 -0
- package/.agents/core/skills/performance/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/performance/VALIDATION.json +12 -0
- package/.agents/core/skills/performance/performance.md +52 -0
- package/.agents/core/skills/performance/skill.yaml +10 -0
- package/.agents/core/skills/ponytail-mindset/EXAMPLES.md +45 -0
- package/.agents/core/skills/ponytail-mindset/SKILL.md +193 -0
- package/.agents/core/skills/ponytail-mindset/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ponytail-mindset/VALIDATION.json +12 -0
- package/.agents/core/skills/ponytail-mindset/skill.yaml +14 -0
- package/.agents/core/skills/react/EXAMPLES.md +79 -0
- package/.agents/core/skills/react/SKILL.md +132 -0
- package/.agents/core/skills/react/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/react/VALIDATION.json +12 -0
- package/.agents/core/skills/react/react.md +93 -0
- package/.agents/core/skills/react/skill.yaml +10 -0
- package/.agents/core/skills/react-best-practices/SKILL.md +155 -0
- package/.agents/core/skills/react-best-practices/VALIDATION.json +12 -0
- package/.agents/core/skills/react-best-practices/skill.yaml +10 -0
- package/.agents/core/skills/redesign-audit/SKILL.md +117 -0
- package/.agents/core/skills/redesign-audit/VALIDATION.json +12 -0
- package/.agents/core/skills/redesign-audit/skill.yaml +8 -0
- package/.agents/core/skills/security/EXAMPLES.md +64 -0
- package/.agents/core/skills/security/SKILL.md +158 -0
- package/.agents/core/skills/security/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/security/VALIDATION.json +12 -0
- package/.agents/core/skills/security/security.md +106 -0
- package/.agents/core/skills/security/skill.yaml +10 -0
- package/.agents/core/skills/soft-design/SKILL.md +108 -0
- package/.agents/core/skills/soft-design/VALIDATION.json +12 -0
- package/.agents/core/skills/soft-design/skill.yaml +8 -0
- package/.agents/core/skills/state-management/EXAMPLES.md +56 -0
- package/.agents/core/skills/state-management/SKILL.md +48 -0
- package/.agents/core/skills/state-management/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/state-management/VALIDATION.json +11 -0
- package/.agents/core/skills/state-management/skill.yaml +22 -0
- package/.agents/core/skills/subagent-orchestrator/SKILL.md +100 -0
- package/.agents/core/skills/subagent-orchestrator/VALIDATION.json +12 -0
- package/.agents/core/skills/subagent-orchestrator/skill.yaml +8 -0
- package/.agents/core/skills/system-design/EXAMPLES.md +75 -0
- package/.agents/core/skills/system-design/SKILL.md +419 -0
- package/.agents/core/skills/system-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/system-design/VALIDATION.json +12 -0
- package/.agents/core/skills/system-design/skill.yaml +13 -0
- package/.agents/core/skills/system-design/system-design.md +112 -0
- package/.agents/core/skills/testing/EXAMPLES.md +71 -0
- package/.agents/core/skills/testing/SKILL.md +70 -0
- package/.agents/core/skills/testing/TROUBLESHOOTING.md +18 -0
- package/.agents/core/skills/testing/VALIDATION.json +11 -0
- package/.agents/core/skills/testing/skill.yaml +26 -0
- package/.agents/core/skills/typescript/EXAMPLES.md +64 -0
- package/.agents/core/skills/typescript/SKILL.md +112 -0
- package/.agents/core/skills/typescript/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/typescript/VALIDATION.json +12 -0
- package/.agents/core/skills/typescript/skill.yaml +10 -0
- package/.agents/core/skills/typescript/typescript.md +71 -0
- package/.agents/core/skills/ui-design/EXAMPLES.md +21 -0
- package/.agents/core/skills/ui-design/SKILL.md +124 -0
- package/.agents/core/skills/ui-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ui-design/VALIDATION.json +12 -0
- package/.agents/core/skills/ui-design/skill.yaml +10 -0
- package/.agents/core/skills/ui-design/ui.md +88 -0
- package/.agents/core/skills/ui-ux-pro/EXAMPLES.md +62 -0
- package/.agents/core/skills/ui-ux-pro/SKILL.md +375 -0
- package/.agents/core/skills/ui-ux-pro/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ui-ux-pro/VALIDATION.json +12 -0
- package/.agents/core/skills/ui-ux-pro/skill.yaml +13 -0
- package/.agents/core/skills/ux-design/EXAMPLES.md +36 -0
- package/.agents/core/skills/ux-design/SKILL.md +116 -0
- package/.agents/core/skills/ux-design/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/ux-design/VALIDATION.json +12 -0
- package/.agents/core/skills/ux-design/skill.yaml +10 -0
- package/.agents/core/skills/ux-design/ux.md +80 -0
- package/.agents/core/skills/vercel-optimize/SKILL.md +83 -0
- package/.agents/core/skills/vercel-optimize/VALIDATION.json +12 -0
- package/.agents/core/skills/vercel-optimize/skill.yaml +10 -0
- package/.agents/core/skills/web-accessibility/EXAMPLES.md +39 -0
- package/.agents/core/skills/web-accessibility/SKILL.md +170 -0
- package/.agents/core/skills/web-accessibility/TROUBLESHOOTING.md +19 -0
- package/.agents/core/skills/web-accessibility/VALIDATION.json +12 -0
- package/.agents/core/skills/web-accessibility/accessibility.md +63 -0
- package/.agents/core/skills/web-accessibility/skill.yaml +10 -0
- package/.agents/ctx.js +370 -0
- package/.agents/generated/claude/skills/adapters/SKILL.md +126 -0
- package/.agents/generated/claude/skills/architecture-diagrams/SKILL.md +101 -0
- package/.agents/generated/claude/skills/brutalist-design/SKILL.md +145 -0
- package/.agents/generated/claude/skills/context-manager/SKILL.md +147 -0
- package/.agents/generated/claude/skills/context-os/SKILL.md +191 -0
- package/.agents/generated/claude/skills/database/SKILL.md +191 -0
- package/.agents/generated/claude/skills/ddd/SKILL.md +305 -0
- package/.agents/generated/claude/skills/decisions/SKILL.md +134 -0
- package/.agents/generated/claude/skills/docker/SKILL.md +135 -0
- package/.agents/generated/claude/skills/engineering-workflow/SKILL.md +414 -0
- package/.agents/generated/claude/skills/fastapi/SKILL.md +200 -0
- package/.agents/generated/claude/skills/gemini-precision/SKILL.md +161 -0
- package/.agents/generated/claude/skills/generators/SKILL.md +133 -0
- package/.agents/generated/claude/skills/graphify/SKILL.md +198 -0
- package/.agents/generated/claude/skills/gstack-roles/SKILL.md +184 -0
- package/.agents/generated/claude/skills/impeccable-design/SKILL.md +241 -0
- package/.agents/generated/claude/skills/interview-me/SKILL.md +90 -0
- package/.agents/generated/claude/skills/microservices/SKILL.md +218 -0
- package/.agents/generated/claude/skills/minimalist-design/SKILL.md +108 -0
- package/.agents/generated/claude/skills/nestjs/SKILL.md +195 -0
- package/.agents/generated/claude/skills/nextjs/SKILL.md +219 -0
- package/.agents/generated/claude/skills/node/SKILL.md +224 -0
- package/.agents/generated/claude/skills/performance/SKILL.md +121 -0
- package/.agents/generated/claude/skills/ponytail-mindset/SKILL.md +252 -0
- package/.agents/generated/claude/skills/react/SKILL.md +227 -0
- package/.agents/generated/claude/skills/react-best-practices/SKILL.md +146 -0
- package/.agents/generated/claude/skills/redesign-audit/SKILL.md +112 -0
- package/.agents/generated/claude/skills/security/SKILL.md +237 -0
- package/.agents/generated/claude/skills/soft-design/SKILL.md +103 -0
- package/.agents/generated/claude/skills/state-management/SKILL.md +120 -0
- package/.agents/generated/claude/skills/subagent-orchestrator/SKILL.md +93 -0
- package/.agents/generated/claude/skills/system-design/SKILL.md +507 -0
- package/.agents/generated/claude/skills/testing/SKILL.md +157 -0
- package/.agents/generated/claude/skills/typescript/SKILL.md +192 -0
- package/.agents/generated/claude/skills/ui-design/SKILL.md +161 -0
- package/.agents/generated/claude/skills/ui-ux-pro/SKILL.md +451 -0
- package/.agents/generated/claude/skills/ux-design/SKILL.md +168 -0
- package/.agents/generated/claude/skills/vercel-optimize/SKILL.md +76 -0
- package/.agents/generated/claude/skills/web-accessibility/SKILL.md +225 -0
- package/.agents/generated/gemini/skills/adapters/SKILL.md +135 -0
- package/.agents/generated/gemini/skills/architecture-diagrams/SKILL.md +107 -0
- package/.agents/generated/gemini/skills/brutalist-design/SKILL.md +151 -0
- package/.agents/generated/gemini/skills/context-manager/SKILL.md +156 -0
- package/.agents/generated/gemini/skills/context-os/SKILL.md +200 -0
- package/.agents/generated/gemini/skills/database/SKILL.md +200 -0
- package/.agents/generated/gemini/skills/ddd/SKILL.md +314 -0
- package/.agents/generated/gemini/skills/decisions/SKILL.md +143 -0
- package/.agents/generated/gemini/skills/docker/SKILL.md +144 -0
- package/.agents/generated/gemini/skills/engineering-workflow/SKILL.md +423 -0
- package/.agents/generated/gemini/skills/fastapi/SKILL.md +209 -0
- package/.agents/generated/gemini/skills/gemini-precision/SKILL.md +167 -0
- package/.agents/generated/gemini/skills/generators/SKILL.md +142 -0
- package/.agents/generated/gemini/skills/graphify/SKILL.md +205 -0
- package/.agents/generated/gemini/skills/gstack-roles/SKILL.md +193 -0
- package/.agents/generated/gemini/skills/impeccable-design/SKILL.md +250 -0
- package/.agents/generated/gemini/skills/interview-me/SKILL.md +96 -0
- package/.agents/generated/gemini/skills/microservices/SKILL.md +227 -0
- package/.agents/generated/gemini/skills/minimalist-design/SKILL.md +114 -0
- package/.agents/generated/gemini/skills/nestjs/SKILL.md +204 -0
- package/.agents/generated/gemini/skills/nextjs/SKILL.md +298 -0
- package/.agents/generated/gemini/skills/node/SKILL.md +323 -0
- package/.agents/generated/gemini/skills/performance/SKILL.md +185 -0
- package/.agents/generated/gemini/skills/ponytail-mindset/SKILL.md +261 -0
- package/.agents/generated/gemini/skills/react/SKILL.md +332 -0
- package/.agents/generated/gemini/skills/react-best-practices/SKILL.md +152 -0
- package/.agents/generated/gemini/skills/redesign-audit/SKILL.md +118 -0
- package/.agents/generated/gemini/skills/security/SKILL.md +355 -0
- package/.agents/generated/gemini/skills/soft-design/SKILL.md +109 -0
- package/.agents/generated/gemini/skills/state-management/SKILL.md +129 -0
- package/.agents/generated/gemini/skills/subagent-orchestrator/SKILL.md +99 -0
- package/.agents/generated/gemini/skills/system-design/SKILL.md +631 -0
- package/.agents/generated/gemini/skills/testing/SKILL.md +166 -0
- package/.agents/generated/gemini/skills/typescript/SKILL.md +275 -0
- package/.agents/generated/gemini/skills/ui-design/SKILL.md +170 -0
- package/.agents/generated/gemini/skills/ui-ux-pro/SKILL.md +460 -0
- package/.agents/generated/gemini/skills/ux-design/SKILL.md +177 -0
- package/.agents/generated/gemini/skills/vercel-optimize/SKILL.md +82 -0
- package/.agents/generated/gemini/skills/web-accessibility/SKILL.md +300 -0
- package/.agents/mcp/runtime.py +454 -0
- package/.agents/mcp/server.mjs +189373 -0
- package/.agents/plugins.js +574 -0
- package/.agents/profiles.js +267 -0
- package/.agents/resolver.js +336 -0
- package/.agents/skills-index.json +200 -0
- package/.agents/skills.json +6 -0
- package/.agents/validate.js +500 -0
- package/LICENSE +21 -0
- package/README.md +415 -0
- package/benchmarks/gemini-issues.js +533 -0
- package/bin/index.js +458 -0
- package/package.json +70 -0
- package/registry.json +53 -0
- package/registry.schema.json +32 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# TypeScript
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Strict TypeScript engineering standard. Enforces noImplicitAny, discriminated unions, branded types, immutability, exhaustive switch checks, and zero unsafe any or as unknown as T casts.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Activate on all TypeScript and JavaScript codebases to ensure compile-time type safety, robust domain modeling, and foolproof function contracts.
|
|
10
|
+
|
|
11
|
+
## Negative Constraints (What NOT to Do)
|
|
12
|
+
|
|
13
|
+
1. **NEVER use `any`**: Use `unknown` with type guards, discriminated unions, or Zod schemas.
|
|
14
|
+
2. **NEVER use type assertions (`as Type` or `as unknown as Type`) to bypass safety**: Fix the underlying type signature or use runtime narrowing (`instanceof`, `typeof`, `in`).
|
|
15
|
+
3. **NEVER use non-null assertions (`foo!.bar`)**: Handle `null` and `undefined` with optional chaining (`?.`) or explicit error guards.
|
|
16
|
+
4. **NEVER export mutable global arrays or object constants**: Always mark constant objects and arrays with `as const` and `readonly`.
|
|
17
|
+
5. **NEVER omit explicit return types on exported functions**: Exported public APIs must declare explicit return types to protect consumers.
|
|
18
|
+
|
|
19
|
+
## Rules & Patterns
|
|
20
|
+
|
|
21
|
+
## Strict Mode
|
|
22
|
+
|
|
23
|
+
Always use strict TypeScript configuration:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"compilerOptions": {
|
|
28
|
+
"strict": true,
|
|
29
|
+
"noUncheckedIndexedAccess": true,
|
|
30
|
+
"noImplicitReturns": true,
|
|
31
|
+
"noFallthroughCasesInSwitch": true
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Types
|
|
37
|
+
|
|
38
|
+
- **Prefer `interface`** for object shapes, `type` for unions/intersections
|
|
39
|
+
- **No `any`** — use `unknown` if type is truly unknown, then narrow
|
|
40
|
+
- **Explicit return types** for exported functions
|
|
41
|
+
- **Const assertions** — `as const` for literal types
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// Good
|
|
45
|
+
interface User {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
role: 'admin' | 'user';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Unions
|
|
52
|
+
type Result<T> = { ok: true; data: T } | { ok: false; error: string };
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Utility Types
|
|
56
|
+
|
|
57
|
+
- `Partial<T>` — all properties optional
|
|
58
|
+
- `Required<T>` — all properties required
|
|
59
|
+
- `Pick<T, K>` — select specific properties
|
|
60
|
+
- `Omit<T, K>` — remove specific properties
|
|
61
|
+
- `Record<K, V>` — key-value map
|
|
62
|
+
|
|
63
|
+
## Type Guards
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
function isUser(value: unknown): value is User {
|
|
67
|
+
return typeof value === 'object' && value !== null && 'id' in value;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Generic Patterns
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
// Repository pattern
|
|
75
|
+
interface Repository<T extends { id: string }> {
|
|
76
|
+
findById(id: string): Promise<T | null>;
|
|
77
|
+
create(data: Omit<T, 'id'>): Promise<T>;
|
|
78
|
+
update(id: string, data: Partial<T>): Promise<T>;
|
|
79
|
+
delete(id: string): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Anti-Patterns
|
|
84
|
+
|
|
85
|
+
- [FAIL] `any` — use `unknown` + type guards
|
|
86
|
+
- [FAIL] Type assertions (`as`) — prefer type guards
|
|
87
|
+
- [FAIL] Non-null assertions (`!`) — handle null explicitly
|
|
88
|
+
- [FAIL] Enums — prefer union types or `as const` objects
|
|
89
|
+
- [FAIL] Complex generics without JSDoc — document intent
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## Code Examples
|
|
93
|
+
|
|
94
|
+
See `EXAMPLES.md` for detailed code examples.
|
|
95
|
+
|
|
96
|
+
## Validation Checklist
|
|
97
|
+
|
|
98
|
+
What to verify during the review phase before completing the task.
|
|
99
|
+
|
|
100
|
+
## Common Mistakes
|
|
101
|
+
|
|
102
|
+
Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
|
|
103
|
+
|
|
104
|
+
## Integration Notes
|
|
105
|
+
|
|
106
|
+
How this skill interacts with other skills.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
# TypeScript Examples — Anti-patterns vs ContextOS Standard
|
|
110
|
+
|
|
111
|
+
## Example 1: Type-Safe Parsing with Zod (No `any`)
|
|
112
|
+
|
|
113
|
+
### Anti-pattern: Anti-pattern (Blind type assertion with `as`)
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
// BAD: using 'as User' bypasses runtime validation completely
|
|
117
|
+
async function fetchUser(id: string): Promise<User> {
|
|
118
|
+
const res = await fetch(`/api/users/${id}`);
|
|
119
|
+
const data = await res.json();
|
|
120
|
+
return data as User; // Runtime crash if payload changes!
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Best practice: ContextOS Standard (Runtime schema validation with Zod)
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// GOOD: guaranteed runtime and compile-time type safety
|
|
128
|
+
import { z } from 'zod';
|
|
129
|
+
|
|
130
|
+
export const UserSchema = z.object({
|
|
131
|
+
id: z.string().uuid(),
|
|
132
|
+
name: z.string().min(1),
|
|
133
|
+
email: z.string().email(),
|
|
134
|
+
role: z.enum(['admin', 'member', 'guest']),
|
|
135
|
+
createdAt: z.string().datetime(),
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
export type User = z.infer<typeof UserSchema>;
|
|
139
|
+
|
|
140
|
+
export async function fetchUser(id: string): Promise<User> {
|
|
141
|
+
const res = await fetch(`/api/users/${id}`);
|
|
142
|
+
if (!res.ok) throw new Error(`Fetch failed with status ${res.status}`);
|
|
143
|
+
const raw: unknown = await res.json();
|
|
144
|
+
return UserSchema.parse(raw);
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Example 2: Discriminated Unions for State Handling
|
|
151
|
+
|
|
152
|
+
### Anti-pattern: Anti-pattern (Optional soup with boolean flags)
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
// BAD: impossible states can be represented (e.g. isLoading: true AND error: 'Failed')
|
|
156
|
+
interface AsyncState<T> {
|
|
157
|
+
data?: T;
|
|
158
|
+
isLoading: boolean;
|
|
159
|
+
error?: string;
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Best practice: ContextOS Standard (Discriminated Union)
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
// GOOD: impossible states are impossible at compile-time
|
|
167
|
+
export type AsyncState<T> =
|
|
168
|
+
| { readonly status: 'idle' }
|
|
169
|
+
| { readonly status: 'loading' }
|
|
170
|
+
| { readonly status: 'success'; readonly data: T }
|
|
171
|
+
| { readonly status: 'error'; readonly error: Error };
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
# typescript Troubleshooting & Common Mistakes
|
|
175
|
+
|
|
176
|
+
## 1. Excessive Use of `any` or `as unknown as T`
|
|
177
|
+
|
|
178
|
+
- **Symptom**: Runtime `TypeError: Cannot read properties of undefined` in supposedly typed TypeScript code.
|
|
179
|
+
- **Root Cause**: Bypassing type checking with `any` or forceful type assertions.
|
|
180
|
+
- **Fix**: Use `unknown` with type guards, Zod schemas, or discriminated unions.
|
|
181
|
+
|
|
182
|
+
## 2. Non-Exhaustive Switch on Unions
|
|
183
|
+
|
|
184
|
+
- **Symptom**: New union member added but some switch statements fail to handle it, producing bugs.
|
|
185
|
+
- **Root Cause**: Missing exhaustive type checking in `default:` case.
|
|
186
|
+
- **Fix**: Add `default: const _exhaustive: never = action; throw new Error(_exhaustive);` to let the compiler catch missing branches.
|
|
187
|
+
|
|
188
|
+
## 3. Inaccurate Generics Constraints
|
|
189
|
+
|
|
190
|
+
- **Symptom**: Generic functions that lose type inference and resolve to `unknown`.
|
|
191
|
+
- **Root Cause**: Over-specifying generics or missing `extends` constraints.
|
|
192
|
+
- **Fix**: Constrain generics narrowly: `function get<T, K extends keyof T>(obj: T, key: K): T[K]`.
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# UI Design
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Modern component library and design system engineering. Enforces design token hierarchies (spacing, radii, elevation), accessible component primitives (shadcn/ui, Radix), and responsive layout constraints.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Activate when designing design systems, reusable UI component libraries, navigation bars, modals, data tables, and interactive dashboards.
|
|
10
|
+
|
|
11
|
+
## Rules & Patterns
|
|
12
|
+
<!-- Source: ui.md -->
|
|
13
|
+
|
|
14
|
+
## UI Design — Best Practices
|
|
15
|
+
|
|
16
|
+
## Design System Foundations
|
|
17
|
+
|
|
18
|
+
### Color
|
|
19
|
+
|
|
20
|
+
- **Never use generic colors** — curate a harmonious palette
|
|
21
|
+
- **Always tint** — no pure black (#000), no pure gray. Add a subtle warm or cool tint
|
|
22
|
+
- **Color roles**: primary (action), secondary (accent), neutral (text, borders), semantic (error, success, warning, info)
|
|
23
|
+
- **Dark mode**: design intentionally, not just invert. Surface hierarchy: background < surface < elevated
|
|
24
|
+
- **Contrast**: 4.5:1 minimum for body text, 3:1 for large text
|
|
25
|
+
|
|
26
|
+
### Typography
|
|
27
|
+
|
|
28
|
+
- **Never use browser defaults** — choose a curated font (Inter, Outfit, Geist, Sora)
|
|
29
|
+
- **Type scale**: use a modular scale (1.25 ratio) — 12, 14, 16, 20, 24, 32, 40, 48
|
|
30
|
+
- **Font weights**: Regular (400), Medium (500), Semibold (600), Bold (700). Don't use all of them — pick 2-3
|
|
31
|
+
- **Line height**: 1.5 for body, 1.2 for headings, 1.6 for long-form text
|
|
32
|
+
- **Max line width**: 65-75 characters for readability
|
|
33
|
+
|
|
34
|
+
### Spacing
|
|
35
|
+
|
|
36
|
+
- **Use a 4px grid** — all spacing should be multiples of 4
|
|
37
|
+
- **Spacing scale**: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96
|
|
38
|
+
- **Consistency** — same spacing between similar elements
|
|
39
|
+
- **Whitespace is design** — don't fill every pixel
|
|
40
|
+
|
|
41
|
+
### Layout
|
|
42
|
+
|
|
43
|
+
- **Grid system**: 12-column grid for desktop, 4-column for mobile
|
|
44
|
+
- **Visual hierarchy**: size, weight, color, spacing, position
|
|
45
|
+
- **F-pattern/Z-pattern** — for content-heavy pages
|
|
46
|
+
- **Group related items** — use proximity and boundaries
|
|
47
|
+
|
|
48
|
+
## Component Patterns
|
|
49
|
+
|
|
50
|
+
### Buttons
|
|
51
|
+
|
|
52
|
+
- Clear hierarchy: Primary > Secondary > Ghost/Text
|
|
53
|
+
- Consistent sizing: sm (32px), md (40px), lg (48px)
|
|
54
|
+
- States: default, hover, active, disabled, loading
|
|
55
|
+
- Always accessible: sufficient contrast, focus indicator
|
|
56
|
+
|
|
57
|
+
### Forms
|
|
58
|
+
|
|
59
|
+
- Labels above inputs (not floating labels for critical forms)
|
|
60
|
+
- Clear error states with inline messages
|
|
61
|
+
- Logical tab order
|
|
62
|
+
- Progressive disclosure — don't show all fields at once
|
|
63
|
+
|
|
64
|
+
### Cards
|
|
65
|
+
|
|
66
|
+
- Don't nest cards inside cards
|
|
67
|
+
- Clear visual hierarchy within the card
|
|
68
|
+
- Consistent padding and spacing
|
|
69
|
+
- Interactive cards need hover state
|
|
70
|
+
|
|
71
|
+
### Navigation
|
|
72
|
+
|
|
73
|
+
- Maximum 7±2 items in primary nav
|
|
74
|
+
- Clear active state
|
|
75
|
+
- Mobile: bottom nav or hamburger (not both)
|
|
76
|
+
- Breadcrumbs for deep hierarchies
|
|
77
|
+
|
|
78
|
+
## Animation Principles
|
|
79
|
+
|
|
80
|
+
- **Purpose**: guide attention, show relationships, provide feedback
|
|
81
|
+
- **Duration**: 150-300ms for micro-interactions, 300-500ms for transitions
|
|
82
|
+
- **Easing**: `ease-out` for entrances, `ease-in` for exits. Never `bounce` or `elastic`
|
|
83
|
+
- **Reduce motion**: respect `prefers-reduced-motion`
|
|
84
|
+
|
|
85
|
+
## Anti-Patterns (from Impeccable)
|
|
86
|
+
|
|
87
|
+
- [FAIL] Gray text on colored backgrounds — destroys readability
|
|
88
|
+
- [FAIL] Pure black text on white (#000 on #fff) — too harsh, tint the black
|
|
89
|
+
- [FAIL] Cards nested inside cards — visual noise
|
|
90
|
+
- [FAIL] Bounce/elastic easing — feels dated
|
|
91
|
+
- [FAIL] Icon tile above every heading — SaaS template tell
|
|
92
|
+
- [FAIL] Purple-to-blue gradient on everything — overused
|
|
93
|
+
- [FAIL] Using Inter for everything — pick a font that matches your brand
|
|
94
|
+
- [FAIL] Rounded-square icons everywhere — lack of visual variety
|
|
95
|
+
|
|
96
|
+
## Dark Mode
|
|
97
|
+
|
|
98
|
+
- Surface elevation through subtle lightening (not colored backgrounds)
|
|
99
|
+
- Reduce white contrast — use #E0E0E0, not #FFFFFF
|
|
100
|
+
- Shadows become less visible — use subtle borders or elevation changes
|
|
101
|
+
- Test all states in both modes
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
## Code Examples
|
|
105
|
+
|
|
106
|
+
See `EXAMPLES.md` for detailed code examples.
|
|
107
|
+
|
|
108
|
+
## Validation Checklist
|
|
109
|
+
|
|
110
|
+
What to verify during the review phase before completing the task.
|
|
111
|
+
|
|
112
|
+
## Common Mistakes
|
|
113
|
+
|
|
114
|
+
Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
|
|
115
|
+
|
|
116
|
+
## Integration Notes
|
|
117
|
+
|
|
118
|
+
How this skill interacts with other skills.
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
# ui-design Examples — Anti-patterns vs ContextOS Standard
|
|
122
|
+
|
|
123
|
+
## Example 1: Component Token Consistency
|
|
124
|
+
|
|
125
|
+
### Anti-pattern: Hardcoded Arbitrary Tailwind Utilities
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
// BAD: Inconsistent spacing, arbitrary colors, unmaintainable styling
|
|
129
|
+
<div className="p-[13px] bg-[#1a1b2e] rounded-[7px] text-[#99aab5] border border-[#2b2d42]">
|
|
130
|
+
<button className="px-[15px] py-[7px] bg-[#5865f2] hover:bg-[#4752c4]">Action</button>
|
|
131
|
+
</div>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Best practice: ContextOS Standard (Semantic Theme Tokens)
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
// GOOD: Consistent scale utilities driven by Tailwind v4 @theme design tokens
|
|
138
|
+
<div className="p-4 bg-card rounded-lg text-muted-foreground border border-border">
|
|
139
|
+
<Button variant="primary" size="md">Action</Button>
|
|
140
|
+
</div>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
# ui-design Troubleshooting & Common Mistakes
|
|
144
|
+
|
|
145
|
+
## 1. Z-Index Chaos
|
|
146
|
+
|
|
147
|
+
- **Symptom**: Tooltips rendered underneath dialog overlays, or dropdowns hidden behind sticky headers.
|
|
148
|
+
- **Root Cause**: Ad-hoc hardcoded values (z-50, z-[999], z-[9999]).
|
|
149
|
+
- **Fix**: Use Radix / shadcn Portals for floating elements so they render at root DOM level, or declare strict z-index tokens.
|
|
150
|
+
|
|
151
|
+
## 2. Inconsistent Component States
|
|
152
|
+
|
|
153
|
+
- **Symptom**: Buttons have hover states but lack focus-visible rings or disabled states.
|
|
154
|
+
- **Root Cause**: Styling only the default and hover states.
|
|
155
|
+
- **Fix**: Standardize state matrices for every interactive element: default, hover, focus-visible, active, disabled, loading.
|
|
156
|
+
|
|
157
|
+
## 3. Ignoring Empty and Error Component States
|
|
158
|
+
|
|
159
|
+
- **Symptom**: Tables or list views show a blank white box when there are 0 records.
|
|
160
|
+
- **Root Cause**: Developers only design for the "ideal data" case.
|
|
161
|
+
- **Fix**: Every data component must explicitly render designed EmptyState and ErrorState fallbacks.
|