@namch/agent-assistant 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +642 -0
- package/agents/backend-engineer.md +162 -0
- package/agents/brainstormer.md +175 -0
- package/agents/business-analyst.md +171 -0
- package/agents/database-architect.md +165 -0
- package/agents/debugger.md +161 -0
- package/agents/designer.md +155 -0
- package/agents/devops-engineer.md +162 -0
- package/agents/docs-manager.md +177 -0
- package/agents/frontend-engineer.md +166 -0
- package/agents/game-engineer.md +155 -0
- package/agents/mobile-engineer.md +156 -0
- package/agents/performance-engineer.md +159 -0
- package/agents/planner.md +167 -0
- package/agents/project-manager.md +166 -0
- package/agents/researcher.md +151 -0
- package/agents/reviewer.md +161 -0
- package/agents/scouter.md +163 -0
- package/agents/security-engineer.md +161 -0
- package/agents/tech-lead.md +166 -0
- package/agents/tester.md +162 -0
- package/cli/README.md +210 -0
- package/cli/install.js +1075 -0
- package/cli/install.test.js.example +120 -0
- package/code-assistants/antigravity-assistant/AntigravityGlobal.agent.md +200 -0
- package/code-assistants/antigravity-assistant/GEMINI.md +172 -0
- package/code-assistants/claude-assistant/CLAUDE.md +51 -0
- package/code-assistants/copilot-assistant/agent-assistant.agent.md +207 -0
- package/code-assistants/cursor-assistant/.cursorrules +147 -0
- package/code-assistants/cursor-assistant/rules/agent-assistant.mdc +181 -0
- package/commands/ask/fast.md +119 -0
- package/commands/ask/hard.md +161 -0
- package/commands/ask.md +64 -0
- package/commands/auto.md +111 -0
- package/commands/brainstorm/fast.md +166 -0
- package/commands/brainstorm/hard.md +195 -0
- package/commands/brainstorm.md +64 -0
- package/commands/code/fast.md +166 -0
- package/commands/code/hard.md +330 -0
- package/commands/code.md +64 -0
- package/commands/cook/fast.md +103 -0
- package/commands/cook/hard.md +202 -0
- package/commands/cook.md +64 -0
- package/commands/debug/fast.md +65 -0
- package/commands/debug/hard.md +96 -0
- package/commands/debug.md +64 -0
- package/commands/deploy/check.md +150 -0
- package/commands/deploy/preview.md +125 -0
- package/commands/deploy/production.md +160 -0
- package/commands/deploy/rollback.md +149 -0
- package/commands/deploy.md +71 -0
- package/commands/design/fast.md +134 -0
- package/commands/design/hard.md +209 -0
- package/commands/design.md +64 -0
- package/commands/docs/audit.md +167 -0
- package/commands/docs/business.md +167 -0
- package/commands/docs/core.md +161 -0
- package/commands/docs.md +178 -0
- package/commands/fix/fast.md +84 -0
- package/commands/fix/hard.md +116 -0
- package/commands/fix.md +64 -0
- package/commands/plan/fast.md +78 -0
- package/commands/plan/hard.md +131 -0
- package/commands/plan.md +64 -0
- package/commands/review/fast.md +65 -0
- package/commands/review/hard.md +96 -0
- package/commands/review.md +64 -0
- package/commands/test/fast.md +75 -0
- package/commands/test/hard.md +108 -0
- package/commands/test.md +64 -0
- package/documents/business/business-features.md +894 -0
- package/documents/business/business-glossary.md +553 -0
- package/documents/business/business-prd.md +399 -0
- package/documents/business/business-workflows.md +713 -0
- package/documents/knowledge-architecture.md +541 -0
- package/documents/knowledge-domain.md +600 -0
- package/documents/knowledge-overview.md +330 -0
- package/documents/knowledge-source-base.md +572 -0
- package/documents/knowledge-standards.md +632 -0
- package/package.json +67 -0
- package/rules/ADAPTIVE-EXECUTION.md +271 -0
- package/rules/AGENT-RULES.md +284 -0
- package/rules/BOOTSTRAP.md +298 -0
- package/rules/ERROR-RECOVERY.md +201 -0
- package/rules/EXECUTION-PROTOCOL.md +485 -0
- package/rules/ORCHESTRATION-LAWS.md +218 -0
- package/rules/QUICK-REFERENCE.md +193 -0
- package/rules/SKILL-DISCOVERY.md +347 -0
- package/skills/aesthetic/SKILL.md +134 -0
- package/skills/aesthetic/assets/design-guideline-template.md +163 -0
- package/skills/aesthetic/assets/design-story-template.md +135 -0
- package/skills/aesthetic/references/design-principles.md +62 -0
- package/skills/aesthetic/references/design-resources.md +86 -0
- package/skills/aesthetic/references/micro-interactions.md +53 -0
- package/skills/aesthetic/references/storytelling-design.md +50 -0
- package/skills/agent-framework-azure-hosted-agents/SKILL.md +335 -0
- package/skills/agent-framework-azure-hosted-agents/references/advanced.md +512 -0
- package/skills/agent-framework-azure-hosted-agents/references/mcp.md +301 -0
- package/skills/agent-framework-azure-hosted-agents/references/threads.md +300 -0
- package/skills/agent-framework-azure-hosted-agents/references/tools.md +278 -0
- package/skills/agile-product-owner/SKILL.md +31 -0
- package/skills/agile-product-owner/scripts/user_story_generator.py +387 -0
- package/skills/algorithmic-art/SKILL.md +136 -0
- package/skills/angular-architect/SKILL.md +97 -0
- package/skills/angular-architect/references/components.md +300 -0
- package/skills/angular-architect/references/ngrx.md +404 -0
- package/skills/angular-architect/references/routing.md +364 -0
- package/skills/angular-architect/references/rxjs.md +322 -0
- package/skills/angular-architect/references/testing.md +408 -0
- package/skills/api-designer/SKILL.md +101 -0
- package/skills/api-designer/references/error-handling.md +541 -0
- package/skills/api-designer/references/openapi.md +824 -0
- package/skills/api-designer/references/pagination.md +494 -0
- package/skills/api-designer/references/rest-patterns.md +335 -0
- package/skills/api-designer/references/versioning.md +391 -0
- package/skills/api-patterns/SKILL.md +81 -0
- package/skills/api-patterns/api-style.md +42 -0
- package/skills/api-patterns/auth.md +24 -0
- package/skills/api-patterns/documentation.md +26 -0
- package/skills/api-patterns/graphql.md +41 -0
- package/skills/api-patterns/rate-limiting.md +31 -0
- package/skills/api-patterns/response.md +37 -0
- package/skills/api-patterns/rest.md +40 -0
- package/skills/api-patterns/scripts/api_validator.py +211 -0
- package/skills/api-patterns/security-testing.md +122 -0
- package/skills/api-patterns/trpc.md +41 -0
- package/skills/api-patterns/versioning.md +22 -0
- package/skills/app-builder/SKILL.md +75 -0
- package/skills/app-builder/agent-coordination.md +71 -0
- package/skills/app-builder/feature-building.md +53 -0
- package/skills/app-builder/project-detection.md +34 -0
- package/skills/app-builder/scaffolding.md +118 -0
- package/skills/app-builder/tech-stack.md +40 -0
- package/skills/app-builder/templates/SKILL.md +39 -0
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/skills/architecture/SKILL.md +55 -0
- package/skills/architecture/context-discovery.md +43 -0
- package/skills/architecture/examples.md +94 -0
- package/skills/architecture/pattern-selection.md +68 -0
- package/skills/architecture/patterns-reference.md +50 -0
- package/skills/architecture/trade-off-analysis.md +77 -0
- package/skills/architecture-designer/SKILL.md +89 -0
- package/skills/architecture-designer/references/adr-template.md +119 -0
- package/skills/architecture-designer/references/architecture-patterns.md +114 -0
- package/skills/architecture-designer/references/database-selection.md +105 -0
- package/skills/architecture-designer/references/nfr-checklist.md +115 -0
- package/skills/architecture-designer/references/system-design.md +103 -0
- package/skills/artifacts-builder/SKILL.md +74 -0
- package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/ask-questions-if-underspecified/SKILL.md +81 -0
- package/skills/atlassian-mcp/SKILL.md +100 -0
- package/skills/atlassian-mcp/references/authentication-patterns.md +523 -0
- package/skills/atlassian-mcp/references/common-workflows.md +663 -0
- package/skills/atlassian-mcp/references/confluence-operations.md +531 -0
- package/skills/atlassian-mcp/references/jira-queries.md +424 -0
- package/skills/atlassian-mcp/references/mcp-server-setup.md +295 -0
- package/skills/aws-agentic-ai/SKILL.md +117 -0
- package/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
- package/skills/aws-agentic-ai/services/browser/README.md +363 -0
- package/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
- package/skills/aws-agentic-ai/services/gateway/README.md +100 -0
- package/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
- package/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
- package/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
- package/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
- package/skills/aws-agentic-ai/services/identity/README.md +186 -0
- package/skills/aws-agentic-ai/services/memory/README.md +253 -0
- package/skills/aws-agentic-ai/services/observability/README.md +517 -0
- package/skills/aws-agentic-ai/services/runtime/README.md +215 -0
- package/skills/aws-cdk-development/SKILL.md +278 -0
- package/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
- package/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
- package/skills/aws-cost-operations/SKILL.md +317 -0
- package/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
- package/skills/aws-cost-operations/references/operations-patterns.md +394 -0
- package/skills/aws-serverless-eda/SKILL.md +757 -0
- package/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
- package/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
- package/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
- package/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
- package/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
- package/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
- package/skills/azd-deployment/SKILL.md +298 -0
- package/skills/azd-deployment/references/azure-yaml-schema.md +369 -0
- package/skills/azd-deployment/references/bicep-patterns.md +371 -0
- package/skills/azd-deployment/references/troubleshooting.md +386 -0
- package/skills/azure-ai-agents-python/SKILL.md +277 -0
- package/skills/azure-ai-agents-python/references/async-patterns.md +494 -0
- package/skills/azure-ai-agents-python/references/streaming.md +337 -0
- package/skills/azure-ai-agents-python/references/tools.md +461 -0
- package/skills/azure-ai-search-python/SKILL.md +198 -0
- package/skills/azure-ai-search-python/references/agentic-retrieval.md +263 -0
- package/skills/azure-ai-search-python/scripts/setup_agentic_retrieval.py +164 -0
- package/skills/azure-ai-voicelive-skill/SKILL.md +294 -0
- package/skills/azure-ai-voicelive-skill/references/api-reference.md +344 -0
- package/skills/azure-ai-voicelive-skill/references/examples.md +558 -0
- package/skills/azure-ai-voicelive-skill/references/models.md +737 -0
- package/skills/backend-development/SKILL.md +155 -0
- package/skills/bash-linux/SKILL.md +199 -0
- package/skills/behavioral-modes/SKILL.md +242 -0
- package/skills/best-practices/SKILL.md +500 -0
- package/skills/best-practices/agents/best-practices-referencer.md +263 -0
- package/skills/best-practices/agents/codebase-context-builder.md +326 -0
- package/skills/best-practices/agents/task-intent-analyzer.md +245 -0
- package/skills/best-practices/references/anti-patterns.md +571 -0
- package/skills/best-practices/references/before-after-examples.md +1114 -0
- package/skills/best-practices/references/best-practices-guide.md +513 -0
- package/skills/best-practices/references/common-workflows.md +692 -0
- package/skills/best-practices/references/prompt-patterns.md +547 -0
- package/skills/better-auth/SKILL.md +204 -0
- package/skills/better-auth/references/advanced-features.md +553 -0
- package/skills/better-auth/references/database-integration.md +577 -0
- package/skills/better-auth/references/email-password-auth.md +416 -0
- package/skills/better-auth/references/oauth-providers.md +430 -0
- package/skills/better-auth/scripts/.coverage +0 -0
- package/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/skills/better-auth/scripts/requirements.txt +15 -0
- package/skills/better-auth/scripts/tests/.coverage +0 -0
- package/skills/better-auth/scripts/tests/test_better_auth_init.py +421 -0
- package/skills/brainstorming/SKILL.md +54 -0
- package/skills/brand-guidelines/LICENSE.txt +202 -0
- package/skills/brand-guidelines/SKILL.md +73 -0
- package/skills/building-ai-agent-on-cloudflare/SKILL.md +391 -0
- package/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
- package/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
- package/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
- package/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
- package/skills/building-mcp-server-on-cloudflare/SKILL.md +265 -0
- package/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
- package/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
- package/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
- package/skills/canvas-design/LICENSE.txt +202 -0
- package/skills/canvas-design/SKILL.md +130 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/changelog-generator/SKILL.md +104 -0
- package/skills/chaos-engineer/SKILL.md +98 -0
- package/skills/chaos-engineer/references/chaos-tools.md +514 -0
- package/skills/chaos-engineer/references/experiment-design.md +232 -0
- package/skills/chaos-engineer/references/game-days.md +437 -0
- package/skills/chaos-engineer/references/infrastructure-chaos.md +351 -0
- package/skills/chaos-engineer/references/kubernetes-chaos.md +435 -0
- package/skills/chrome-devtools/SKILL.md +407 -0
- package/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/skills/chrome-devtools/references/performance-guide.md +999 -0
- package/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/skills/chrome-devtools/scripts/README.md +228 -0
- package/skills/chrome-devtools/scripts/__tests__/selector.test.js +210 -0
- package/skills/chrome-devtools/scripts/click.js +79 -0
- package/skills/chrome-devtools/scripts/console.js +75 -0
- package/skills/chrome-devtools/scripts/evaluate.js +49 -0
- package/skills/chrome-devtools/scripts/fill.js +72 -0
- package/skills/chrome-devtools/scripts/install-deps.sh +181 -0
- package/skills/chrome-devtools/scripts/install.sh +83 -0
- package/skills/chrome-devtools/scripts/lib/browser.js +122 -0
- package/skills/chrome-devtools/scripts/lib/selector.js +178 -0
- package/skills/chrome-devtools/scripts/navigate.js +46 -0
- package/skills/chrome-devtools/scripts/network.js +102 -0
- package/skills/chrome-devtools/scripts/package.json +15 -0
- package/skills/chrome-devtools/scripts/performance.js +145 -0
- package/skills/chrome-devtools/scripts/screenshot.js +180 -0
- package/skills/chrome-devtools/scripts/snapshot.js +131 -0
- package/skills/clean-code/SKILL.md +203 -0
- package/skills/cli-developer/SKILL.md +97 -0
- package/skills/cli-developer/references/design-patterns.md +224 -0
- package/skills/cli-developer/references/go-cli.md +543 -0
- package/skills/cli-developer/references/node-cli.md +386 -0
- package/skills/cli-developer/references/python-cli.md +425 -0
- package/skills/cli-developer/references/ux-patterns.md +451 -0
- package/skills/cloud-architect/SKILL.md +106 -0
- package/skills/cloud-architect/references/aws.md +394 -0
- package/skills/cloud-architect/references/azure.md +562 -0
- package/skills/cloud-architect/references/gcp.md +633 -0
- package/skills/cloudflare-expert/SKILL.md +227 -0
- package/skills/cloudflare-expert/references/agents-sdk/README.md +35 -0
- package/skills/cloudflare-expert/references/agents-sdk/api.md +100 -0
- package/skills/cloudflare-expert/references/agents-sdk/configuration.md +99 -0
- package/skills/cloudflare-expert/references/agents-sdk/gotchas.md +59 -0
- package/skills/cloudflare-expert/references/agents-sdk/patterns.md +89 -0
- package/skills/cloudflare-expert/references/ai-gateway/README.md +695 -0
- package/skills/cloudflare-expert/references/ai-search/README.md +14 -0
- package/skills/cloudflare-expert/references/ai-search/api.md +38 -0
- package/skills/cloudflare-expert/references/ai-search/configuration.md +52 -0
- package/skills/cloudflare-expert/references/ai-search/gotchas.md +41 -0
- package/skills/cloudflare-expert/references/ai-search/patterns.md +45 -0
- package/skills/cloudflare-expert/references/analytics-engine/README.md +14 -0
- package/skills/cloudflare-expert/references/analytics-engine/api.md +27 -0
- package/skills/cloudflare-expert/references/analytics-engine/configuration.md +45 -0
- package/skills/cloudflare-expert/references/analytics-engine/gotchas.md +3 -0
- package/skills/cloudflare-expert/references/analytics-engine/patterns.md +36 -0
- package/skills/cloudflare-expert/references/api/README.md +21 -0
- package/skills/cloudflare-expert/references/api/api.md +31 -0
- package/skills/cloudflare-expert/references/api/configuration.md +20 -0
- package/skills/cloudflare-expert/references/api/gotchas.md +28 -0
- package/skills/cloudflare-expert/references/api/patterns.md +47 -0
- package/skills/cloudflare-expert/references/api-shield/README.md +20 -0
- package/skills/cloudflare-expert/references/api-shield/api.md +78 -0
- package/skills/cloudflare-expert/references/api-shield/configuration.md +128 -0
- package/skills/cloudflare-expert/references/api-shield/gotchas.md +51 -0
- package/skills/cloudflare-expert/references/api-shield/patterns.md +145 -0
- package/skills/cloudflare-expert/references/argo-smart-routing/README.md +16 -0
- package/skills/cloudflare-expert/references/argo-smart-routing/api.md +50 -0
- package/skills/cloudflare-expert/references/argo-smart-routing/configuration.md +53 -0
- package/skills/cloudflare-expert/references/argo-smart-routing/gotchas.md +16 -0
- package/skills/cloudflare-expert/references/argo-smart-routing/patterns.md +45 -0
- package/skills/cloudflare-expert/references/bindings/README.md +14 -0
- package/skills/cloudflare-expert/references/bindings/api.md +3 -0
- package/skills/cloudflare-expert/references/bindings/configuration.md +58 -0
- package/skills/cloudflare-expert/references/bindings/gotchas.md +35 -0
- package/skills/cloudflare-expert/references/bindings/patterns.md +37 -0
- package/skills/cloudflare-expert/references/bot-management/README.md +71 -0
- package/skills/cloudflare-expert/references/bot-management/api.md +168 -0
- package/skills/cloudflare-expert/references/bot-management/configuration.md +114 -0
- package/skills/cloudflare-expert/references/bot-management/gotchas.md +99 -0
- package/skills/cloudflare-expert/references/bot-management/patterns.md +125 -0
- package/skills/cloudflare-expert/references/browser-rendering/README.md +16 -0
- package/skills/cloudflare-expert/references/browser-rendering/api.md +54 -0
- package/skills/cloudflare-expert/references/browser-rendering/configuration.md +47 -0
- package/skills/cloudflare-expert/references/browser-rendering/gotchas.md +29 -0
- package/skills/cloudflare-expert/references/browser-rendering/patterns.md +29 -0
- package/skills/cloudflare-expert/references/c3/README.md +264 -0
- package/skills/cloudflare-expert/references/cache-reserve/README.md +93 -0
- package/skills/cloudflare-expert/references/cache-reserve/api.md +176 -0
- package/skills/cloudflare-expert/references/cache-reserve/configuration.md +164 -0
- package/skills/cloudflare-expert/references/cache-reserve/gotchas.md +203 -0
- package/skills/cloudflare-expert/references/cache-reserve/patterns.md +180 -0
- package/skills/cloudflare-expert/references/containers/README.md +16 -0
- package/skills/cloudflare-expert/references/containers/api.md +43 -0
- package/skills/cloudflare-expert/references/containers/configuration.md +56 -0
- package/skills/cloudflare-expert/references/containers/gotchas.md +21 -0
- package/skills/cloudflare-expert/references/containers/patterns.md +40 -0
- package/skills/cloudflare-expert/references/cron-triggers/README.md +85 -0
- package/skills/cloudflare-expert/references/cron-triggers/api.md +198 -0
- package/skills/cloudflare-expert/references/cron-triggers/configuration.md +151 -0
- package/skills/cloudflare-expert/references/cron-triggers/gotchas.md +129 -0
- package/skills/cloudflare-expert/references/cron-triggers/patterns.md +122 -0
- package/skills/cloudflare-expert/references/d1/README.md +92 -0
- package/skills/cloudflare-expert/references/d1/api.md +141 -0
- package/skills/cloudflare-expert/references/d1/configuration.md +127 -0
- package/skills/cloudflare-expert/references/d1/gotchas.md +70 -0
- package/skills/cloudflare-expert/references/d1/patterns.md +144 -0
- package/skills/cloudflare-expert/references/ddos/README.md +34 -0
- package/skills/cloudflare-expert/references/ddos/api.md +136 -0
- package/skills/cloudflare-expert/references/ddos/configuration.md +67 -0
- package/skills/cloudflare-expert/references/ddos/gotchas.md +114 -0
- package/skills/cloudflare-expert/references/ddos/patterns.md +158 -0
- package/skills/cloudflare-expert/references/do-storage/README.md +62 -0
- package/skills/cloudflare-expert/references/do-storage/api.md +89 -0
- package/skills/cloudflare-expert/references/do-storage/configuration.md +116 -0
- package/skills/cloudflare-expert/references/do-storage/gotchas.md +93 -0
- package/skills/cloudflare-expert/references/do-storage/patterns.md +112 -0
- package/skills/cloudflare-expert/references/durable-objects/README.md +125 -0
- package/skills/cloudflare-expert/references/durable-objects/api.md +152 -0
- package/skills/cloudflare-expert/references/durable-objects/configuration.md +148 -0
- package/skills/cloudflare-expert/references/durable-objects/gotchas.md +158 -0
- package/skills/cloudflare-expert/references/durable-objects/patterns.md +255 -0
- package/skills/cloudflare-expert/references/email-routing/README.md +18 -0
- package/skills/cloudflare-expert/references/email-routing/api.md +46 -0
- package/skills/cloudflare-expert/references/email-routing/configuration.md +63 -0
- package/skills/cloudflare-expert/references/email-routing/gotchas.md +16 -0
- package/skills/cloudflare-expert/references/email-routing/patterns.md +46 -0
- package/skills/cloudflare-expert/references/email-workers/README.md +598 -0
- package/skills/cloudflare-expert/references/hyperdrive/README.md +62 -0
- package/skills/cloudflare-expert/references/hyperdrive/api.md +137 -0
- package/skills/cloudflare-expert/references/hyperdrive/configuration.md +133 -0
- package/skills/cloudflare-expert/references/hyperdrive/gotchas.md +184 -0
- package/skills/cloudflare-expert/references/hyperdrive/patterns.md +176 -0
- package/skills/cloudflare-expert/references/images/README.md +14 -0
- package/skills/cloudflare-expert/references/images/api.md +3 -0
- package/skills/cloudflare-expert/references/images/configuration.md +45 -0
- package/skills/cloudflare-expert/references/images/gotchas.md +23 -0
- package/skills/cloudflare-expert/references/images/patterns.md +31 -0
- package/skills/cloudflare-expert/references/kv/README.md +60 -0
- package/skills/cloudflare-expert/references/kv/api.md +114 -0
- package/skills/cloudflare-expert/references/kv/configuration.md +92 -0
- package/skills/cloudflare-expert/references/kv/gotchas.md +117 -0
- package/skills/cloudflare-expert/references/kv/patterns.md +139 -0
- package/skills/cloudflare-expert/references/miniflare/README.md +64 -0
- package/skills/cloudflare-expert/references/miniflare/api.md +144 -0
- package/skills/cloudflare-expert/references/miniflare/configuration.md +203 -0
- package/skills/cloudflare-expert/references/miniflare/gotchas.md +187 -0
- package/skills/cloudflare-expert/references/miniflare/patterns.md +211 -0
- package/skills/cloudflare-expert/references/network-interconnect/README.md +60 -0
- package/skills/cloudflare-expert/references/network-interconnect/api.md +240 -0
- package/skills/cloudflare-expert/references/network-interconnect/configuration.md +127 -0
- package/skills/cloudflare-expert/references/network-interconnect/gotchas.md +171 -0
- package/skills/cloudflare-expert/references/network-interconnect/patterns.md +171 -0
- package/skills/cloudflare-expert/references/observability/README.md +18 -0
- package/skills/cloudflare-expert/references/observability/api.md +51 -0
- package/skills/cloudflare-expert/references/observability/configuration.md +60 -0
- package/skills/cloudflare-expert/references/observability/gotchas.md +36 -0
- package/skills/cloudflare-expert/references/observability/patterns.md +42 -0
- package/skills/cloudflare-expert/references/pages/README.md +76 -0
- package/skills/cloudflare-expert/references/pages/api.md +200 -0
- package/skills/cloudflare-expert/references/pages/configuration.md +228 -0
- package/skills/cloudflare-expert/references/pages/gotchas.md +161 -0
- package/skills/cloudflare-expert/references/pages/patterns.md +145 -0
- package/skills/cloudflare-expert/references/pages-functions/README.md +57 -0
- package/skills/cloudflare-expert/references/pages-functions/api.md +201 -0
- package/skills/cloudflare-expert/references/pages-functions/configuration.md +159 -0
- package/skills/cloudflare-expert/references/pages-functions/gotchas.md +151 -0
- package/skills/cloudflare-expert/references/pages-functions/patterns.md +190 -0
- package/skills/cloudflare-expert/references/pipelines/README.md +664 -0
- package/skills/cloudflare-expert/references/pulumi/README.md +107 -0
- package/skills/cloudflare-expert/references/pulumi/api.md +194 -0
- package/skills/cloudflare-expert/references/pulumi/configuration.md +216 -0
- package/skills/cloudflare-expert/references/pulumi/gotchas.md +223 -0
- package/skills/cloudflare-expert/references/pulumi/patterns.md +139 -0
- package/skills/cloudflare-expert/references/queues/README.md +69 -0
- package/skills/cloudflare-expert/references/queues/api.md +138 -0
- package/skills/cloudflare-expert/references/queues/configuration.md +125 -0
- package/skills/cloudflare-expert/references/queues/gotchas.md +112 -0
- package/skills/cloudflare-expert/references/queues/patterns.md +155 -0
- package/skills/cloudflare-expert/references/r2/README.md +61 -0
- package/skills/cloudflare-expert/references/r2/api.md +127 -0
- package/skills/cloudflare-expert/references/r2/configuration.md +76 -0
- package/skills/cloudflare-expert/references/r2/gotchas.md +94 -0
- package/skills/cloudflare-expert/references/r2/patterns.md +127 -0
- package/skills/cloudflare-expert/references/r2-data-catalog/README.md +18 -0
- package/skills/cloudflare-expert/references/r2-data-catalog/api.md +29 -0
- package/skills/cloudflare-expert/references/r2-data-catalog/configuration.md +39 -0
- package/skills/cloudflare-expert/references/r2-data-catalog/gotchas.md +20 -0
- package/skills/cloudflare-expert/references/r2-data-catalog/patterns.md +46 -0
- package/skills/cloudflare-expert/references/r2-sql/README.md +512 -0
- package/skills/cloudflare-expert/references/realtime-sfu/README.md +21 -0
- package/skills/cloudflare-expert/references/realtime-sfu/api.md +135 -0
- package/skills/cloudflare-expert/references/realtime-sfu/configuration.md +63 -0
- package/skills/cloudflare-expert/references/realtime-sfu/gotchas.md +75 -0
- package/skills/cloudflare-expert/references/realtime-sfu/patterns.md +102 -0
- package/skills/cloudflare-expert/references/realtimekit/README.md +81 -0
- package/skills/cloudflare-expert/references/realtimekit/api.md +164 -0
- package/skills/cloudflare-expert/references/realtimekit/configuration.md +147 -0
- package/skills/cloudflare-expert/references/realtimekit/gotchas.md +172 -0
- package/skills/cloudflare-expert/references/realtimekit/patterns.md +155 -0
- package/skills/cloudflare-expert/references/sandbox/README.md +90 -0
- package/skills/cloudflare-expert/references/sandbox/api.md +178 -0
- package/skills/cloudflare-expert/references/sandbox/configuration.md +131 -0
- package/skills/cloudflare-expert/references/sandbox/gotchas.md +156 -0
- package/skills/cloudflare-expert/references/sandbox/patterns.md +203 -0
- package/skills/cloudflare-expert/references/secrets-store/README.md +58 -0
- package/skills/cloudflare-expert/references/secrets-store/api.md +182 -0
- package/skills/cloudflare-expert/references/secrets-store/configuration.md +140 -0
- package/skills/cloudflare-expert/references/secrets-store/gotchas.md +129 -0
- package/skills/cloudflare-expert/references/secrets-store/patterns.md +218 -0
- package/skills/cloudflare-expert/references/smart-placement/README.md +91 -0
- package/skills/cloudflare-expert/references/smart-placement/api.md +139 -0
- package/skills/cloudflare-expert/references/smart-placement/configuration.md +129 -0
- package/skills/cloudflare-expert/references/smart-placement/gotchas.md +87 -0
- package/skills/cloudflare-expert/references/smart-placement/patterns.md +135 -0
- package/skills/cloudflare-expert/references/snippets/README.md +15 -0
- package/skills/cloudflare-expert/references/snippets/api.md +47 -0
- package/skills/cloudflare-expert/references/snippets/configuration.md +33 -0
- package/skills/cloudflare-expert/references/snippets/gotchas.md +21 -0
- package/skills/cloudflare-expert/references/snippets/patterns.md +34 -0
- package/skills/cloudflare-expert/references/spectrum/README.md +16 -0
- package/skills/cloudflare-expert/references/spectrum/api.md +24 -0
- package/skills/cloudflare-expert/references/spectrum/configuration.md +43 -0
- package/skills/cloudflare-expert/references/spectrum/gotchas.md +42 -0
- package/skills/cloudflare-expert/references/spectrum/patterns.md +40 -0
- package/skills/cloudflare-expert/references/static-assets/README.md +14 -0
- package/skills/cloudflare-expert/references/static-assets/api.md +3 -0
- package/skills/cloudflare-expert/references/static-assets/configuration.md +47 -0
- package/skills/cloudflare-expert/references/static-assets/gotchas.md +44 -0
- package/skills/cloudflare-expert/references/static-assets/patterns.md +42 -0
- package/skills/cloudflare-expert/references/stream/README.md +103 -0
- package/skills/cloudflare-expert/references/stream/api.md +204 -0
- package/skills/cloudflare-expert/references/stream/configuration.md +127 -0
- package/skills/cloudflare-expert/references/stream/gotchas.md +131 -0
- package/skills/cloudflare-expert/references/stream/patterns.md +152 -0
- package/skills/cloudflare-expert/references/tail-workers/README.md +640 -0
- package/skills/cloudflare-expert/references/terraform/README.md +76 -0
- package/skills/cloudflare-expert/references/terraform/api.md +159 -0
- package/skills/cloudflare-expert/references/terraform/configuration.md +156 -0
- package/skills/cloudflare-expert/references/terraform/gotchas.md +207 -0
- package/skills/cloudflare-expert/references/terraform/patterns.md +135 -0
- package/skills/cloudflare-expert/references/tunnel/README.md +82 -0
- package/skills/cloudflare-expert/references/tunnel/api.md +105 -0
- package/skills/cloudflare-expert/references/tunnel/configuration.md +113 -0
- package/skills/cloudflare-expert/references/tunnel/gotchas.md +115 -0
- package/skills/cloudflare-expert/references/tunnel/patterns.md +157 -0
- package/skills/cloudflare-expert/references/turn/README.md +699 -0
- package/skills/cloudflare-expert/references/turnstile/README.md +14 -0
- package/skills/cloudflare-expert/references/turnstile/api.md +3 -0
- package/skills/cloudflare-expert/references/turnstile/configuration.md +19 -0
- package/skills/cloudflare-expert/references/turnstile/gotchas.md +27 -0
- package/skills/cloudflare-expert/references/turnstile/patterns.md +41 -0
- package/skills/cloudflare-expert/references/vectorize/README.md +682 -0
- package/skills/cloudflare-expert/references/waf/README.md +14 -0
- package/skills/cloudflare-expert/references/waf/api.md +3 -0
- package/skills/cloudflare-expert/references/waf/configuration.md +44 -0
- package/skills/cloudflare-expert/references/waf/gotchas.md +24 -0
- package/skills/cloudflare-expert/references/waf/patterns.md +29 -0
- package/skills/cloudflare-expert/references/web-analytics/README.md +19 -0
- package/skills/cloudflare-expert/references/web-analytics/api.md +52 -0
- package/skills/cloudflare-expert/references/web-analytics/configuration.md +31 -0
- package/skills/cloudflare-expert/references/web-analytics/gotchas.md +28 -0
- package/skills/cloudflare-expert/references/web-analytics/patterns.md +52 -0
- package/skills/cloudflare-expert/references/workerd/README.md +47 -0
- package/skills/cloudflare-expert/references/workerd/api.md +199 -0
- package/skills/cloudflare-expert/references/workerd/configuration.md +185 -0
- package/skills/cloudflare-expert/references/workerd/gotchas.md +203 -0
- package/skills/cloudflare-expert/references/workerd/patterns.md +216 -0
- package/skills/cloudflare-expert/references/workers/README.md +96 -0
- package/skills/cloudflare-expert/references/workers/api.md +137 -0
- package/skills/cloudflare-expert/references/workers/configuration.md +147 -0
- package/skills/cloudflare-expert/references/workers/gotchas.md +99 -0
- package/skills/cloudflare-expert/references/workers/patterns.md +149 -0
- package/skills/cloudflare-expert/references/workers-ai/README.md +116 -0
- package/skills/cloudflare-expert/references/workers-for-platforms/README.md +48 -0
- package/skills/cloudflare-expert/references/workers-for-platforms/api.md +169 -0
- package/skills/cloudflare-expert/references/workers-for-platforms/configuration.md +136 -0
- package/skills/cloudflare-expert/references/workers-for-platforms/gotchas.md +130 -0
- package/skills/cloudflare-expert/references/workers-for-platforms/patterns.md +170 -0
- package/skills/cloudflare-expert/references/workers-playground/README.md +16 -0
- package/skills/cloudflare-expert/references/workers-playground/api.md +20 -0
- package/skills/cloudflare-expert/references/workers-playground/configuration.md +3 -0
- package/skills/cloudflare-expert/references/workers-playground/gotchas.md +35 -0
- package/skills/cloudflare-expert/references/workers-playground/patterns.md +42 -0
- package/skills/cloudflare-expert/references/workers-vpc/README.md +579 -0
- package/skills/cloudflare-expert/references/workflows/README.md +62 -0
- package/skills/cloudflare-expert/references/workflows/api.md +125 -0
- package/skills/cloudflare-expert/references/workflows/configuration.md +177 -0
- package/skills/cloudflare-expert/references/workflows/gotchas.md +136 -0
- package/skills/cloudflare-expert/references/workflows/patterns.md +132 -0
- package/skills/cloudflare-expert/references/wrangler/README.md +90 -0
- package/skills/cloudflare-expert/references/wrangler/api.md +140 -0
- package/skills/cloudflare-expert/references/wrangler/configuration.md +128 -0
- package/skills/cloudflare-expert/references/wrangler/gotchas.md +93 -0
- package/skills/cloudflare-expert/references/wrangler/patterns.md +150 -0
- package/skills/cloudflare-expert/references/zaraz/README.md +360 -0
- package/skills/code-documentation/SKILL.md +263 -0
- package/skills/code-documenter/SKILL.md +95 -0
- package/skills/code-documenter/references/api-docs-fastapi-django.md +169 -0
- package/skills/code-documenter/references/api-docs-nestjs-express.md +223 -0
- package/skills/code-documenter/references/coverage-reports.md +128 -0
- package/skills/code-documenter/references/documentation-systems.md +336 -0
- package/skills/code-documenter/references/interactive-api-docs.md +534 -0
- package/skills/code-documenter/references/python-docstrings.md +124 -0
- package/skills/code-documenter/references/typescript-jsdoc.md +148 -0
- package/skills/code-documenter/references/user-guides-tutorials.md +533 -0
- package/skills/code-refactoring/SKILL.md +209 -0
- package/skills/code-review/SKILL.md +121 -0
- package/skills/code-review-checklist/SKILL.md +109 -0
- package/skills/code-reviewer/SKILL.md +209 -0
- package/skills/code-reviewer/references/code_review_checklist.md +103 -0
- package/skills/code-reviewer/references/coding_standards.md +103 -0
- package/skills/code-reviewer/references/common_antipatterns.md +103 -0
- package/skills/code-reviewer/scripts/code_quality_checker.py +114 -0
- package/skills/code-reviewer/scripts/pr_analyzer.py +114 -0
- package/skills/code-reviewer/scripts/review_report_generator.py +114 -0
- package/skills/competitive-ads-extractor/SKILL.md +293 -0
- package/skills/content-research-writer/SKILL.md +538 -0
- package/skills/cosmos-db-python-skill/SKILL.md +198 -0
- package/skills/cosmos-db-python-skill/assets/conftest_template.py +332 -0
- package/skills/cosmos-db-python-skill/assets/cosmos_client_template.py +225 -0
- package/skills/cosmos-db-python-skill/assets/service_template.py +314 -0
- package/skills/cosmos-db-python-skill/references/client-setup.md +214 -0
- package/skills/cosmos-db-python-skill/references/error-handling.md +382 -0
- package/skills/cosmos-db-python-skill/references/partitioning.md +270 -0
- package/skills/cosmos-db-python-skill/references/service-layer.md +305 -0
- package/skills/cosmos-db-python-skill/references/testing.md +495 -0
- package/skills/cpp-pro/SKILL.md +97 -0
- package/skills/cpp-pro/references/build-tooling.md +443 -0
- package/skills/cpp-pro/references/concurrency.md +440 -0
- package/skills/cpp-pro/references/memory-performance.md +400 -0
- package/skills/cpp-pro/references/modern-cpp.md +307 -0
- package/skills/cpp-pro/references/templates.md +360 -0
- package/skills/csharp-developer/SKILL.md +94 -0
- package/skills/csharp-developer/references/aspnet-core.md +397 -0
- package/skills/csharp-developer/references/blazor.md +556 -0
- package/skills/csharp-developer/references/entity-framework.md +412 -0
- package/skills/csharp-developer/references/modern-csharp.md +251 -0
- package/skills/csharp-developer/references/performance.md +501 -0
- package/skills/database-design/SKILL.md +177 -0
- package/skills/database-optimizer/SKILL.md +95 -0
- package/skills/database-optimizer/references/index-strategies.md +334 -0
- package/skills/database-optimizer/references/monitoring-analysis.md +504 -0
- package/skills/database-optimizer/references/mysql-tuning.md +454 -0
- package/skills/database-optimizer/references/postgresql-tuning.md +415 -0
- package/skills/database-optimizer/references/query-optimization.md +254 -0
- package/skills/databases/SKILL.md +232 -0
- package/skills/databases/references/mongodb-aggregation.md +447 -0
- package/skills/databases/references/mongodb-atlas.md +465 -0
- package/skills/databases/references/mongodb-crud.md +408 -0
- package/skills/databases/references/mongodb-indexing.md +442 -0
- package/skills/databases/references/postgresql-administration.md +594 -0
- package/skills/databases/references/postgresql-performance.md +527 -0
- package/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/databases/references/postgresql-queries.md +475 -0
- package/skills/databases/scripts/.coverage +0 -0
- package/skills/databases/scripts/db_backup.py +502 -0
- package/skills/databases/scripts/db_migrate.py +414 -0
- package/skills/databases/scripts/db_performance_check.py +444 -0
- package/skills/databases/scripts/requirements.txt +20 -0
- package/skills/databases/scripts/tests/coverage-db.json +1 -0
- package/skills/databases/scripts/tests/requirements.txt +4 -0
- package/skills/databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/debugging/SKILL.md +84 -0
- package/skills/debugging/references/defense-in-depth.md +124 -0
- package/skills/debugging/references/root-cause-tracing.md +122 -0
- package/skills/debugging/references/systematic-debugging.md +102 -0
- package/skills/debugging/references/verification.md +123 -0
- package/skills/debugging/scripts/find-polluter.sh +63 -0
- package/skills/debugging/scripts/find-polluter.test.md +102 -0
- package/skills/debugging-wizard/SKILL.md +93 -0
- package/skills/debugging-wizard/references/common-patterns.md +135 -0
- package/skills/debugging-wizard/references/debugging-tools.md +143 -0
- package/skills/debugging-wizard/references/quick-fixes.md +180 -0
- package/skills/debugging-wizard/references/strategies.md +145 -0
- package/skills/debugging-wizard/references/systematic-debugging.md +370 -0
- package/skills/deployment-procedures/SKILL.md +241 -0
- package/skills/developer-growth-analysis/SKILL.md +322 -0
- package/skills/devops/.env.example +76 -0
- package/skills/devops/SKILL.md +285 -0
- package/skills/devops/references/browser-rendering.md +305 -0
- package/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/devops/references/cloudflare-platform.md +288 -0
- package/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/devops/references/docker-basics.md +297 -0
- package/skills/devops/references/docker-compose.md +292 -0
- package/skills/devops/references/gcloud-platform.md +297 -0
- package/skills/devops/references/gcloud-services.md +304 -0
- package/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/devops/scripts/docker_optimize.py +320 -0
- package/skills/devops/scripts/requirements.txt +20 -0
- package/skills/devops/scripts/tests/requirements.txt +3 -0
- package/skills/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/devops-engineer/SKILL.md +92 -0
- package/skills/devops-engineer/references/deployment-strategies.md +244 -0
- package/skills/devops-engineer/references/docker-patterns.md +116 -0
- package/skills/devops-engineer/references/github-actions.md +142 -0
- package/skills/devops-engineer/references/incident-response.md +334 -0
- package/skills/devops-engineer/references/kubernetes.md +157 -0
- package/skills/devops-engineer/references/platform-engineering.md +420 -0
- package/skills/devops-engineer/references/release-automation.md +530 -0
- package/skills/devops-engineer/references/terraform-iac.md +144 -0
- package/skills/django-expert/SKILL.md +89 -0
- package/skills/django-expert/references/authentication.md +148 -0
- package/skills/django-expert/references/drf-serializers.md +151 -0
- package/skills/django-expert/references/models-orm.md +154 -0
- package/skills/django-expert/references/testing-django.md +207 -0
- package/skills/django-expert/references/viewsets-views.md +156 -0
- package/skills/doc-coauthoring/SKILL.md +375 -0
- package/skills/docker-expert/SKILL.md +409 -0
- package/skills/docs-seeker/.env.example +15 -0
- package/skills/docs-seeker/SKILL.md +102 -0
- package/skills/docs-seeker/package.json +24 -0
- package/skills/docs-seeker/references/advanced.md +79 -0
- package/skills/docs-seeker/references/context7-patterns.md +68 -0
- package/skills/docs-seeker/references/errors.md +68 -0
- package/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/skills/docs-seeker/scripts/fetch-docs.js +213 -0
- package/skills/docs-seeker/scripts/tests/run-tests.js +72 -0
- package/skills/docs-seeker/scripts/tests/test-analyze-llms.js +119 -0
- package/skills/docs-seeker/scripts/tests/test-detect-topic.js +112 -0
- package/skills/docs-seeker/scripts/tests/test-fetch-docs.js +84 -0
- package/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
- package/skills/docs-seeker/workflows/library-search.md +87 -0
- package/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/skills/document-skills/docx/LICENSE.txt +30 -0
- package/skills/document-skills/docx/SKILL.md +197 -0
- package/skills/document-skills/docx/docx-js.md +350 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- package/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- package/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/document-skills/docx/ooxml.md +610 -0
- package/skills/document-skills/docx/scripts/__init__.py +1 -0
- package/skills/document-skills/docx/scripts/document.py +1276 -0
- package/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- package/skills/document-skills/docx/scripts/utilities.py +374 -0
- package/skills/document-skills/pdf/LICENSE.txt +30 -0
- package/skills/document-skills/pdf/SKILL.md +294 -0
- package/skills/document-skills/pdf/forms.md +205 -0
- package/skills/document-skills/pdf/reference.md +612 -0
- package/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/document-skills/pptx/LICENSE.txt +30 -0
- package/skills/document-skills/pptx/SKILL.md +484 -0
- package/skills/document-skills/pptx/html2pptx.md +625 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/document-skills/pptx/ooxml.md +427 -0
- package/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- package/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- package/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- package/skills/document-skills/pptx/scripts/replace.py +385 -0
- package/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- package/skills/document-skills/xlsx/LICENSE.txt +30 -0
- package/skills/document-skills/xlsx/SKILL.md +289 -0
- package/skills/document-skills/xlsx/recalc.py +178 -0
- package/skills/documentation-templates/SKILL.md +194 -0
- package/skills/docx/SKILL.md +94 -0
- package/skills/domain-name-brainstormer/SKILL.md +212 -0
- package/skills/dotnet-core-expert/SKILL.md +96 -0
- package/skills/dotnet-core-expert/references/authentication.md +549 -0
- package/skills/dotnet-core-expert/references/clean-architecture.md +458 -0
- package/skills/dotnet-core-expert/references/cloud-native.md +551 -0
- package/skills/dotnet-core-expert/references/entity-framework.md +443 -0
- package/skills/dotnet-core-expert/references/minimal-apis.md +322 -0
- package/skills/embedded-systems/SKILL.md +98 -0
- package/skills/embedded-systems/references/communication-protocols.md +414 -0
- package/skills/embedded-systems/references/memory-optimization.md +470 -0
- package/skills/embedded-systems/references/microcontroller-programming.md +397 -0
- package/skills/embedded-systems/references/power-optimization.md +444 -0
- package/skills/embedded-systems/references/rtos-patterns.md +316 -0
- package/skills/expo-app-design/SKILL.md +22 -0
- package/skills/expo-deployment/SKILL.md +22 -0
- package/skills/fastapi-expert/SKILL.md +93 -0
- package/skills/fastapi-expert/references/async-sqlalchemy.md +150 -0
- package/skills/fastapi-expert/references/authentication.md +162 -0
- package/skills/fastapi-expert/references/endpoints-routing.md +145 -0
- package/skills/fastapi-expert/references/migration-from-django.md +1000 -0
- package/skills/fastapi-expert/references/pydantic-v2.md +138 -0
- package/skills/fastapi-expert/references/testing-async.md +162 -0
- package/skills/fastapi-router/SKILL.md +52 -0
- package/skills/fastapi-router/assets/template.py +142 -0
- package/skills/feature-forge/SKILL.md +90 -0
- package/skills/feature-forge/references/acceptance-criteria.md +107 -0
- package/skills/feature-forge/references/ears-syntax.md +102 -0
- package/skills/feature-forge/references/interview-questions.md +96 -0
- package/skills/feature-forge/references/specification-template.md +106 -0
- package/skills/file-organizer/SKILL.md +433 -0
- package/skills/fine-tuning-expert/SKILL.md +98 -0
- package/skills/fine-tuning-expert/references/dataset-preparation.md +543 -0
- package/skills/fine-tuning-expert/references/deployment-optimization.md +676 -0
- package/skills/fine-tuning-expert/references/evaluation-metrics.md +600 -0
- package/skills/fine-tuning-expert/references/hyperparameter-tuning.md +569 -0
- package/skills/fine-tuning-expert/references/lora-peft.md +350 -0
- package/skills/flutter-expert/SKILL.md +88 -0
- package/skills/flutter-expert/references/gorouter-navigation.md +122 -0
- package/skills/flutter-expert/references/performance.md +102 -0
- package/skills/flutter-expert/references/project-structure.md +121 -0
- package/skills/flutter-expert/references/riverpod-state.md +133 -0
- package/skills/flutter-expert/references/widget-patterns.md +126 -0
- package/skills/foundry-iq-agent/references/knowledge-sources.md +262 -0
- package/skills/foundry-iq-agent/scripts/create_agent.py +287 -0
- package/skills/foundry-iq-python/SKILL.md +278 -0
- package/skills/foundry-iq-python/references/knowledge-sources.md +262 -0
- package/skills/foundry-iq-python/references/patterns.md +295 -0
- package/skills/foundry-iq-python/scripts/create_agent.py +287 -0
- package/skills/foundry-nextgen-frontend/SKILL.md +555 -0
- package/skills/foundry-nextgen-frontend/assets/foundry-logo-dark.png +0 -0
- package/skills/foundry-nextgen-frontend/assets/foundry-logo-light.png +0 -0
- package/skills/foundry-nextgen-frontend/references/components.md +566 -0
- package/skills/foundry-nextgen-frontend/references/design-tokens.md +172 -0
- package/skills/foundry-nextgen-frontend/references/patterns.md +406 -0
- package/skills/foundry-nextgen-frontend/write_files.py +1993 -0
- package/skills/foundry-sdk-python/SKILL.md +290 -0
- package/skills/foundry-sdk-python/references/agents.md +295 -0
- package/skills/foundry-sdk-python/references/async-patterns.md +258 -0
- package/skills/foundry-sdk-python/references/connections.md +203 -0
- package/skills/foundry-sdk-python/references/datasets-indexes.md +177 -0
- package/skills/foundry-sdk-python/references/deployments.md +134 -0
- package/skills/foundry-sdk-python/references/evaluation.md +309 -0
- package/skills/foundry-sdk-python/references/tools.md +464 -0
- package/skills/frontend-design/SKILL.md +39 -0
- package/skills/frontend-development/SKILL.md +399 -0
- package/skills/frontend-development/resources/common-patterns.md +331 -0
- package/skills/frontend-development/resources/complete-examples.md +872 -0
- package/skills/frontend-development/resources/component-patterns.md +502 -0
- package/skills/frontend-development/resources/data-fetching.md +767 -0
- package/skills/frontend-development/resources/file-organization.md +502 -0
- package/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/skills/frontend-development/resources/performance.md +406 -0
- package/skills/frontend-development/resources/routing-guide.md +364 -0
- package/skills/frontend-development/resources/styling-guide.md +428 -0
- package/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/skills/fullstack-guardian/SKILL.md +99 -0
- package/skills/fullstack-guardian/references/api-design-standards.md +310 -0
- package/skills/fullstack-guardian/references/architecture-decisions.md +353 -0
- package/skills/fullstack-guardian/references/backend-patterns.md +240 -0
- package/skills/fullstack-guardian/references/common-patterns.md +137 -0
- package/skills/fullstack-guardian/references/deliverables-checklist.md +357 -0
- package/skills/fullstack-guardian/references/design-template.md +94 -0
- package/skills/fullstack-guardian/references/error-handling.md +138 -0
- package/skills/fullstack-guardian/references/frontend-patterns.md +343 -0
- package/skills/fullstack-guardian/references/integration-patterns.md +336 -0
- package/skills/fullstack-guardian/references/security-checklist.md +109 -0
- package/skills/game-developer/SKILL.md +94 -0
- package/skills/game-developer/references/ecs-patterns.md +504 -0
- package/skills/game-developer/references/multiplayer-networking.md +478 -0
- package/skills/game-developer/references/performance-optimization.md +425 -0
- package/skills/game-developer/references/unity-patterns.md +274 -0
- package/skills/game-developer/references/unreal-cpp.md +355 -0
- package/skills/game-development/2d-games/SKILL.md +119 -0
- package/skills/game-development/3d-games/SKILL.md +135 -0
- package/skills/game-development/SKILL.md +167 -0
- package/skills/game-development/game-art/SKILL.md +185 -0
- package/skills/game-development/game-audio/SKILL.md +190 -0
- package/skills/game-development/game-design/SKILL.md +129 -0
- package/skills/game-development/mobile-games/SKILL.md +108 -0
- package/skills/game-development/multiplayer/SKILL.md +132 -0
- package/skills/game-development/pc-games/SKILL.md +144 -0
- package/skills/game-development/vr-ar/SKILL.md +123 -0
- package/skills/game-development/web-games/SKILL.md +150 -0
- package/skills/geo-fundamentals/SKILL.md +156 -0
- package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/skills/golang-pro/SKILL.md +94 -0
- package/skills/golang-pro/references/concurrency.md +332 -0
- package/skills/golang-pro/references/generics.md +445 -0
- package/skills/golang-pro/references/interfaces.md +435 -0
- package/skills/golang-pro/references/project-structure.md +480 -0
- package/skills/golang-pro/references/testing.md +454 -0
- package/skills/graphql-architect/SKILL.md +97 -0
- package/skills/graphql-architect/references/federation.md +421 -0
- package/skills/graphql-architect/references/migration-from-rest.md +1144 -0
- package/skills/graphql-architect/references/resolvers.md +428 -0
- package/skills/graphql-architect/references/schema-design.md +396 -0
- package/skills/graphql-architect/references/security.md +572 -0
- package/skills/graphql-architect/references/subscriptions.md +513 -0
- package/skills/i18n-localization/SKILL.md +154 -0
- package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/skills/image-enhancer/SKILL.md +99 -0
- package/skills/internal-comms/LICENSE.txt +202 -0
- package/skills/internal-comms/SKILL.md +32 -0
- package/skills/internal-comms/examples/3p-updates.md +47 -0
- package/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/skills/internal-comms/examples/faq-answers.md +30 -0
- package/skills/internal-comms/examples/general-comms.md +16 -0
- package/skills/invoice-organizer/SKILL.md +446 -0
- package/skills/issue-creator/SKILL.md +137 -0
- package/skills/java-architect/SKILL.md +95 -0
- package/skills/java-architect/references/jpa-optimization.md +396 -0
- package/skills/java-architect/references/reactive-webflux.md +359 -0
- package/skills/java-architect/references/spring-boot-setup.md +272 -0
- package/skills/java-architect/references/spring-security.md +448 -0
- package/skills/java-architect/references/testing-patterns.md +503 -0
- package/skills/javascript-pro/SKILL.md +95 -0
- package/skills/javascript-pro/references/async-patterns.md +337 -0
- package/skills/javascript-pro/references/browser-apis.md +401 -0
- package/skills/javascript-pro/references/modern-syntax.md +275 -0
- package/skills/javascript-pro/references/modules.md +360 -0
- package/skills/javascript-pro/references/node-essentials.md +474 -0
- package/skills/javascript-typescript/SKILL.md +142 -0
- package/skills/jira-issues/SKILL.md +181 -0
- package/skills/job-application/SKILL.md +90 -0
- package/skills/kotlin-specialist/SKILL.md +94 -0
- package/skills/kotlin-specialist/references/android-compose.md +422 -0
- package/skills/kotlin-specialist/references/coroutines-flow.md +279 -0
- package/skills/kotlin-specialist/references/dsl-idioms.md +424 -0
- package/skills/kotlin-specialist/references/ktor-server.md +429 -0
- package/skills/kotlin-specialist/references/multiplatform-kmp.md +383 -0
- package/skills/kubernetes-specialist/SKILL.md +117 -0
- package/skills/kubernetes-specialist/references/configuration.md +455 -0
- package/skills/kubernetes-specialist/references/cost-optimization.md +461 -0
- package/skills/kubernetes-specialist/references/custom-operators.md +566 -0
- package/skills/kubernetes-specialist/references/gitops.md +533 -0
- package/skills/kubernetes-specialist/references/helm-charts.md +915 -0
- package/skills/kubernetes-specialist/references/multi-cluster.md +510 -0
- package/skills/kubernetes-specialist/references/networking.md +450 -0
- package/skills/kubernetes-specialist/references/service-mesh.md +462 -0
- package/skills/kubernetes-specialist/references/storage.md +538 -0
- package/skills/kubernetes-specialist/references/troubleshooting.md +417 -0
- package/skills/kubernetes-specialist/references/workloads.md +380 -0
- package/skills/laravel-specialist/SKILL.md +101 -0
- package/skills/laravel-specialist/references/eloquent.md +354 -0
- package/skills/laravel-specialist/references/livewire.md +515 -0
- package/skills/laravel-specialist/references/queues.md +426 -0
- package/skills/laravel-specialist/references/routing.md +365 -0
- package/skills/laravel-specialist/references/testing.md +525 -0
- package/skills/lead-research-assistant/SKILL.md +199 -0
- package/skills/legacy-modernizer/SKILL.md +93 -0
- package/skills/legacy-modernizer/references/legacy-testing.md +384 -0
- package/skills/legacy-modernizer/references/migration-strategies.md +426 -0
- package/skills/legacy-modernizer/references/refactoring-patterns.md +398 -0
- package/skills/legacy-modernizer/references/strangler-fig-pattern.md +284 -0
- package/skills/legacy-modernizer/references/system-assessment.md +490 -0
- package/skills/lint-and-validate/SKILL.md +45 -0
- package/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/skills/llm-application-dev/SKILL.md +216 -0
- package/skills/mcp-builder/LICENSE.txt +202 -0
- package/skills/mcp-builder/SKILL.md +328 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mcp-developer/SKILL.md +94 -0
- package/skills/mcp-developer/references/protocol.md +247 -0
- package/skills/mcp-developer/references/python-sdk.md +370 -0
- package/skills/mcp-developer/references/resources.md +557 -0
- package/skills/mcp-developer/references/tools.md +483 -0
- package/skills/mcp-developer/references/typescript-sdk.md +353 -0
- package/skills/media-processing/SKILL.md +358 -0
- package/skills/media-processing/references/ffmpeg-encoding.md +358 -0
- package/skills/media-processing/references/ffmpeg-filters.md +503 -0
- package/skills/media-processing/references/ffmpeg-streaming.md +403 -0
- package/skills/media-processing/references/format-compatibility.md +375 -0
- package/skills/media-processing/references/imagemagick-batch.md +612 -0
- package/skills/media-processing/references/imagemagick-editing.md +623 -0
- package/skills/media-processing/scripts/batch_resize.py +342 -0
- package/skills/media-processing/scripts/media_convert.py +311 -0
- package/skills/media-processing/scripts/requirements.txt +24 -0
- package/skills/media-processing/scripts/tests/.coverage +0 -0
- package/skills/media-processing/scripts/tests/requirements.txt +2 -0
- package/skills/media-processing/scripts/tests/test_batch_resize.py +372 -0
- package/skills/media-processing/scripts/tests/test_media_convert.py +259 -0
- package/skills/media-processing/scripts/tests/test_video_optimize.py +397 -0
- package/skills/media-processing/scripts/video_optimize.py +414 -0
- package/skills/meeting-insights-analyzer/SKILL.md +327 -0
- package/skills/microservices-architect/SKILL.md +102 -0
- package/skills/microservices-architect/references/communication.md +499 -0
- package/skills/microservices-architect/references/data.md +721 -0
- package/skills/microservices-architect/references/decomposition.md +344 -0
- package/skills/microservices-architect/references/observability.md +805 -0
- package/skills/microservices-architect/references/patterns.md +603 -0
- package/skills/ml-pipeline/SKILL.md +111 -0
- package/skills/ml-pipeline/references/experiment-tracking.md +843 -0
- package/skills/ml-pipeline/references/feature-engineering.md +639 -0
- package/skills/ml-pipeline/references/model-validation.md +989 -0
- package/skills/ml-pipeline/references/pipeline-orchestration.md +938 -0
- package/skills/ml-pipeline/references/training-pipelines.md +793 -0
- package/skills/mobile-design/SKILL.md +394 -0
- package/skills/mobile-design/decision-trees.md +516 -0
- package/skills/mobile-design/mobile-backend.md +491 -0
- package/skills/mobile-design/mobile-color-system.md +420 -0
- package/skills/mobile-design/mobile-debugging.md +122 -0
- package/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/skills/mobile-design/mobile-navigation.md +458 -0
- package/skills/mobile-design/mobile-performance.md +767 -0
- package/skills/mobile-design/mobile-testing.md +356 -0
- package/skills/mobile-design/mobile-typography.md +433 -0
- package/skills/mobile-design/platform-android.md +666 -0
- package/skills/mobile-design/platform-ios.md +561 -0
- package/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/skills/mobile-design/touch-psychology.md +537 -0
- package/skills/mobile-development/SKILL.md +212 -0
- package/skills/mobile-development/references/mobile-android.md +604 -0
- package/skills/mobile-development/references/mobile-best-practices.md +545 -0
- package/skills/mobile-development/references/mobile-debugging.md +1089 -0
- package/skills/mobile-development/references/mobile-frameworks.md +465 -0
- package/skills/mobile-development/references/mobile-ios.md +496 -0
- package/skills/mobile-development/references/mobile-mindset.md +544 -0
- package/skills/monitoring-expert/SKILL.md +92 -0
- package/skills/monitoring-expert/references/alerting-rules.md +144 -0
- package/skills/monitoring-expert/references/application-profiling.md +334 -0
- package/skills/monitoring-expert/references/capacity-planning.md +347 -0
- package/skills/monitoring-expert/references/dashboards.md +129 -0
- package/skills/monitoring-expert/references/opentelemetry.md +126 -0
- package/skills/monitoring-expert/references/performance-testing.md +272 -0
- package/skills/monitoring-expert/references/prometheus-metrics.md +139 -0
- package/skills/monitoring-expert/references/structured-logging.md +145 -0
- package/skills/nestjs-expert/SKILL.md +552 -0
- package/skills/nextjs-best-practices/SKILL.md +203 -0
- package/skills/nextjs-developer/SKILL.md +97 -0
- package/skills/nextjs-developer/references/app-router.md +314 -0
- package/skills/nextjs-developer/references/data-fetching.md +485 -0
- package/skills/nextjs-developer/references/deployment.md +548 -0
- package/skills/nextjs-developer/references/server-actions.md +465 -0
- package/skills/nextjs-developer/references/server-components.md +387 -0
- package/skills/nodejs-best-practices/SKILL.md +333 -0
- package/skills/notebooklm-skill/AUTHENTICATION.md +154 -0
- package/skills/notebooklm-skill/SKILL.md +269 -0
- package/skills/notebooklm-skill/references/api_reference.md +309 -0
- package/skills/notebooklm-skill/references/troubleshooting.md +376 -0
- package/skills/notebooklm-skill/references/usage_patterns.md +338 -0
- package/skills/notebooklm-skill/scripts/__init__.py +81 -0
- package/skills/notebooklm-skill/scripts/ask_question.py +256 -0
- package/skills/notebooklm-skill/scripts/auth_manager.py +358 -0
- package/skills/notebooklm-skill/scripts/browser_session.py +255 -0
- package/skills/notebooklm-skill/scripts/browser_utils.py +107 -0
- package/skills/notebooklm-skill/scripts/cleanup_manager.py +302 -0
- package/skills/notebooklm-skill/scripts/config.py +44 -0
- package/skills/notebooklm-skill/scripts/notebook_manager.py +410 -0
- package/skills/notebooklm-skill/scripts/run.py +102 -0
- package/skills/notebooklm-skill/scripts/setup_environment.py +204 -0
- package/skills/pandas-pro/SKILL.md +96 -0
- package/skills/pandas-pro/references/aggregation-groupby.md +548 -0
- package/skills/pandas-pro/references/data-cleaning.md +503 -0
- package/skills/pandas-pro/references/dataframe-operations.md +423 -0
- package/skills/pandas-pro/references/merging-joining.md +599 -0
- package/skills/pandas-pro/references/performance-optimization.md +600 -0
- package/skills/parallel-agents/SKILL.md +175 -0
- package/skills/pdf/SKILL.md +104 -0
- package/skills/performance-profiling/SKILL.md +143 -0
- package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/skills/php-pro/SKILL.md +95 -0
- package/skills/php-pro/references/async-patterns.md +415 -0
- package/skills/php-pro/references/laravel-patterns.md +380 -0
- package/skills/php-pro/references/modern-php-features.md +326 -0
- package/skills/php-pro/references/symfony-patterns.md +474 -0
- package/skills/php-pro/references/testing-quality.md +469 -0
- package/skills/plan-writing/SKILL.md +152 -0
- package/skills/planning/SKILL.md +95 -0
- package/skills/planning/references/codebase-understanding.md +61 -0
- package/skills/planning/references/output-standards.md +87 -0
- package/skills/planning/references/plan-organization.md +115 -0
- package/skills/planning/references/research-phase.md +49 -0
- package/skills/planning/references/solution-design.md +63 -0
- package/skills/playwright-expert/SKILL.md +87 -0
- package/skills/playwright-expert/references/api-mocking.md +143 -0
- package/skills/playwright-expert/references/configuration.md +158 -0
- package/skills/playwright-expert/references/debugging-flaky.md +153 -0
- package/skills/playwright-expert/references/page-object-model.md +155 -0
- package/skills/playwright-expert/references/selectors-locators.md +122 -0
- package/skills/playwright-skill/API_REFERENCE.md +653 -0
- package/skills/playwright-skill/SKILL.md +453 -0
- package/skills/playwright-skill/lib/helpers.js +441 -0
- package/skills/playwright-skill/package.json +26 -0
- package/skills/playwright-skill/run.js +228 -0
- package/skills/podcast-generation/SKILL.md +123 -0
- package/skills/podcast-generation/references/architecture.md +87 -0
- package/skills/podcast-generation/references/code-examples.md +189 -0
- package/skills/podcast-generation/scripts/pcm_to_wav.py +73 -0
- package/skills/postgres-pro/SKILL.md +98 -0
- package/skills/postgres-pro/references/extensions.md +407 -0
- package/skills/postgres-pro/references/jsonb.md +324 -0
- package/skills/postgres-pro/references/maintenance.md +484 -0
- package/skills/postgres-pro/references/performance.md +268 -0
- package/skills/postgres-pro/references/replication.md +449 -0
- package/skills/powershell-windows/SKILL.md +167 -0
- package/skills/pptx/SKILL.md +114 -0
- package/skills/prisma-expert/SKILL.md +355 -0
- package/skills/problem-solving/SKILL.md +96 -0
- package/skills/problem-solving/references/attribution.md +69 -0
- package/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/skills/problem-solving/references/scale-game.md +95 -0
- package/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/skills/problem-solving/references/when-stuck.md +72 -0
- package/skills/product-manager-toolkit/SKILL.md +351 -0
- package/skills/product-manager-toolkit/references/prd_templates.md +317 -0
- package/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
- package/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
- package/skills/product-strategist/SKILL.md +26 -0
- package/skills/product-strategist/scripts/okr_cascade_generator.py +478 -0
- package/skills/prompt-engineer/SKILL.md +99 -0
- package/skills/prompt-engineer/references/evaluation-frameworks.md +781 -0
- package/skills/prompt-engineer/references/prompt-optimization.md +563 -0
- package/skills/prompt-engineer/references/prompt-patterns.md +509 -0
- package/skills/prompt-engineer/references/structured-outputs.md +723 -0
- package/skills/prompt-engineer/references/system-prompts.md +547 -0
- package/skills/pydantic-models/SKILL.md +58 -0
- package/skills/pydantic-models/assets/template.py +124 -0
- package/skills/python-development/SKILL.md +139 -0
- package/skills/python-patterns/SKILL.md +441 -0
- package/skills/python-pro/SKILL.md +92 -0
- package/skills/python-pro/references/async-patterns.md +359 -0
- package/skills/python-pro/references/packaging.md +463 -0
- package/skills/python-pro/references/standard-library.md +381 -0
- package/skills/python-pro/references/testing.md +407 -0
- package/skills/python-pro/references/type-system.md +293 -0
- package/skills/qa-regression/SKILL.md +337 -0
- package/skills/raffle-winner-picker/SKILL.md +159 -0
- package/skills/rag-architect/SKILL.md +100 -0
- package/skills/rag-architect/references/chunking-strategies.md +881 -0
- package/skills/rag-architect/references/embedding-models.md +564 -0
- package/skills/rag-architect/references/rag-evaluation.md +836 -0
- package/skills/rag-architect/references/retrieval-optimization.md +798 -0
- package/skills/rag-architect/references/vector-databases.md +592 -0
- package/skills/rails-expert/SKILL.md +97 -0
- package/skills/rails-expert/references/active-record.md +247 -0
- package/skills/rails-expert/references/api-development.md +404 -0
- package/skills/rails-expert/references/background-jobs.md +275 -0
- package/skills/rails-expert/references/hotwire-turbo.md +231 -0
- package/skills/rails-expert/references/rspec-testing.md +370 -0
- package/skills/react-best-practices/AGENTS.md +2934 -0
- package/skills/react-best-practices/README.md +123 -0
- package/skills/react-best-practices/SKILL.md +136 -0
- package/skills/react-best-practices/metadata.json +15 -0
- package/skills/react-best-practices/rules/_sections.md +46 -0
- package/skills/react-best-practices/rules/_template.md +28 -0
- package/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/skills/react-expert/SKILL.md +98 -0
- package/skills/react-expert/references/hooks-patterns.md +165 -0
- package/skills/react-expert/references/migration-class-to-modern.md +1122 -0
- package/skills/react-expert/references/performance.md +171 -0
- package/skills/react-expert/references/react-19-features.md +177 -0
- package/skills/react-expert/references/server-components.md +146 -0
- package/skills/react-expert/references/state-management.md +174 -0
- package/skills/react-expert/references/testing-react.md +177 -0
- package/skills/react-flow-node/SKILL.md +66 -0
- package/skills/react-flow-node/assets/template.tsx +108 -0
- package/skills/react-flow-node/assets/types.template.ts +34 -0
- package/skills/react-native-expert/SKILL.md +88 -0
- package/skills/react-native-expert/references/expo-router.md +190 -0
- package/skills/react-native-expert/references/list-optimization.md +207 -0
- package/skills/react-native-expert/references/platform-handling.md +191 -0
- package/skills/react-native-expert/references/project-structure.md +174 -0
- package/skills/react-native-expert/references/storage-hooks.md +176 -0
- package/skills/react-patterns/SKILL.md +198 -0
- package/skills/receiving-code-review/SKILL.md +213 -0
- package/skills/red-team-tactics/SKILL.md +199 -0
- package/skills/repomix/SKILL.md +275 -0
- package/skills/repomix/references/configuration.md +211 -0
- package/skills/repomix/references/usage-patterns.md +291 -0
- package/skills/repomix/scripts/.coverage +0 -0
- package/skills/repomix/scripts/README.md +179 -0
- package/skills/repomix/scripts/repomix_batch.py +455 -0
- package/skills/repomix/scripts/repos.example.json +15 -0
- package/skills/repomix/scripts/requirements.txt +15 -0
- package/skills/repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/research/SKILL.md +191 -0
- package/skills/rust-engineer/SKILL.md +96 -0
- package/skills/rust-engineer/references/async.md +461 -0
- package/skills/rust-engineer/references/error-handling.md +337 -0
- package/skills/rust-engineer/references/ownership.md +281 -0
- package/skills/rust-engineer/references/testing.md +473 -0
- package/skills/rust-engineer/references/traits.md +416 -0
- package/skills/salesforce-developer/SKILL.md +105 -0
- package/skills/salesforce-developer/references/apex-development.md +789 -0
- package/skills/salesforce-developer/references/deployment-devops.md +863 -0
- package/skills/salesforce-developer/references/integration-patterns.md +951 -0
- package/skills/salesforce-developer/references/lightning-web-components.md +908 -0
- package/skills/salesforce-developer/references/soql-sosl.md +683 -0
- package/skills/secure-code-guardian/SKILL.md +93 -0
- package/skills/secure-code-guardian/references/authentication.md +139 -0
- package/skills/secure-code-guardian/references/input-validation.md +149 -0
- package/skills/secure-code-guardian/references/owasp-prevention.md +138 -0
- package/skills/secure-code-guardian/references/security-headers.md +136 -0
- package/skills/secure-code-guardian/references/xss-csrf.md +160 -0
- package/skills/security-reviewer/SKILL.md +94 -0
- package/skills/security-reviewer/references/infrastructure-security.md +271 -0
- package/skills/security-reviewer/references/penetration-testing.md +271 -0
- package/skills/security-reviewer/references/report-template.md +173 -0
- package/skills/security-reviewer/references/sast-tools.md +120 -0
- package/skills/security-reviewer/references/secret-scanning.md +128 -0
- package/skills/security-reviewer/references/vulnerability-patterns.md +155 -0
- package/skills/senior-architect/SKILL.md +209 -0
- package/skills/senior-architect/references/architecture_patterns.md +103 -0
- package/skills/senior-architect/references/system_design_workflows.md +103 -0
- package/skills/senior-architect/references/tech_decision_guide.md +103 -0
- package/skills/senior-architect/scripts/architecture_diagram_generator.py +114 -0
- package/skills/senior-architect/scripts/dependency_analyzer.py +114 -0
- package/skills/senior-architect/scripts/project_architect.py +114 -0
- package/skills/senior-backend/SKILL.md +209 -0
- package/skills/senior-backend/references/api_design_patterns.md +103 -0
- package/skills/senior-backend/references/backend_security_practices.md +103 -0
- package/skills/senior-backend/references/database_optimization_guide.md +103 -0
- package/skills/senior-backend/scripts/api_load_tester.py +114 -0
- package/skills/senior-backend/scripts/api_scaffolder.py +114 -0
- package/skills/senior-backend/scripts/database_migration_tool.py +114 -0
- package/skills/senior-computer-vision/SKILL.md +226 -0
- package/skills/senior-computer-vision/references/computer_vision_architectures.md +80 -0
- package/skills/senior-computer-vision/references/object_detection_optimization.md +80 -0
- package/skills/senior-computer-vision/references/production_vision_systems.md +80 -0
- package/skills/senior-computer-vision/scripts/dataset_pipeline_builder.py +100 -0
- package/skills/senior-computer-vision/scripts/inference_optimizer.py +100 -0
- package/skills/senior-computer-vision/scripts/vision_model_trainer.py +100 -0
- package/skills/senior-data-engineer/SKILL.md +226 -0
- package/skills/senior-data-engineer/references/data_modeling_patterns.md +80 -0
- package/skills/senior-data-engineer/references/data_pipeline_architecture.md +80 -0
- package/skills/senior-data-engineer/references/dataops_best_practices.md +80 -0
- package/skills/senior-data-engineer/scripts/data_quality_validator.py +100 -0
- package/skills/senior-data-engineer/scripts/etl_performance_optimizer.py +100 -0
- package/skills/senior-data-engineer/scripts/pipeline_orchestrator.py +100 -0
- package/skills/senior-data-scientist/SKILL.md +226 -0
- package/skills/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
- package/skills/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
- package/skills/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
- package/skills/senior-data-scientist/scripts/experiment_designer.py +100 -0
- package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
- package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
- package/skills/senior-devops/SKILL.md +209 -0
- package/skills/senior-devops/references/cicd_pipeline_guide.md +103 -0
- package/skills/senior-devops/references/deployment_strategies.md +103 -0
- package/skills/senior-devops/references/infrastructure_as_code.md +103 -0
- package/skills/senior-devops/scripts/deployment_manager.py +114 -0
- package/skills/senior-devops/scripts/pipeline_generator.py +114 -0
- package/skills/senior-devops/scripts/terraform_scaffolder.py +114 -0
- package/skills/senior-frontend/SKILL.md +209 -0
- package/skills/senior-frontend/references/frontend_best_practices.md +103 -0
- package/skills/senior-frontend/references/nextjs_optimization_guide.md +103 -0
- package/skills/senior-frontend/references/react_patterns.md +103 -0
- package/skills/senior-frontend/scripts/bundle_analyzer.py +114 -0
- package/skills/senior-frontend/scripts/component_generator.py +114 -0
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +114 -0
- package/skills/senior-fullstack/SKILL.md +209 -0
- package/skills/senior-fullstack/references/architecture_patterns.md +103 -0
- package/skills/senior-fullstack/references/development_workflows.md +103 -0
- package/skills/senior-fullstack/references/tech_stack_guide.md +103 -0
- package/skills/senior-fullstack/scripts/code_quality_analyzer.py +114 -0
- package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +114 -0
- package/skills/senior-fullstack/scripts/project_scaffolder.py +114 -0
- package/skills/senior-ml-engineer/SKILL.md +226 -0
- package/skills/senior-ml-engineer/references/llm_integration_guide.md +80 -0
- package/skills/senior-ml-engineer/references/mlops_production_patterns.md +80 -0
- package/skills/senior-ml-engineer/references/rag_system_architecture.md +80 -0
- package/skills/senior-ml-engineer/scripts/ml_monitoring_suite.py +100 -0
- package/skills/senior-ml-engineer/scripts/model_deployment_pipeline.py +100 -0
- package/skills/senior-ml-engineer/scripts/rag_system_builder.py +100 -0
- package/skills/senior-prompt-engineer/SKILL.md +226 -0
- package/skills/senior-prompt-engineer/references/agentic_system_design.md +80 -0
- package/skills/senior-prompt-engineer/references/llm_evaluation_frameworks.md +80 -0
- package/skills/senior-prompt-engineer/references/prompt_engineering_patterns.md +80 -0
- package/skills/senior-prompt-engineer/scripts/agent_orchestrator.py +100 -0
- package/skills/senior-prompt-engineer/scripts/prompt_optimizer.py +100 -0
- package/skills/senior-prompt-engineer/scripts/rag_evaluator.py +100 -0
- package/skills/senior-qa/SKILL.md +209 -0
- package/skills/senior-qa/references/qa_best_practices.md +103 -0
- package/skills/senior-qa/references/test_automation_patterns.md +103 -0
- package/skills/senior-qa/references/testing_strategies.md +103 -0
- package/skills/senior-qa/scripts/coverage_analyzer.py +114 -0
- package/skills/senior-qa/scripts/e2e_test_scaffolder.py +114 -0
- package/skills/senior-qa/scripts/test_suite_generator.py +114 -0
- package/skills/senior-secops/SKILL.md +209 -0
- package/skills/senior-secops/references/compliance_requirements.md +103 -0
- package/skills/senior-secops/references/security_standards.md +103 -0
- package/skills/senior-secops/references/vulnerability_management_guide.md +103 -0
- package/skills/senior-secops/scripts/compliance_checker.py +114 -0
- package/skills/senior-secops/scripts/security_scanner.py +114 -0
- package/skills/senior-secops/scripts/vulnerability_assessor.py +114 -0
- package/skills/senior-security/SKILL.md +209 -0
- package/skills/senior-security/references/cryptography_implementation.md +103 -0
- package/skills/senior-security/references/penetration_testing_guide.md +103 -0
- package/skills/senior-security/references/security_architecture_patterns.md +103 -0
- package/skills/senior-security/scripts/pentest_automator.py +114 -0
- package/skills/senior-security/scripts/security_auditor.py +114 -0
- package/skills/senior-security/scripts/threat_modeler.py +114 -0
- package/skills/seo-fundamentals/SKILL.md +129 -0
- package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/skills/sequential-thinking/.env.example +8 -0
- package/skills/sequential-thinking/README.md +189 -0
- package/skills/sequential-thinking/SKILL.md +94 -0
- package/skills/sequential-thinking/package.json +30 -0
- package/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/skills/sequential-thinking/references/examples-api.md +88 -0
- package/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/skills/sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/server-management/SKILL.md +161 -0
- package/skills/shopify-expert/SKILL.md +102 -0
- package/skills/shopify-expert/references/app-development.md +897 -0
- package/skills/shopify-expert/references/checkout-customization.md +877 -0
- package/skills/shopify-expert/references/liquid-templating.md +693 -0
- package/skills/shopify-expert/references/performance-optimization.md +725 -0
- package/skills/shopify-expert/references/storefront-api.md +939 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +209 -0
- package/skills/skill-creator/scripts/init_skill.py +303 -0
- package/skills/skill-creator/scripts/package_skill.py +110 -0
- package/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/skills/skill-share/SKILL.md +80 -0
- package/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/skills/slack-gif-creator/SKILL.md +646 -0
- package/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/skills/slack-gif-creator/core/easing.py +230 -0
- package/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/skills/slack-gif-creator/core/typography.py +357 -0
- package/skills/slack-gif-creator/core/validators.py +264 -0
- package/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/skills/slack-gif-creator/requirements.txt +4 -0
- package/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/skills/slack-gif-creator/templates/explode.py +331 -0
- package/skills/slack-gif-creator/templates/fade.py +329 -0
- package/skills/slack-gif-creator/templates/flip.py +291 -0
- package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/skills/slack-gif-creator/templates/morph.py +329 -0
- package/skills/slack-gif-creator/templates/move.py +293 -0
- package/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/skills/slack-gif-creator/templates/shake.py +127 -0
- package/skills/slack-gif-creator/templates/slide.py +291 -0
- package/skills/slack-gif-creator/templates/spin.py +269 -0
- package/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/skills/spark-engineer/SKILL.md +100 -0
- package/skills/spark-engineer/references/partitioning-caching.md +546 -0
- package/skills/spark-engineer/references/performance-tuning.md +547 -0
- package/skills/spark-engineer/references/rdd-operations.md +602 -0
- package/skills/spark-engineer/references/spark-sql-dataframes.md +477 -0
- package/skills/spark-engineer/references/streaming-patterns.md +789 -0
- package/skills/spec-miner/SKILL.md +88 -0
- package/skills/spec-miner/references/analysis-checklist.md +68 -0
- package/skills/spec-miner/references/analysis-process.md +73 -0
- package/skills/spec-miner/references/ears-format.md +89 -0
- package/skills/spec-miner/references/specification-template.md +103 -0
- package/skills/spring-boot-engineer/SKILL.md +104 -0
- package/skills/spring-boot-engineer/references/cloud.md +501 -0
- package/skills/spring-boot-engineer/references/data.md +384 -0
- package/skills/spring-boot-engineer/references/security.md +462 -0
- package/skills/spring-boot-engineer/references/testing.md +548 -0
- package/skills/spring-boot-engineer/references/web.md +298 -0
- package/skills/sql-pro/SKILL.md +97 -0
- package/skills/sql-pro/references/database-design.md +405 -0
- package/skills/sql-pro/references/dialect-differences.md +422 -0
- package/skills/sql-pro/references/optimization.md +387 -0
- package/skills/sql-pro/references/query-patterns.md +288 -0
- package/skills/sql-pro/references/window-functions.md +331 -0
- package/skills/sre-engineer/SKILL.md +98 -0
- package/skills/sre-engineer/references/automation-toil.md +495 -0
- package/skills/sre-engineer/references/error-budget-policy.md +337 -0
- package/skills/sre-engineer/references/incident-chaos.md +578 -0
- package/skills/sre-engineer/references/monitoring-alerting.md +427 -0
- package/skills/sre-engineer/references/slo-sli-management.md +241 -0
- package/skills/swift-expert/SKILL.md +94 -0
- package/skills/swift-expert/references/async-concurrency.md +363 -0
- package/skills/swift-expert/references/memory-performance.md +380 -0
- package/skills/swift-expert/references/protocol-oriented.md +357 -0
- package/skills/swift-expert/references/swiftui-patterns.md +294 -0
- package/skills/swift-expert/references/testing-patterns.md +402 -0
- package/skills/systematic-debugging/SKILL.md +109 -0
- package/skills/tailwind-patterns/SKILL.md +269 -0
- package/skills/tdd-workflow/SKILL.md +149 -0
- package/skills/template-skill/SKILL.md +6 -0
- package/skills/terraform-engineer/SKILL.md +97 -0
- package/skills/terraform-engineer/references/best-practices.md +586 -0
- package/skills/terraform-engineer/references/module-patterns.md +300 -0
- package/skills/terraform-engineer/references/providers.md +455 -0
- package/skills/terraform-engineer/references/state-management.md +374 -0
- package/skills/terraform-engineer/references/testing.md +489 -0
- package/skills/test-master/SKILL.md +104 -0
- package/skills/test-master/references/automation-frameworks.md +297 -0
- package/skills/test-master/references/e2e-testing.md +131 -0
- package/skills/test-master/references/integration-testing.md +123 -0
- package/skills/test-master/references/performance-testing.md +121 -0
- package/skills/test-master/references/qa-methodology.md +250 -0
- package/skills/test-master/references/security-testing.md +130 -0
- package/skills/test-master/references/tdd-iron-laws.md +177 -0
- package/skills/test-master/references/test-reports.md +107 -0
- package/skills/test-master/references/testing-anti-patterns.md +234 -0
- package/skills/test-master/references/unit-testing.md +116 -0
- package/skills/testing-patterns/SKILL.md +178 -0
- package/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/skills/theme-factory/LICENSE.txt +202 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/threejs/SKILL.md +89 -0
- package/skills/threejs/references/01-getting-started.md +177 -0
- package/skills/threejs/references/02-loaders.md +169 -0
- package/skills/threejs/references/03-textures.md +170 -0
- package/skills/threejs/references/04-cameras.md +195 -0
- package/skills/threejs/references/05-lights.md +183 -0
- package/skills/threejs/references/06-animations.md +214 -0
- package/skills/threejs/references/07-math.md +260 -0
- package/skills/threejs/references/08-interaction.md +267 -0
- package/skills/threejs/references/09-postprocessing.md +240 -0
- package/skills/threejs/references/10-controls.md +259 -0
- package/skills/threejs/references/11-materials-advanced.md +270 -0
- package/skills/threejs/references/12-performance.md +269 -0
- package/skills/threejs/references/13-node-materials.md +298 -0
- package/skills/threejs/references/14-physics-vr.md +304 -0
- package/skills/threejs/references/15-specialized-loaders.md +333 -0
- package/skills/threejs/references/16-webgpu.md +302 -0
- package/skills/typescript-expert/SKILL.md +429 -0
- package/skills/typescript-expert/references/tsconfig-strict.json +92 -0
- package/skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
- package/skills/typescript-expert/references/utility-types.ts +335 -0
- package/skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
- package/skills/typescript-pro/SKILL.md +94 -0
- package/skills/typescript-pro/references/advanced-types.md +262 -0
- package/skills/typescript-pro/references/configuration.md +448 -0
- package/skills/typescript-pro/references/patterns.md +487 -0
- package/skills/typescript-pro/references/type-guards.md +355 -0
- package/skills/typescript-pro/references/utility-types.md +332 -0
- package/skills/ui-design-system/SKILL.md +32 -0
- package/skills/ui-design-system/scripts/design_token_generator.py +529 -0
- package/skills/ui-styling/LICENSE.txt +202 -0
- package/skills/ui-styling/SKILL.md +321 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/ui-styling/references/shadcn-components.md +424 -0
- package/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/ui-styling/scripts/.coverage +0 -0
- package/skills/ui-styling/scripts/requirements.txt +17 -0
- package/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/ui-ux-pro-max/SKILL.md +365 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/scripts/core.py +258 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +487 -0
- package/skills/ui-ux-pro-max/scripts/search.py +76 -0
- package/skills/upgrading-expo/SKILL.md +22 -0
- package/skills/using-git-worktrees/SKILL.md +217 -0
- package/skills/ux-researcher-designer/SKILL.md +30 -0
- package/skills/ux-researcher-designer/scripts/persona_generator.py +508 -0
- package/skills/vercel-deploy/SKILL.md +22 -0
- package/skills/video-downloader/SKILL.md +106 -0
- package/skills/vue-expert/SKILL.md +374 -0
- package/skills/vue-expert/references/component-template.vue +232 -0
- package/skills/vue-expert/references/composables-template.ts +247 -0
- package/skills/vue-expert/references/composition-api-cheatsheet.md +281 -0
- package/skills/vue-expert/references/pinia-store-template.ts +141 -0
- package/skills/vue-expert/scripts/vue_diagnostic.py +144 -0
- package/skills/vue-expert-js/SKILL.md +91 -0
- package/skills/vue-expert-js/references/jsdoc-typing.md +538 -0
- package/skills/vulnerability-scanner/SKILL.md +276 -0
- package/skills/vulnerability-scanner/checklists.md +121 -0
- package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/skills/web-artifacts-builder/LICENSE.txt +202 -0
- package/skills/web-artifacts-builder/SKILL.md +74 -0
- package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/skills/web-frameworks/SKILL.md +324 -0
- package/skills/web-frameworks/references/nextjs-app-router.md +465 -0
- package/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/skills/web-frameworks/references/nextjs-optimization.md +511 -0
- package/skills/web-frameworks/references/nextjs-server-components.md +495 -0
- package/skills/web-frameworks/references/remix-icon-integration.md +603 -0
- package/skills/web-frameworks/references/turborepo-caching.md +551 -0
- package/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/skills/web-frameworks/references/turborepo-setup.md +542 -0
- package/skills/web-frameworks/scripts/.coverage +0 -0
- package/skills/web-frameworks/scripts/__init__.py +0 -0
- package/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/skills/web-frameworks/scripts/requirements.txt +16 -0
- package/skills/web-frameworks/scripts/tests/coverage-web.json +1 -0
- package/skills/web-frameworks/scripts/tests/requirements.txt +3 -0
- package/skills/web-frameworks/scripts/tests/test_nextjs_init.py +319 -0
- package/skills/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -0
- package/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/skills/webapp-testing/LICENSE.txt +202 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/skills/websocket-engineer/SKILL.md +96 -0
- package/skills/websocket-engineer/references/alternatives.md +391 -0
- package/skills/websocket-engineer/references/patterns.md +400 -0
- package/skills/websocket-engineer/references/protocol.md +195 -0
- package/skills/websocket-engineer/references/scaling.md +333 -0
- package/skills/websocket-engineer/references/security.md +474 -0
- package/skills/wordpress-pro/SKILL.md +105 -0
- package/skills/wordpress-pro/references/gutenberg-blocks.md +873 -0
- package/skills/wordpress-pro/references/hooks-filters.md +848 -0
- package/skills/wordpress-pro/references/performance-security.md +1015 -0
- package/skills/wordpress-pro/references/plugin-architecture.md +1044 -0
- package/skills/wordpress-pro/references/theme-development.md +861 -0
- package/skills/writing-plans/SKILL.md +116 -0
- package/skills/writing-skills/SKILL.md +655 -0
- package/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/writing-skills/persuasion-principles.md +187 -0
- package/skills/writing-skills/render-graphs.js +168 -0
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/xlsx/SKILL.md +100 -0
- package/skills/youtube-transcript/SKILL.md +415 -0
- package/skills/zustand-store/SKILL.md +68 -0
- package/skills/zustand-store/assets/template.ts +117 -0
|
@@ -0,0 +1,1993 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Script to write the updated skill files."""
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
6
|
+
|
|
7
|
+
# SKILL.md content
|
|
8
|
+
skill_md = '''# Microsoft Foundry NextGen Frontend Skill
|
|
9
|
+
|
|
10
|
+
Build elegant frontend UIs following Microsoft Foundry's NextGen Design System.
|
|
11
|
+
|
|
12
|
+
## Stack
|
|
13
|
+
|
|
14
|
+
- **Build**: Vite + React + pnpm
|
|
15
|
+
- **Styling**: CSS variables following Foundry design tokens
|
|
16
|
+
- **Icons**: Lucide React icons
|
|
17
|
+
- **Charts**: Recharts with Foundry theming
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm create vite@latest my-foundry-app --template react-ts
|
|
23
|
+
cd my-foundry-app
|
|
24
|
+
pnpm add lucide-react recharts
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Critical Design Principles
|
|
28
|
+
|
|
29
|
+
### Color Usage - IMPORTANT
|
|
30
|
+
|
|
31
|
+
**Foundry uses a NEUTRAL dark theme. Purple is used SPARINGLY.**
|
|
32
|
+
|
|
33
|
+
#### Where Purple (#8251EE / #A37EF5) IS Used:
|
|
34
|
+
- ✅ Primary action buttons (filled background)
|
|
35
|
+
- ✅ Active tab underlines (2px accent line)
|
|
36
|
+
- ✅ Row selection indicator (left border bar)
|
|
37
|
+
- ✅ Active sidebar icon highlights
|
|
38
|
+
- ✅ Links and interactive text
|
|
39
|
+
- ✅ Progress indicators and sliders (track fill)
|
|
40
|
+
- ✅ Focus rings on inputs
|
|
41
|
+
|
|
42
|
+
#### Where Purple is NOT Used:
|
|
43
|
+
- ❌ Card backgrounds (use #141414)
|
|
44
|
+
- ❌ Surface backgrounds (use #1C1C1C)
|
|
45
|
+
- ❌ Text colors (use #FFFFFF, #A1A1A1, #6B6B6B)
|
|
46
|
+
- ❌ Table row backgrounds (use transparent or #1C1C1C on hover)
|
|
47
|
+
- ❌ Panel backgrounds (use #0D0D0D or #141414)
|
|
48
|
+
- ❌ Secondary buttons (use grey outline with white text)
|
|
49
|
+
- ❌ Borders (use #2A2A2A or #333333)
|
|
50
|
+
|
|
51
|
+
### Core Color Palette
|
|
52
|
+
|
|
53
|
+
```css
|
|
54
|
+
:root {
|
|
55
|
+
/* Backgrounds - Neutral Darks (NOT purple) */
|
|
56
|
+
--bg-page: #0A0A0A;
|
|
57
|
+
--bg-sidebar: #0D0D0D;
|
|
58
|
+
--bg-card: #141414;
|
|
59
|
+
--bg-surface: #1C1C1C;
|
|
60
|
+
--bg-elevated: #242424;
|
|
61
|
+
--bg-hover: #2A2A2A;
|
|
62
|
+
|
|
63
|
+
/* Text - White and Greys (NOT lavender) */
|
|
64
|
+
--text-primary: #FFFFFF;
|
|
65
|
+
--text-secondary: #A1A1A1;
|
|
66
|
+
--text-muted: #6B6B6B;
|
|
67
|
+
--text-disabled: #4A4A4A;
|
|
68
|
+
|
|
69
|
+
/* Borders - Subtle Greys */
|
|
70
|
+
--border-default: #2A2A2A;
|
|
71
|
+
--border-subtle: #1F1F1F;
|
|
72
|
+
--border-strong: #333333;
|
|
73
|
+
|
|
74
|
+
/* Brand Purple - USE SPARINGLY */
|
|
75
|
+
--brand-primary: #8251EE;
|
|
76
|
+
--brand-hover: #9366F5;
|
|
77
|
+
--brand-light: #A37EF5;
|
|
78
|
+
|
|
79
|
+
/* Semantic */
|
|
80
|
+
--success: #10B981;
|
|
81
|
+
--warning: #F59E0B;
|
|
82
|
+
--error: #EF4444;
|
|
83
|
+
--info: #3B82F6;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Component Patterns
|
|
88
|
+
|
|
89
|
+
### Buttons
|
|
90
|
+
|
|
91
|
+
```jsx
|
|
92
|
+
// Primary - Purple filled (use for main actions)
|
|
93
|
+
<button className="btn-primary">Create</button>
|
|
94
|
+
|
|
95
|
+
// Secondary - Grey outline (NOT purple)
|
|
96
|
+
<button className="btn-secondary">Cancel</button>
|
|
97
|
+
|
|
98
|
+
// Ghost - Transparent with subtle hover
|
|
99
|
+
<button className="btn-ghost">Options</button>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```css
|
|
103
|
+
.btn-primary {
|
|
104
|
+
background: var(--brand-primary);
|
|
105
|
+
color: white;
|
|
106
|
+
border: none;
|
|
107
|
+
padding: 8px 16px;
|
|
108
|
+
border-radius: 6px;
|
|
109
|
+
}
|
|
110
|
+
.btn-primary:hover { background: var(--brand-hover); }
|
|
111
|
+
|
|
112
|
+
.btn-secondary {
|
|
113
|
+
background: transparent;
|
|
114
|
+
color: var(--text-primary);
|
|
115
|
+
border: 1px solid var(--border-strong);
|
|
116
|
+
padding: 8px 16px;
|
|
117
|
+
border-radius: 6px;
|
|
118
|
+
}
|
|
119
|
+
.btn-secondary:hover { background: var(--bg-hover); }
|
|
120
|
+
|
|
121
|
+
.btn-ghost {
|
|
122
|
+
background: transparent;
|
|
123
|
+
color: var(--text-secondary);
|
|
124
|
+
border: none;
|
|
125
|
+
padding: 8px 12px;
|
|
126
|
+
}
|
|
127
|
+
.btn-ghost:hover {
|
|
128
|
+
background: var(--bg-hover);
|
|
129
|
+
color: var(--text-primary);
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Cards
|
|
134
|
+
|
|
135
|
+
```css
|
|
136
|
+
/* Cards are NEUTRAL GREY, not purple */
|
|
137
|
+
.card {
|
|
138
|
+
background: var(--bg-card);
|
|
139
|
+
border: 1px solid var(--border-default);
|
|
140
|
+
border-radius: 8px;
|
|
141
|
+
padding: 16px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.card-elevated {
|
|
145
|
+
background: var(--bg-elevated);
|
|
146
|
+
border: 1px solid var(--border-default);
|
|
147
|
+
border-radius: 8px;
|
|
148
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Data Tables
|
|
153
|
+
|
|
154
|
+
```css
|
|
155
|
+
.data-table {
|
|
156
|
+
width: 100%;
|
|
157
|
+
border-collapse: collapse;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.data-table th {
|
|
161
|
+
text-align: left;
|
|
162
|
+
padding: 12px 16px;
|
|
163
|
+
color: var(--text-secondary);
|
|
164
|
+
font-weight: 500;
|
|
165
|
+
font-size: 13px;
|
|
166
|
+
border-bottom: 1px solid var(--border-default);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.data-table td {
|
|
170
|
+
padding: 12px 16px;
|
|
171
|
+
color: var(--text-primary);
|
|
172
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.data-table tr:hover td {
|
|
176
|
+
background: var(--bg-surface);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Selected row - purple LEFT BORDER only, not bg */
|
|
180
|
+
.data-table tr.selected td {
|
|
181
|
+
background: var(--bg-surface);
|
|
182
|
+
}
|
|
183
|
+
.data-table tr.selected td:first-child {
|
|
184
|
+
box-shadow: inset 3px 0 0 var(--brand-primary);
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Tabs
|
|
189
|
+
|
|
190
|
+
```css
|
|
191
|
+
.tabs {
|
|
192
|
+
display: flex;
|
|
193
|
+
gap: 24px;
|
|
194
|
+
border-bottom: 1px solid var(--border-default);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.tab {
|
|
198
|
+
padding: 12px 0;
|
|
199
|
+
color: var(--text-secondary);
|
|
200
|
+
background: none;
|
|
201
|
+
border: none;
|
|
202
|
+
cursor: pointer;
|
|
203
|
+
position: relative;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.tab:hover { color: var(--text-primary); }
|
|
207
|
+
|
|
208
|
+
/* Active tab - purple underline only */
|
|
209
|
+
.tab.active {
|
|
210
|
+
color: var(--text-primary);
|
|
211
|
+
}
|
|
212
|
+
.tab.active::after {
|
|
213
|
+
content: \\'\\';
|
|
214
|
+
position: absolute;
|
|
215
|
+
bottom: -1px;
|
|
216
|
+
left: 0;
|
|
217
|
+
right: 0;
|
|
218
|
+
height: 2px;
|
|
219
|
+
background: var(--brand-primary);
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Sidebar Navigation
|
|
224
|
+
|
|
225
|
+
```css
|
|
226
|
+
.sidebar {
|
|
227
|
+
width: 56px;
|
|
228
|
+
background: var(--bg-sidebar);
|
|
229
|
+
border-right: 1px solid var(--border-subtle);
|
|
230
|
+
padding: 12px 0;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.sidebar-item {
|
|
234
|
+
display: flex;
|
|
235
|
+
align-items: center;
|
|
236
|
+
justify-content: center;
|
|
237
|
+
width: 40px;
|
|
238
|
+
height: 40px;
|
|
239
|
+
margin: 4px auto;
|
|
240
|
+
border-radius: 8px;
|
|
241
|
+
color: var(--text-muted);
|
|
242
|
+
cursor: pointer;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.sidebar-item:hover {
|
|
246
|
+
background: var(--bg-hover);
|
|
247
|
+
color: var(--text-primary);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* Active - purple icon, subtle bg */
|
|
251
|
+
.sidebar-item.active {
|
|
252
|
+
background: var(--bg-surface);
|
|
253
|
+
color: var(--brand-light);
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Form Inputs
|
|
258
|
+
|
|
259
|
+
```css
|
|
260
|
+
.input {
|
|
261
|
+
background: var(--bg-surface);
|
|
262
|
+
border: 1px solid var(--border-default);
|
|
263
|
+
border-radius: 6px;
|
|
264
|
+
padding: 10px 12px;
|
|
265
|
+
color: var(--text-primary);
|
|
266
|
+
font-size: 14px;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.input::placeholder { color: var(--text-muted); }
|
|
270
|
+
.input:hover { border-color: var(--border-strong); }
|
|
271
|
+
.input:focus {
|
|
272
|
+
outline: none;
|
|
273
|
+
border-color: var(--brand-primary);
|
|
274
|
+
box-shadow: 0 0 0 2px rgba(130, 81, 238, 0.2);
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Modals/Dialogs
|
|
279
|
+
|
|
280
|
+
```css
|
|
281
|
+
.modal-overlay {
|
|
282
|
+
position: fixed;
|
|
283
|
+
inset: 0;
|
|
284
|
+
background: rgba(0, 0, 0, 0.7);
|
|
285
|
+
display: flex;
|
|
286
|
+
align-items: center;
|
|
287
|
+
justify-content: center;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.modal {
|
|
291
|
+
background: var(--bg-card);
|
|
292
|
+
border: 1px solid var(--border-default);
|
|
293
|
+
border-radius: 12px;
|
|
294
|
+
padding: 24px;
|
|
295
|
+
max-width: 500px;
|
|
296
|
+
width: 100%;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.modal-header {
|
|
300
|
+
font-size: 18px;
|
|
301
|
+
font-weight: 600;
|
|
302
|
+
color: var(--text-primary);
|
|
303
|
+
margin-bottom: 16px;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.modal-footer {
|
|
307
|
+
display: flex;
|
|
308
|
+
justify-content: flex-end;
|
|
309
|
+
gap: 12px;
|
|
310
|
+
margin-top: 24px;
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Layout Structure
|
|
315
|
+
|
|
316
|
+
```jsx
|
|
317
|
+
function FoundryLayout({ children }) {
|
|
318
|
+
return (
|
|
319
|
+
<div className="app-layout">
|
|
320
|
+
<header className="top-bar">
|
|
321
|
+
<Logo />
|
|
322
|
+
<nav className="breadcrumb">{/* ... */}</nav>
|
|
323
|
+
<div className="top-actions">
|
|
324
|
+
<SearchBar />
|
|
325
|
+
<UserMenu />
|
|
326
|
+
</div>
|
|
327
|
+
</header>
|
|
328
|
+
|
|
329
|
+
<div className="main-container">
|
|
330
|
+
<aside className="sidebar">
|
|
331
|
+
<SidebarNav />
|
|
332
|
+
</aside>
|
|
333
|
+
|
|
334
|
+
<main className="content">
|
|
335
|
+
{children}
|
|
336
|
+
</main>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
```css
|
|
344
|
+
.app-layout {
|
|
345
|
+
min-height: 100vh;
|
|
346
|
+
background: var(--bg-page);
|
|
347
|
+
color: var(--text-primary);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.top-bar {
|
|
351
|
+
height: 48px;
|
|
352
|
+
background: var(--bg-sidebar);
|
|
353
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
354
|
+
display: flex;
|
|
355
|
+
align-items: center;
|
|
356
|
+
padding: 0 16px;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.main-container {
|
|
360
|
+
display: flex;
|
|
361
|
+
height: calc(100vh - 48px);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.content {
|
|
365
|
+
flex: 1;
|
|
366
|
+
overflow-y: auto;
|
|
367
|
+
padding: 24px;
|
|
368
|
+
}
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Typography
|
|
372
|
+
|
|
373
|
+
```css
|
|
374
|
+
body {
|
|
375
|
+
font-family: -apple-system, BlinkMacSystemFont, \\'Segoe UI\\', sans-serif;
|
|
376
|
+
font-size: 14px;
|
|
377
|
+
line-height: 1.5;
|
|
378
|
+
color: var(--text-primary);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
.heading-xl { font-size: 24px; font-weight: 600; }
|
|
382
|
+
.heading-lg { font-size: 20px; font-weight: 600; }
|
|
383
|
+
.heading-md { font-size: 16px; font-weight: 600; }
|
|
384
|
+
.text-sm { font-size: 13px; }
|
|
385
|
+
.text-xs { font-size: 12px; }
|
|
386
|
+
.text-muted { color: var(--text-muted); }
|
|
387
|
+
.text-secondary { color: var(--text-secondary); }
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Reference Files
|
|
391
|
+
|
|
392
|
+
For detailed specifications, see:
|
|
393
|
+
- [Design Tokens](references/design-tokens.md) - Complete color and spacing system
|
|
394
|
+
- [Components](references/components.md) - Full component library
|
|
395
|
+
- [Patterns](references/patterns.md) - Layout and interaction patterns
|
|
396
|
+
'''
|
|
397
|
+
|
|
398
|
+
# design-tokens.md content
|
|
399
|
+
design_tokens_md = '''# Foundry NextGen Design Tokens
|
|
400
|
+
|
|
401
|
+
## Color System
|
|
402
|
+
|
|
403
|
+
### Background Colors (Neutral Darks)
|
|
404
|
+
|
|
405
|
+
**IMPORTANT: Backgrounds are neutral grey, NOT purple-tinted.**
|
|
406
|
+
|
|
407
|
+
| Token | Value | Usage |
|
|
408
|
+
|-------|-------|-------|
|
|
409
|
+
| `--bg-page` | #0A0A0A | Main page background |
|
|
410
|
+
| `--bg-sidebar` | #0D0D0D | Sidebar and top bar |
|
|
411
|
+
| `--bg-card` | #141414 | Cards, panels, dialogs |
|
|
412
|
+
| `--bg-surface` | #1C1C1C | Table rows, nested surfaces |
|
|
413
|
+
| `--bg-elevated` | #242424 | Dropdowns, popovers |
|
|
414
|
+
| `--bg-hover` | #2A2A2A | Hover states |
|
|
415
|
+
| `--bg-active` | #333333 | Pressed/active backgrounds |
|
|
416
|
+
|
|
417
|
+
### Text Colors (White and Greys)
|
|
418
|
+
|
|
419
|
+
**IMPORTANT: Text is white/grey, NOT lavender/purple-tinted.**
|
|
420
|
+
|
|
421
|
+
| Token | Value | Usage |
|
|
422
|
+
|-------|-------|-------|
|
|
423
|
+
| `--text-primary` | #FFFFFF | Main body text, headings |
|
|
424
|
+
| `--text-secondary` | #A1A1A1 | Secondary text, labels |
|
|
425
|
+
| `--text-muted` | #6B6B6B | Placeholder, disabled hints |
|
|
426
|
+
| `--text-disabled` | #4A4A4A | Disabled text |
|
|
427
|
+
| `--text-link` | #A37EF5 | Links and interactive text |
|
|
428
|
+
|
|
429
|
+
### Border Colors
|
|
430
|
+
|
|
431
|
+
| Token | Value | Usage |
|
|
432
|
+
|-------|-------|-------|
|
|
433
|
+
| `--border-subtle` | #1F1F1F | Subtle dividers |
|
|
434
|
+
| `--border-default` | #2A2A2A | Standard borders |
|
|
435
|
+
| `--border-strong` | #333333 | Emphasized borders |
|
|
436
|
+
| `--border-focus` | #8251EE | Focus rings |
|
|
437
|
+
|
|
438
|
+
### Brand Colors (Use Sparingly)
|
|
439
|
+
|
|
440
|
+
**Purple is ONLY for primary actions and active indicators.**
|
|
441
|
+
|
|
442
|
+
| Token | Value | Usage |
|
|
443
|
+
|-------|-------|-------|
|
|
444
|
+
| `--brand-primary` | #8251EE | Primary buttons, active indicators |
|
|
445
|
+
| `--brand-hover` | #9366F5 | Primary button hover |
|
|
446
|
+
| `--brand-light` | #A37EF5 | Links, active sidebar icons |
|
|
447
|
+
| `--brand-muted` | rgba(130,81,238,0.2) | Focus shadows, selection hints |
|
|
448
|
+
|
|
449
|
+
### Semantic Colors
|
|
450
|
+
|
|
451
|
+
| Token | Value | Usage |
|
|
452
|
+
|-------|-------|-------|
|
|
453
|
+
| `--success` | #10B981 | Success states |
|
|
454
|
+
| `--success-muted` | rgba(16,185,129,0.15) | Success backgrounds |
|
|
455
|
+
| `--warning` | #F59E0B | Warning states |
|
|
456
|
+
| `--warning-muted` | rgba(245,158,11,0.15) | Warning backgrounds |
|
|
457
|
+
| `--error` | #EF4444 | Error states |
|
|
458
|
+
| `--error-muted` | rgba(239,68,68,0.15) | Error backgrounds |
|
|
459
|
+
| `--info` | #3B82F6 | Info states |
|
|
460
|
+
|
|
461
|
+
## Spacing Scale
|
|
462
|
+
|
|
463
|
+
| Token | Value |
|
|
464
|
+
|-------|-------|
|
|
465
|
+
| `--space-1` | 4px |
|
|
466
|
+
| `--space-2` | 8px |
|
|
467
|
+
| `--space-3` | 12px |
|
|
468
|
+
| `--space-4` | 16px |
|
|
469
|
+
| `--space-5` | 20px |
|
|
470
|
+
| `--space-6` | 24px |
|
|
471
|
+
| `--space-8` | 32px |
|
|
472
|
+
| `--space-10` | 40px |
|
|
473
|
+
| `--space-12` | 48px |
|
|
474
|
+
|
|
475
|
+
## Border Radius
|
|
476
|
+
|
|
477
|
+
| Token | Value | Usage |
|
|
478
|
+
|-------|-------|-------|
|
|
479
|
+
| `--radius-sm` | 4px | Small elements, tags |
|
|
480
|
+
| `--radius-md` | 6px | Buttons, inputs |
|
|
481
|
+
| `--radius-lg` | 8px | Cards, panels |
|
|
482
|
+
| `--radius-xl` | 12px | Modals, large cards |
|
|
483
|
+
| `--radius-full` | 9999px | Pills, avatars |
|
|
484
|
+
|
|
485
|
+
## Typography Scale
|
|
486
|
+
|
|
487
|
+
| Token | Size | Weight | Usage |
|
|
488
|
+
|-------|------|--------|-------|
|
|
489
|
+
| `--text-xs` | 12px | 400 | Captions, timestamps |
|
|
490
|
+
| `--text-sm` | 13px | 400 | Table headers, labels |
|
|
491
|
+
| `--text-base` | 14px | 400 | Body text |
|
|
492
|
+
| `--text-lg` | 16px | 500 | Subheadings |
|
|
493
|
+
| `--text-xl` | 20px | 600 | Section headings |
|
|
494
|
+
| `--text-2xl` | 24px | 600 | Page titles |
|
|
495
|
+
|
|
496
|
+
## Shadows
|
|
497
|
+
|
|
498
|
+
| Token | Value | Usage |
|
|
499
|
+
|-------|-------|-------|
|
|
500
|
+
| `--shadow-sm` | 0 1px 2px rgba(0,0,0,0.3) | Subtle elevation |
|
|
501
|
+
| `--shadow-md` | 0 4px 12px rgba(0,0,0,0.4) | Cards, dropdowns |
|
|
502
|
+
| `--shadow-lg` | 0 8px 24px rgba(0,0,0,0.5) | Modals, popovers |
|
|
503
|
+
| `--shadow-focus` | 0 0 0 2px rgba(130,81,238,0.25) | Focus rings |
|
|
504
|
+
|
|
505
|
+
## Z-Index Scale
|
|
506
|
+
|
|
507
|
+
| Token | Value | Usage |
|
|
508
|
+
|-------|-------|-------|
|
|
509
|
+
| `--z-base` | 0 | Default |
|
|
510
|
+
| `--z-dropdown` | 100 | Dropdowns |
|
|
511
|
+
| `--z-sticky` | 200 | Sticky headers |
|
|
512
|
+
| `--z-modal` | 300 | Modals |
|
|
513
|
+
| `--z-toast` | 400 | Toasts, notifications |
|
|
514
|
+
| `--z-tooltip` | 500 | Tooltips |
|
|
515
|
+
|
|
516
|
+
## Complete CSS Variables
|
|
517
|
+
|
|
518
|
+
```css
|
|
519
|
+
:root {
|
|
520
|
+
/* Backgrounds - Neutral Darks */
|
|
521
|
+
--bg-page: #0A0A0A;
|
|
522
|
+
--bg-sidebar: #0D0D0D;
|
|
523
|
+
--bg-card: #141414;
|
|
524
|
+
--bg-surface: #1C1C1C;
|
|
525
|
+
--bg-elevated: #242424;
|
|
526
|
+
--bg-hover: #2A2A2A;
|
|
527
|
+
--bg-active: #333333;
|
|
528
|
+
|
|
529
|
+
/* Text - White and Greys */
|
|
530
|
+
--text-primary: #FFFFFF;
|
|
531
|
+
--text-secondary: #A1A1A1;
|
|
532
|
+
--text-muted: #6B6B6B;
|
|
533
|
+
--text-disabled: #4A4A4A;
|
|
534
|
+
--text-link: #A37EF5;
|
|
535
|
+
|
|
536
|
+
/* Borders */
|
|
537
|
+
--border-subtle: #1F1F1F;
|
|
538
|
+
--border-default: #2A2A2A;
|
|
539
|
+
--border-strong: #333333;
|
|
540
|
+
--border-focus: #8251EE;
|
|
541
|
+
|
|
542
|
+
/* Brand - Use Sparingly */
|
|
543
|
+
--brand-primary: #8251EE;
|
|
544
|
+
--brand-hover: #9366F5;
|
|
545
|
+
--brand-light: #A37EF5;
|
|
546
|
+
--brand-muted: rgba(130, 81, 238, 0.2);
|
|
547
|
+
|
|
548
|
+
/* Semantic */
|
|
549
|
+
--success: #10B981;
|
|
550
|
+
--success-muted: rgba(16, 185, 129, 0.15);
|
|
551
|
+
--warning: #F59E0B;
|
|
552
|
+
--warning-muted: rgba(245, 158, 11, 0.15);
|
|
553
|
+
--error: #EF4444;
|
|
554
|
+
--error-muted: rgba(239, 68, 68, 0.15);
|
|
555
|
+
--info: #3B82F6;
|
|
556
|
+
|
|
557
|
+
/* Spacing */
|
|
558
|
+
--space-1: 4px;
|
|
559
|
+
--space-2: 8px;
|
|
560
|
+
--space-3: 12px;
|
|
561
|
+
--space-4: 16px;
|
|
562
|
+
--space-5: 20px;
|
|
563
|
+
--space-6: 24px;
|
|
564
|
+
--space-8: 32px;
|
|
565
|
+
--space-10: 40px;
|
|
566
|
+
--space-12: 48px;
|
|
567
|
+
|
|
568
|
+
/* Radius */
|
|
569
|
+
--radius-sm: 4px;
|
|
570
|
+
--radius-md: 6px;
|
|
571
|
+
--radius-lg: 8px;
|
|
572
|
+
--radius-xl: 12px;
|
|
573
|
+
--radius-full: 9999px;
|
|
574
|
+
|
|
575
|
+
/* Typography */
|
|
576
|
+
--font-family: -apple-system, BlinkMacSystemFont, \\'Segoe UI\\', Roboto, sans-serif;
|
|
577
|
+
--text-xs: 12px;
|
|
578
|
+
--text-sm: 13px;
|
|
579
|
+
--text-base: 14px;
|
|
580
|
+
--text-lg: 16px;
|
|
581
|
+
--text-xl: 20px;
|
|
582
|
+
--text-2xl: 24px;
|
|
583
|
+
|
|
584
|
+
/* Shadows */
|
|
585
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
586
|
+
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
587
|
+
--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
|
|
588
|
+
--shadow-focus: 0 0 0 2px rgba(130, 81, 238, 0.25);
|
|
589
|
+
|
|
590
|
+
/* Z-Index */
|
|
591
|
+
--z-base: 0;
|
|
592
|
+
--z-dropdown: 100;
|
|
593
|
+
--z-sticky: 200;
|
|
594
|
+
--z-modal: 300;
|
|
595
|
+
--z-toast: 400;
|
|
596
|
+
--z-tooltip: 500;
|
|
597
|
+
}
|
|
598
|
+
```
|
|
599
|
+
'''
|
|
600
|
+
|
|
601
|
+
# components.md content
|
|
602
|
+
components_md = '''# Foundry NextGen Components
|
|
603
|
+
|
|
604
|
+
## Buttons
|
|
605
|
+
|
|
606
|
+
### Primary Button
|
|
607
|
+
Purple background - use for main actions only.
|
|
608
|
+
|
|
609
|
+
```jsx
|
|
610
|
+
<button className="btn btn-primary">
|
|
611
|
+
Create Agent
|
|
612
|
+
</button>
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
```css
|
|
616
|
+
.btn {
|
|
617
|
+
display: inline-flex;
|
|
618
|
+
align-items: center;
|
|
619
|
+
justify-content: center;
|
|
620
|
+
gap: 8px;
|
|
621
|
+
padding: 8px 16px;
|
|
622
|
+
font-size: 14px;
|
|
623
|
+
font-weight: 500;
|
|
624
|
+
border-radius: var(--radius-md);
|
|
625
|
+
cursor: pointer;
|
|
626
|
+
transition: all 0.15s ease;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
.btn-primary {
|
|
630
|
+
background: var(--brand-primary);
|
|
631
|
+
color: white;
|
|
632
|
+
border: none;
|
|
633
|
+
}
|
|
634
|
+
.btn-primary:hover { background: var(--brand-hover); }
|
|
635
|
+
.btn-primary:active { background: #7344D8; }
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
### Secondary Button
|
|
639
|
+
Grey outline - NOT purple. Use for secondary actions.
|
|
640
|
+
|
|
641
|
+
```jsx
|
|
642
|
+
<button className="btn btn-secondary">
|
|
643
|
+
Cancel
|
|
644
|
+
</button>
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
```css
|
|
648
|
+
.btn-secondary {
|
|
649
|
+
background: transparent;
|
|
650
|
+
color: var(--text-primary);
|
|
651
|
+
border: 1px solid var(--border-strong);
|
|
652
|
+
}
|
|
653
|
+
.btn-secondary:hover {
|
|
654
|
+
background: var(--bg-hover);
|
|
655
|
+
border-color: var(--text-secondary);
|
|
656
|
+
}
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
### Ghost Button
|
|
660
|
+
Minimal style for tertiary actions.
|
|
661
|
+
|
|
662
|
+
```css
|
|
663
|
+
.btn-ghost {
|
|
664
|
+
background: transparent;
|
|
665
|
+
color: var(--text-secondary);
|
|
666
|
+
border: none;
|
|
667
|
+
}
|
|
668
|
+
.btn-ghost:hover {
|
|
669
|
+
background: var(--bg-hover);
|
|
670
|
+
color: var(--text-primary);
|
|
671
|
+
}
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
### Icon Button
|
|
675
|
+
|
|
676
|
+
```jsx
|
|
677
|
+
<button className="btn-icon" aria-label="More options">
|
|
678
|
+
<MoreVertical size={16} />
|
|
679
|
+
</button>
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
```css
|
|
683
|
+
.btn-icon {
|
|
684
|
+
display: flex;
|
|
685
|
+
align-items: center;
|
|
686
|
+
justify-content: center;
|
|
687
|
+
width: 32px;
|
|
688
|
+
height: 32px;
|
|
689
|
+
border-radius: var(--radius-md);
|
|
690
|
+
background: transparent;
|
|
691
|
+
color: var(--text-secondary);
|
|
692
|
+
border: none;
|
|
693
|
+
cursor: pointer;
|
|
694
|
+
}
|
|
695
|
+
.btn-icon:hover {
|
|
696
|
+
background: var(--bg-hover);
|
|
697
|
+
color: var(--text-primary);
|
|
698
|
+
}
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
## Data Table
|
|
702
|
+
|
|
703
|
+
```jsx
|
|
704
|
+
<table className="data-table">
|
|
705
|
+
<thead>
|
|
706
|
+
<tr>
|
|
707
|
+
<th></th>
|
|
708
|
+
<th>Name</th>
|
|
709
|
+
<th>Description</th>
|
|
710
|
+
<th>Created on</th>
|
|
711
|
+
</tr>
|
|
712
|
+
</thead>
|
|
713
|
+
<tbody>
|
|
714
|
+
{items.map(item => (
|
|
715
|
+
<tr key={item.id} className={selected === item.id ? \\' selected\\' : \\'\\'}>
|
|
716
|
+
<td>
|
|
717
|
+
<input type="radio" checked={selected === item.id} />
|
|
718
|
+
</td>
|
|
719
|
+
<td><a href="#" className="link">{item.name}</a></td>
|
|
720
|
+
<td className="text-secondary">{item.description}</td>
|
|
721
|
+
<td className="text-secondary">{item.createdAt}</td>
|
|
722
|
+
</tr>
|
|
723
|
+
))}
|
|
724
|
+
</tbody>
|
|
725
|
+
</table>
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
```css
|
|
729
|
+
.data-table {
|
|
730
|
+
width: 100%;
|
|
731
|
+
border-collapse: collapse;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
.data-table th {
|
|
735
|
+
text-align: left;
|
|
736
|
+
padding: 12px 16px;
|
|
737
|
+
font-size: var(--text-sm);
|
|
738
|
+
font-weight: 500;
|
|
739
|
+
color: var(--text-secondary);
|
|
740
|
+
border-bottom: 1px solid var(--border-default);
|
|
741
|
+
background: transparent;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
.data-table td {
|
|
745
|
+
padding: 12px 16px;
|
|
746
|
+
font-size: var(--text-base);
|
|
747
|
+
color: var(--text-primary);
|
|
748
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
749
|
+
background: transparent;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.data-table tbody tr:hover td {
|
|
753
|
+
background: var(--bg-surface);
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/* Selected row - purple indicator on left edge only */
|
|
757
|
+
.data-table tbody tr.selected td {
|
|
758
|
+
background: var(--bg-surface);
|
|
759
|
+
}
|
|
760
|
+
.data-table tbody tr.selected td:first-child {
|
|
761
|
+
box-shadow: inset 3px 0 0 var(--brand-primary);
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
.link {
|
|
765
|
+
color: var(--text-link);
|
|
766
|
+
text-decoration: none;
|
|
767
|
+
}
|
|
768
|
+
.link:hover {
|
|
769
|
+
text-decoration: underline;
|
|
770
|
+
}
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
## Tabs
|
|
774
|
+
|
|
775
|
+
```jsx
|
|
776
|
+
<div className="tabs">
|
|
777
|
+
{tabs.map(tab => (
|
|
778
|
+
<button
|
|
779
|
+
key={tab.id}
|
|
780
|
+
className={`tab ${activeTab === tab.id ? \\'active\\' : \\'\\'}`}
|
|
781
|
+
onClick={() => setActiveTab(tab.id)}
|
|
782
|
+
>
|
|
783
|
+
{tab.label}
|
|
784
|
+
</button>
|
|
785
|
+
))}
|
|
786
|
+
</div>
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
```css
|
|
790
|
+
.tabs {
|
|
791
|
+
display: flex;
|
|
792
|
+
gap: 24px;
|
|
793
|
+
border-bottom: 1px solid var(--border-default);
|
|
794
|
+
padding: 0 24px;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
.tab {
|
|
798
|
+
padding: 12px 0;
|
|
799
|
+
font-size: var(--text-base);
|
|
800
|
+
font-weight: 400;
|
|
801
|
+
color: var(--text-secondary);
|
|
802
|
+
background: none;
|
|
803
|
+
border: none;
|
|
804
|
+
cursor: pointer;
|
|
805
|
+
position: relative;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
.tab:hover {
|
|
809
|
+
color: var(--text-primary);
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.tab.active {
|
|
813
|
+
color: var(--text-primary);
|
|
814
|
+
font-weight: 500;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
/* Purple underline for active tab */
|
|
818
|
+
.tab.active::after {
|
|
819
|
+
content: \\'\\';
|
|
820
|
+
position: absolute;
|
|
821
|
+
bottom: -1px;
|
|
822
|
+
left: 0;
|
|
823
|
+
right: 0;
|
|
824
|
+
height: 2px;
|
|
825
|
+
background: var(--brand-primary);
|
|
826
|
+
border-radius: 1px 1px 0 0;
|
|
827
|
+
}
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
## Cards
|
|
831
|
+
|
|
832
|
+
Cards use neutral grey backgrounds, NOT purple.
|
|
833
|
+
|
|
834
|
+
```jsx
|
|
835
|
+
<div className="card">
|
|
836
|
+
<div className="card-header">
|
|
837
|
+
<h3 className="card-title">Deployment info</h3>
|
|
838
|
+
</div>
|
|
839
|
+
<div className="card-content">
|
|
840
|
+
{/* Content */}
|
|
841
|
+
</div>
|
|
842
|
+
</div>
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
```css
|
|
846
|
+
.card {
|
|
847
|
+
background: var(--bg-card);
|
|
848
|
+
border: 1px solid var(--border-default);
|
|
849
|
+
border-radius: var(--radius-lg);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.card-header {
|
|
853
|
+
padding: 16px 20px;
|
|
854
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
.card-title {
|
|
858
|
+
font-size: var(--text-base);
|
|
859
|
+
font-weight: 600;
|
|
860
|
+
color: var(--text-primary);
|
|
861
|
+
margin: 0;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
.card-content {
|
|
865
|
+
padding: 16px 20px;
|
|
866
|
+
}
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
## Form Inputs
|
|
870
|
+
|
|
871
|
+
```jsx
|
|
872
|
+
<div className="form-field">
|
|
873
|
+
<label className="form-label">
|
|
874
|
+
Name <span className="required">*</span>
|
|
875
|
+
</label>
|
|
876
|
+
<input
|
|
877
|
+
type="text"
|
|
878
|
+
className="input"
|
|
879
|
+
placeholder="Enter name"
|
|
880
|
+
/>
|
|
881
|
+
<p className="form-hint">A unique identifier for this resource.</p>
|
|
882
|
+
</div>
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
```css
|
|
886
|
+
.form-field {
|
|
887
|
+
display: flex;
|
|
888
|
+
flex-direction: column;
|
|
889
|
+
gap: 6px;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
.form-label {
|
|
893
|
+
font-size: var(--text-sm);
|
|
894
|
+
font-weight: 500;
|
|
895
|
+
color: var(--text-primary);
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
.required {
|
|
899
|
+
color: var(--error);
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
.input {
|
|
903
|
+
padding: 10px 12px;
|
|
904
|
+
font-size: var(--text-base);
|
|
905
|
+
color: var(--text-primary);
|
|
906
|
+
background: var(--bg-surface);
|
|
907
|
+
border: 1px solid var(--border-default);
|
|
908
|
+
border-radius: var(--radius-md);
|
|
909
|
+
outline: none;
|
|
910
|
+
transition: border-color 0.15s, box-shadow 0.15s;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
.input::placeholder {
|
|
914
|
+
color: var(--text-muted);
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
.input:hover {
|
|
918
|
+
border-color: var(--border-strong);
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
.input:focus {
|
|
922
|
+
border-color: var(--brand-primary);
|
|
923
|
+
box-shadow: var(--shadow-focus);
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
.form-hint {
|
|
927
|
+
font-size: var(--text-xs);
|
|
928
|
+
color: var(--text-muted);
|
|
929
|
+
margin: 0;
|
|
930
|
+
}
|
|
931
|
+
```
|
|
932
|
+
|
|
933
|
+
## Select / Dropdown
|
|
934
|
+
|
|
935
|
+
```css
|
|
936
|
+
.select {
|
|
937
|
+
appearance: none;
|
|
938
|
+
padding: 10px 36px 10px 12px;
|
|
939
|
+
font-size: var(--text-base);
|
|
940
|
+
color: var(--text-primary);
|
|
941
|
+
background: var(--bg-surface) url(\\'data:image/svg+xml,...\\') no-repeat right 12px center;
|
|
942
|
+
border: 1px solid var(--border-default);
|
|
943
|
+
border-radius: var(--radius-md);
|
|
944
|
+
cursor: pointer;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
.select:hover {
|
|
948
|
+
border-color: var(--border-strong);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.select:focus {
|
|
952
|
+
outline: none;
|
|
953
|
+
border-color: var(--brand-primary);
|
|
954
|
+
box-shadow: var(--shadow-focus);
|
|
955
|
+
}
|
|
956
|
+
```
|
|
957
|
+
|
|
958
|
+
## Modal / Dialog
|
|
959
|
+
|
|
960
|
+
```jsx
|
|
961
|
+
<div className="modal-overlay">
|
|
962
|
+
<div className="modal">
|
|
963
|
+
<div className="modal-header">
|
|
964
|
+
<h2 className="modal-title">Create a knowledge source</h2>
|
|
965
|
+
<button className="btn-icon modal-close">
|
|
966
|
+
<X size={20} />
|
|
967
|
+
</button>
|
|
968
|
+
</div>
|
|
969
|
+
<div className="modal-body">
|
|
970
|
+
{/* Form content */}
|
|
971
|
+
</div>
|
|
972
|
+
<div className="modal-footer">
|
|
973
|
+
<button className="btn btn-secondary">Cancel</button>
|
|
974
|
+
<button className="btn btn-primary">Create</button>
|
|
975
|
+
</div>
|
|
976
|
+
</div>
|
|
977
|
+
</div>
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
```css
|
|
981
|
+
.modal-overlay {
|
|
982
|
+
position: fixed;
|
|
983
|
+
inset: 0;
|
|
984
|
+
background: rgba(0, 0, 0, 0.7);
|
|
985
|
+
display: flex;
|
|
986
|
+
align-items: center;
|
|
987
|
+
justify-content: center;
|
|
988
|
+
z-index: var(--z-modal);
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
.modal {
|
|
992
|
+
background: var(--bg-card);
|
|
993
|
+
border: 1px solid var(--border-default);
|
|
994
|
+
border-radius: var(--radius-xl);
|
|
995
|
+
width: 100%;
|
|
996
|
+
max-width: 540px;
|
|
997
|
+
max-height: 90vh;
|
|
998
|
+
overflow: hidden;
|
|
999
|
+
display: flex;
|
|
1000
|
+
flex-direction: column;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
.modal-header {
|
|
1004
|
+
display: flex;
|
|
1005
|
+
align-items: center;
|
|
1006
|
+
justify-content: space-between;
|
|
1007
|
+
padding: 20px 24px;
|
|
1008
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
.modal-title {
|
|
1012
|
+
font-size: var(--text-lg);
|
|
1013
|
+
font-weight: 600;
|
|
1014
|
+
color: var(--text-primary);
|
|
1015
|
+
margin: 0;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.modal-close {
|
|
1019
|
+
color: var(--text-muted);
|
|
1020
|
+
}
|
|
1021
|
+
.modal-close:hover {
|
|
1022
|
+
color: var(--text-primary);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
.modal-body {
|
|
1026
|
+
padding: 24px;
|
|
1027
|
+
overflow-y: auto;
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
.modal-footer {
|
|
1031
|
+
display: flex;
|
|
1032
|
+
justify-content: flex-end;
|
|
1033
|
+
gap: 12px;
|
|
1034
|
+
padding: 16px 24px;
|
|
1035
|
+
border-top: 1px solid var(--border-subtle);
|
|
1036
|
+
}
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
## Sidebar Navigation
|
|
1040
|
+
|
|
1041
|
+
```jsx
|
|
1042
|
+
<aside className="sidebar">
|
|
1043
|
+
<div className="sidebar-brand">
|
|
1044
|
+
<FoundryLogo />
|
|
1045
|
+
</div>
|
|
1046
|
+
<nav className="sidebar-nav">
|
|
1047
|
+
{navItems.map(item => (
|
|
1048
|
+
<a
|
|
1049
|
+
key={item.id}
|
|
1050
|
+
href={item.href}
|
|
1051
|
+
className={`sidebar-item ${active === item.id ? \\'active\\' : \\'\\'}`}
|
|
1052
|
+
title={item.label}
|
|
1053
|
+
>
|
|
1054
|
+
<item.icon size={20} />
|
|
1055
|
+
</a>
|
|
1056
|
+
))}
|
|
1057
|
+
</nav>
|
|
1058
|
+
</aside>
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
```css
|
|
1062
|
+
.sidebar {
|
|
1063
|
+
width: 56px;
|
|
1064
|
+
background: var(--bg-sidebar);
|
|
1065
|
+
border-right: 1px solid var(--border-subtle);
|
|
1066
|
+
display: flex;
|
|
1067
|
+
flex-direction: column;
|
|
1068
|
+
padding: 12px 0;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
.sidebar-brand {
|
|
1072
|
+
display: flex;
|
|
1073
|
+
align-items: center;
|
|
1074
|
+
justify-content: center;
|
|
1075
|
+
height: 48px;
|
|
1076
|
+
margin-bottom: 8px;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
.sidebar-nav {
|
|
1080
|
+
display: flex;
|
|
1081
|
+
flex-direction: column;
|
|
1082
|
+
gap: 4px;
|
|
1083
|
+
padding: 0 8px;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
.sidebar-item {
|
|
1087
|
+
display: flex;
|
|
1088
|
+
align-items: center;
|
|
1089
|
+
justify-content: center;
|
|
1090
|
+
width: 40px;
|
|
1091
|
+
height: 40px;
|
|
1092
|
+
border-radius: var(--radius-lg);
|
|
1093
|
+
color: var(--text-muted);
|
|
1094
|
+
text-decoration: none;
|
|
1095
|
+
transition: all 0.15s ease;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
.sidebar-item:hover {
|
|
1099
|
+
background: var(--bg-hover);
|
|
1100
|
+
color: var(--text-primary);
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
/* Active item - purple icon only, subtle background */
|
|
1104
|
+
.sidebar-item.active {
|
|
1105
|
+
background: var(--bg-surface);
|
|
1106
|
+
color: var(--brand-light);
|
|
1107
|
+
}
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1110
|
+
## Search Input
|
|
1111
|
+
|
|
1112
|
+
```jsx
|
|
1113
|
+
<div className="search-input">
|
|
1114
|
+
<Search size={16} className="search-icon" />
|
|
1115
|
+
<input
|
|
1116
|
+
type="text"
|
|
1117
|
+
placeholder="Search"
|
|
1118
|
+
className="search-field"
|
|
1119
|
+
/>
|
|
1120
|
+
</div>
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
```css
|
|
1124
|
+
.search-input {
|
|
1125
|
+
position: relative;
|
|
1126
|
+
width: 240px;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
.search-icon {
|
|
1130
|
+
position: absolute;
|
|
1131
|
+
left: 12px;
|
|
1132
|
+
top: 50%;
|
|
1133
|
+
transform: translateY(-50%);
|
|
1134
|
+
color: var(--text-muted);
|
|
1135
|
+
pointer-events: none;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
.search-field {
|
|
1139
|
+
width: 100%;
|
|
1140
|
+
padding: 8px 12px 8px 36px;
|
|
1141
|
+
font-size: var(--text-sm);
|
|
1142
|
+
color: var(--text-primary);
|
|
1143
|
+
background: var(--bg-surface);
|
|
1144
|
+
border: 1px solid var(--border-default);
|
|
1145
|
+
border-radius: var(--radius-md);
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
.search-field::placeholder {
|
|
1149
|
+
color: var(--text-muted);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
.search-field:focus {
|
|
1153
|
+
outline: none;
|
|
1154
|
+
border-color: var(--brand-primary);
|
|
1155
|
+
box-shadow: var(--shadow-focus);
|
|
1156
|
+
}
|
|
1157
|
+
```
|
|
1158
|
+
|
|
1159
|
+
## Pagination
|
|
1160
|
+
|
|
1161
|
+
```jsx
|
|
1162
|
+
<div className="pagination">
|
|
1163
|
+
<span className="pagination-info">1-10 of 100</span>
|
|
1164
|
+
<div className="pagination-controls">
|
|
1165
|
+
<button className="btn-icon" disabled><ChevronLeft size={16} /></button>
|
|
1166
|
+
<button className="pagination-page active">1</button>
|
|
1167
|
+
<button className="pagination-page">2</button>
|
|
1168
|
+
<button className="pagination-page">3</button>
|
|
1169
|
+
<button className="btn-icon"><ChevronRight size={16} /></button>
|
|
1170
|
+
</div>
|
|
1171
|
+
</div>
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
```css
|
|
1175
|
+
.pagination {
|
|
1176
|
+
display: flex;
|
|
1177
|
+
align-items: center;
|
|
1178
|
+
justify-content: space-between;
|
|
1179
|
+
padding: 12px 16px;
|
|
1180
|
+
border-top: 1px solid var(--border-subtle);
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
.pagination-info {
|
|
1184
|
+
font-size: var(--text-sm);
|
|
1185
|
+
color: var(--text-secondary);
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.pagination-controls {
|
|
1189
|
+
display: flex;
|
|
1190
|
+
align-items: center;
|
|
1191
|
+
gap: 4px;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.pagination-page {
|
|
1195
|
+
min-width: 32px;
|
|
1196
|
+
height: 32px;
|
|
1197
|
+
padding: 0 8px;
|
|
1198
|
+
font-size: var(--text-sm);
|
|
1199
|
+
color: var(--text-secondary);
|
|
1200
|
+
background: transparent;
|
|
1201
|
+
border: none;
|
|
1202
|
+
border-radius: var(--radius-md);
|
|
1203
|
+
cursor: pointer;
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
.pagination-page:hover {
|
|
1207
|
+
background: var(--bg-hover);
|
|
1208
|
+
color: var(--text-primary);
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
.pagination-page.active {
|
|
1212
|
+
background: var(--bg-surface);
|
|
1213
|
+
color: var(--text-primary);
|
|
1214
|
+
font-weight: 500;
|
|
1215
|
+
}
|
|
1216
|
+
```
|
|
1217
|
+
|
|
1218
|
+
## Badge / Tag
|
|
1219
|
+
|
|
1220
|
+
```css
|
|
1221
|
+
.badge {
|
|
1222
|
+
display: inline-flex;
|
|
1223
|
+
align-items: center;
|
|
1224
|
+
gap: 4px;
|
|
1225
|
+
padding: 2px 8px;
|
|
1226
|
+
font-size: var(--text-xs);
|
|
1227
|
+
font-weight: 500;
|
|
1228
|
+
border-radius: var(--radius-sm);
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
.badge-default {
|
|
1232
|
+
background: var(--bg-surface);
|
|
1233
|
+
color: var(--text-secondary);
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
.badge-success {
|
|
1237
|
+
background: var(--success-muted);
|
|
1238
|
+
color: var(--success);
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
.badge-warning {
|
|
1242
|
+
background: var(--warning-muted);
|
|
1243
|
+
color: var(--warning);
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
.badge-error {
|
|
1247
|
+
background: var(--error-muted);
|
|
1248
|
+
color: var(--error);
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
/* Purple badge - use sparingly */
|
|
1252
|
+
.badge-brand {
|
|
1253
|
+
background: var(--brand-muted);
|
|
1254
|
+
color: var(--brand-light);
|
|
1255
|
+
}
|
|
1256
|
+
```
|
|
1257
|
+
|
|
1258
|
+
## Checkbox and Radio
|
|
1259
|
+
|
|
1260
|
+
```css
|
|
1261
|
+
.checkbox,
|
|
1262
|
+
.radio {
|
|
1263
|
+
appearance: none;
|
|
1264
|
+
width: 16px;
|
|
1265
|
+
height: 16px;
|
|
1266
|
+
background: var(--bg-surface);
|
|
1267
|
+
border: 1px solid var(--border-strong);
|
|
1268
|
+
cursor: pointer;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
.checkbox {
|
|
1272
|
+
border-radius: var(--radius-sm);
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
.radio {
|
|
1276
|
+
border-radius: 50%;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
.checkbox:checked,
|
|
1280
|
+
.radio:checked {
|
|
1281
|
+
background: var(--brand-primary);
|
|
1282
|
+
border-color: var(--brand-primary);
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
.checkbox:checked::after {
|
|
1286
|
+
content: \\'✓\\';
|
|
1287
|
+
display: block;
|
|
1288
|
+
text-align: center;
|
|
1289
|
+
color: white;
|
|
1290
|
+
font-size: 12px;
|
|
1291
|
+
line-height: 14px;
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1294
|
+
.radio:checked::after {
|
|
1295
|
+
content: \\'\\';
|
|
1296
|
+
display: block;
|
|
1297
|
+
width: 6px;
|
|
1298
|
+
height: 6px;
|
|
1299
|
+
margin: 4px;
|
|
1300
|
+
background: white;
|
|
1301
|
+
border-radius: 50%;
|
|
1302
|
+
}
|
|
1303
|
+
```
|
|
1304
|
+
'''
|
|
1305
|
+
|
|
1306
|
+
# patterns.md content
|
|
1307
|
+
patterns_md = '''# Foundry NextGen Patterns
|
|
1308
|
+
|
|
1309
|
+
## Page Layouts
|
|
1310
|
+
|
|
1311
|
+
### List Page (Entity Browser)
|
|
1312
|
+
|
|
1313
|
+
The standard layout for browsing entities with search, tabs, and data table.
|
|
1314
|
+
|
|
1315
|
+
```jsx
|
|
1316
|
+
function EntityListPage() {
|
|
1317
|
+
const [activeTab, setActiveTab] = useState(\\'all\\');
|
|
1318
|
+
const [searchQuery, setSearchQuery] = useState(\\'\\');
|
|
1319
|
+
const [selected, setSelected] = useState(null);
|
|
1320
|
+
|
|
1321
|
+
return (
|
|
1322
|
+
<div className="page">
|
|
1323
|
+
<header className="page-header">
|
|
1324
|
+
<h1 className="page-title">Entity list <span className="count">(100)</span></h1>
|
|
1325
|
+
</header>
|
|
1326
|
+
|
|
1327
|
+
<div className="tabs">
|
|
1328
|
+
<button className={`tab ${activeTab === \\'all\\' ? \\'active\\' : \\'\\'}`}>
|
|
1329
|
+
All
|
|
1330
|
+
</button>
|
|
1331
|
+
<button className={`tab ${activeTab === \\'recent\\' ? \\'active\\' : \\'\\'}`}>
|
|
1332
|
+
Recent
|
|
1333
|
+
</button>
|
|
1334
|
+
</div>
|
|
1335
|
+
|
|
1336
|
+
<div className="toolbar">
|
|
1337
|
+
<SearchInput value={searchQuery} onChange={setSearchQuery} />
|
|
1338
|
+
<button className="btn btn-primary">Create</button>
|
|
1339
|
+
</div>
|
|
1340
|
+
|
|
1341
|
+
<DataTable
|
|
1342
|
+
data={filteredData}
|
|
1343
|
+
selected={selected}
|
|
1344
|
+
onSelect={setSelected}
|
|
1345
|
+
/>
|
|
1346
|
+
|
|
1347
|
+
<Pagination
|
|
1348
|
+
page={1}
|
|
1349
|
+
pageSize={10}
|
|
1350
|
+
total={100}
|
|
1351
|
+
/>
|
|
1352
|
+
</div>
|
|
1353
|
+
);
|
|
1354
|
+
}
|
|
1355
|
+
```
|
|
1356
|
+
|
|
1357
|
+
```css
|
|
1358
|
+
.page {
|
|
1359
|
+
display: flex;
|
|
1360
|
+
flex-direction: column;
|
|
1361
|
+
height: 100%;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
.page-header {
|
|
1365
|
+
padding: 24px 24px 16px;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.page-title {
|
|
1369
|
+
font-size: var(--text-xl);
|
|
1370
|
+
font-weight: 600;
|
|
1371
|
+
color: var(--text-primary);
|
|
1372
|
+
margin: 0;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
.page-title .count {
|
|
1376
|
+
font-weight: 400;
|
|
1377
|
+
color: var(--text-secondary);
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
.toolbar {
|
|
1381
|
+
display: flex;
|
|
1382
|
+
align-items: center;
|
|
1383
|
+
justify-content: space-between;
|
|
1384
|
+
padding: 16px 24px;
|
|
1385
|
+
}
|
|
1386
|
+
```
|
|
1387
|
+
|
|
1388
|
+
### Detail Page
|
|
1389
|
+
|
|
1390
|
+
Split layout with main content and detail panel.
|
|
1391
|
+
|
|
1392
|
+
```jsx
|
|
1393
|
+
function DetailPage() {
|
|
1394
|
+
return (
|
|
1395
|
+
<div className="detail-layout">
|
|
1396
|
+
<div className="detail-main">
|
|
1397
|
+
<header className="detail-header">
|
|
1398
|
+
<h1 className="detail-title">Resource Name</h1>
|
|
1399
|
+
<div className="detail-actions">
|
|
1400
|
+
<button className="btn btn-primary">Button</button>
|
|
1401
|
+
<button className="btn btn-secondary">Button</button>
|
|
1402
|
+
</div>
|
|
1403
|
+
</header>
|
|
1404
|
+
|
|
1405
|
+
<div className="tabs">
|
|
1406
|
+
<button className="tab active">First tab</button>
|
|
1407
|
+
<button className="tab">Second tab</button>
|
|
1408
|
+
</div>
|
|
1409
|
+
|
|
1410
|
+
<div className="detail-content">
|
|
1411
|
+
<Card title="Deployment info">
|
|
1412
|
+
<InfoGrid>
|
|
1413
|
+
<InfoItem label="Name" value="GPT-5" />
|
|
1414
|
+
<InfoItem label="Status" value="Succeeded" />
|
|
1415
|
+
</InfoGrid>
|
|
1416
|
+
</Card>
|
|
1417
|
+
</div>
|
|
1418
|
+
</div>
|
|
1419
|
+
|
|
1420
|
+
<aside className="detail-sidebar">
|
|
1421
|
+
<h2 className="sidebar-title">Target URI</h2>
|
|
1422
|
+
<CopyField value="endpoint-aip-2i93..." />
|
|
1423
|
+
|
|
1424
|
+
<h2 className="sidebar-title">Key</h2>
|
|
1425
|
+
<SecretField value="••••••••••••••" />
|
|
1426
|
+
|
|
1427
|
+
<CodeSnippet language="python" />
|
|
1428
|
+
</aside>
|
|
1429
|
+
</div>
|
|
1430
|
+
);
|
|
1431
|
+
}
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
```css
|
|
1435
|
+
.detail-layout {
|
|
1436
|
+
display: grid;
|
|
1437
|
+
grid-template-columns: 1fr 400px;
|
|
1438
|
+
height: 100%;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
.detail-main {
|
|
1442
|
+
display: flex;
|
|
1443
|
+
flex-direction: column;
|
|
1444
|
+
border-right: 1px solid var(--border-subtle);
|
|
1445
|
+
overflow: hidden;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
.detail-header {
|
|
1449
|
+
display: flex;
|
|
1450
|
+
align-items: center;
|
|
1451
|
+
justify-content: space-between;
|
|
1452
|
+
padding: 16px 24px;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
.detail-title {
|
|
1456
|
+
font-size: var(--text-lg);
|
|
1457
|
+
font-weight: 600;
|
|
1458
|
+
color: var(--text-primary);
|
|
1459
|
+
margin: 0;
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
.detail-actions {
|
|
1463
|
+
display: flex;
|
|
1464
|
+
gap: 12px;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
.detail-content {
|
|
1468
|
+
flex: 1;
|
|
1469
|
+
overflow-y: auto;
|
|
1470
|
+
padding: 24px;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
.detail-sidebar {
|
|
1474
|
+
padding: 24px;
|
|
1475
|
+
overflow-y: auto;
|
|
1476
|
+
background: var(--bg-page);
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
.sidebar-title {
|
|
1480
|
+
font-size: var(--text-sm);
|
|
1481
|
+
font-weight: 500;
|
|
1482
|
+
color: var(--text-secondary);
|
|
1483
|
+
margin: 0 0 8px 0;
|
|
1484
|
+
}
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
## App Shell
|
|
1488
|
+
|
|
1489
|
+
Complete application layout with top bar and sidebar.
|
|
1490
|
+
|
|
1491
|
+
```jsx
|
|
1492
|
+
function AppShell({ children }) {
|
|
1493
|
+
return (
|
|
1494
|
+
<div className="app">
|
|
1495
|
+
<header className="topbar">
|
|
1496
|
+
<div className="topbar-left">
|
|
1497
|
+
<FoundryLogo />
|
|
1498
|
+
<span className="topbar-divider">/</span>
|
|
1499
|
+
<ProjectSelector />
|
|
1500
|
+
</div>
|
|
1501
|
+
<div className="topbar-right">
|
|
1502
|
+
<GlobalSearch />
|
|
1503
|
+
<NotificationBell />
|
|
1504
|
+
<UserAvatar />
|
|
1505
|
+
</div>
|
|
1506
|
+
</header>
|
|
1507
|
+
|
|
1508
|
+
<div className="app-body">
|
|
1509
|
+
<Sidebar />
|
|
1510
|
+
<main className="app-main">
|
|
1511
|
+
{children}
|
|
1512
|
+
</main>
|
|
1513
|
+
</div>
|
|
1514
|
+
</div>
|
|
1515
|
+
);
|
|
1516
|
+
}
|
|
1517
|
+
```
|
|
1518
|
+
|
|
1519
|
+
```css
|
|
1520
|
+
.app {
|
|
1521
|
+
min-height: 100vh;
|
|
1522
|
+
display: flex;
|
|
1523
|
+
flex-direction: column;
|
|
1524
|
+
background: var(--bg-page);
|
|
1525
|
+
color: var(--text-primary);
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
.topbar {
|
|
1529
|
+
height: 48px;
|
|
1530
|
+
display: flex;
|
|
1531
|
+
align-items: center;
|
|
1532
|
+
justify-content: space-between;
|
|
1533
|
+
padding: 0 16px;
|
|
1534
|
+
background: var(--bg-sidebar);
|
|
1535
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
.topbar-left,
|
|
1539
|
+
.topbar-right {
|
|
1540
|
+
display: flex;
|
|
1541
|
+
align-items: center;
|
|
1542
|
+
gap: 12px;
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
.topbar-divider {
|
|
1546
|
+
color: var(--text-muted);
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
.app-body {
|
|
1550
|
+
display: flex;
|
|
1551
|
+
flex: 1;
|
|
1552
|
+
overflow: hidden;
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
.app-main {
|
|
1556
|
+
flex: 1;
|
|
1557
|
+
overflow-y: auto;
|
|
1558
|
+
}
|
|
1559
|
+
```
|
|
1560
|
+
|
|
1561
|
+
## Empty States
|
|
1562
|
+
|
|
1563
|
+
```jsx
|
|
1564
|
+
function EmptyState({ icon: Icon, title, description, action }) {
|
|
1565
|
+
return (
|
|
1566
|
+
<div className="empty-state">
|
|
1567
|
+
<div className="empty-icon">
|
|
1568
|
+
<Icon size={48} />
|
|
1569
|
+
</div>
|
|
1570
|
+
<h3 className="empty-title">{title}</h3>
|
|
1571
|
+
<p className="empty-description">{description}</p>
|
|
1572
|
+
{action && (
|
|
1573
|
+
<button className="btn btn-primary">{action}</button>
|
|
1574
|
+
)}
|
|
1575
|
+
</div>
|
|
1576
|
+
);
|
|
1577
|
+
}
|
|
1578
|
+
```
|
|
1579
|
+
|
|
1580
|
+
```css
|
|
1581
|
+
.empty-state {
|
|
1582
|
+
display: flex;
|
|
1583
|
+
flex-direction: column;
|
|
1584
|
+
align-items: center;
|
|
1585
|
+
justify-content: center;
|
|
1586
|
+
padding: 64px 24px;
|
|
1587
|
+
text-align: center;
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
.empty-icon {
|
|
1591
|
+
color: var(--text-muted);
|
|
1592
|
+
margin-bottom: 16px;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
.empty-title {
|
|
1596
|
+
font-size: var(--text-lg);
|
|
1597
|
+
font-weight: 600;
|
|
1598
|
+
color: var(--text-primary);
|
|
1599
|
+
margin: 0 0 8px 0;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
.empty-description {
|
|
1603
|
+
font-size: var(--text-base);
|
|
1604
|
+
color: var(--text-secondary);
|
|
1605
|
+
margin: 0 0 24px 0;
|
|
1606
|
+
max-width: 360px;
|
|
1607
|
+
}
|
|
1608
|
+
```
|
|
1609
|
+
|
|
1610
|
+
## Loading States
|
|
1611
|
+
|
|
1612
|
+
```jsx
|
|
1613
|
+
function LoadingState() {
|
|
1614
|
+
return (
|
|
1615
|
+
<div className="loading-state">
|
|
1616
|
+
<div className="spinner" />
|
|
1617
|
+
<span className="loading-text">Loading...</span>
|
|
1618
|
+
</div>
|
|
1619
|
+
);
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
function SkeletonRow() {
|
|
1623
|
+
return (
|
|
1624
|
+
<tr className="skeleton-row">
|
|
1625
|
+
<td><div className="skeleton skeleton-radio" /></td>
|
|
1626
|
+
<td><div className="skeleton skeleton-text" /></td>
|
|
1627
|
+
<td><div className="skeleton skeleton-text-long" /></td>
|
|
1628
|
+
<td><div className="skeleton skeleton-text" /></td>
|
|
1629
|
+
</tr>
|
|
1630
|
+
);
|
|
1631
|
+
}
|
|
1632
|
+
```
|
|
1633
|
+
|
|
1634
|
+
```css
|
|
1635
|
+
.loading-state {
|
|
1636
|
+
display: flex;
|
|
1637
|
+
flex-direction: column;
|
|
1638
|
+
align-items: center;
|
|
1639
|
+
justify-content: center;
|
|
1640
|
+
padding: 48px;
|
|
1641
|
+
gap: 12px;
|
|
1642
|
+
}
|
|
1643
|
+
|
|
1644
|
+
.spinner {
|
|
1645
|
+
width: 24px;
|
|
1646
|
+
height: 24px;
|
|
1647
|
+
border: 2px solid var(--border-default);
|
|
1648
|
+
border-top-color: var(--brand-primary);
|
|
1649
|
+
border-radius: 50%;
|
|
1650
|
+
animation: spin 0.8s linear infinite;
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
@keyframes spin {
|
|
1654
|
+
to { transform: rotate(360deg); }
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
.loading-text {
|
|
1658
|
+
font-size: var(--text-sm);
|
|
1659
|
+
color: var(--text-secondary);
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
.skeleton {
|
|
1663
|
+
background: var(--bg-surface);
|
|
1664
|
+
border-radius: var(--radius-sm);
|
|
1665
|
+
animation: pulse 1.5s ease-in-out infinite;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
.skeleton-radio {
|
|
1669
|
+
width: 16px;
|
|
1670
|
+
height: 16px;
|
|
1671
|
+
border-radius: 50%;
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
.skeleton-text {
|
|
1675
|
+
width: 80px;
|
|
1676
|
+
height: 14px;
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1679
|
+
.skeleton-text-long {
|
|
1680
|
+
width: 160px;
|
|
1681
|
+
height: 14px;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
@keyframes pulse {
|
|
1685
|
+
0%, 100% { opacity: 1; }
|
|
1686
|
+
50% { opacity: 0.5; }
|
|
1687
|
+
}
|
|
1688
|
+
```
|
|
1689
|
+
|
|
1690
|
+
## Info Grid
|
|
1691
|
+
|
|
1692
|
+
Key-value display pattern used in detail panels.
|
|
1693
|
+
|
|
1694
|
+
```jsx
|
|
1695
|
+
function InfoGrid({ children }) {
|
|
1696
|
+
return <dl className="info-grid">{children}</dl>;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
function InfoItem({ label, value }) {
|
|
1700
|
+
return (
|
|
1701
|
+
<>
|
|
1702
|
+
<dt className="info-label">{label}</dt>
|
|
1703
|
+
<dd className="info-value">{value}</dd>
|
|
1704
|
+
</>
|
|
1705
|
+
);
|
|
1706
|
+
}
|
|
1707
|
+
```
|
|
1708
|
+
|
|
1709
|
+
```css
|
|
1710
|
+
.info-grid {
|
|
1711
|
+
display: grid;
|
|
1712
|
+
grid-template-columns: 1fr 1fr;
|
|
1713
|
+
gap: 12px 24px;
|
|
1714
|
+
margin: 0;
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1717
|
+
.info-label {
|
|
1718
|
+
font-size: var(--text-sm);
|
|
1719
|
+
color: var(--text-secondary);
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
.info-value {
|
|
1723
|
+
font-size: var(--text-base);
|
|
1724
|
+
color: var(--text-primary);
|
|
1725
|
+
margin: 0;
|
|
1726
|
+
}
|
|
1727
|
+
```
|
|
1728
|
+
|
|
1729
|
+
## Code Snippet
|
|
1730
|
+
|
|
1731
|
+
```jsx
|
|
1732
|
+
function CodeSnippet({ language, code, showCopy = true }) {
|
|
1733
|
+
return (
|
|
1734
|
+
<div className="code-snippet">
|
|
1735
|
+
<div className="code-header">
|
|
1736
|
+
<span className="code-language">{language}</span>
|
|
1737
|
+
{showCopy && (
|
|
1738
|
+
<button className="btn-icon" title="Copy">
|
|
1739
|
+
<Copy size={14} />
|
|
1740
|
+
</button>
|
|
1741
|
+
)}
|
|
1742
|
+
</div>
|
|
1743
|
+
<pre className="code-content">
|
|
1744
|
+
<code>{code}</code>
|
|
1745
|
+
</pre>
|
|
1746
|
+
</div>
|
|
1747
|
+
);
|
|
1748
|
+
}
|
|
1749
|
+
```
|
|
1750
|
+
|
|
1751
|
+
```css
|
|
1752
|
+
.code-snippet {
|
|
1753
|
+
background: var(--bg-surface);
|
|
1754
|
+
border: 1px solid var(--border-default);
|
|
1755
|
+
border-radius: var(--radius-lg);
|
|
1756
|
+
overflow: hidden;
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
.code-header {
|
|
1760
|
+
display: flex;
|
|
1761
|
+
align-items: center;
|
|
1762
|
+
justify-content: space-between;
|
|
1763
|
+
padding: 8px 12px;
|
|
1764
|
+
background: var(--bg-elevated);
|
|
1765
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1768
|
+
.code-language {
|
|
1769
|
+
font-size: var(--text-xs);
|
|
1770
|
+
color: var(--text-secondary);
|
|
1771
|
+
text-transform: uppercase;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.code-content {
|
|
1775
|
+
margin: 0;
|
|
1776
|
+
padding: 16px;
|
|
1777
|
+
font-family: \\'SF Mono\\', \\'Fira Code\\', monospace;
|
|
1778
|
+
font-size: 13px;
|
|
1779
|
+
line-height: 1.6;
|
|
1780
|
+
color: var(--text-primary);
|
|
1781
|
+
overflow-x: auto;
|
|
1782
|
+
}
|
|
1783
|
+
```
|
|
1784
|
+
|
|
1785
|
+
## Copy Field
|
|
1786
|
+
|
|
1787
|
+
Field with copy-to-clipboard functionality.
|
|
1788
|
+
|
|
1789
|
+
```jsx
|
|
1790
|
+
function CopyField({ value, masked = false }) {
|
|
1791
|
+
const [copied, setCopied] = useState(false);
|
|
1792
|
+
const [revealed, setRevealed] = useState(!masked);
|
|
1793
|
+
|
|
1794
|
+
const handleCopy = async () => {
|
|
1795
|
+
await navigator.clipboard.writeText(value);
|
|
1796
|
+
setCopied(true);
|
|
1797
|
+
setTimeout(() => setCopied(false), 2000);
|
|
1798
|
+
};
|
|
1799
|
+
|
|
1800
|
+
return (
|
|
1801
|
+
<div className="copy-field">
|
|
1802
|
+
<input
|
|
1803
|
+
type={revealed ? \\'text\\' : \\'password\\'}
|
|
1804
|
+
value={value}
|
|
1805
|
+
readOnly
|
|
1806
|
+
className="copy-field-input"
|
|
1807
|
+
/>
|
|
1808
|
+
{masked && (
|
|
1809
|
+
<button
|
|
1810
|
+
className="btn-icon"
|
|
1811
|
+
onClick={() => setRevealed(!revealed)}
|
|
1812
|
+
>
|
|
1813
|
+
{revealed ? <EyeOff size={14} /> : <Eye size={14} />}
|
|
1814
|
+
</button>
|
|
1815
|
+
)}
|
|
1816
|
+
<button className="btn-icon" onClick={handleCopy}>
|
|
1817
|
+
{copied ? <Check size={14} /> : <Copy size={14} />}
|
|
1818
|
+
</button>
|
|
1819
|
+
</div>
|
|
1820
|
+
);
|
|
1821
|
+
}
|
|
1822
|
+
```
|
|
1823
|
+
|
|
1824
|
+
```css
|
|
1825
|
+
.copy-field {
|
|
1826
|
+
display: flex;
|
|
1827
|
+
align-items: center;
|
|
1828
|
+
background: var(--bg-surface);
|
|
1829
|
+
border: 1px solid var(--border-default);
|
|
1830
|
+
border-radius: var(--radius-md);
|
|
1831
|
+
overflow: hidden;
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
.copy-field-input {
|
|
1835
|
+
flex: 1;
|
|
1836
|
+
padding: 10px 12px;
|
|
1837
|
+
font-size: var(--text-sm);
|
|
1838
|
+
font-family: \\'SF Mono\\', monospace;
|
|
1839
|
+
color: var(--text-primary);
|
|
1840
|
+
background: transparent;
|
|
1841
|
+
border: none;
|
|
1842
|
+
outline: none;
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
.copy-field .btn-icon {
|
|
1846
|
+
border-radius: 0;
|
|
1847
|
+
}
|
|
1848
|
+
```
|
|
1849
|
+
|
|
1850
|
+
## Chart Theming (Recharts)
|
|
1851
|
+
|
|
1852
|
+
```jsx
|
|
1853
|
+
const chartColors = {
|
|
1854
|
+
primary: \\'#8251EE\\',
|
|
1855
|
+
secondary: \\'#A37EF5\\',
|
|
1856
|
+
grid: \\'#2A2A2A\\',
|
|
1857
|
+
text: \\'#A1A1A1\\',
|
|
1858
|
+
tooltip: {
|
|
1859
|
+
bg: \\'#242424\\',
|
|
1860
|
+
border: \\'#333333\\',
|
|
1861
|
+
}
|
|
1862
|
+
};
|
|
1863
|
+
|
|
1864
|
+
function FoundryAreaChart({ data }) {
|
|
1865
|
+
return (
|
|
1866
|
+
<ResponsiveContainer width="100%" height={200}>
|
|
1867
|
+
<AreaChart data={data}>
|
|
1868
|
+
<defs>
|
|
1869
|
+
<linearGradient id="colorValue" x1="0" y1="0" x2="0" y2="1">
|
|
1870
|
+
<stop offset="0%" stopColor={chartColors.primary} stopOpacity={0.3} />
|
|
1871
|
+
<stop offset="100%" stopColor={chartColors.primary} stopOpacity={0} />
|
|
1872
|
+
</linearGradient>
|
|
1873
|
+
</defs>
|
|
1874
|
+
<XAxis
|
|
1875
|
+
dataKey="name"
|
|
1876
|
+
axisLine={false}
|
|
1877
|
+
tickLine={false}
|
|
1878
|
+
tick={{ fill: chartColors.text, fontSize: 12 }}
|
|
1879
|
+
/>
|
|
1880
|
+
<YAxis
|
|
1881
|
+
axisLine={false}
|
|
1882
|
+
tickLine={false}
|
|
1883
|
+
tick={{ fill: chartColors.text, fontSize: 12 }}
|
|
1884
|
+
/>
|
|
1885
|
+
<CartesianGrid
|
|
1886
|
+
strokeDasharray="3 3"
|
|
1887
|
+
stroke={chartColors.grid}
|
|
1888
|
+
vertical={false}
|
|
1889
|
+
/>
|
|
1890
|
+
<Tooltip
|
|
1891
|
+
contentStyle={{
|
|
1892
|
+
background: chartColors.tooltip.bg,
|
|
1893
|
+
border: `1px solid ${chartColors.tooltip.border}`,
|
|
1894
|
+
borderRadius: 6,
|
|
1895
|
+
color: \\'#fff\\',
|
|
1896
|
+
}}
|
|
1897
|
+
/>
|
|
1898
|
+
<Area
|
|
1899
|
+
type="monotone"
|
|
1900
|
+
dataKey="value"
|
|
1901
|
+
stroke={chartColors.primary}
|
|
1902
|
+
fill="url(#colorValue)"
|
|
1903
|
+
strokeWidth={2}
|
|
1904
|
+
/>
|
|
1905
|
+
</AreaChart>
|
|
1906
|
+
</ResponsiveContainer>
|
|
1907
|
+
);
|
|
1908
|
+
}
|
|
1909
|
+
```
|
|
1910
|
+
|
|
1911
|
+
## Collapsible Section
|
|
1912
|
+
|
|
1913
|
+
```jsx
|
|
1914
|
+
function CollapsibleSection({ title, defaultExpanded = false, children }) {
|
|
1915
|
+
const [expanded, setExpanded] = useState(defaultExpanded);
|
|
1916
|
+
|
|
1917
|
+
return (
|
|
1918
|
+
<div className="collapsible">
|
|
1919
|
+
<button
|
|
1920
|
+
className="collapsible-trigger"
|
|
1921
|
+
onClick={() => setExpanded(!expanded)}
|
|
1922
|
+
>
|
|
1923
|
+
<ChevronRight
|
|
1924
|
+
size={16}
|
|
1925
|
+
className={`collapsible-icon ${expanded ? \\'expanded\\' : \\'\\'}`}
|
|
1926
|
+
/>
|
|
1927
|
+
<span>{title}</span>
|
|
1928
|
+
</button>
|
|
1929
|
+
{expanded && (
|
|
1930
|
+
<div className="collapsible-content">
|
|
1931
|
+
{children}
|
|
1932
|
+
</div>
|
|
1933
|
+
)}
|
|
1934
|
+
</div>
|
|
1935
|
+
);
|
|
1936
|
+
}
|
|
1937
|
+
```
|
|
1938
|
+
|
|
1939
|
+
```css
|
|
1940
|
+
.collapsible-trigger {
|
|
1941
|
+
display: flex;
|
|
1942
|
+
align-items: center;
|
|
1943
|
+
gap: 8px;
|
|
1944
|
+
padding: 12px 0;
|
|
1945
|
+
font-size: var(--text-sm);
|
|
1946
|
+
font-weight: 500;
|
|
1947
|
+
color: var(--text-primary);
|
|
1948
|
+
background: none;
|
|
1949
|
+
border: none;
|
|
1950
|
+
cursor: pointer;
|
|
1951
|
+
width: 100%;
|
|
1952
|
+
text-align: left;
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
.collapsible-trigger:hover {
|
|
1956
|
+
color: var(--text-link);
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
.collapsible-icon {
|
|
1960
|
+
color: var(--text-muted);
|
|
1961
|
+
transition: transform 0.2s ease;
|
|
1962
|
+
}
|
|
1963
|
+
|
|
1964
|
+
.collapsible-icon.expanded {
|
|
1965
|
+
transform: rotate(90deg);
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
.collapsible-content {
|
|
1969
|
+
padding-left: 24px;
|
|
1970
|
+
}
|
|
1971
|
+
```
|
|
1972
|
+
'''
|
|
1973
|
+
|
|
1974
|
+
# Write files
|
|
1975
|
+
with open(os.path.join(base_dir, 'SKILL.md'), 'w') as f:
|
|
1976
|
+
f.write(skill_md)
|
|
1977
|
+
|
|
1978
|
+
os.makedirs(os.path.join(base_dir, 'references'), exist_ok=True)
|
|
1979
|
+
|
|
1980
|
+
with open(os.path.join(base_dir, 'references', 'design-tokens.md'), 'w') as f:
|
|
1981
|
+
f.write(design_tokens_md)
|
|
1982
|
+
|
|
1983
|
+
with open(os.path.join(base_dir, 'references', 'components.md'), 'w') as f:
|
|
1984
|
+
f.write(components_md)
|
|
1985
|
+
|
|
1986
|
+
with open(os.path.join(base_dir, 'references', 'patterns.md'), 'w') as f:
|
|
1987
|
+
f.write(patterns_md)
|
|
1988
|
+
|
|
1989
|
+
print("All skill files updated successfully!")
|
|
1990
|
+
print(f"- {os.path.join(base_dir, 'SKILL.md')}")
|
|
1991
|
+
print(f"- {os.path.join(base_dir, 'references', 'design-tokens.md')}")
|
|
1992
|
+
print(f"- {os.path.join(base_dir, 'references', 'components.md')}")
|
|
1993
|
+
print(f"- {os.path.join(base_dir, 'references', 'patterns.md')}")
|