opencode-starterkit 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/baseline/.env.example +196 -0
- package/baseline/.template-manifest.json +646 -0
- package/baseline/.version +1 -0
- package/baseline/AGENTS.md +410 -0
- package/baseline/AGENT_ALIGNMENT.md +564 -0
- package/baseline/README.md +79 -0
- package/baseline/agent/build.md +373 -0
- package/baseline/agent/explore.md +96 -0
- package/baseline/agent/general.md +186 -0
- package/baseline/agent/painter.md +74 -0
- package/baseline/agent/plan.md +435 -0
- package/baseline/agent/review.md +243 -0
- package/baseline/agent/runner.md +79 -0
- package/baseline/agent/scout.md +100 -0
- package/baseline/agent/vision.md +91 -0
- package/baseline/command/compound.md +143 -0
- package/baseline/command/create.md +213 -0
- package/baseline/command/design.md +112 -0
- package/baseline/command/handoff.md +147 -0
- package/baseline/command/init-context.md +273 -0
- package/baseline/command/init-user.md +105 -0
- package/baseline/command/init.md +117 -0
- package/baseline/command/lfg.md +170 -0
- package/baseline/command/plan.md +355 -0
- package/baseline/command/pr.md +161 -0
- package/baseline/command/research.md +125 -0
- package/baseline/command/resume.md +87 -0
- package/baseline/command/review-codebase.md +131 -0
- package/baseline/command/ship.md +342 -0
- package/baseline/command/start.md +158 -0
- package/baseline/command/status.md +117 -0
- package/baseline/command/ui-review.md +92 -0
- package/baseline/command/ui-slop-check.md +146 -0
- package/baseline/command/verify.md +160 -0
- package/baseline/context/README.md +29 -0
- package/baseline/dcp.jsonc +72 -0
- package/baseline/memory/README.md +89 -0
- package/baseline/memory/_templates/design.md +59 -0
- package/baseline/memory/_templates/prd.md +192 -0
- package/baseline/memory/_templates/project.md +58 -0
- package/baseline/memory/_templates/proposal.md +38 -0
- package/baseline/memory/_templates/roadmap.md +93 -0
- package/baseline/memory/_templates/state.md +89 -0
- package/baseline/memory/_templates/tasks.md +198 -0
- package/baseline/memory/_templates/tech-stack.md +85 -0
- package/baseline/memory/_templates/user.md +26 -0
- package/baseline/memory/project/gotchas.md +67 -0
- package/baseline/memory/project/project.md +92 -0
- package/baseline/memory/project/roadmap.md +142 -0
- package/baseline/memory/project/state.md +84 -0
- package/baseline/memory/project/tech-stack.md +53 -0
- package/baseline/memory/project/user.md +38 -0
- package/baseline/memory/research/benchmark-framework.md +162 -0
- package/baseline/memory/research/ccpm-analysis.md +334 -0
- package/baseline/memory/research/context-management-analysis.md +685 -0
- package/baseline/memory/research/effectiveness-audit.md +213 -0
- package/baseline/memory/research/opencode-mcp-bug-report.md +129 -0
- package/baseline/memory/research/openspec-analysis.md +226 -0
- package/baseline/memory/session-context.md +40 -0
- package/baseline/opencode.json +1431 -0
- package/baseline/opencode.json.tui-migration.bak +1380 -0
- package/baseline/package-lock.json +87 -0
- package/baseline/package.json +21 -0
- package/baseline/plans/1768385996691-silent-wizard.md +247 -0
- package/baseline/plans/1770006237537-mighty-otter.md +418 -0
- package/baseline/plans/1770006913647-glowing-forest.md +170 -0
- package/baseline/plans/1770013678126-witty-planet.md +278 -0
- package/baseline/plans/1770112267595-shiny-rocket.md +258 -0
- package/baseline/plans/swarm-protocol.md +123 -0
- package/baseline/plugin/README.md +70 -0
- package/baseline/plugin/copilot-auth.ts +607 -0
- package/baseline/plugin/lib/capture.ts +177 -0
- package/baseline/plugin/lib/context.ts +198 -0
- package/baseline/plugin/lib/curator.ts +234 -0
- package/baseline/plugin/lib/db/maintenance.ts +312 -0
- package/baseline/plugin/lib/db/observations.ts +299 -0
- package/baseline/plugin/lib/db/pipeline.ts +520 -0
- package/baseline/plugin/lib/db/schema.ts +356 -0
- package/baseline/plugin/lib/db/types.ts +211 -0
- package/baseline/plugin/lib/distill.ts +376 -0
- package/baseline/plugin/lib/inject.ts +126 -0
- package/baseline/plugin/lib/memory-admin-tools.ts +188 -0
- package/baseline/plugin/lib/memory-db.ts +58 -0
- package/baseline/plugin/lib/memory-helpers.ts +111 -0
- package/baseline/plugin/lib/memory-hooks.ts +195 -0
- package/baseline/plugin/lib/memory-tools.ts +341 -0
- package/baseline/plugin/lib/notify.ts +81 -0
- package/baseline/plugin/memory.ts +89 -0
- package/baseline/plugin/notification.ts.bak +64 -0
- package/baseline/plugin/package.json +7 -0
- package/baseline/plugin/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +178 -0
- package/baseline/plugin/sdk/copilot/chat/get-response-metadata.ts +15 -0
- package/baseline/plugin/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-api-types.ts +72 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-chat-language-model.ts +833 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-chat-options.ts +30 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +48 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-prepare-tools.ts +92 -0
- package/baseline/plugin/sdk/copilot/copilot-provider.ts +94 -0
- package/baseline/plugin/sdk/copilot/index.ts +5 -0
- package/baseline/plugin/sdk/copilot/openai-compatible-error.ts +30 -0
- package/baseline/plugin/sessions.ts +428 -0
- package/baseline/plugin/skill-mcp.ts +618 -0
- package/baseline/plugin/tsconfig.json +16 -0
- package/baseline/skill/accessibility-audit/SKILL.md +191 -0
- package/baseline/skill/agent-browser/SKILL.md +413 -0
- package/baseline/skill/agent-teams/SKILL.md +268 -0
- package/baseline/skill/augment-context-engine/SKILL.md +122 -0
- package/baseline/skill/augment-context-engine/mcp.json +6 -0
- package/baseline/skill/beads/SKILL.md +181 -0
- package/baseline/skill/beads/references/BEST_PRACTICES.md +27 -0
- package/baseline/skill/beads/references/BOUNDARIES.md +219 -0
- package/baseline/skill/beads/references/DEPENDENCIES.md +124 -0
- package/baseline/skill/beads/references/EXAMPLES.md +45 -0
- package/baseline/skill/beads/references/FILE_CLAIMING.md +101 -0
- package/baseline/skill/beads/references/GIT_SYNC.md +25 -0
- package/baseline/skill/beads/references/HIERARCHY.md +71 -0
- package/baseline/skill/beads/references/MULTI_AGENT.md +40 -0
- package/baseline/skill/beads/references/RESUMABILITY.md +177 -0
- package/baseline/skill/beads/references/SESSION_PROTOCOL.md +61 -0
- package/baseline/skill/beads/references/TASK_CREATION.md +38 -0
- package/baseline/skill/beads/references/TROUBLESHOOTING.md +38 -0
- package/baseline/skill/beads/references/WORKFLOWS.md +226 -0
- package/baseline/skill/beads-bridge/SKILL.md +321 -0
- package/baseline/skill/brainstorming/SKILL.md +114 -0
- package/baseline/skill/chrome-devtools/SKILL.md +76 -0
- package/baseline/skill/chrome-devtools/mcp.json +19 -0
- package/baseline/skill/cloudflare/SKILL.md +253 -0
- package/baseline/skill/cloudflare/references/agents-sdk/README.md +35 -0
- package/baseline/skill/cloudflare/references/agents-sdk/api.md +100 -0
- package/baseline/skill/cloudflare/references/agents-sdk/configuration.md +99 -0
- package/baseline/skill/cloudflare/references/agents-sdk/gotchas.md +59 -0
- package/baseline/skill/cloudflare/references/agents-sdk/patterns.md +89 -0
- package/baseline/skill/cloudflare/references/ai-gateway/README.md +695 -0
- package/baseline/skill/cloudflare/references/ai-search/README.md +14 -0
- package/baseline/skill/cloudflare/references/ai-search/api.md +38 -0
- package/baseline/skill/cloudflare/references/ai-search/configuration.md +52 -0
- package/baseline/skill/cloudflare/references/ai-search/gotchas.md +41 -0
- package/baseline/skill/cloudflare/references/ai-search/patterns.md +45 -0
- package/baseline/skill/cloudflare/references/analytics-engine/README.md +14 -0
- package/baseline/skill/cloudflare/references/analytics-engine/api.md +27 -0
- package/baseline/skill/cloudflare/references/analytics-engine/configuration.md +45 -0
- package/baseline/skill/cloudflare/references/analytics-engine/gotchas.md +3 -0
- package/baseline/skill/cloudflare/references/analytics-engine/patterns.md +36 -0
- package/baseline/skill/cloudflare/references/api/README.md +21 -0
- package/baseline/skill/cloudflare/references/api/api.md +31 -0
- package/baseline/skill/cloudflare/references/api/configuration.md +20 -0
- package/baseline/skill/cloudflare/references/api/gotchas.md +28 -0
- package/baseline/skill/cloudflare/references/api/patterns.md +47 -0
- package/baseline/skill/cloudflare/references/api-shield/README.md +20 -0
- package/baseline/skill/cloudflare/references/api-shield/api.md +78 -0
- package/baseline/skill/cloudflare/references/api-shield/configuration.md +128 -0
- package/baseline/skill/cloudflare/references/api-shield/gotchas.md +51 -0
- package/baseline/skill/cloudflare/references/api-shield/patterns.md +145 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/README.md +16 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/api.md +50 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/configuration.md +53 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/patterns.md +45 -0
- package/baseline/skill/cloudflare/references/bindings/README.md +14 -0
- package/baseline/skill/cloudflare/references/bindings/api.md +3 -0
- package/baseline/skill/cloudflare/references/bindings/configuration.md +58 -0
- package/baseline/skill/cloudflare/references/bindings/gotchas.md +35 -0
- package/baseline/skill/cloudflare/references/bindings/patterns.md +37 -0
- package/baseline/skill/cloudflare/references/bot-management/README.md +71 -0
- package/baseline/skill/cloudflare/references/bot-management/api.md +168 -0
- package/baseline/skill/cloudflare/references/bot-management/configuration.md +114 -0
- package/baseline/skill/cloudflare/references/bot-management/gotchas.md +99 -0
- package/baseline/skill/cloudflare/references/bot-management/patterns.md +125 -0
- package/baseline/skill/cloudflare/references/browser-rendering/README.md +16 -0
- package/baseline/skill/cloudflare/references/browser-rendering/api.md +54 -0
- package/baseline/skill/cloudflare/references/browser-rendering/configuration.md +47 -0
- package/baseline/skill/cloudflare/references/browser-rendering/gotchas.md +29 -0
- package/baseline/skill/cloudflare/references/browser-rendering/patterns.md +29 -0
- package/baseline/skill/cloudflare/references/c3/README.md +264 -0
- package/baseline/skill/cloudflare/references/cache-reserve/README.md +93 -0
- package/baseline/skill/cloudflare/references/cache-reserve/api.md +176 -0
- package/baseline/skill/cloudflare/references/cache-reserve/configuration.md +164 -0
- package/baseline/skill/cloudflare/references/cache-reserve/gotchas.md +203 -0
- package/baseline/skill/cloudflare/references/cache-reserve/patterns.md +180 -0
- package/baseline/skill/cloudflare/references/containers/README.md +16 -0
- package/baseline/skill/cloudflare/references/containers/api.md +43 -0
- package/baseline/skill/cloudflare/references/containers/configuration.md +56 -0
- package/baseline/skill/cloudflare/references/containers/gotchas.md +21 -0
- package/baseline/skill/cloudflare/references/containers/patterns.md +40 -0
- package/baseline/skill/cloudflare/references/cron-triggers/README.md +85 -0
- package/baseline/skill/cloudflare/references/cron-triggers/api.md +198 -0
- package/baseline/skill/cloudflare/references/cron-triggers/configuration.md +151 -0
- package/baseline/skill/cloudflare/references/cron-triggers/gotchas.md +129 -0
- package/baseline/skill/cloudflare/references/cron-triggers/patterns.md +122 -0
- package/baseline/skill/cloudflare/references/d1/README.md +92 -0
- package/baseline/skill/cloudflare/references/d1/api.md +141 -0
- package/baseline/skill/cloudflare/references/d1/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/d1/gotchas.md +70 -0
- package/baseline/skill/cloudflare/references/d1/patterns.md +144 -0
- package/baseline/skill/cloudflare/references/ddos/README.md +34 -0
- package/baseline/skill/cloudflare/references/ddos/api.md +136 -0
- package/baseline/skill/cloudflare/references/ddos/configuration.md +67 -0
- package/baseline/skill/cloudflare/references/ddos/gotchas.md +114 -0
- package/baseline/skill/cloudflare/references/ddos/patterns.md +158 -0
- package/baseline/skill/cloudflare/references/do-storage/README.md +62 -0
- package/baseline/skill/cloudflare/references/do-storage/api.md +89 -0
- package/baseline/skill/cloudflare/references/do-storage/configuration.md +116 -0
- package/baseline/skill/cloudflare/references/do-storage/gotchas.md +93 -0
- package/baseline/skill/cloudflare/references/do-storage/patterns.md +112 -0
- package/baseline/skill/cloudflare/references/durable-objects/README.md +125 -0
- package/baseline/skill/cloudflare/references/durable-objects/api.md +152 -0
- package/baseline/skill/cloudflare/references/durable-objects/configuration.md +148 -0
- package/baseline/skill/cloudflare/references/durable-objects/gotchas.md +158 -0
- package/baseline/skill/cloudflare/references/durable-objects/patterns.md +255 -0
- package/baseline/skill/cloudflare/references/email-routing/README.md +18 -0
- package/baseline/skill/cloudflare/references/email-routing/api.md +46 -0
- package/baseline/skill/cloudflare/references/email-routing/configuration.md +63 -0
- package/baseline/skill/cloudflare/references/email-routing/gotchas.md +16 -0
- package/baseline/skill/cloudflare/references/email-routing/patterns.md +46 -0
- package/baseline/skill/cloudflare/references/email-workers/README.md +598 -0
- package/baseline/skill/cloudflare/references/hyperdrive/README.md +62 -0
- package/baseline/skill/cloudflare/references/hyperdrive/api.md +137 -0
- package/baseline/skill/cloudflare/references/hyperdrive/configuration.md +133 -0
- package/baseline/skill/cloudflare/references/hyperdrive/gotchas.md +184 -0
- package/baseline/skill/cloudflare/references/hyperdrive/patterns.md +176 -0
- package/baseline/skill/cloudflare/references/images/README.md +14 -0
- package/baseline/skill/cloudflare/references/images/api.md +3 -0
- package/baseline/skill/cloudflare/references/images/configuration.md +45 -0
- package/baseline/skill/cloudflare/references/images/gotchas.md +23 -0
- package/baseline/skill/cloudflare/references/images/patterns.md +31 -0
- package/baseline/skill/cloudflare/references/kv/README.md +60 -0
- package/baseline/skill/cloudflare/references/kv/api.md +114 -0
- package/baseline/skill/cloudflare/references/kv/configuration.md +92 -0
- package/baseline/skill/cloudflare/references/kv/gotchas.md +117 -0
- package/baseline/skill/cloudflare/references/kv/patterns.md +139 -0
- package/baseline/skill/cloudflare/references/miniflare/README.md +64 -0
- package/baseline/skill/cloudflare/references/miniflare/api.md +144 -0
- package/baseline/skill/cloudflare/references/miniflare/configuration.md +203 -0
- package/baseline/skill/cloudflare/references/miniflare/gotchas.md +187 -0
- package/baseline/skill/cloudflare/references/miniflare/patterns.md +211 -0
- package/baseline/skill/cloudflare/references/network-interconnect/README.md +60 -0
- package/baseline/skill/cloudflare/references/network-interconnect/api.md +240 -0
- package/baseline/skill/cloudflare/references/network-interconnect/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/network-interconnect/gotchas.md +171 -0
- package/baseline/skill/cloudflare/references/network-interconnect/patterns.md +171 -0
- package/baseline/skill/cloudflare/references/observability/README.md +18 -0
- package/baseline/skill/cloudflare/references/observability/api.md +51 -0
- package/baseline/skill/cloudflare/references/observability/configuration.md +60 -0
- package/baseline/skill/cloudflare/references/observability/gotchas.md +36 -0
- package/baseline/skill/cloudflare/references/observability/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/pages/README.md +76 -0
- package/baseline/skill/cloudflare/references/pages/api.md +200 -0
- package/baseline/skill/cloudflare/references/pages/configuration.md +228 -0
- package/baseline/skill/cloudflare/references/pages/gotchas.md +161 -0
- package/baseline/skill/cloudflare/references/pages/patterns.md +145 -0
- package/baseline/skill/cloudflare/references/pages-functions/README.md +57 -0
- package/baseline/skill/cloudflare/references/pages-functions/api.md +201 -0
- package/baseline/skill/cloudflare/references/pages-functions/configuration.md +159 -0
- package/baseline/skill/cloudflare/references/pages-functions/gotchas.md +151 -0
- package/baseline/skill/cloudflare/references/pages-functions/patterns.md +190 -0
- package/baseline/skill/cloudflare/references/pipelines/README.md +664 -0
- package/baseline/skill/cloudflare/references/pulumi/README.md +107 -0
- package/baseline/skill/cloudflare/references/pulumi/api.md +194 -0
- package/baseline/skill/cloudflare/references/pulumi/configuration.md +216 -0
- package/baseline/skill/cloudflare/references/pulumi/gotchas.md +223 -0
- package/baseline/skill/cloudflare/references/pulumi/patterns.md +139 -0
- package/baseline/skill/cloudflare/references/queues/README.md +69 -0
- package/baseline/skill/cloudflare/references/queues/api.md +138 -0
- package/baseline/skill/cloudflare/references/queues/configuration.md +125 -0
- package/baseline/skill/cloudflare/references/queues/gotchas.md +112 -0
- package/baseline/skill/cloudflare/references/queues/patterns.md +155 -0
- package/baseline/skill/cloudflare/references/r2/README.md +61 -0
- package/baseline/skill/cloudflare/references/r2/api.md +127 -0
- package/baseline/skill/cloudflare/references/r2/configuration.md +76 -0
- package/baseline/skill/cloudflare/references/r2/gotchas.md +94 -0
- package/baseline/skill/cloudflare/references/r2/patterns.md +127 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/README.md +18 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/api.md +29 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/configuration.md +39 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/patterns.md +46 -0
- package/baseline/skill/cloudflare/references/r2-sql/README.md +512 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/README.md +21 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/api.md +135 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/configuration.md +63 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/gotchas.md +75 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/patterns.md +102 -0
- package/baseline/skill/cloudflare/references/realtimekit/README.md +81 -0
- package/baseline/skill/cloudflare/references/realtimekit/api.md +164 -0
- package/baseline/skill/cloudflare/references/realtimekit/configuration.md +147 -0
- package/baseline/skill/cloudflare/references/realtimekit/gotchas.md +172 -0
- package/baseline/skill/cloudflare/references/realtimekit/patterns.md +155 -0
- package/baseline/skill/cloudflare/references/sandbox/README.md +90 -0
- package/baseline/skill/cloudflare/references/sandbox/api.md +178 -0
- package/baseline/skill/cloudflare/references/sandbox/configuration.md +131 -0
- package/baseline/skill/cloudflare/references/sandbox/gotchas.md +156 -0
- package/baseline/skill/cloudflare/references/sandbox/patterns.md +203 -0
- package/baseline/skill/cloudflare/references/secrets-store/README.md +58 -0
- package/baseline/skill/cloudflare/references/secrets-store/api.md +182 -0
- package/baseline/skill/cloudflare/references/secrets-store/configuration.md +140 -0
- package/baseline/skill/cloudflare/references/secrets-store/gotchas.md +129 -0
- package/baseline/skill/cloudflare/references/secrets-store/patterns.md +218 -0
- package/baseline/skill/cloudflare/references/smart-placement/README.md +91 -0
- package/baseline/skill/cloudflare/references/smart-placement/api.md +139 -0
- package/baseline/skill/cloudflare/references/smart-placement/configuration.md +129 -0
- package/baseline/skill/cloudflare/references/smart-placement/gotchas.md +87 -0
- package/baseline/skill/cloudflare/references/smart-placement/patterns.md +135 -0
- package/baseline/skill/cloudflare/references/snippets/README.md +15 -0
- package/baseline/skill/cloudflare/references/snippets/api.md +47 -0
- package/baseline/skill/cloudflare/references/snippets/configuration.md +33 -0
- package/baseline/skill/cloudflare/references/snippets/gotchas.md +21 -0
- package/baseline/skill/cloudflare/references/snippets/patterns.md +34 -0
- package/baseline/skill/cloudflare/references/spectrum/README.md +16 -0
- package/baseline/skill/cloudflare/references/spectrum/api.md +24 -0
- package/baseline/skill/cloudflare/references/spectrum/configuration.md +43 -0
- package/baseline/skill/cloudflare/references/spectrum/gotchas.md +42 -0
- package/baseline/skill/cloudflare/references/spectrum/patterns.md +40 -0
- package/baseline/skill/cloudflare/references/static-assets/README.md +14 -0
- package/baseline/skill/cloudflare/references/static-assets/api.md +3 -0
- package/baseline/skill/cloudflare/references/static-assets/configuration.md +47 -0
- package/baseline/skill/cloudflare/references/static-assets/gotchas.md +44 -0
- package/baseline/skill/cloudflare/references/static-assets/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/stream/README.md +103 -0
- package/baseline/skill/cloudflare/references/stream/api.md +204 -0
- package/baseline/skill/cloudflare/references/stream/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/stream/gotchas.md +131 -0
- package/baseline/skill/cloudflare/references/stream/patterns.md +152 -0
- package/baseline/skill/cloudflare/references/tail-workers/README.md +640 -0
- package/baseline/skill/cloudflare/references/terraform/README.md +76 -0
- package/baseline/skill/cloudflare/references/terraform/api.md +159 -0
- package/baseline/skill/cloudflare/references/terraform/configuration.md +156 -0
- package/baseline/skill/cloudflare/references/terraform/gotchas.md +207 -0
- package/baseline/skill/cloudflare/references/terraform/patterns.md +135 -0
- package/baseline/skill/cloudflare/references/tunnel/README.md +82 -0
- package/baseline/skill/cloudflare/references/tunnel/api.md +105 -0
- package/baseline/skill/cloudflare/references/tunnel/configuration.md +113 -0
- package/baseline/skill/cloudflare/references/tunnel/gotchas.md +115 -0
- package/baseline/skill/cloudflare/references/tunnel/patterns.md +157 -0
- package/baseline/skill/cloudflare/references/turn/README.md +699 -0
- package/baseline/skill/cloudflare/references/turnstile/README.md +14 -0
- package/baseline/skill/cloudflare/references/turnstile/api.md +3 -0
- package/baseline/skill/cloudflare/references/turnstile/configuration.md +19 -0
- package/baseline/skill/cloudflare/references/turnstile/gotchas.md +27 -0
- package/baseline/skill/cloudflare/references/turnstile/patterns.md +41 -0
- package/baseline/skill/cloudflare/references/vectorize/README.md +682 -0
- package/baseline/skill/cloudflare/references/waf/README.md +14 -0
- package/baseline/skill/cloudflare/references/waf/api.md +3 -0
- package/baseline/skill/cloudflare/references/waf/configuration.md +44 -0
- package/baseline/skill/cloudflare/references/waf/gotchas.md +24 -0
- package/baseline/skill/cloudflare/references/waf/patterns.md +29 -0
- package/baseline/skill/cloudflare/references/web-analytics/README.md +19 -0
- package/baseline/skill/cloudflare/references/web-analytics/api.md +52 -0
- package/baseline/skill/cloudflare/references/web-analytics/configuration.md +31 -0
- package/baseline/skill/cloudflare/references/web-analytics/gotchas.md +28 -0
- package/baseline/skill/cloudflare/references/web-analytics/patterns.md +52 -0
- package/baseline/skill/cloudflare/references/workerd/README.md +47 -0
- package/baseline/skill/cloudflare/references/workerd/api.md +199 -0
- package/baseline/skill/cloudflare/references/workerd/configuration.md +185 -0
- package/baseline/skill/cloudflare/references/workerd/gotchas.md +203 -0
- package/baseline/skill/cloudflare/references/workerd/patterns.md +216 -0
- package/baseline/skill/cloudflare/references/workers/README.md +96 -0
- package/baseline/skill/cloudflare/references/workers/api.md +137 -0
- package/baseline/skill/cloudflare/references/workers/configuration.md +147 -0
- package/baseline/skill/cloudflare/references/workers/gotchas.md +99 -0
- package/baseline/skill/cloudflare/references/workers/patterns.md +149 -0
- package/baseline/skill/cloudflare/references/workers-ai/README.md +116 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/README.md +48 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/api.md +169 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/configuration.md +136 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/patterns.md +170 -0
- package/baseline/skill/cloudflare/references/workers-playground/README.md +16 -0
- package/baseline/skill/cloudflare/references/workers-playground/api.md +20 -0
- package/baseline/skill/cloudflare/references/workers-playground/configuration.md +3 -0
- package/baseline/skill/cloudflare/references/workers-playground/gotchas.md +35 -0
- package/baseline/skill/cloudflare/references/workers-playground/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/workers-vpc/README.md +579 -0
- package/baseline/skill/cloudflare/references/workflows/README.md +62 -0
- package/baseline/skill/cloudflare/references/workflows/api.md +125 -0
- package/baseline/skill/cloudflare/references/workflows/configuration.md +177 -0
- package/baseline/skill/cloudflare/references/workflows/gotchas.md +136 -0
- package/baseline/skill/cloudflare/references/workflows/patterns.md +132 -0
- package/baseline/skill/cloudflare/references/wrangler/README.md +90 -0
- package/baseline/skill/cloudflare/references/wrangler/api.md +140 -0
- package/baseline/skill/cloudflare/references/wrangler/configuration.md +128 -0
- package/baseline/skill/cloudflare/references/wrangler/gotchas.md +93 -0
- package/baseline/skill/cloudflare/references/wrangler/patterns.md +150 -0
- package/baseline/skill/cloudflare/references/zaraz/README.md +360 -0
- package/baseline/skill/code-navigation/SKILL.md +130 -0
- package/baseline/skill/compaction/SKILL.md +317 -0
- package/baseline/skill/condition-based-waiting/SKILL.md +123 -0
- package/baseline/skill/condition-based-waiting/example.ts +158 -0
- package/baseline/skill/context-engineering/SKILL.md +176 -0
- package/baseline/skill/context-initialization/SKILL.md +70 -0
- package/baseline/skill/context-management/SKILL.md +163 -0
- package/baseline/skill/core-data-expert/SKILL.md +93 -0
- package/baseline/skill/core-data-expert/references/batch-operations.md +543 -0
- package/baseline/skill/core-data-expert/references/cloudkit-integration.md +259 -0
- package/baseline/skill/core-data-expert/references/concurrency.md +522 -0
- package/baseline/skill/core-data-expert/references/fetch-requests.md +643 -0
- package/baseline/skill/core-data-expert/references/glossary.md +233 -0
- package/baseline/skill/core-data-expert/references/migration.md +393 -0
- package/baseline/skill/core-data-expert/references/model-configuration.md +597 -0
- package/baseline/skill/core-data-expert/references/performance.md +300 -0
- package/baseline/skill/core-data-expert/references/persistent-history.md +553 -0
- package/baseline/skill/core-data-expert/references/project-audit.md +60 -0
- package/baseline/skill/core-data-expert/references/saving.md +574 -0
- package/baseline/skill/core-data-expert/references/stack-setup.md +625 -0
- package/baseline/skill/core-data-expert/references/testing.md +300 -0
- package/baseline/skill/core-data-expert/references/threading.md +589 -0
- package/baseline/skill/deep-research/SKILL.md +384 -0
- package/baseline/skill/defense-in-depth/SKILL.md +166 -0
- package/baseline/skill/design-system-audit/SKILL.md +153 -0
- package/baseline/skill/development-lifecycle/SKILL.md +356 -0
- package/baseline/skill/dispatching-parallel-agents/SKILL.md +191 -0
- package/baseline/skill/executing-plans/SKILL.md +247 -0
- package/baseline/skill/figma/SKILL.md +224 -0
- package/baseline/skill/finishing-a-development-branch/SKILL.md +357 -0
- package/baseline/skill/frontend-design/SKILL.md +235 -0
- package/baseline/skill/frontend-design/references/animation/motion-advanced.md +224 -0
- package/baseline/skill/frontend-design/references/animation/motion-core.md +181 -0
- package/baseline/skill/frontend-design/references/canvas/execution.md +90 -0
- package/baseline/skill/frontend-design/references/canvas/philosophy.md +94 -0
- package/baseline/skill/frontend-design/references/design/color-system.md +111 -0
- package/baseline/skill/frontend-design/references/design/interaction.md +149 -0
- package/baseline/skill/frontend-design/references/design/typography-rules.md +106 -0
- package/baseline/skill/frontend-design/references/design/ux-writing.md +99 -0
- package/baseline/skill/frontend-design/references/shadcn/accessibility.md +132 -0
- package/baseline/skill/frontend-design/references/shadcn/core-components.md +153 -0
- package/baseline/skill/frontend-design/references/shadcn/form-components.md +158 -0
- package/baseline/skill/frontend-design/references/shadcn/setup.md +69 -0
- package/baseline/skill/frontend-design/references/shadcn/theming.md +152 -0
- package/baseline/skill/frontend-design/references/tailwind/responsive.md +112 -0
- package/baseline/skill/frontend-design/references/tailwind/utilities-layout.md +134 -0
- package/baseline/skill/frontend-design/references/tailwind/utilities-styling.md +165 -0
- package/baseline/skill/frontend-design/references/tailwind/v4-config.md +147 -0
- package/baseline/skill/frontend-design/references/tailwind/v4-features.md +128 -0
- package/baseline/skill/gemini-large-context/SKILL.md +216 -0
- package/baseline/skill/index-knowledge/SKILL.md +413 -0
- package/baseline/skill/jira/SKILL.md +283 -0
- package/baseline/skill/jira/mcp.json +6 -0
- package/baseline/skill/memory-system/SKILL.md +84 -0
- package/baseline/skill/mockup-to-code/SKILL.md +184 -0
- package/baseline/skill/mqdh/SKILL.md +171 -0
- package/baseline/skill/obsidian/SKILL.md +192 -0
- package/baseline/skill/obsidian/mcp.json +22 -0
- package/baseline/skill/opensrc/SKILL.md +127 -0
- package/baseline/skill/opensrc/references/architecture.md +176 -0
- package/baseline/skill/opensrc/references/cli-usage.md +176 -0
- package/baseline/skill/opensrc/references/registry-support.md +137 -0
- package/baseline/skill/pdf-extract/SKILL.md +438 -0
- package/baseline/skill/playwright/SKILL.md +320 -0
- package/baseline/skill/playwright/mcp.json +16 -0
- package/baseline/skill/playwriter/SKILL.md +158 -0
- package/baseline/skill/polar/SKILL.md +102 -0
- package/baseline/skill/prd/SKILL.md +146 -0
- package/baseline/skill/prd-task/SKILL.md +182 -0
- package/baseline/skill/prd-task/references/prd-schema.json +124 -0
- package/baseline/skill/ralph/SKILL.md +296 -0
- package/baseline/skill/react-best-practices/AGENTS.md +2410 -0
- package/baseline/skill/react-best-practices/README.md +123 -0
- package/baseline/skill/react-best-practices/SKILL.md +133 -0
- package/baseline/skill/react-best-practices/metadata.json +15 -0
- package/baseline/skill/react-best-practices/rules/_sections.md +46 -0
- package/baseline/skill/react-best-practices/rules/_template.md +28 -0
- package/baseline/skill/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/baseline/skill/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/baseline/skill/react-best-practices/rules/async-api-routes.md +38 -0
- package/baseline/skill/react-best-practices/rules/async-defer-await.md +80 -0
- package/baseline/skill/react-best-practices/rules/async-dependencies.md +36 -0
- package/baseline/skill/react-best-practices/rules/async-parallel.md +28 -0
- package/baseline/skill/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/baseline/skill/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/baseline/skill/react-best-practices/rules/bundle-conditional.md +31 -0
- package/baseline/skill/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/baseline/skill/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/baseline/skill/react-best-practices/rules/bundle-preload.md +50 -0
- package/baseline/skill/react-best-practices/rules/client-event-listeners.md +74 -0
- package/baseline/skill/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/baseline/skill/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/baseline/skill/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/baseline/skill/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/baseline/skill/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/baseline/skill/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/baseline/skill/react-best-practices/rules/js-cache-storage.md +70 -0
- package/baseline/skill/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/baseline/skill/react-best-practices/rules/js-early-exit.md +50 -0
- package/baseline/skill/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/baseline/skill/react-best-practices/rules/js-index-maps.md +37 -0
- package/baseline/skill/react-best-practices/rules/js-length-check-first.md +49 -0
- package/baseline/skill/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/baseline/skill/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/baseline/skill/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/baseline/skill/react-best-practices/rules/rendering-activity.md +26 -0
- package/baseline/skill/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/baseline/skill/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/baseline/skill/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/baseline/skill/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/baseline/skill/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/baseline/skill/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/baseline/skill/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/baseline/skill/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/baseline/skill/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/baseline/skill/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/baseline/skill/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/baseline/skill/react-best-practices/rules/rerender-memo.md +44 -0
- package/baseline/skill/react-best-practices/rules/rerender-transitions.md +40 -0
- package/baseline/skill/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/baseline/skill/react-best-practices/rules/server-cache-lru.md +41 -0
- package/baseline/skill/react-best-practices/rules/server-cache-react.md +76 -0
- package/baseline/skill/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/baseline/skill/react-best-practices/rules/server-serialization.md +38 -0
- package/baseline/skill/receiving-code-review/SKILL.md +252 -0
- package/baseline/skill/requesting-code-review/SKILL.md +397 -0
- package/baseline/skill/requesting-code-review/review.md +160 -0
- package/baseline/skill/resend/SKILL.md +177 -0
- package/baseline/skill/resend/references/react-email.md +287 -0
- package/baseline/skill/resend/references/receive-email.md +248 -0
- package/baseline/skill/resend/references/send-email.md +318 -0
- package/baseline/skill/root-cause-tracing/SKILL.md +192 -0
- package/baseline/skill/root-cause-tracing/find-polluter.sh +63 -0
- package/baseline/skill/session-management/SKILL.md +9 -0
- package/baseline/skill/sharing-skills/SKILL.md +214 -0
- package/baseline/skill/skill-creator/SKILL.md +156 -0
- package/baseline/skill/source-code-research/SKILL.md +293 -0
- package/baseline/skill/source-code-research/references/analysis-tips.md +43 -0
- package/baseline/skill/source-code-research/references/anti-patterns.md +36 -0
- package/baseline/skill/source-code-research/references/common-patterns.md +57 -0
- package/baseline/skill/source-code-research/references/example-workflow.md +60 -0
- package/baseline/skill/source-code-research/references/further-reading.md +5 -0
- package/baseline/skill/source-code-research/references/source-structure.md +45 -0
- package/baseline/skill/stitch/SKILL.md +147 -0
- package/baseline/skill/stitch/mcp.json +9 -0
- package/baseline/skill/structured-edit/SKILL.md +181 -0
- package/baseline/skill/subagent-driven-development/SKILL.md +237 -0
- package/baseline/skill/supabase/SKILL.md +130 -0
- package/baseline/skill/supabase/mcp.json +27 -0
- package/baseline/skill/supabase-postgres-best-practices/AGENTS.md +1490 -0
- package/baseline/skill/supabase-postgres-best-practices/SKILL.md +65 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
- package/baseline/skill/swarm-coordination/SKILL.md +179 -0
- package/baseline/skill/swarm-coordination/references/architecture.md +39 -0
- package/baseline/skill/swarm-coordination/references/delegation-worker-protocol.md +145 -0
- package/baseline/skill/swarm-coordination/references/dependency-graph.md +50 -0
- package/baseline/skill/swarm-coordination/references/drift-check.md +90 -0
- package/baseline/skill/swarm-coordination/references/integration-beads.md +20 -0
- package/baseline/skill/swarm-coordination/references/launch-flow.md +186 -0
- package/baseline/skill/swarm-coordination/references/reconciler.md +172 -0
- package/baseline/skill/swarm-coordination/references/tier-enforcement.md +78 -0
- package/baseline/skill/swarm-coordination/references/tmux-integration.md +134 -0
- package/baseline/skill/swift-concurrency/SKILL.md +266 -0
- package/baseline/skill/swift-concurrency/references/actors.md +640 -0
- package/baseline/skill/swift-concurrency/references/async-algorithms.md +822 -0
- package/baseline/skill/swift-concurrency/references/async-await-basics.md +249 -0
- package/baseline/skill/swift-concurrency/references/async-sequences.md +670 -0
- package/baseline/skill/swift-concurrency/references/core-data.md +533 -0
- package/baseline/skill/swift-concurrency/references/glossary.md +128 -0
- package/baseline/skill/swift-concurrency/references/linting.md +142 -0
- package/baseline/skill/swift-concurrency/references/memory-management.md +542 -0
- package/baseline/skill/swift-concurrency/references/migration.md +1076 -0
- package/baseline/skill/swift-concurrency/references/performance.md +574 -0
- package/baseline/skill/swift-concurrency/references/sendable.md +578 -0
- package/baseline/skill/swift-concurrency/references/tasks.md +604 -0
- package/baseline/skill/swift-concurrency/references/testing.md +565 -0
- package/baseline/skill/swift-concurrency/references/threading.md +452 -0
- package/baseline/skill/swiftui-expert-skill/SKILL.md +329 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-advanced.md +351 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/baseline/skill/swiftui-expert-skill/references/image-optimization.md +286 -0
- package/baseline/skill/swiftui-expert-skill/references/layout-best-practices.md +312 -0
- package/baseline/skill/swiftui-expert-skill/references/liquid-glass.md +377 -0
- package/baseline/skill/swiftui-expert-skill/references/list-patterns.md +153 -0
- package/baseline/skill/swiftui-expert-skill/references/modern-apis.md +400 -0
- package/baseline/skill/swiftui-expert-skill/references/performance-patterns.md +377 -0
- package/baseline/skill/swiftui-expert-skill/references/scroll-patterns.md +305 -0
- package/baseline/skill/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
- package/baseline/skill/swiftui-expert-skill/references/state-management.md +447 -0
- package/baseline/skill/swiftui-expert-skill/references/text-formatting.md +285 -0
- package/baseline/skill/swiftui-expert-skill/references/view-structure.md +276 -0
- package/baseline/skill/systematic-debugging/SKILL.md +402 -0
- package/baseline/skill/test-driven-development/SKILL.md +388 -0
- package/baseline/skill/testing-anti-patterns/SKILL.md +333 -0
- package/baseline/skill/testing-skills-with-subagents/SKILL.md +405 -0
- package/baseline/skill/tilth-cli/SKILL.md +180 -0
- package/baseline/skill/tool-priority/SKILL.md +299 -0
- package/baseline/skill/ui-ux-research/SKILL.md +9 -0
- package/baseline/skill/using-git-worktrees/SKILL.md +259 -0
- package/baseline/skill/using-skills/SKILL.md +117 -0
- package/baseline/skill/v0/SKILL.md +158 -0
- package/baseline/skill/v1-run/SKILL.md +175 -0
- package/baseline/skill/v1-run/mcp.json +6 -0
- package/baseline/skill/vercel-deploy-claimable/SKILL.md +124 -0
- package/baseline/skill/vercel-deploy-claimable/scripts/deploy.sh +249 -0
- package/baseline/skill/verification-before-completion/SKILL.md +236 -0
- package/baseline/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +171 -0
- package/baseline/skill/visual-analysis/SKILL.md +154 -0
- package/baseline/skill/web-design-guidelines/SKILL.md +46 -0
- package/baseline/skill/writing-plans/SKILL.md +320 -0
- package/baseline/skill/writing-skills/SKILL.md +287 -0
- package/baseline/skill/writing-skills/anthropic-best-practices.md +1173 -0
- package/baseline/skill/writing-skills/graphviz-conventions.dot +172 -0
- package/baseline/skill/writing-skills/persuasion-principles.md +220 -0
- package/baseline/skill/writing-skills/references/anti-patterns.md +25 -0
- package/baseline/skill/writing-skills/references/claude-search-optimization.md +140 -0
- package/baseline/skill/writing-skills/references/discovery-workflow.md +11 -0
- package/baseline/skill/writing-skills/references/file-organization.md +32 -0
- package/baseline/skill/writing-skills/references/flowcharts-and-examples.md +57 -0
- package/baseline/skill/writing-skills/references/rationalization-hardening.md +75 -0
- package/baseline/skill/writing-skills/references/testing-skill-types.md +52 -0
- package/baseline/tool/context7.ts +191 -0
- package/baseline/tool/grepsearch.ts +143 -0
- package/baseline/tsconfig.json +21 -0
- package/baseline/tui.json +15 -0
- package/bin/mrc-opc.mjs +25 -0
- package/bin/ocp.mjs +25 -0
- package/bin/opc.mjs +25 -0
- package/bin/opencode-starterkit.mjs +25 -0
- package/docs/reports/2026-03-18-memory-db-architecture-note.md +47 -0
- package/docs/reports/2026-03-18-vat-opencode-classification-matrix.md +180 -0
- package/package.json +25 -0
- package/src/cli.mjs +41 -0
- package/src/config-merge.mjs +61 -0
- package/src/constants.mjs +58 -0
- package/src/fs-utils.mjs +46 -0
- package/src/install-global.mjs +102 -0
- package/src/install-project.mjs +81 -0
- package/src/memory-bootstrap.mjs +29 -0
- package/src/prompt.mjs +31 -0
- package/src/templates.mjs +31 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Interaction Design
|
|
2
|
+
|
|
3
|
+
## The 8 Interactive States
|
|
4
|
+
|
|
5
|
+
Every interactive element must design for ALL of these:
|
|
6
|
+
|
|
7
|
+
| State | When | Visual Treatment |
|
|
8
|
+
| -------- | --------------------- | --------------------------------------------- |
|
|
9
|
+
| Default | Resting | Base appearance |
|
|
10
|
+
| Hover | Cursor over (desktop) | Subtle shift — color, shadow, or translate |
|
|
11
|
+
| Focus | Keyboard navigation | `:focus-visible` ring (NOT `:focus`) |
|
|
12
|
+
| Active | Being pressed/clicked | Compressed/depressed feedback |
|
|
13
|
+
| Disabled | Not available | Reduced opacity (0.5) + `cursor: not-allowed` |
|
|
14
|
+
| Loading | Processing | Spinner or skeleton, disable interaction |
|
|
15
|
+
| Error | Validation failed | Red border + error message below |
|
|
16
|
+
| Success | Action completed | Green confirmation, brief |
|
|
17
|
+
|
|
18
|
+
## Focus Management
|
|
19
|
+
|
|
20
|
+
```css
|
|
21
|
+
/* Remove default focus for mouse, show for keyboard */
|
|
22
|
+
:focus:not(:focus-visible) {
|
|
23
|
+
outline: none;
|
|
24
|
+
}
|
|
25
|
+
:focus-visible {
|
|
26
|
+
outline: 2px solid var(--color-primary);
|
|
27
|
+
outline-offset: 2px;
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Focus ring rules:**
|
|
32
|
+
|
|
33
|
+
- 2-3px thick
|
|
34
|
+
- Offset from element edge
|
|
35
|
+
- 3:1 minimum contrast against adjacent colors
|
|
36
|
+
- Consistent style across ALL interactive elements
|
|
37
|
+
|
|
38
|
+
## Native Dialog + Inert
|
|
39
|
+
|
|
40
|
+
Use `<dialog>` with the `inert` attribute — eliminates complex focus-trapping JS:
|
|
41
|
+
|
|
42
|
+
```html
|
|
43
|
+
<dialog id="modal">
|
|
44
|
+
<form method="dialog">
|
|
45
|
+
<h2>Confirm action</h2>
|
|
46
|
+
<button value="cancel">Cancel</button>
|
|
47
|
+
<button value="confirm">Confirm</button>
|
|
48
|
+
</form>
|
|
49
|
+
</dialog>
|
|
50
|
+
|
|
51
|
+
<main id="content">…</main>
|
|
52
|
+
|
|
53
|
+
<script>
|
|
54
|
+
const modal = document.getElementById("modal");
|
|
55
|
+
modal.showModal();
|
|
56
|
+
document.getElementById("content").inert = true;
|
|
57
|
+
</script>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Popover API
|
|
61
|
+
|
|
62
|
+
For tooltips, dropdowns, and popovers — light-dismiss, proper stacking, accessible by default:
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<button popovertarget="menu">Options</button>
|
|
66
|
+
<div id="menu" popover>
|
|
67
|
+
<button>Edit</button>
|
|
68
|
+
<button>Delete</button>
|
|
69
|
+
</div>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
No z-index wars. No portal wrappers. Built-in light dismiss.
|
|
73
|
+
|
|
74
|
+
## Form Validation Timing
|
|
75
|
+
|
|
76
|
+
- **Validate on blur**, not on keystroke (exception: password strength meters)
|
|
77
|
+
- Show errors below the field, not in toast/alert
|
|
78
|
+
- Inline validation: red border + message appears when field loses focus and is invalid
|
|
79
|
+
- Clear error when user starts correcting
|
|
80
|
+
|
|
81
|
+
## Loading Patterns
|
|
82
|
+
|
|
83
|
+
| Pattern | Use When | Why |
|
|
84
|
+
| ---------------- | --------------------------------- | -------------------------------------- |
|
|
85
|
+
| Skeleton screens | Page/component loading | Previews content shape, feels faster |
|
|
86
|
+
| Inline spinner | Button action processing | Keeps context, shows progress |
|
|
87
|
+
| Progress bar | Known duration (upload, download) | Sets expectations |
|
|
88
|
+
| Optimistic UI | Low-stakes actions (like, toggle) | Update immediately, sync in background |
|
|
89
|
+
|
|
90
|
+
**Avoid**: Full-page spinners, blocking modals for non-destructive actions.
|
|
91
|
+
|
|
92
|
+
## Undo Over Confirmation
|
|
93
|
+
|
|
94
|
+
Users click through confirmation dialogs mindlessly. Prefer undo:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
❌ "Are you sure you want to delete?" → [Cancel] [Delete]
|
|
98
|
+
✅ Item deleted. [Undo] (5 second window)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Exception: irreversible actions with severe consequences (account deletion, payment).
|
|
102
|
+
|
|
103
|
+
## Touch Target Expansion
|
|
104
|
+
|
|
105
|
+
Visual size can be small; tap target must be 44x44px minimum:
|
|
106
|
+
|
|
107
|
+
```css
|
|
108
|
+
.icon-button {
|
|
109
|
+
width: 24px;
|
|
110
|
+
height: 24px;
|
|
111
|
+
position: relative;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.icon-button::before {
|
|
115
|
+
content: "";
|
|
116
|
+
position: absolute;
|
|
117
|
+
inset: -10px; /* Expands tap area to 44x44 */
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Scroll Behavior
|
|
122
|
+
|
|
123
|
+
```css
|
|
124
|
+
html {
|
|
125
|
+
scroll-behavior: smooth;
|
|
126
|
+
scroll-padding-top: 80px; /* Account for sticky header */
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@media (prefers-reduced-motion: reduce) {
|
|
130
|
+
html {
|
|
131
|
+
scroll-behavior: auto;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Z-Index Scale
|
|
137
|
+
|
|
138
|
+
Named semantic layers prevent z-index wars:
|
|
139
|
+
|
|
140
|
+
```css
|
|
141
|
+
@theme {
|
|
142
|
+
--z-dropdown: 10;
|
|
143
|
+
--z-sticky: 20;
|
|
144
|
+
--z-modal-backdrop: 30;
|
|
145
|
+
--z-modal: 40;
|
|
146
|
+
--z-toast: 50;
|
|
147
|
+
--z-tooltip: 60;
|
|
148
|
+
}
|
|
149
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Typography Rules
|
|
2
|
+
|
|
3
|
+
## Core Principles
|
|
4
|
+
|
|
5
|
+
Typography carries hierarchy before color or decoration. Prioritize readability, rhythm, and intent.
|
|
6
|
+
|
|
7
|
+
- Use a single type scale ratio across the interface
|
|
8
|
+
- Keep body text highly readable before styling display text
|
|
9
|
+
- Limit font families: one display + one body (optional mono for code/data)
|
|
10
|
+
- Use weight and size for hierarchy before using color
|
|
11
|
+
|
|
12
|
+
## Fluid Type with clamp()
|
|
13
|
+
|
|
14
|
+
Use fluid sizing for responsive typography without breakpoint jumps:
|
|
15
|
+
|
|
16
|
+
```css
|
|
17
|
+
@theme {
|
|
18
|
+
--text-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
|
|
19
|
+
--text-sm: clamp(0.875rem, 0.84rem + 0.2vw, 0.9375rem);
|
|
20
|
+
--text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
|
|
21
|
+
--text-lg: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
|
|
22
|
+
--text-xl: clamp(1.5rem, 1.35rem + 0.75vw, 2rem);
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Never use fixed `px` for body text.
|
|
27
|
+
|
|
28
|
+
## Modular Scale
|
|
29
|
+
|
|
30
|
+
Pick one ratio and stick to it:
|
|
31
|
+
|
|
32
|
+
- **1.25** (major third) for practical UI
|
|
33
|
+
- **1.333** (perfect fourth) for editorial styles
|
|
34
|
+
|
|
35
|
+
Limit to 5-7 text sizes. Too many sizes destroys rhythm.
|
|
36
|
+
|
|
37
|
+
## Line Length and Rhythm
|
|
38
|
+
|
|
39
|
+
- Body measure: `max-width: 65ch`
|
|
40
|
+
- Comfortable line height: `1.45-1.7` for body text
|
|
41
|
+
- Tight headings: `1.05-1.25`
|
|
42
|
+
- Keep spacing tied to text rhythm (4pt system)
|
|
43
|
+
|
|
44
|
+
```css
|
|
45
|
+
.article {
|
|
46
|
+
font-size: var(--text-base);
|
|
47
|
+
line-height: 1.6;
|
|
48
|
+
max-width: 65ch;
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Font Selection
|
|
53
|
+
|
|
54
|
+
Avoid default AI fingerprints:
|
|
55
|
+
|
|
56
|
+
- Banned as primary display fonts: Inter, Roboto, Arial, Open Sans, Lato, Montserrat, Space Grotesk, system-ui
|
|
57
|
+
|
|
58
|
+
Preferred directions:
|
|
59
|
+
|
|
60
|
+
- Sans: Instrument Sans, Plus Jakarta Sans, Outfit, Onest, Figtree, Urbanist
|
|
61
|
+
- Editorial serif: Fraunces, Newsreader
|
|
62
|
+
|
|
63
|
+
## OpenType Features
|
|
64
|
+
|
|
65
|
+
Use OpenType intentionally:
|
|
66
|
+
|
|
67
|
+
```css
|
|
68
|
+
.data-table {
|
|
69
|
+
font-variant-numeric: tabular-nums;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.recipe {
|
|
73
|
+
font-variant-numeric: diagonal-fractions;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.abbrev {
|
|
77
|
+
font-variant-caps: all-small-caps;
|
|
78
|
+
letter-spacing: 0.04em;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Dark Mode Typography
|
|
83
|
+
|
|
84
|
+
Light-on-dark text appears heavier. Adjust:
|
|
85
|
+
|
|
86
|
+
- Increase line height by `+0.05` to `+0.1`
|
|
87
|
+
- Reduce font weight if text feels too dense
|
|
88
|
+
- Avoid pure white text; use slightly tinted near-white
|
|
89
|
+
|
|
90
|
+
```css
|
|
91
|
+
@media (prefers-color-scheme: dark) {
|
|
92
|
+
body {
|
|
93
|
+
line-height: 1.65;
|
|
94
|
+
color: oklch(0.93 0.01 264);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Quick Audit Checklist
|
|
100
|
+
|
|
101
|
+
- [ ] Body text uses `rem` or `em`, not `px`
|
|
102
|
+
- [ ] Type scale uses one ratio (1.25 or 1.333)
|
|
103
|
+
- [ ] Body lines capped around 65ch
|
|
104
|
+
- [ ] Headings and body have distinct line-height behavior
|
|
105
|
+
- [ ] OpenType features used for data/fractions/abbreviations where relevant
|
|
106
|
+
- [ ] Dark mode typography adjusted (not just color-inverted)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# UX Writing
|
|
2
|
+
|
|
3
|
+
## Button Labels
|
|
4
|
+
|
|
5
|
+
Specific verb + object. Never generic:
|
|
6
|
+
|
|
7
|
+
| Bad | Good | Why |
|
|
8
|
+
| ---------- | --------------- | ------------------------------ |
|
|
9
|
+
| OK | Save changes | Says what happens |
|
|
10
|
+
| Submit | Create account | Describes the outcome |
|
|
11
|
+
| Yes | Delete message | Confirms what gets deleted |
|
|
12
|
+
| Cancel | Keep editing | Tells user what "cancel" means |
|
|
13
|
+
| Click here | Download report | Verb + object, no "click" |
|
|
14
|
+
|
|
15
|
+
## Error Messages
|
|
16
|
+
|
|
17
|
+
Three-part formula — every time:
|
|
18
|
+
|
|
19
|
+
1. **What happened** (not "Error occurred")
|
|
20
|
+
2. **Why** (if known)
|
|
21
|
+
3. **How to fix**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Bad: "Error: Invalid input"
|
|
26
|
+
Bad: "Something went wrong"
|
|
27
|
+
Bad: "Oops! That didn't work"
|
|
28
|
+
|
|
29
|
+
Good: "Email address is invalid. Check for typos or use a different address."
|
|
30
|
+
Good: "Payment declined — your card issuer rejected the charge. Try a different card or contact your bank."
|
|
31
|
+
Good: "File too large (52 MB). Maximum size is 25 MB. Compress the file or split it into parts."
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Never use humor for errors.** Users are frustrated — be helpful, not cute.
|
|
35
|
+
|
|
36
|
+
## Empty States
|
|
37
|
+
|
|
38
|
+
Empty states are **onboarding opportunities**, not blank screens:
|
|
39
|
+
|
|
40
|
+
1. **Acknowledge**: "No messages yet"
|
|
41
|
+
2. **Explain value**: "Messages from your team will appear here"
|
|
42
|
+
3. **Clear action**: [Start a conversation]
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Bad: (blank white space)
|
|
47
|
+
Bad: "No data"
|
|
48
|
+
Bad: "Nothing to show"
|
|
49
|
+
|
|
50
|
+
Good: "No projects yet — Create your first project to get started" [Create project]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Confirmation vs Information
|
|
54
|
+
|
|
55
|
+
| Type | Pattern | Example |
|
|
56
|
+
| ----------- | ----------------------------------------- | -------------------------------------- |
|
|
57
|
+
| Success | Brief toast (auto-dismiss 3-5s) | "Changes saved" |
|
|
58
|
+
| Warning | Inline banner (persistent, dismissible) | "Your trial ends in 3 days" |
|
|
59
|
+
| Error | Inline at source (persistent until fixed) | "Password must be 8+ characters" |
|
|
60
|
+
| Destructive | Confirmation dialog (requires action) | "Delete account? This can't be undone" |
|
|
61
|
+
|
|
62
|
+
## Consistent Terminology
|
|
63
|
+
|
|
64
|
+
Pick ONE term and use it everywhere:
|
|
65
|
+
|
|
66
|
+
| Pick one | Not these |
|
|
67
|
+
| ---------------- | ----------------------------------- |
|
|
68
|
+
| Delete | Remove, Trash, Erase, Destroy |
|
|
69
|
+
| Settings | Preferences, Options, Configuration |
|
|
70
|
+
| Log in / Log out | Sign in / Sign out (pick a pair) |
|
|
71
|
+
| Save | Submit, Apply, Update, Confirm |
|
|
72
|
+
|
|
73
|
+
## Voice vs Tone
|
|
74
|
+
|
|
75
|
+
- **Voice** = consistent brand personality (always the same)
|
|
76
|
+
- **Tone** = adapts to moment:
|
|
77
|
+
- Success → celebratory, brief
|
|
78
|
+
- Error → empathetic, helpful
|
|
79
|
+
- Onboarding → encouraging, clear
|
|
80
|
+
- Warning → direct, specific
|
|
81
|
+
|
|
82
|
+
## Internationalization
|
|
83
|
+
|
|
84
|
+
- **Plan for 30% text expansion** — German, French, Finnish expand significantly
|
|
85
|
+
- Design layouts with flexible text containers
|
|
86
|
+
- Never truncate translated text without tooltip/expansion
|
|
87
|
+
- Use ICU message format for plurals: `{count, plural, one {# item} other {# items}}`
|
|
88
|
+
- Right-to-left (RTL) support: use logical properties (`margin-inline-start` not `margin-left`)
|
|
89
|
+
|
|
90
|
+
## Microcopy Checklist
|
|
91
|
+
|
|
92
|
+
- [ ] All buttons use verb + object
|
|
93
|
+
- [ ] All errors follow 3-part formula
|
|
94
|
+
- [ ] All empty states have acknowledgment + value + action
|
|
95
|
+
- [ ] Terminology is consistent across all screens
|
|
96
|
+
- [ ] No humor in error states
|
|
97
|
+
- [ ] No "click here" or "click below"
|
|
98
|
+
- [ ] No ALL CAPS for body text (small-caps for abbreviations only)
|
|
99
|
+
- [ ] Loading states have context ("Loading messages..." not "Loading...")
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# shadcn/ui Accessibility
|
|
2
|
+
|
|
3
|
+
ARIA patterns, keyboard navigation, screen reader support via Radix UI.
|
|
4
|
+
|
|
5
|
+
## Radix Foundation
|
|
6
|
+
|
|
7
|
+
Built-in: keyboard navigation, screen reader announcements, focus management, ARIA automatic.
|
|
8
|
+
|
|
9
|
+
## Keyboard Navigation
|
|
10
|
+
|
|
11
|
+
### Focus Management
|
|
12
|
+
```tsx
|
|
13
|
+
<Button className="focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
|
|
14
|
+
|
|
15
|
+
<!-- Skip link -->
|
|
16
|
+
<a href="#main" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2">
|
|
17
|
+
Skip to content
|
|
18
|
+
</a>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Dialog
|
|
22
|
+
Focus trapped automatically. Esc closes, Tab cycles.
|
|
23
|
+
|
|
24
|
+
### Dropdown/Menu
|
|
25
|
+
- Space/Enter: Open
|
|
26
|
+
- Arrow Up/Down: Navigate
|
|
27
|
+
- Esc: Close
|
|
28
|
+
- Tab: Close and move focus
|
|
29
|
+
|
|
30
|
+
## Screen Reader
|
|
31
|
+
|
|
32
|
+
### ARIA Labels
|
|
33
|
+
```tsx
|
|
34
|
+
<Button aria-label="Close dialog"><X /></Button>
|
|
35
|
+
<Input aria-label="Email address" type="email" />
|
|
36
|
+
|
|
37
|
+
<Button aria-describedby="delete-desc">Delete</Button>
|
|
38
|
+
<p id="delete-desc" className="sr-only">Permanently deletes account</p>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Screen Reader Only
|
|
42
|
+
```tsx
|
|
43
|
+
<Button>
|
|
44
|
+
<Trash className="h-4 w-4" />
|
|
45
|
+
<span className="sr-only">Delete item</span>
|
|
46
|
+
</Button>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Live Regions
|
|
50
|
+
```tsx
|
|
51
|
+
<div aria-live="polite">{message}</div>
|
|
52
|
+
<div aria-live="assertive">{error}</div>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Forms
|
|
56
|
+
|
|
57
|
+
### Labels
|
|
58
|
+
```tsx
|
|
59
|
+
<Label htmlFor="email">Email</Label>
|
|
60
|
+
<Input id="email" type="email" />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Validation
|
|
64
|
+
```tsx
|
|
65
|
+
<Input aria-invalid={!!error} aria-describedby={error ? "email-error" : undefined} />
|
|
66
|
+
<FormMessage id="email-error" />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Required Fields
|
|
70
|
+
```tsx
|
|
71
|
+
<Label htmlFor="name">
|
|
72
|
+
Name <span className="text-destructive">*</span>
|
|
73
|
+
<span className="sr-only">(required)</span>
|
|
74
|
+
</Label>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Fieldset
|
|
78
|
+
```tsx
|
|
79
|
+
<fieldset>
|
|
80
|
+
<legend className="text-lg font-semibold mb-4">Contact Info</legend>
|
|
81
|
+
<FormField name="email" />
|
|
82
|
+
</fieldset>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Color Contrast
|
|
86
|
+
|
|
87
|
+
WCAG AA: 4.5:1 normal text, 3:1 large text.
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
// Good
|
|
91
|
+
<p className="text-foreground">Primary</p>
|
|
92
|
+
<p className="text-muted-foreground">Secondary</p>
|
|
93
|
+
|
|
94
|
+
// Avoid
|
|
95
|
+
<p className="text-gray-400">Hard to read</p>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Focus Indicators
|
|
99
|
+
|
|
100
|
+
Always visible:
|
|
101
|
+
```tsx
|
|
102
|
+
<Button className="focus-visible:ring-2 focus-visible:ring-ring">
|
|
103
|
+
|
|
104
|
+
// Never: focus:outline-none without replacement
|
|
105
|
+
// Use focus-visible instead
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Motion Preferences
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
@media (prefers-reduced-motion: reduce) {
|
|
112
|
+
* { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
<div className="transition-all motion-reduce:transition-none">
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Checklist
|
|
121
|
+
|
|
122
|
+
- [ ] All interactive elements keyboard accessible
|
|
123
|
+
- [ ] Focus indicators visible
|
|
124
|
+
- [ ] Screen reader announces correctly
|
|
125
|
+
- [ ] Form errors announced
|
|
126
|
+
- [ ] Color contrast WCAG AA
|
|
127
|
+
- [ ] Semantic HTML
|
|
128
|
+
- [ ] ARIA labels for icon buttons
|
|
129
|
+
- [ ] Modal focus trap works
|
|
130
|
+
- [ ] Respects reduced motion
|
|
131
|
+
- [ ] Works at 200% zoom
|
|
132
|
+
- [ ] Skip links provided
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# shadcn/ui Core Components
|
|
2
|
+
|
|
3
|
+
Button, Card, Dialog, Select, Tabs, Toast, Command, Sidebar, Table.
|
|
4
|
+
|
|
5
|
+
## Button
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Button } from "@/components/ui/button"
|
|
9
|
+
|
|
10
|
+
<Button variant="default">Default</Button>
|
|
11
|
+
<Button variant="destructive">Delete</Button>
|
|
12
|
+
<Button variant="outline">Outline</Button>
|
|
13
|
+
<Button variant="secondary">Secondary</Button>
|
|
14
|
+
<Button variant="ghost">Ghost</Button>
|
|
15
|
+
<Button variant="link">Link</Button>
|
|
16
|
+
|
|
17
|
+
<Button size="sm">Small</Button>
|
|
18
|
+
<Button size="lg">Large</Button>
|
|
19
|
+
<Button size="icon"><Icon /></Button>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Card
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@/components/ui/card"
|
|
26
|
+
|
|
27
|
+
<Card>
|
|
28
|
+
<CardHeader>
|
|
29
|
+
<CardTitle>Title</CardTitle>
|
|
30
|
+
<CardDescription>Description</CardDescription>
|
|
31
|
+
</CardHeader>
|
|
32
|
+
<CardContent>Content</CardContent>
|
|
33
|
+
<CardFooter><Button>Action</Button></CardFooter>
|
|
34
|
+
</Card>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Dialog
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from "@/components/ui/dialog"
|
|
41
|
+
|
|
42
|
+
<Dialog>
|
|
43
|
+
<DialogTrigger asChild><Button>Open</Button></DialogTrigger>
|
|
44
|
+
<DialogContent>
|
|
45
|
+
<DialogHeader>
|
|
46
|
+
<DialogTitle>Are you sure?</DialogTitle>
|
|
47
|
+
<DialogDescription>Cannot be undone.</DialogDescription>
|
|
48
|
+
</DialogHeader>
|
|
49
|
+
<DialogFooter><Button>Confirm</Button></DialogFooter>
|
|
50
|
+
</DialogContent>
|
|
51
|
+
</Dialog>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Select
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@/components/ui/select"
|
|
58
|
+
|
|
59
|
+
<Select>
|
|
60
|
+
<SelectTrigger className="w-[180px]">
|
|
61
|
+
<SelectValue placeholder="Theme" />
|
|
62
|
+
</SelectTrigger>
|
|
63
|
+
<SelectContent>
|
|
64
|
+
<SelectItem value="light">Light</SelectItem>
|
|
65
|
+
<SelectItem value="dark">Dark</SelectItem>
|
|
66
|
+
</SelectContent>
|
|
67
|
+
</Select>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Tabs
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"
|
|
74
|
+
|
|
75
|
+
<Tabs defaultValue="account">
|
|
76
|
+
<TabsList>
|
|
77
|
+
<TabsTrigger value="account">Account</TabsTrigger>
|
|
78
|
+
<TabsTrigger value="password">Password</TabsTrigger>
|
|
79
|
+
</TabsList>
|
|
80
|
+
<TabsContent value="account">Account settings</TabsContent>
|
|
81
|
+
<TabsContent value="password">Password settings</TabsContent>
|
|
82
|
+
</Tabs>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Toast (Sonner)
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
import { toast } from "sonner"
|
|
89
|
+
|
|
90
|
+
toast("Event created")
|
|
91
|
+
toast.success("Saved")
|
|
92
|
+
toast.error("Failed")
|
|
93
|
+
toast.promise(saveData(), { loading: "Saving...", success: "Done!", error: "Error" })
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Command
|
|
97
|
+
|
|
98
|
+
```tsx
|
|
99
|
+
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from "@/components/ui/command"
|
|
100
|
+
|
|
101
|
+
<Command>
|
|
102
|
+
<CommandInput placeholder="Search..." />
|
|
103
|
+
<CommandList>
|
|
104
|
+
<CommandEmpty>No results.</CommandEmpty>
|
|
105
|
+
<CommandGroup heading="Suggestions">
|
|
106
|
+
<CommandItem>Calendar</CommandItem>
|
|
107
|
+
<CommandItem>Search</CommandItem>
|
|
108
|
+
</CommandGroup>
|
|
109
|
+
</CommandList>
|
|
110
|
+
</Command>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Sidebar
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
import { Sidebar, SidebarContent, SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuItem, SidebarMenuButton } from "@/components/ui/sidebar"
|
|
117
|
+
|
|
118
|
+
<Sidebar>
|
|
119
|
+
<SidebarContent>
|
|
120
|
+
<SidebarGroup>
|
|
121
|
+
<SidebarGroupLabel>App</SidebarGroupLabel>
|
|
122
|
+
<SidebarMenu>
|
|
123
|
+
<SidebarMenuItem>
|
|
124
|
+
<SidebarMenuButton asChild>
|
|
125
|
+
<a href="/dashboard"><HomeIcon />Dashboard</a>
|
|
126
|
+
</SidebarMenuButton>
|
|
127
|
+
</SidebarMenuItem>
|
|
128
|
+
</SidebarMenu>
|
|
129
|
+
</SidebarGroup>
|
|
130
|
+
</SidebarContent>
|
|
131
|
+
</Sidebar>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Table
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
import { Table, TableHeader, TableBody, TableRow, TableHead, TableCell } from "@/components/ui/table"
|
|
138
|
+
|
|
139
|
+
<Table>
|
|
140
|
+
<TableHeader>
|
|
141
|
+
<TableRow>
|
|
142
|
+
<TableHead>Name</TableHead>
|
|
143
|
+
<TableHead>Status</TableHead>
|
|
144
|
+
</TableRow>
|
|
145
|
+
</TableHeader>
|
|
146
|
+
<TableBody>
|
|
147
|
+
<TableRow>
|
|
148
|
+
<TableCell>John</TableCell>
|
|
149
|
+
<TableCell>Active</TableCell>
|
|
150
|
+
</TableRow>
|
|
151
|
+
</TableBody>
|
|
152
|
+
</Table>
|
|
153
|
+
```
|