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,225 @@
|
|
|
1
|
+
# Web Accessibility & Interface Guidelines
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Enforces universal accessibility compliance (WCAG 2.1 AA / AAA), rigorous semantic markup, keyboard navigability with focus traps, screen reader live regions, and Web Interface Guidelines standards.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Activate whenever building, styling, or reviewing user interfaces, forms, modals, menus, navigation drawers, custom interactive widgets, or media elements.
|
|
10
|
+
|
|
11
|
+
## Negative Constraints (What NOT to Do)
|
|
12
|
+
|
|
13
|
+
1. **NEVER use `outline: none` without a custom `:focus-visible` replacement**: Keyboard users must always have a distinct, high-contrast visual focus ring.
|
|
14
|
+
2. **NEVER use non-semantic elements (`<div onClick>`) for interactive triggers**: Always use native `<button>` or `<a href>`.
|
|
15
|
+
3. **NEVER create modals or dialogs without keyboard focus traps**: Focus must remain trapped inside open dialogs during Tab / Shift-Tab navigation and restore to trigger on close.
|
|
16
|
+
4. **NEVER rely exclusively on color to indicate state or errors**: Always pair colors with text labels, icons, or ARIA attributes (`aria-invalid="true"`).
|
|
17
|
+
5. **NEVER trap screen readers with missing form labels or error associations**: Every input must link to `<label htmlFor="id">` and errors via `aria-describedby`.
|
|
18
|
+
6. **NEVER play animations without honoring `prefers-reduced-motion`**: Respect user OS motion reduction preferences.
|
|
19
|
+
|
|
20
|
+
## Rules & Patterns
|
|
21
|
+
|
|
22
|
+
### 1. Focus Visible & High-Contrast Focus Rings
|
|
23
|
+
|
|
24
|
+
```css
|
|
25
|
+
button:focus-visible,
|
|
26
|
+
a:focus-visible,
|
|
27
|
+
input:focus-visible {
|
|
28
|
+
outline: 2px solid #6366f1;
|
|
29
|
+
outline-offset: 2px;
|
|
30
|
+
border-radius: 4px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
button:focus:not(:focus-visible) {
|
|
34
|
+
outline: none;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. Accessible Modal & Focus Trap Contract
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import React, { useEffect, useRef } from 'react';
|
|
42
|
+
import { createPortal } from 'react-dom';
|
|
43
|
+
|
|
44
|
+
interface ModalProps {
|
|
45
|
+
isOpen: boolean;
|
|
46
|
+
onClose: () => void;
|
|
47
|
+
titleId: string;
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function AccessibleModal({ isOpen, onClose, titleId, children }: ModalProps) {
|
|
52
|
+
const dialogRef = useRef<HTMLDivElement>(null);
|
|
53
|
+
const triggerRef = useRef<HTMLElement | null>(null);
|
|
54
|
+
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!isOpen) return;
|
|
57
|
+
triggerRef.current = document.activeElement as HTMLElement;
|
|
58
|
+
|
|
59
|
+
const handleKeyDown = (e: KeyboardEvent) => {
|
|
60
|
+
if (e.key === 'Escape') {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
onClose();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (e.key === 'Tab') {
|
|
66
|
+
const focusables = dialogRef.current?.querySelectorAll<HTMLElement>(
|
|
67
|
+
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
|
|
68
|
+
) || [];
|
|
69
|
+
if (!focusables.length) return;
|
|
70
|
+
|
|
71
|
+
const first = focusables[0];
|
|
72
|
+
const last = focusables[focusables.length - 1];
|
|
73
|
+
|
|
74
|
+
if (e.shiftKey && document.activeElement === first) {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
last.focus();
|
|
77
|
+
} else if (!e.shiftKey && document.activeElement === last) {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
first.focus();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
85
|
+
return () => {
|
|
86
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
87
|
+
triggerRef.current?.focus();
|
|
88
|
+
};
|
|
89
|
+
}, [isOpen, onClose]);
|
|
90
|
+
|
|
91
|
+
if (!isOpen) return null;
|
|
92
|
+
|
|
93
|
+
return createPortal(
|
|
94
|
+
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4">
|
|
95
|
+
<div
|
|
96
|
+
ref={dialogRef}
|
|
97
|
+
role="dialog"
|
|
98
|
+
aria-modal="true"
|
|
99
|
+
aria-labelledby={titleId}
|
|
100
|
+
className="w-full max-w-lg rounded-xl bg-background p-6 shadow-2xl border"
|
|
101
|
+
>
|
|
102
|
+
{children}
|
|
103
|
+
</div>
|
|
104
|
+
</div>,
|
|
105
|
+
document.body
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3. Accessible Forms & Error Association
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
export function EmailInput({ error, ...props }: { error?: string } & React.InputHTMLAttributes<HTMLInputElement>) {
|
|
114
|
+
const inputId = 'user-email';
|
|
115
|
+
const errorId = 'user-email-error';
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<div className="flex flex-col gap-1.5">
|
|
119
|
+
<label htmlFor={inputId} className="text-sm font-medium">
|
|
120
|
+
Email Address <span aria-hidden="true" className="text-destructive">*</span>
|
|
121
|
+
</label>
|
|
122
|
+
<input
|
|
123
|
+
id={inputId}
|
|
124
|
+
type="email"
|
|
125
|
+
autoComplete="email"
|
|
126
|
+
required
|
|
127
|
+
aria-invalid={Boolean(error)}
|
|
128
|
+
aria-describedby={error ? errorId : undefined}
|
|
129
|
+
className="rounded-md border p-2 text-sm focus-visible:ring-2"
|
|
130
|
+
{...props}
|
|
131
|
+
/>
|
|
132
|
+
{error && (
|
|
133
|
+
<p id={errorId} role="alert" className="text-xs text-destructive">
|
|
134
|
+
{error}
|
|
135
|
+
</p>
|
|
136
|
+
)}
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Code Examples
|
|
143
|
+
|
|
144
|
+
See `EXAMPLES.md` for detailed dialog, menu, and form examples.
|
|
145
|
+
|
|
146
|
+
## Validation Checklist
|
|
147
|
+
|
|
148
|
+
- [ ] All interactive elements are fully operable via Keyboard (`Tab`, `Enter`, `Space`, `Escape`).
|
|
149
|
+
- [ ] Visual `:focus-visible` styling is distinct and high contrast (≥ 3:1).
|
|
150
|
+
- [ ] Modals use `role="dialog"`, `aria-modal="true"`, focus trap, and restore focus on close.
|
|
151
|
+
- [ ] Text contrast ratios satisfy WCAG AA (≥ 4.5:1 for normal text, ≥ 3:1 for large text).
|
|
152
|
+
- [ ] Forms pair inputs with `<label htmlFor>`, valid `autocomplete` tokens, and `aria-invalid`.
|
|
153
|
+
- [ ] Non-text media contains descriptive `alt` attributes or `aria-hidden="true"` for decorative icons.
|
|
154
|
+
|
|
155
|
+
## Common Mistakes
|
|
156
|
+
|
|
157
|
+
- Hiding outline focus indicators globally without `:focus-visible` fallback.
|
|
158
|
+
- Forgetting to trap focus in modal dialogs or not returning focus to trigger when modal closes.
|
|
159
|
+
- Missing `aria-expanded` attributes on disclosure buttons and dropdown toggles.
|
|
160
|
+
|
|
161
|
+
## Integration Notes
|
|
162
|
+
|
|
163
|
+
- Pairs with `ui-ux-pro` and `impeccable-design` for visual contrast and component standards.
|
|
164
|
+
- Pairs with `react` and `nextjs` for accessible dialogs and focus restoration across route transitions.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
# web-accessibility Examples — Anti-patterns vs ContextOS Standard
|
|
168
|
+
|
|
169
|
+
## Example 1: Semantic Buttons vs Clickable Divs
|
|
170
|
+
|
|
171
|
+
### Anti-pattern: Clickable Div
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
// BAD: Cannot be focused with Tab, does not respond to Enter or Space, silent to screen readers
|
|
175
|
+
<div className="button" onClick={handleSubmit}>Submit</div>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Best practice: ContextOS Standard (Semantic Button Element)
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
// GOOD: Keyboard focusable, native Enter/Space handling, properly announced by assistive tech
|
|
182
|
+
<button type="button" onClick={handleSubmit} className="btn btn-primary">
|
|
183
|
+
Submit
|
|
184
|
+
</button>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Example 2: Icon-only Buttons
|
|
190
|
+
|
|
191
|
+
### Anti-pattern: Unlabelled Icon Button
|
|
192
|
+
|
|
193
|
+
```tsx
|
|
194
|
+
// BAD: Screen reader announces "button", user has zero idea what it does
|
|
195
|
+
<button onClick={onClose}><XIcon /></button>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Best practice: ContextOS Standard (Accessible Label)
|
|
199
|
+
|
|
200
|
+
```tsx
|
|
201
|
+
// GOOD: Explicit aria-label and hidden decorative icon
|
|
202
|
+
<button type="button" onClick={onClose} aria-label="Close modal window">
|
|
203
|
+
<XIcon aria-hidden="true" />
|
|
204
|
+
</button>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
# web-accessibility Troubleshooting & Common Mistakes
|
|
208
|
+
|
|
209
|
+
## 1. Trapping Keyboard Users in Inactive Elements
|
|
210
|
+
|
|
211
|
+
- **Symptom**: Tab key moves focus into invisible elements hidden offscreen.
|
|
212
|
+
- **Root Cause**: Using display: none vs opacity: 0 or left: -9999px.
|
|
213
|
+
- **Fix**: Always apply display: none / hidden or inert attribute to elements that are currently not visible.
|
|
214
|
+
|
|
215
|
+
## 2. Color Contrast Violations
|
|
216
|
+
|
|
217
|
+
- **Symptom**: Text is unreadable for users with low vision or in bright sunlight.
|
|
218
|
+
- **Root Cause**: Contrast ratio between text and background color is below WCAG AA thresholds.
|
|
219
|
+
- **Fix**: Ensure contrast ratio is at least 4.5:1 for body text and 3:1 for large text / graphical controls.
|
|
220
|
+
|
|
221
|
+
## 3. Silent Dynamic Updates
|
|
222
|
+
|
|
223
|
+
- **Symptom**: Asynchronous error messages or notifications appear on screen without screen reader announcement.
|
|
224
|
+
- **Root Cause**: Missing ARIA live region.
|
|
225
|
+
- **Fix**: Wrap notification banners in aria-live="polite" and role="status".
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adapters
|
|
3
|
+
description: >
|
|
4
|
+
Generates agent-specific configuration files from unified ContextOS format. Produces configs for Claude, Gemini, Copilot, Cursor, Aider, Continue, and Zed.
|
|
5
|
+
---
|
|
6
|
+
# agent-adapters
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Unified cross-agent configuration engine. Translates single ContextOS source rules into optimized native formats for Claude Code (CLAUDE.md), Gemini (.agents/skills), Cursor (.cursorrules, .cursor/rules/*.mdc), GitHub Copilot, Zed, Aider, and Continue.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Activate when configuring, synchronizing, or exporting agent rules and skills across multiple IDEs and AI programming assistants.
|
|
15
|
+
|
|
16
|
+
## Rules & Patterns
|
|
17
|
+
|
|
18
|
+
ContextOS is agent-agnostic. This skill generates the right config format for any AI agent.
|
|
19
|
+
|
|
20
|
+
## Supported Agents
|
|
21
|
+
|
|
22
|
+
| Agent | Config File | Format |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| **Gemini** | `.agents/AGENTS.md` + `.agents/skills/` | Markdown + YAML skills |
|
|
25
|
+
| **Claude Code** | `CLAUDE.md` | Single markdown file |
|
|
26
|
+
| **GitHub Copilot / Codex** | `AGENTS.md` (root) | Markdown |
|
|
27
|
+
| **Cursor** | `.cursorrules` | Plain text rules |
|
|
28
|
+
| **Aider** | `.aider.conf.yml` | YAML config |
|
|
29
|
+
| **Continue** | `.continuerules` | Markdown rules |
|
|
30
|
+
| **OpenHands** | `openhands.json` | JSON config |
|
|
31
|
+
| **Roo Code** | `.roo/` | Directory with rules |
|
|
32
|
+
| **Windsurf** | `.windsurfrules` | Plain text rules |
|
|
33
|
+
|
|
34
|
+
## Generation Command
|
|
35
|
+
|
|
36
|
+
`ctx adapt [agent]` — Generate config for a specific agent.
|
|
37
|
+
|
|
38
|
+
`ctx adapt all` — Generate configs for all supported agents.
|
|
39
|
+
|
|
40
|
+
## Adapter Logic
|
|
41
|
+
|
|
42
|
+
### For Claude Code (`CLAUDE.md`)
|
|
43
|
+
|
|
44
|
+
Compile into a single markdown file:
|
|
45
|
+
|
|
46
|
+
1. Project overview from `docs/PRD.md` (summary only)
|
|
47
|
+
2. Architecture summary from `docs/ARCHITECTURE.md`
|
|
48
|
+
3. Coding rules from loaded skills
|
|
49
|
+
4. Active Decision Records
|
|
50
|
+
5. Current tasks from `docs/TASKS.md`
|
|
51
|
+
|
|
52
|
+
### For Gemini (`.agents/AGENTS.md`)
|
|
53
|
+
|
|
54
|
+
Already native format. Just ensure:
|
|
55
|
+
|
|
56
|
+
1. `AGENTS.md` references the skill directory
|
|
57
|
+
2. Skills have proper SKILL.md with frontmatter
|
|
58
|
+
3. Context Manager rules are in AGENTS.md
|
|
59
|
+
|
|
60
|
+
### For Cursor (`.cursorrules`)
|
|
61
|
+
|
|
62
|
+
Compile into a flat text file:
|
|
63
|
+
|
|
64
|
+
1. Project context (condensed)
|
|
65
|
+
2. Coding style rules
|
|
66
|
+
3. Framework-specific instructions
|
|
67
|
+
4. Anti-patterns to avoid
|
|
68
|
+
|
|
69
|
+
### For Aider (`.aider.conf.yml`)
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
read:
|
|
73
|
+
- docs/ARCHITECTURE.md
|
|
74
|
+
- docs/API.md
|
|
75
|
+
- docs/PROJECT_GRAPH.md
|
|
76
|
+
conventions:
|
|
77
|
+
- {{coding rules from skills}}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Sync Rules
|
|
81
|
+
|
|
82
|
+
- Adapters read from the canonical ContextOS documents
|
|
83
|
+
- Never edit adapter output files directly
|
|
84
|
+
- Re-run `ctx adapt` after any document change
|
|
85
|
+
- Each adapter file includes a header: `# Generated by ContextOS — do not edit directly`
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Code Examples
|
|
89
|
+
|
|
90
|
+
See `EXAMPLES.md` for detailed code examples.
|
|
91
|
+
|
|
92
|
+
## Validation Checklist
|
|
93
|
+
|
|
94
|
+
What to verify during the review phase before completing the task.
|
|
95
|
+
|
|
96
|
+
## Common Mistakes
|
|
97
|
+
|
|
98
|
+
Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
|
|
99
|
+
|
|
100
|
+
## Integration Notes
|
|
101
|
+
|
|
102
|
+
How this skill interacts with other skills.
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
<!-- Source: EXAMPLES.md -->
|
|
106
|
+
|
|
107
|
+
# adapters Examples — Anti-patterns vs ContextOS Standard
|
|
108
|
+
|
|
109
|
+
## Example 1: Multi-Agent Configuration
|
|
110
|
+
|
|
111
|
+
### Anti-pattern: Manually Syncing 6 Different Rule Files
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
Editing .cursorrules, then forgetting to update CLAUDE.md, then editing copilot-instructions.md.
|
|
115
|
+
Rules diverge across teammates using different IDEs.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Best practice: ContextOS Standard (Single Source of Truth)
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Edit skills once in .agents/core/skills/
|
|
122
|
+
# Compile to all agents with one command:
|
|
123
|
+
node .agents/ctx.js export all
|
|
124
|
+
# Automatically updates .cursorrules, CLAUDE.md, copilot-instructions.md, .aider, .zed
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
<!-- Source: TROUBLESHOOTING.md -->
|
|
128
|
+
|
|
129
|
+
# adapters Troubleshooting & Common Mistakes
|
|
130
|
+
|
|
131
|
+
## 1. Overwriting Custom Configs
|
|
132
|
+
|
|
133
|
+
- **Symptom**: Custom non-ContextOS rules wiped out during export.
|
|
134
|
+
- **Root Cause**: Running export with force flags over unmanaged files.
|
|
135
|
+
- **Fix**: Keep custom project overrides in dedicated config files or use plugin skills.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-diagrams
|
|
3
|
+
description: >
|
|
4
|
+
Interactive, visual architecture and sequence diagrams as code. Generates beautiful, self-contained SVG/HTML diagrams with motion, clear component boundaries, and verifiable data flows.
|
|
5
|
+
---
|
|
6
|
+
# architecture-diagrams
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Visual architecture engineering skill inspired by [tt-a1i/archify](https://github.com/tt-a1i/archify). Replaces static ASCII art and rigid default diagrams with crisp, self-contained SVG and responsive HTML diagrams featuring modern dark-mode palettes, pulse animations for event flows, and strict C4-model component boundaries.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Activate whenever:
|
|
15
|
+
|
|
16
|
+
- Designing or explaining distributed systems, microservices, or full-stack architectures.
|
|
17
|
+
- Visualizing complex auth flows (OAuth2, PKCE), multi-step payment sagas, or CDC outbox data pipelines.
|
|
18
|
+
- User requests an architecture diagram, flow chart, sequence diagram, or visual system design.
|
|
19
|
+
|
|
20
|
+
## Rules & Patterns
|
|
21
|
+
|
|
22
|
+
### 1. Diagram Types Supported
|
|
23
|
+
|
|
24
|
+
1. **System Landscape / C4 Container Diagram**:
|
|
25
|
+
- Clients (Web, Mobile, Third-party) → API Gateway / CDN → Microservices / Serverless → Storage / Event Brokers.
|
|
26
|
+
2. **Sequence Flow Diagram**:
|
|
27
|
+
- Step-by-step lifecycles with synchronous requests, asynchronous pub/sub events, and compensating transactions.
|
|
28
|
+
3. **Data Pipeline & Event-Driven Topology**:
|
|
29
|
+
- Primary DB → Transactional Outbox → CDC (Debezium) → Kafka Topic → Consumers → Materialized Views.
|
|
30
|
+
|
|
31
|
+
### 2. Aesthetic & Visual Invariants
|
|
32
|
+
|
|
33
|
+
- **Dark Theme by Default**: Surface `#0B0F19`, containers `#1E293B`, borders `#334155`, text `#F8FAFC`.
|
|
34
|
+
- **Semantic Component Accents**:
|
|
35
|
+
- Client / Frontend: Sky Blue (`#38BDF8`)
|
|
36
|
+
- API Gateway / Router: Indigo (`#818CF8`)
|
|
37
|
+
- Business Services: Emerald Green (`#34D399`)
|
|
38
|
+
- Databases / Storage: Amber / Orange (`#F59E0B`)
|
|
39
|
+
- Message Brokers / Event Buses: Purple (`#A855F7`)
|
|
40
|
+
- **Active Data-Flow Motion**: Use subtle CSS `@keyframes` on SVG stroke dashes (`stroke-dasharray`, `stroke-dashoffset`) to show active direction of messages and data streams.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Code Examples
|
|
45
|
+
|
|
46
|
+
### Standalone Animated SVG Data-Flow Pattern
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<svg viewBox="0 0 800 200" xmlns="http://www.w3.org/2000/svg" class="bg-slate-950 rounded-xl p-4 w-full">
|
|
50
|
+
<defs>
|
|
51
|
+
<style>
|
|
52
|
+
.flow-line { stroke: #38BDF8; stroke-width: 2; stroke-dasharray: 6,6; animation: flow 1.5s linear infinite; }
|
|
53
|
+
@keyframes flow { to { stroke-dashoffset: -12; } }
|
|
54
|
+
.box { fill: #1E293B; stroke: #334155; stroke-width: 1.5; rx: 8; }
|
|
55
|
+
.text-title { fill: #F8FAFC; font-family: sans-serif; font-size: 14px; font-weight: 600; }
|
|
56
|
+
.text-sub { fill: #94A3B8; font-family: monospace; font-size: 11px; }
|
|
57
|
+
</style>
|
|
58
|
+
</defs>
|
|
59
|
+
|
|
60
|
+
<!-- Client Node -->
|
|
61
|
+
<rect x="30" y="70" width="160" height="60" class="box" />
|
|
62
|
+
<text x="110" y="96" text-anchor="middle" class="text-title">Next.js Client</text>
|
|
63
|
+
<text x="110" y="114" text-anchor="middle" class="text-sub">React 19 / RSC</text>
|
|
64
|
+
|
|
65
|
+
<!-- Data Flow -->
|
|
66
|
+
<line x1="190" y1="100" x2="330" y2="100" class="flow-line" />
|
|
67
|
+
|
|
68
|
+
<!-- API Gateway -->
|
|
69
|
+
<rect x="330" y="70" width="160" height="60" class="box" />
|
|
70
|
+
<text x="410" y="96" text-anchor="middle" class="text-title">API Gateway</text>
|
|
71
|
+
<text x="410" y="114" text-anchor="middle" class="text-sub">Auth & Rate Limiting</text>
|
|
72
|
+
|
|
73
|
+
<!-- Flow to Database -->
|
|
74
|
+
<line x1="490" y1="100" x2="630" y2="100" class="flow-line" />
|
|
75
|
+
|
|
76
|
+
<!-- Database -->
|
|
77
|
+
<rect x="630" y="70" width="140" height="60" class="box" />
|
|
78
|
+
<text x="700" y="96" text-anchor="middle" class="text-title">PostgreSQL</text>
|
|
79
|
+
<text x="700" y="114" text-anchor="middle" class="text-sub">Prisma / Outbox</text>
|
|
80
|
+
</svg>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Validation Checklist
|
|
86
|
+
|
|
87
|
+
- [ ] Diagram clearly identifies all component boundaries, ports, and protocols.
|
|
88
|
+
- [ ] Visual hierarchy is unambiguous (clients on left/top, storage on right/bottom).
|
|
89
|
+
- [ ] Motion/animation is purposeful and lightweight (no heavy canvas frameworks).
|
|
90
|
+
- [ ] Accessible: nodes include semantic labels and readable color contrast.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Common Mistakes
|
|
95
|
+
|
|
96
|
+
- **Messy cross-overs**: Laying out 20 boxes with overlapping lines instead of grouping into clean C4 layers.
|
|
97
|
+
- **Unlabeled connections**: Lines without protocol (HTTPS, gRPC, WSS) or event payload descriptions.
|
|
98
|
+
- **Overwhelming detail**: Drawing internal class diagrams when the user asked for a system-level overview.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Integration Notes
|
|
103
|
+
|
|
104
|
+
- Triggers during `system-design` and `microservices` planning phases.
|
|
105
|
+
- Used to generate visual architecture artifacts in Markdown walkthroughs and specs.
|
|
106
|
+
- Pairs with `ui-ux-pro` for consistent aesthetic styling.
|
|
107
|
+
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brutalist-design
|
|
3
|
+
description: >
|
|
4
|
+
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics.
|
|
5
|
+
---
|
|
6
|
+
# SKILL: Industrial Brutalism & Tactical Telemetry UI
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Advanced proficiency in architecting web interfaces that synthesize mid-century Swiss Typographic design, industrial manufacturing manuals, and retro-futuristic aerospace/military terminal interfaces. This discipline requires absolute mastery over rigid modular grids, extreme typographic scale contrast, purely utilitarian color palettes, and the programmatic simulation of analog degradation (halftones, CRT scanlines, bitmap dithering). The objective is to construct digital environments that project raw functionality, mechanical precision, and high data density, deliberately discarding conventional consumer UI patterns.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- When building data-heavy telemetry dashboards, analytics monitors, trading systems, or developer command centers.
|
|
15
|
+
- When creating editorial portfolios, archival indexes, or technical documentation sites requiring an industrial blueprint aesthetic.
|
|
16
|
+
- When explicitly prompted for "brutalist", "tactical", "terminal", "Swiss print", or "mechanical" aesthetics.
|
|
17
|
+
|
|
18
|
+
## Rules & Patterns
|
|
19
|
+
|
|
20
|
+
### 1. Visual Archetypes
|
|
21
|
+
|
|
22
|
+
Pick ONE per project and commit to it. Do not alternate or mix both modes within the same interface.
|
|
23
|
+
|
|
24
|
+
#### 1.1 Swiss Industrial Print
|
|
25
|
+
|
|
26
|
+
Derived from 1960s corporate identity systems and heavy machinery blueprints.
|
|
27
|
+
|
|
28
|
+
- **Characteristics:** High-contrast light modes (newsprint/off-white substrates). Reliance on monolithic, heavy sans-serif typography. Unforgiving structural grids outlined by visible dividing lines. Aggressive, asymmetric use of negative space punctuated by oversized, viewport-bleeding numerals or letterforms. Heavy use of primary red as an alert/accent color.
|
|
29
|
+
|
|
30
|
+
#### 1.2 Tactical Telemetry & CRT Terminal
|
|
31
|
+
|
|
32
|
+
Derived from classified military databases, legacy mainframes, and aerospace Heads-Up Displays (HUDs).
|
|
33
|
+
|
|
34
|
+
- **Characteristics:** Dark mode exclusivity. High-density tabular data presentation. Absolute dominance of monospaced typography. Integration of technical framing devices (ASCII brackets, crosshairs). Application of simulated hardware limitations (phosphor glow, scanlines, low bit-depth rendering).
|
|
35
|
+
|
|
36
|
+
### 2. Typographic Architecture
|
|
37
|
+
|
|
38
|
+
Typography is the primary structural and decorative infrastructure. Imagery is secondary. The system demands extreme variance in scale, weight, and spacing.
|
|
39
|
+
|
|
40
|
+
#### 2.1 Macro-Typography (Structural Headers)
|
|
41
|
+
|
|
42
|
+
- **Classification:** Neo-Grotesque / Heavy Sans-Serif.
|
|
43
|
+
- **Optimal Web Fonts:** Neue Haas Grotesk (Black), Inter (Extra Bold/Black), Archivo Black, Roboto Flex (Heavy), Monument Extended.
|
|
44
|
+
- **Scale:** Deployed at massive scales using fluid typography (e.g., `clamp(4rem, 10vw, 15rem)`).
|
|
45
|
+
- **Tracking (Letter-spacing):** Extremely tight, often negative (`-0.03em` to `-0.06em`), forcing glyphs to form solid architectural blocks.
|
|
46
|
+
- **Leading (Line-height):** Highly compressed (`0.85` to `0.95`).
|
|
47
|
+
- **Casing:** Exclusively uppercase for structural impact.
|
|
48
|
+
|
|
49
|
+
#### 2.2 Micro-Typography (Data & Telemetry)
|
|
50
|
+
|
|
51
|
+
- **Classification:** Monospace / Technical Sans.
|
|
52
|
+
- **Optimal Web Fonts:** JetBrains Mono, IBM Plex Mono, Space Mono, VT323, Courier Prime.
|
|
53
|
+
- **Scale:** Fixed and small (`10px` to `14px` / `0.7rem` to `0.875rem`).
|
|
54
|
+
- **Tracking:** Generous (`0.05em` to `0.1em`) to simulate mechanical typewriter spacing or terminal matrices.
|
|
55
|
+
- **Leading:** Standard to tight (`1.2` to `1.4`).
|
|
56
|
+
- **Casing:** Exclusively uppercase. Used for all metadata, navigation, unit IDs, and coordinates.
|
|
57
|
+
|
|
58
|
+
#### 2.3 Textural Contrast (Artistic Disruption)
|
|
59
|
+
|
|
60
|
+
- **Classification:** High-Contrast Serif.
|
|
61
|
+
- **Optimal Web Fonts:** Playfair Display, EB Garamond, Times New Roman.
|
|
62
|
+
- **Implementation Parameters:** Used exceedingly sparingly. Must be subjected to heavy post-processing (halftone filters, 1-bit dithering) to degrade vector perfection and create textural juxtaposition against the clean sans-serifs.
|
|
63
|
+
|
|
64
|
+
### 3. Color System
|
|
65
|
+
|
|
66
|
+
The color architecture is uncompromising. Gradients, soft drop shadows, and modern translucency are strictly prohibited. Colors simulate physical media or primitive emissive displays.
|
|
67
|
+
|
|
68
|
+
**CRITICAL: Choose ONE substrate palette per project and use it consistently. Never mix light and dark substrates within the same interface.**
|
|
69
|
+
|
|
70
|
+
#### Swiss Industrial Print Light Substrate
|
|
71
|
+
|
|
72
|
+
- **Background:** `#F4F4F0` or `#EAE8E3` (Matte, unbleached documentation paper).
|
|
73
|
+
- **Foreground:** `#050505` to `#111111` (Carbon Ink).
|
|
74
|
+
- **Accent:** `#E61919` or `#FF2A2A` (Aviation/Hazard Red). This is the ONLY accent color. Used for strike-throughs, thick structural dividing lines, or vital data highlights.
|
|
75
|
+
|
|
76
|
+
#### Tactical Telemetry Dark Substrate
|
|
77
|
+
|
|
78
|
+
- **Background:** `#0A0A0A` or `#121212` (Deactivated CRT. Avoid pure `#000000`).
|
|
79
|
+
- **Foreground:** `#EAEAEA` (White phosphor). This is the primary text color.
|
|
80
|
+
- **Accent:** `#E61919` or `#FF2A2A` (Aviation/Hazard Red). Same red, same rules.
|
|
81
|
+
- **Terminal Green (`#4AF626`):** Optional. Use ONLY for a single specific UI element (e.g., one status indicator or one data readout) — never as a general text color. If it doesn't serve a clear purpose, omit it entirely.
|
|
82
|
+
|
|
83
|
+
### 4. Layout and Spatial Engineering
|
|
84
|
+
|
|
85
|
+
- **The Blueprint Grid:** Strict adherence to CSS Grid architectures. Elements do not float; they are anchored precisely to grid tracks and intersections.
|
|
86
|
+
- **Visible Compartmentalization:** Extensive utilization of solid borders (`1px` or `2px solid`) to delineate distinct zones of information. Horizontal rules (`<hr>`) frequently span the entire container width to segregate operational units.
|
|
87
|
+
- **Bimodal Density:** Layouts oscillate between extreme data density (tightly packed monospace metadata clustered together) and vast expanses of calculated negative space framing macro-typography.
|
|
88
|
+
- **Geometry:** Absolute rejection of `border-radius`. All corners must be exactly 90 degrees to enforce mechanical rigidity.
|
|
89
|
+
|
|
90
|
+
### 5. UI Components and Symbology
|
|
91
|
+
|
|
92
|
+
- **Syntax Decoration:** Utilization of ASCII characters to frame data points (`[ DELIVERY SYSTEMS ]`, `< RE-IND >`, `>>>`, `///`).
|
|
93
|
+
- **Industrial Markers:** Prominent integration of registration (`®`), copyright (`©`), and trademark (`™`) symbols functioning as structural geometric elements rather than legal text.
|
|
94
|
+
- **Technical Assets:** Integration of crosshairs (`+`) at grid intersections, repeating vertical lines (barcodes), thick horizontal warning stripes, and randomized string data (`REV 2.6`, `UNIT / D-01`) to simulate active mechanical processes.
|
|
95
|
+
|
|
96
|
+
### 6. Textural and Post-Processing Effects
|
|
97
|
+
|
|
98
|
+
- **Halftone and 1-Bit Dithering:** Dot-matrix effects via `mix-blend-mode: multiply` overlays combined with SVG radial dot patterns.
|
|
99
|
+
- **CRT Scanlines:** `repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.1) 2px, rgba(0,0,0,0.1) 4px)` on terminal backgrounds.
|
|
100
|
+
- **Mechanical Noise:** Low-opacity SVG static filter on the DOM root to introduce physical grain.
|
|
101
|
+
|
|
102
|
+
### 7. Web Engineering Directives
|
|
103
|
+
|
|
104
|
+
1. **Grid Determinism:** Utilize `display: grid; gap: 1px;` with contrasting parent/child background colors to generate mathematically perfect, razor-thin dividing lines without complex border declarations.
|
|
105
|
+
2. **Semantic Rigidity:** Construct the DOM using precise semantic tags (`<data>`, `<samp>`, `<kbd>`, `<output>`, `<dl>`) to accurately reflect the technical nature of the telemetry.
|
|
106
|
+
3. **Typography Clamping:** Implement CSS `clamp()` functions exclusively for macro-typography to ensure massive text scales aggressively while maintaining structural integrity across viewports.
|
|
107
|
+
|
|
108
|
+
## Code Examples
|
|
109
|
+
|
|
110
|
+
```tsx
|
|
111
|
+
export function TelemetryModule({ unitId, status, metrics }: { unitId: string; status: string; metrics: { label: string; val: string }[] }) {
|
|
112
|
+
return (
|
|
113
|
+
<div className="border-2 border-black dark:border-white bg-[#F4F4F0] dark:bg-[#0A0A0A] font-mono p-4 rounded-none">
|
|
114
|
+
<div className="flex justify-between border-b border-black/30 dark:border-white/30 pb-2 mb-4 text-xs tracking-widest uppercase">
|
|
115
|
+
<span>[ UNIT // {unitId} ]</span>
|
|
116
|
+
<span className="text-[#E61919] font-bold">< STATUS: {status} ></span>
|
|
117
|
+
</div>
|
|
118
|
+
<div className="grid grid-cols-2 gap-px bg-black/20 dark:bg-white/20">
|
|
119
|
+
{metrics.map(m => (
|
|
120
|
+
<div key={m.label} className="bg-[#F4F4F0] dark:bg-[#0A0A0A] p-2">
|
|
121
|
+
<div className="text-[10px] text-black/60 dark:text-white/60 tracking-wider">{m.label}</div>
|
|
122
|
+
<div className="text-sm font-bold tracking-tight">{m.val}</div>
|
|
123
|
+
</div>
|
|
124
|
+
))}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Validation Checklist
|
|
132
|
+
|
|
133
|
+
- [ ] Strict rejection of `border-radius` (all corners 0px / 90 degrees).
|
|
134
|
+
- [ ] Substrate consistency: 100% committed to either Swiss Light or Tactical CRT Dark.
|
|
135
|
+
- [ ] Pure black (`#000000`) avoided for backgrounds.
|
|
136
|
+
- [ ] Monospace typography used for all telemetry, coordinates, and metadata labels.
|
|
137
|
+
- [ ] Dividing lines engineered using solid borders or 1px grid track gaps.
|
|
138
|
+
- [ ] No soft gradients, standard drop shadows, or floating cards.
|
|
139
|
+
|
|
140
|
+
## Common Mistakes
|
|
141
|
+
|
|
142
|
+
- Mixing Swiss Industrial Print and Tactical Telemetry substrates within the same view.
|
|
143
|
+
- Introducing rounded corners (`rounded-md`, `rounded-full`) or pill buttons.
|
|
144
|
+
- Using generic body typefaces without tracking adjustments.
|
|
145
|
+
- Applying subtle pastel colors instead of raw carbon ink, off-white, and hazard red.
|
|
146
|
+
|
|
147
|
+
## Integration Notes
|
|
148
|
+
|
|
149
|
+
- Complements `impeccable-design` for QA checks on contrast and typography.
|
|
150
|
+
- Pairs with `web-accessibility` to guarantee high-contrast readability (AAA ratio).
|
|
151
|
+
|