@trieungoctam/vibekit 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 +85 -0
- package/agents/debugger.md +158 -0
- package/agents/docs-manager.md +220 -0
- package/agents/planner.md +129 -0
- package/agents/researcher.md +58 -0
- package/agents/reviewer.md +152 -0
- package/agents/tester.md +126 -0
- package/bin/vibekit.js +18 -0
- package/hooks/lib/ck-config-utils.cjs +831 -0
- package/hooks/lib/colors.cjs +95 -0
- package/hooks/lib/config-counter.cjs +103 -0
- package/hooks/lib/context-builder.cjs +616 -0
- package/hooks/lib/git-info-cache.cjs +143 -0
- package/hooks/lib/hook-logger.cjs +92 -0
- package/hooks/lib/privacy-checker.cjs +297 -0
- package/hooks/lib/project-detector.cjs +474 -0
- package/hooks/lib/scout-checker.cjs +263 -0
- package/hooks/lib/transcript-parser.cjs +181 -0
- package/hooks/post-edit-simplify-reminder.cjs +156 -0
- package/hooks/privacy-block.cjs +166 -0
- package/hooks/scout-block.cjs +147 -0
- package/hooks/session-init.cjs +360 -0
- package/package.json +41 -0
- package/rules/development-rules.md +52 -0
- package/rules/documentation-management.md +121 -0
- package/rules/orchestration-protocol.md +43 -0
- package/rules/primary-workflow.md +57 -0
- package/rules/team-coordination-rules.md +90 -0
- package/skills/ai/agent-browser/SKILL.md +294 -0
- package/skills/ai/agent-browser/references/.gitkeep +0 -0
- package/skills/ai/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/skills/ai/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/skills/ai/ai-artist/SKILL.md +122 -0
- package/skills/ai/ai-artist/data/awesome-prompts.csv +3592 -0
- package/skills/ai/ai-artist/data/lighting.csv +19 -0
- package/skills/ai/ai-artist/data/nano-banana-templates.csv +17 -0
- package/skills/ai/ai-artist/data/platforms.csv +11 -0
- package/skills/ai/ai-artist/data/styles.csv +26 -0
- package/skills/ai/ai-artist/data/techniques.csv +19 -0
- package/skills/ai/ai-artist/data/use-cases.csv +16 -0
- package/skills/ai/ai-artist/references/advanced-techniques.md +184 -0
- package/skills/ai/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
- package/skills/ai/ai-artist/references/domain-code.md +66 -0
- package/skills/ai/ai-artist/references/domain-data.md +72 -0
- package/skills/ai/ai-artist/references/domain-marketing.md +66 -0
- package/skills/ai/ai-artist/references/domain-patterns.md +33 -0
- package/skills/ai/ai-artist/references/domain-writing.md +68 -0
- package/skills/ai/ai-artist/references/image-prompting.md +141 -0
- package/skills/ai/ai-artist/references/llm-prompting.md +165 -0
- package/skills/ai/ai-artist/references/nano-banana.md +136 -0
- package/skills/ai/ai-artist/references/reasoning-techniques.md +201 -0
- package/skills/ai/ai-artist/references/validation-workflow.md +117 -0
- package/skills/ai/ai-artist/scripts/core.py +197 -0
- package/skills/ai/ai-artist/scripts/extract_prompts.py +102 -0
- package/skills/ai/ai-artist/scripts/generate.py +370 -0
- package/skills/ai/ai-artist/scripts/search.py +147 -0
- package/skills/ai/ai-multimodal/.env.example +204 -0
- package/skills/ai/ai-multimodal/SKILL.md +110 -0
- package/skills/ai/ai-multimodal/references/audio-processing.md +387 -0
- package/skills/ai/ai-multimodal/references/image-generation.md +939 -0
- package/skills/ai/ai-multimodal/references/music-generation.md +311 -0
- package/skills/ai/ai-multimodal/references/video-analysis.md +515 -0
- package/skills/ai/ai-multimodal/references/video-generation.md +457 -0
- package/skills/ai/ai-multimodal/references/vision-understanding.md +492 -0
- package/skills/ai/ai-multimodal/scripts/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/check_setup.py +315 -0
- package/skills/ai/ai-multimodal/scripts/document_converter.py +395 -0
- package/skills/ai/ai-multimodal/scripts/gemini_batch_process.py +1185 -0
- package/skills/ai/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/skills/ai/ai-multimodal/scripts/requirements.txt +26 -0
- package/skills/ai/ai-multimodal/scripts/tests/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/skills/ai/mcp-management/README.md +219 -0
- package/skills/ai/mcp-management/SKILL.md +210 -0
- package/skills/ai/mcp-management/assets/tools.json +3146 -0
- package/skills/ai/mcp-management/references/configuration.md +114 -0
- package/skills/ai/mcp-management/references/gemini-cli-integration.md +221 -0
- package/skills/ai/mcp-management/references/mcp-protocol.md +116 -0
- package/skills/ai/mcp-management/scripts/.env.example +10 -0
- package/skills/ai/mcp-management/scripts/cli.ts +195 -0
- package/skills/ai/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/ai/mcp-management/scripts/dist/cli.js +160 -0
- package/skills/ai/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/skills/ai/mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/ai/mcp-management/scripts/package.json +20 -0
- package/skills/ai/mcp-management/scripts/tsconfig.json +15 -0
- package/skills/core/brainstorm/SKILL.md +164 -0
- package/skills/core/brainstorm/scripts/frame-template.html +214 -0
- package/skills/core/brainstorm/scripts/helper.js +88 -0
- package/skills/core/brainstorm/scripts/server.cjs +338 -0
- package/skills/core/brainstorm/scripts/start-server.sh +153 -0
- package/skills/core/brainstorm/scripts/stop-server.sh +55 -0
- package/skills/core/brainstorm/spec-document-reviewer-prompt.md +49 -0
- package/skills/core/brainstorm/visual-companion.md +286 -0
- package/skills/core/code-review/SKILL.md +147 -0
- package/skills/core/code-review/references/code-review-reception.md +113 -0
- package/skills/core/code-review/references/codebase-scan-workflow.md +29 -0
- package/skills/core/code-review/references/edge-case-scouting.md +119 -0
- package/skills/core/code-review/references/parallel-review-workflow.md +69 -0
- package/skills/core/code-review/references/requesting-code-review.md +116 -0
- package/skills/core/code-review/references/task-management-reviews.md +140 -0
- package/skills/core/code-review/references/verification-before-completion.md +139 -0
- package/skills/core/cook/README.md +86 -0
- package/skills/core/cook/SKILL.md +113 -0
- package/skills/core/cook/references/intent-detection.md +101 -0
- package/skills/core/cook/references/review-cycle.md +75 -0
- package/skills/core/cook/references/subagent-patterns.md +75 -0
- package/skills/core/cook/references/workflow-steps.md +172 -0
- package/skills/core/debug/SKILL.md +121 -0
- package/skills/core/debug/references/defense-in-depth.md +124 -0
- package/skills/core/debug/references/frontend-verification.md +103 -0
- package/skills/core/debug/references/investigation-methodology.md +101 -0
- package/skills/core/debug/references/log-and-ci-analysis.md +97 -0
- package/skills/core/debug/references/performance-diagnostics.md +113 -0
- package/skills/core/debug/references/reporting-standards.md +122 -0
- package/skills/core/debug/references/root-cause-tracing.md +122 -0
- package/skills/core/debug/references/systematic-debugging.md +102 -0
- package/skills/core/debug/references/task-management-debugging.md +155 -0
- package/skills/core/debug/references/verification.md +123 -0
- package/skills/core/debug/scripts/find-polluter.sh +63 -0
- package/skills/core/debug/scripts/find-polluter.test.md +102 -0
- package/skills/core/execute/SKILL.md +70 -0
- package/skills/core/fix/SKILL.md +111 -0
- package/skills/core/fix/references/complexity-assessment.md +72 -0
- package/skills/core/fix/references/mode-selection.md +46 -0
- package/skills/core/fix/references/parallel-exploration.md +100 -0
- package/skills/core/fix/references/review-cycle.md +77 -0
- package/skills/core/fix/references/skill-activation-matrix.md +78 -0
- package/skills/core/fix/references/task-orchestration.md +103 -0
- package/skills/core/fix/references/workflow-ci.md +28 -0
- package/skills/core/fix/references/workflow-deep.md +122 -0
- package/skills/core/fix/references/workflow-logs.md +72 -0
- package/skills/core/fix/references/workflow-quick.md +59 -0
- package/skills/core/fix/references/workflow-standard.md +111 -0
- package/skills/core/fix/references/workflow-test.md +75 -0
- package/skills/core/fix/references/workflow-types.md +33 -0
- package/skills/core/fix/references/workflow-ui.md +75 -0
- package/skills/core/plan/SKILL.md +145 -0
- package/skills/core/plan/plan-document-reviewer-prompt.md +49 -0
- package/skills/core/subagent-dev/SKILL.md +277 -0
- package/skills/core/subagent-dev/code-quality-reviewer-prompt.md +26 -0
- package/skills/core/subagent-dev/implementer-prompt.md +113 -0
- package/skills/core/subagent-dev/spec-reviewer-prompt.md +61 -0
- package/skills/core/tdd/SKILL.md +371 -0
- package/skills/core/tdd/testing-anti-patterns.md +299 -0
- package/skills/core/test/SKILL.md +109 -0
- package/skills/core/test/references/report-format.md +58 -0
- package/skills/core/test/references/test-execution-workflow.md +103 -0
- package/skills/core/test/references/ui-testing-workflow.md +65 -0
- package/skills/core/verify/SKILL.md +139 -0
- package/skills/dev/backend-dev/SKILL.md +96 -0
- package/skills/dev/backend-dev/references/backend-api-design.md +495 -0
- package/skills/dev/backend-dev/references/backend-architecture.md +454 -0
- package/skills/dev/backend-dev/references/backend-authentication.md +338 -0
- package/skills/dev/backend-dev/references/backend-code-quality.md +659 -0
- package/skills/dev/backend-dev/references/backend-debugging.md +904 -0
- package/skills/dev/backend-dev/references/backend-devops.md +494 -0
- package/skills/dev/backend-dev/references/backend-mindset.md +387 -0
- package/skills/dev/backend-dev/references/backend-performance.md +397 -0
- package/skills/dev/backend-dev/references/backend-security.md +290 -0
- package/skills/dev/backend-dev/references/backend-technologies.md +256 -0
- package/skills/dev/backend-dev/references/backend-testing.md +429 -0
- package/skills/dev/context-engineering/SKILL.md +108 -0
- package/skills/dev/context-engineering/references/context-compression.md +84 -0
- package/skills/dev/context-engineering/references/context-degradation.md +93 -0
- package/skills/dev/context-engineering/references/context-fundamentals.md +75 -0
- package/skills/dev/context-engineering/references/context-optimization.md +82 -0
- package/skills/dev/context-engineering/references/evaluation.md +89 -0
- package/skills/dev/context-engineering/references/memory-systems.md +88 -0
- package/skills/dev/context-engineering/references/multi-agent-patterns.md +90 -0
- package/skills/dev/context-engineering/references/project-development.md +97 -0
- package/skills/dev/context-engineering/references/runtime-awareness.md +202 -0
- package/skills/dev/context-engineering/references/tool-design.md +86 -0
- package/skills/dev/context-engineering/scripts/compression_evaluator.py +349 -0
- package/skills/dev/context-engineering/scripts/context_analyzer.py +317 -0
- package/skills/dev/context-engineering/scripts/tests/test_edge_cases.py +246 -0
- package/skills/dev/databases/SKILL.md +84 -0
- package/skills/dev/databases/analytics.md +198 -0
- package/skills/dev/databases/db-design.md +188 -0
- package/skills/dev/databases/incremental-etl.md +213 -0
- package/skills/dev/databases/references/mongodb-aggregation.md +447 -0
- package/skills/dev/databases/references/mongodb-atlas.md +465 -0
- package/skills/dev/databases/references/mongodb-crud.md +408 -0
- package/skills/dev/databases/references/mongodb-indexing.md +442 -0
- package/skills/dev/databases/references/postgresql-administration.md +594 -0
- package/skills/dev/databases/references/postgresql-performance.md +527 -0
- package/skills/dev/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/dev/databases/references/postgresql-queries.md +475 -0
- package/skills/dev/databases/scripts/.coverage +0 -0
- package/skills/dev/databases/scripts/db_backup.py +502 -0
- package/skills/dev/databases/scripts/db_migrate.py +426 -0
- package/skills/dev/databases/scripts/db_performance_check.py +457 -0
- package/skills/dev/databases/scripts/requirements.txt +20 -0
- package/skills/dev/databases/scripts/tests/coverage-db.json +1 -0
- package/skills/dev/databases/scripts/tests/requirements.txt +4 -0
- package/skills/dev/databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/dev/databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/dev/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/dev/databases/stacks/bigquery.md +231 -0
- package/skills/dev/databases/stacks/d1_cloudflare.md +137 -0
- package/skills/dev/databases/stacks/mysql.md +216 -0
- package/skills/dev/databases/stacks/postgres.md +235 -0
- package/skills/dev/databases/stacks/sqlite.md +244 -0
- package/skills/dev/databases/transactional.md +176 -0
- package/skills/dev/devops/.env.example +76 -0
- package/skills/dev/devops/SKILL.md +97 -0
- package/skills/dev/devops/references/browser-rendering.md +305 -0
- package/skills/dev/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/dev/devops/references/cloudflare-platform.md +271 -0
- package/skills/dev/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/dev/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/dev/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/dev/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/dev/devops/references/docker-basics.md +297 -0
- package/skills/dev/devops/references/docker-compose.md +292 -0
- package/skills/dev/devops/references/gcloud-platform.md +297 -0
- package/skills/dev/devops/references/gcloud-services.md +304 -0
- package/skills/dev/devops/references/kubernetes-basics.md +99 -0
- package/skills/dev/devops/references/kubernetes-helm-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-helm.md +81 -0
- package/skills/dev/devops/references/kubernetes-kubectl.md +74 -0
- package/skills/dev/devops/references/kubernetes-security-advanced.md +98 -0
- package/skills/dev/devops/references/kubernetes-security.md +95 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting.md +49 -0
- package/skills/dev/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-workflows.md +78 -0
- package/skills/dev/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/dev/devops/scripts/docker_optimize.py +332 -0
- package/skills/dev/devops/scripts/requirements.txt +20 -0
- package/skills/dev/devops/scripts/tests/requirements.txt +3 -0
- package/skills/dev/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/dev/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/dev/frontend-design/SKILL.md +78 -0
- package/skills/dev/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/skills/dev/frontend-design/references/analysis-best-practices.md +80 -0
- package/skills/dev/frontend-design/references/analysis-prompts.md +141 -0
- package/skills/dev/frontend-design/references/analysis-techniques.md +118 -0
- package/skills/dev/frontend-design/references/animejs.md +396 -0
- package/skills/dev/frontend-design/references/asset-generation.md +337 -0
- package/skills/dev/frontend-design/references/design-extraction-overview.md +71 -0
- package/skills/dev/frontend-design/references/extraction-best-practices.md +141 -0
- package/skills/dev/frontend-design/references/extraction-output-templates.md +162 -0
- package/skills/dev/frontend-design/references/extraction-prompts.md +127 -0
- package/skills/dev/frontend-design/references/technical-accessibility.md +119 -0
- package/skills/dev/frontend-design/references/technical-best-practices.md +97 -0
- package/skills/dev/frontend-design/references/technical-optimization.md +44 -0
- package/skills/dev/frontend-design/references/technical-overview.md +90 -0
- package/skills/dev/frontend-design/references/technical-workflows.md +150 -0
- package/skills/dev/frontend-design/references/visual-analysis-overview.md +95 -0
- package/skills/dev/frontend-design/references/workflow-3d.md +102 -0
- package/skills/dev/frontend-design/references/workflow-describe.md +87 -0
- package/skills/dev/frontend-design/references/workflow-immersive.md +87 -0
- package/skills/dev/frontend-design/references/workflow-quick.md +57 -0
- package/skills/dev/frontend-design/references/workflow-screenshot.md +63 -0
- package/skills/dev/frontend-design/references/workflow-video.md +74 -0
- package/skills/dev/frontend-dev/SKILL.md +400 -0
- package/skills/dev/frontend-dev/resources/common-patterns.md +331 -0
- package/skills/dev/frontend-dev/resources/complete-examples.md +872 -0
- package/skills/dev/frontend-dev/resources/component-patterns.md +502 -0
- package/skills/dev/frontend-dev/resources/data-fetching.md +767 -0
- package/skills/dev/frontend-dev/resources/file-organization.md +502 -0
- package/skills/dev/frontend-dev/resources/loading-and-error-states.md +501 -0
- package/skills/dev/frontend-dev/resources/performance.md +406 -0
- package/skills/dev/frontend-dev/resources/routing-guide.md +364 -0
- package/skills/dev/frontend-dev/resources/styling-guide.md +428 -0
- package/skills/dev/frontend-dev/resources/typescript-standards.md +418 -0
- package/skills/dev/git/SKILL.md +114 -0
- package/skills/dev/git/references/branch-management.md +88 -0
- package/skills/dev/git/references/commit-standards.md +46 -0
- package/skills/dev/git/references/gh-cli-guide.md +109 -0
- package/skills/dev/git/references/safety-protocols.md +69 -0
- package/skills/dev/git/references/workflow-commit.md +58 -0
- package/skills/dev/git/references/workflow-merge.md +48 -0
- package/skills/dev/git/references/workflow-pr.md +58 -0
- package/skills/dev/git/references/workflow-push.md +52 -0
- package/skills/dev/git-worktree/SKILL.md +218 -0
- package/skills/utils/ask/SKILL.md +58 -0
- package/skills/utils/bootstrap/SKILL.md +101 -0
- package/skills/utils/bootstrap/references/shared-phases.md +59 -0
- package/skills/utils/bootstrap/references/workflow-auto.md +52 -0
- package/skills/utils/bootstrap/references/workflow-fast.md +50 -0
- package/skills/utils/bootstrap/references/workflow-full.md +60 -0
- package/skills/utils/bootstrap/references/workflow-parallel.md +59 -0
- package/skills/utils/ck-help/SKILL.md +102 -0
- package/skills/utils/ck-help/scripts/ck-help.py +1321 -0
- package/skills/utils/ck-help/scripts/commands_data.yaml +3 -0
- package/skills/utils/ck-help/scripts/skills_data.yaml +593 -0
- package/skills/utils/copywriting/SKILL.md +94 -0
- package/skills/utils/copywriting/references/copy-formulas.md +150 -0
- package/skills/utils/copywriting/references/cta-patterns.md +168 -0
- package/skills/utils/copywriting/references/email-copy.md +193 -0
- package/skills/utils/copywriting/references/headline-templates.md +140 -0
- package/skills/utils/copywriting/references/landing-page-copy.md +175 -0
- package/skills/utils/copywriting/references/power-words.md +189 -0
- package/skills/utils/copywriting/references/social-media-copy.md +222 -0
- package/skills/utils/copywriting/references/workflow-cro.md +83 -0
- package/skills/utils/copywriting/references/workflow-enhance.md +32 -0
- package/skills/utils/copywriting/references/workflow-fast.md +29 -0
- package/skills/utils/copywriting/references/workflow-good.md +39 -0
- package/skills/utils/copywriting/references/writing-styles.md +247 -0
- package/skills/utils/copywriting/scripts/extract-writing-styles.py +308 -0
- package/skills/utils/copywriting/templates/copy-brief.md +49 -0
- package/skills/utils/docs/SKILL.md +55 -0
- package/skills/utils/docs/references/init-workflow.md +32 -0
- package/skills/utils/docs/references/summarize-workflow.md +18 -0
- package/skills/utils/docs/references/update-workflow.md +59 -0
- package/skills/utils/journal/SKILL.md +11 -0
- package/skills/utils/kanban/SKILL.md +99 -0
- package/skills/utils/preview/SKILL.md +75 -0
- package/skills/utils/preview/references/generation-modes.md +95 -0
- package/skills/utils/preview/references/view-mode.md +42 -0
- package/skills/utils/repomix/SKILL.md +248 -0
- package/skills/utils/repomix/references/configuration.md +211 -0
- package/skills/utils/repomix/references/usage-patterns.md +232 -0
- package/skills/utils/repomix/scripts/.coverage +0 -0
- package/skills/utils/repomix/scripts/README.md +179 -0
- package/skills/utils/repomix/scripts/repomix_batch.py +455 -0
- package/skills/utils/repomix/scripts/repos.example.json +15 -0
- package/skills/utils/repomix/scripts/requirements.txt +15 -0
- package/skills/utils/repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/skills/utils/research/SKILL.md +171 -0
- package/skills/utils/scout/SKILL.md +89 -0
- package/skills/utils/scout/references/external-scouting.md +140 -0
- package/skills/utils/scout/references/internal-scouting.md +119 -0
- package/skills/utils/scout/references/task-management-scouting.md +125 -0
- package/skills/utils/sequential-thinking/.env.example +8 -0
- package/skills/utils/sequential-thinking/README.md +183 -0
- package/skills/utils/sequential-thinking/SKILL.md +95 -0
- package/skills/utils/sequential-thinking/package.json +31 -0
- package/skills/utils/sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/utils/sequential-thinking/references/advanced-techniques.md +76 -0
- package/skills/utils/sequential-thinking/references/core-patterns.md +95 -0
- package/skills/utils/sequential-thinking/references/examples-api.md +88 -0
- package/skills/utils/sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/utils/sequential-thinking/references/examples-debug.md +90 -0
- package/skills/utils/sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/utils/sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/utils/sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/utils/sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/utils/write-skill/SKILL.md +655 -0
- package/skills/utils/write-skill/anthropic-best-practices.md +1150 -0
- package/skills/utils/write-skill/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/utils/write-skill/graphviz-conventions.dot +172 -0
- package/skills/utils/write-skill/persuasion-principles.md +187 -0
- package/skills/utils/write-skill/render-graphs.js +168 -0
- package/skills/utils/write-skill/testing-skills-with-subagents.md +384 -0
- package/src/commands/init.js +238 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# SQLite Rules
|
|
2
|
+
|
|
3
|
+
Guidelines for designing schemas specific to SQLite.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Data Types
|
|
8
|
+
|
|
9
|
+
SQLite has **dynamic typing**, with only 5 storage classes:
|
|
10
|
+
|
|
11
|
+
| Storage Class | Use case | Notes |
|
|
12
|
+
|---------------|----------|-------|
|
|
13
|
+
| `INTEGER` | PK, FK, counts, booleans | |
|
|
14
|
+
| `REAL` | Floats, decimals | |
|
|
15
|
+
| `TEXT` | Strings, dates, JSON, enums | |
|
|
16
|
+
| `BLOB` | Binary data | |
|
|
17
|
+
| `NULL` | Null values | |
|
|
18
|
+
|
|
19
|
+
### Type affinity
|
|
20
|
+
SQLite does not strictly enforce types. Type declaration is just a "hint":
|
|
21
|
+
```sql
|
|
22
|
+
-- All of these will be stored
|
|
23
|
+
CREATE TABLE test (price REAL);
|
|
24
|
+
INSERT INTO test VALUES (100); -- Stored as INTEGER
|
|
25
|
+
INSERT INTO test VALUES (99.99); -- Stored as REAL
|
|
26
|
+
INSERT INTO test VALUES ('free'); -- Stored as TEXT (!)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Date/Time
|
|
30
|
+
SQLite **does not have** DATE/TIME type. Store as TEXT with ISO format:
|
|
31
|
+
```sql
|
|
32
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
33
|
+
-- Format: YYYY-MM-DD HH:MM:SS
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Metadata Tables (REQUIRED)
|
|
39
|
+
|
|
40
|
+
SQLite **does not support comments** on tables and columns. Need to create metadata tables:
|
|
41
|
+
|
|
42
|
+
### Create metadata tables
|
|
43
|
+
|
|
44
|
+
```sql
|
|
45
|
+
CREATE TABLE IF NOT EXISTS metadata_tables (
|
|
46
|
+
table_name TEXT PRIMARY KEY,
|
|
47
|
+
description TEXT NOT NULL,
|
|
48
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
49
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
CREATE TABLE IF NOT EXISTS metadata_columns (
|
|
53
|
+
table_name TEXT NOT NULL,
|
|
54
|
+
column_name TEXT NOT NULL,
|
|
55
|
+
description TEXT NOT NULL,
|
|
56
|
+
data_type TEXT,
|
|
57
|
+
is_nullable INTEGER DEFAULT 1, -- 0=NOT NULL, 1=NULL
|
|
58
|
+
default_value TEXT,
|
|
59
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
60
|
+
PRIMARY KEY (table_name, column_name),
|
|
61
|
+
FOREIGN KEY (table_name) REFERENCES metadata_tables(table_name) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE INDEX idx_metadata_columns_table ON metadata_columns(table_name);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Insert metadata after creating table
|
|
68
|
+
|
|
69
|
+
```sql
|
|
70
|
+
-- Table metadata
|
|
71
|
+
INSERT INTO metadata_tables (table_name, description)
|
|
72
|
+
VALUES ('orders', 'Table storing customer order information');
|
|
73
|
+
|
|
74
|
+
-- Column metadata
|
|
75
|
+
INSERT INTO metadata_columns (table_name, column_name, description, data_type, is_nullable)
|
|
76
|
+
VALUES
|
|
77
|
+
('orders', 'id', 'Primary key, auto increment', 'INTEGER', 0),
|
|
78
|
+
('orders', 'order_number', 'Unique order code', 'TEXT', 0),
|
|
79
|
+
('orders', 'user_id', 'FK to users.id', 'INTEGER', 0),
|
|
80
|
+
('orders', 'status', 'pending|confirmed|shipped|cancelled', 'TEXT', 0),
|
|
81
|
+
('orders', 'total_amount', 'Total value', 'REAL', 0);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Query metadata
|
|
85
|
+
|
|
86
|
+
```sql
|
|
87
|
+
-- View schema with descriptions
|
|
88
|
+
SELECT
|
|
89
|
+
t.table_name,
|
|
90
|
+
t.description AS table_description,
|
|
91
|
+
c.column_name,
|
|
92
|
+
c.description AS column_description,
|
|
93
|
+
c.data_type
|
|
94
|
+
FROM metadata_tables t
|
|
95
|
+
LEFT JOIN metadata_columns c ON t.table_name = c.table_name
|
|
96
|
+
ORDER BY t.table_name, c.column_name;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Auto Increment
|
|
102
|
+
|
|
103
|
+
```sql
|
|
104
|
+
-- Option 1: INTEGER PRIMARY KEY (recommended)
|
|
105
|
+
-- SQLite auto-increments INTEGER PRIMARY KEY automatically
|
|
106
|
+
CREATE TABLE users (
|
|
107
|
+
id INTEGER PRIMARY KEY,
|
|
108
|
+
name TEXT
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
-- Option 2: AUTOINCREMENT keyword
|
|
112
|
+
-- Ensures deleted IDs are not reused (slower)
|
|
113
|
+
CREATE TABLE users (
|
|
114
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
115
|
+
name TEXT
|
|
116
|
+
);
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Foreign Keys
|
|
122
|
+
|
|
123
|
+
**IMPORTANT**: FK is disabled by default in SQLite!
|
|
124
|
+
|
|
125
|
+
```sql
|
|
126
|
+
-- Enable FK for each connection
|
|
127
|
+
PRAGMA foreign_keys = ON;
|
|
128
|
+
|
|
129
|
+
-- Create table with FK
|
|
130
|
+
CREATE TABLE order_items (
|
|
131
|
+
id INTEGER PRIMARY KEY,
|
|
132
|
+
order_id INTEGER NOT NULL,
|
|
133
|
+
product_id INTEGER NOT NULL,
|
|
134
|
+
FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
|
|
135
|
+
FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE RESTRICT
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
-- Create index for FK
|
|
139
|
+
CREATE INDEX idx_order_items_order ON order_items(order_id);
|
|
140
|
+
CREATE INDEX idx_order_items_product ON order_items(product_id);
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## ENUM substitute
|
|
146
|
+
|
|
147
|
+
SQLite does not have ENUM. Use CHECK constraint:
|
|
148
|
+
|
|
149
|
+
```sql
|
|
150
|
+
CREATE TABLE orders (
|
|
151
|
+
status TEXT NOT NULL DEFAULT 'pending'
|
|
152
|
+
CHECK (status IN ('pending', 'confirmed', 'shipped', 'cancelled'))
|
|
153
|
+
);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Index Types
|
|
159
|
+
|
|
160
|
+
SQLite only supports B-Tree indexes:
|
|
161
|
+
|
|
162
|
+
```sql
|
|
163
|
+
-- Standard index
|
|
164
|
+
CREATE INDEX idx_orders_status ON orders(status);
|
|
165
|
+
|
|
166
|
+
-- Composite index
|
|
167
|
+
CREATE INDEX idx_orders_user_status ON orders(user_id, status);
|
|
168
|
+
|
|
169
|
+
-- Unique index
|
|
170
|
+
CREATE UNIQUE INDEX idx_orders_number ON orders(order_number);
|
|
171
|
+
|
|
172
|
+
-- Partial index (SQLite 3.8.0+)
|
|
173
|
+
CREATE INDEX idx_orders_active ON orders(user_id)
|
|
174
|
+
WHERE deleted_at IS NULL;
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Limitations
|
|
180
|
+
|
|
181
|
+
| Feature | Status | Workaround |
|
|
182
|
+
|---------|--------|------------|
|
|
183
|
+
| `ALTER COLUMN` | ❌ Not supported | Recreate table |
|
|
184
|
+
| `DROP COLUMN` | ✅ SQLite 3.35+ | Recreate table (older) |
|
|
185
|
+
| Comments | ❌ Not supported | Metadata tables |
|
|
186
|
+
| ENUM | ❌ Not supported | CHECK constraint |
|
|
187
|
+
| Stored procedures | ❌ Not supported | App logic |
|
|
188
|
+
| Concurrent writes | ⚠️ Limited | Single writer |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Example DDL
|
|
193
|
+
|
|
194
|
+
```sql
|
|
195
|
+
-- Enable foreign keys
|
|
196
|
+
PRAGMA foreign_keys = ON;
|
|
197
|
+
|
|
198
|
+
-- Create table
|
|
199
|
+
CREATE TABLE orders (
|
|
200
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
201
|
+
order_number TEXT NOT NULL,
|
|
202
|
+
user_id INTEGER NOT NULL,
|
|
203
|
+
status TEXT NOT NULL DEFAULT 'pending'
|
|
204
|
+
CHECK (status IN ('pending', 'confirmed', 'shipped', 'cancelled')),
|
|
205
|
+
subtotal REAL NOT NULL DEFAULT 0,
|
|
206
|
+
discount_amount REAL NOT NULL DEFAULT 0,
|
|
207
|
+
total_amount REAL NOT NULL DEFAULT 0,
|
|
208
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
209
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
210
|
+
deleted_at TEXT,
|
|
211
|
+
|
|
212
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
-- Indexes
|
|
216
|
+
CREATE UNIQUE INDEX idx_orders_number ON orders(order_number);
|
|
217
|
+
CREATE INDEX idx_orders_user ON orders(user_id);
|
|
218
|
+
CREATE INDEX idx_orders_status ON orders(status);
|
|
219
|
+
CREATE INDEX idx_orders_updated ON orders(updated_at);
|
|
220
|
+
|
|
221
|
+
-- Metadata
|
|
222
|
+
INSERT INTO metadata_tables (table_name, description)
|
|
223
|
+
VALUES ('orders', 'Table storing order information');
|
|
224
|
+
|
|
225
|
+
INSERT INTO metadata_columns (table_name, column_name, description, data_type, is_nullable)
|
|
226
|
+
VALUES
|
|
227
|
+
('orders', 'id', 'Primary key', 'INTEGER', 0),
|
|
228
|
+
('orders', 'order_number', 'Unique order code', 'TEXT', 0),
|
|
229
|
+
('orders', 'user_id', 'FK to users.id', 'INTEGER', 0),
|
|
230
|
+
('orders', 'status', 'pending|confirmed|shipped|cancelled', 'TEXT', 0),
|
|
231
|
+
('orders', 'total_amount', 'Total payment', 'REAL', 0);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Checklist
|
|
237
|
+
|
|
238
|
+
- [ ] `PRAGMA foreign_keys = ON` at start of each connection
|
|
239
|
+
- [ ] Metadata tables created
|
|
240
|
+
- [ ] INSERT metadata after each CREATE TABLE
|
|
241
|
+
- [ ] Use `TEXT` for dates (ISO format: YYYY-MM-DD HH:MM:SS)
|
|
242
|
+
- [ ] CHECK constraint instead of ENUM
|
|
243
|
+
- [ ] Index for FK columns
|
|
244
|
+
- [ ] Update metadata when ALTER/DROP table
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Transactional (OLTP) Rules
|
|
2
|
+
|
|
3
|
+
> **Note:** Core naming conventions, workflow, and checklist are in `SKILL.md` or `db-design.md` (always loaded).
|
|
4
|
+
|
|
5
|
+
Guidelines for designing schemas for day-to-day business operations.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Normalization Principles
|
|
10
|
+
|
|
11
|
+
### Prefer 3NF (Third Normal Form)
|
|
12
|
+
|
|
13
|
+
- Each table represents one clear entity/relationship
|
|
14
|
+
- No repeating information that can be referenced (use FK)
|
|
15
|
+
- Clear separation:
|
|
16
|
+
- `orders` (header) vs `order_items` (line items)
|
|
17
|
+
- `products` vs `product_variants`, `product_prices`
|
|
18
|
+
|
|
19
|
+
### Foreign Key Constraints
|
|
20
|
+
|
|
21
|
+
Use FK with appropriate ON DELETE / ON UPDATE:
|
|
22
|
+
|
|
23
|
+
```sql
|
|
24
|
+
-- Cascade: delete order → delete order_items
|
|
25
|
+
FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
|
|
26
|
+
|
|
27
|
+
-- Restrict: cannot delete user if orders exist
|
|
28
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT
|
|
29
|
+
|
|
30
|
+
-- Set null: delete category → product.category_id = NULL
|
|
31
|
+
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Indexing Rules
|
|
37
|
+
|
|
38
|
+
### 1. Primary Key
|
|
39
|
+
- Usually `BIGINT` auto-increment or UUID
|
|
40
|
+
- Format: `PRIMARY KEY (id)`
|
|
41
|
+
|
|
42
|
+
### 2. Foreign Key Indexes
|
|
43
|
+
**IMPORTANT**: Create indexes for ALL foreign keys for efficient JOINs:
|
|
44
|
+
```sql
|
|
45
|
+
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
46
|
+
CREATE INDEX idx_order_items_order_id ON order_items(order_id);
|
|
47
|
+
CREATE INDEX idx_order_items_product_id ON order_items(product_id);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 3. Frequently Filtered Columns
|
|
51
|
+
Index columns commonly used in WHERE:
|
|
52
|
+
- `status`, `created_at`, `updated_at`
|
|
53
|
+
- Code/reference columns: `order_number`, `sku`
|
|
54
|
+
|
|
55
|
+
### 4. Composite Indexes
|
|
56
|
+
Based on actual query patterns:
|
|
57
|
+
```sql
|
|
58
|
+
-- Query: WHERE user_id = ? AND status = ? ORDER BY created_at DESC
|
|
59
|
+
CREATE INDEX idx_orders_user_status_created ON orders(user_id, status, created_at DESC);
|
|
60
|
+
|
|
61
|
+
-- Query: WHERE store_id = ? AND created_at BETWEEN ...
|
|
62
|
+
CREATE INDEX idx_orders_store_created ON orders(store_id, created_at);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Composite index rules:**
|
|
66
|
+
- Put columns with **high selectivity** (fewer duplicate values) first
|
|
67
|
+
- Avoid duplicate/redundant indexes
|
|
68
|
+
- Index should cover WHERE + ORDER BY of query
|
|
69
|
+
|
|
70
|
+
### 5. Unique Constraints
|
|
71
|
+
```sql
|
|
72
|
+
UNIQUE (order_number)
|
|
73
|
+
UNIQUE (sku)
|
|
74
|
+
UNIQUE (user_id, email) -- compound unique
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Soft Delete Pattern
|
|
80
|
+
|
|
81
|
+
When you need to keep deleted data instead of permanently deleting:
|
|
82
|
+
|
|
83
|
+
```sql
|
|
84
|
+
-- Add deleted_at column
|
|
85
|
+
deleted_at TIMESTAMP NULL
|
|
86
|
+
|
|
87
|
+
-- Partial index for non-deleted records (PostgreSQL)
|
|
88
|
+
CREATE INDEX idx_orders_active ON orders(user_id, status)
|
|
89
|
+
WHERE deleted_at IS NULL;
|
|
90
|
+
|
|
91
|
+
-- Query only active records
|
|
92
|
+
SELECT * FROM orders WHERE deleted_at IS NULL;
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Anti-patterns to Avoid
|
|
98
|
+
|
|
99
|
+
### Missing FK Index
|
|
100
|
+
```sql
|
|
101
|
+
-- ❌ BAD: FK without index → slow JOINs
|
|
102
|
+
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
103
|
+
-- Forgot CREATE INDEX
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Over-indexing
|
|
107
|
+
```sql
|
|
108
|
+
-- ❌ BAD: Indexing each column separately
|
|
109
|
+
CREATE INDEX idx_a ON orders(user_id);
|
|
110
|
+
CREATE INDEX idx_b ON orders(status);
|
|
111
|
+
CREATE INDEX idx_c ON orders(created_at);
|
|
112
|
+
|
|
113
|
+
-- ✅ GOOD: Composite index based on query pattern
|
|
114
|
+
CREATE INDEX idx_orders_user_status_created ON orders(user_id, status, created_at DESC);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Using TEXT instead of ENUM
|
|
118
|
+
```sql
|
|
119
|
+
-- ❌ BAD: Cannot validate values
|
|
120
|
+
status TEXT
|
|
121
|
+
|
|
122
|
+
-- ✅ GOOD: Use ENUM or CHECK
|
|
123
|
+
status ENUM('pending', 'confirmed', 'shipped', 'cancelled')
|
|
124
|
+
-- or
|
|
125
|
+
status VARCHAR(32) CHECK (status IN ('pending', 'confirmed', 'shipped'))
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Missing Audit Columns
|
|
129
|
+
```sql
|
|
130
|
+
-- ❌ BAD
|
|
131
|
+
CREATE TABLE products (id INT, name VARCHAR(255));
|
|
132
|
+
|
|
133
|
+
-- ✅ GOOD
|
|
134
|
+
CREATE TABLE products (
|
|
135
|
+
id INT,
|
|
136
|
+
name VARCHAR(255),
|
|
137
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
138
|
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
139
|
+
);
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Example DDL
|
|
145
|
+
|
|
146
|
+
```sql
|
|
147
|
+
CREATE TABLE orders (
|
|
148
|
+
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
149
|
+
order_number VARCHAR(50) NOT NULL,
|
|
150
|
+
user_id BIGINT NOT NULL,
|
|
151
|
+
status VARCHAR(32) NOT NULL DEFAULT 'pending',
|
|
152
|
+
subtotal DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
153
|
+
discount_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
154
|
+
total_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
155
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
156
|
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
157
|
+
|
|
158
|
+
UNIQUE (order_number),
|
|
159
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
163
|
+
CREATE INDEX idx_orders_status ON orders(status);
|
|
164
|
+
CREATE INDEX idx_orders_user_status_created ON orders(user_id, status, created_at DESC);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Checklist
|
|
170
|
+
|
|
171
|
+
- [ ] Audit columns: `created_at`, `updated_at`
|
|
172
|
+
- [ ] All FKs have indexes
|
|
173
|
+
- [ ] Unique constraints for business keys (`order_number`, `sku`, `email`)
|
|
174
|
+
- [ ] ENUM or CHECK for status/type columns
|
|
175
|
+
- [ ] Composite index based on main query patterns
|
|
176
|
+
- [ ] Soft delete if needed: `deleted_at` + partial index
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# DevOps Skill - Environment Variables
|
|
2
|
+
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Cloudflare Configuration
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# Get these from: https://dash.cloudflare.com
|
|
7
|
+
# API Token: Profile -> API Tokens -> Create Token
|
|
8
|
+
# Account ID: Overview -> Account ID (right sidebar)
|
|
9
|
+
|
|
10
|
+
CLOUDFLARE_API_TOKEN=your_cloudflare_api_token_here
|
|
11
|
+
CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id_here
|
|
12
|
+
|
|
13
|
+
# Optional: Specific zone configuration
|
|
14
|
+
# CLOUDFLARE_ZONE_ID=your_zone_id_here
|
|
15
|
+
|
|
16
|
+
# =============================================================================
|
|
17
|
+
# Google Cloud Configuration
|
|
18
|
+
# =============================================================================
|
|
19
|
+
# Authentication via service account key file or gcloud CLI
|
|
20
|
+
# Download from: IAM & Admin -> Service Accounts -> Create Key
|
|
21
|
+
|
|
22
|
+
# Option 1: Service account key file path
|
|
23
|
+
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
|
|
24
|
+
|
|
25
|
+
# Option 2: Project configuration
|
|
26
|
+
# GCP_PROJECT_ID=your-project-id
|
|
27
|
+
# GCP_REGION=us-central1
|
|
28
|
+
# GCP_ZONE=us-central1-a
|
|
29
|
+
|
|
30
|
+
# =============================================================================
|
|
31
|
+
# Docker Configuration
|
|
32
|
+
# =============================================================================
|
|
33
|
+
# Optional: Docker registry authentication
|
|
34
|
+
|
|
35
|
+
# Docker Hub
|
|
36
|
+
# DOCKER_USERNAME=your_docker_username
|
|
37
|
+
# DOCKER_PASSWORD=your_docker_password
|
|
38
|
+
|
|
39
|
+
# Google Container Registry (GCR)
|
|
40
|
+
# GCR_HOSTNAME=gcr.io
|
|
41
|
+
# GCR_PROJECT_ID=your-project-id
|
|
42
|
+
|
|
43
|
+
# AWS ECR
|
|
44
|
+
# AWS_ACCOUNT_ID=123456789012
|
|
45
|
+
# AWS_REGION=us-east-1
|
|
46
|
+
|
|
47
|
+
# =============================================================================
|
|
48
|
+
# CI/CD Configuration
|
|
49
|
+
# =============================================================================
|
|
50
|
+
# Optional: For automated deployments
|
|
51
|
+
|
|
52
|
+
# GitHub Actions
|
|
53
|
+
# GITHUB_TOKEN=your_github_token
|
|
54
|
+
|
|
55
|
+
# GitLab CI
|
|
56
|
+
# GITLAB_TOKEN=your_gitlab_token
|
|
57
|
+
|
|
58
|
+
# =============================================================================
|
|
59
|
+
# Monitoring & Logging
|
|
60
|
+
# =============================================================================
|
|
61
|
+
# Optional: For observability
|
|
62
|
+
|
|
63
|
+
# Sentry
|
|
64
|
+
# SENTRY_DSN=your_sentry_dsn
|
|
65
|
+
|
|
66
|
+
# Datadog
|
|
67
|
+
# DD_API_KEY=your_datadog_api_key
|
|
68
|
+
|
|
69
|
+
# =============================================================================
|
|
70
|
+
# Notes
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# 1. Copy this file to .env and fill in your actual values
|
|
73
|
+
# 2. Never commit .env file to version control
|
|
74
|
+
# 3. Use different credentials for dev/staging/production
|
|
75
|
+
# 4. Rotate credentials regularly
|
|
76
|
+
# 5. Use least-privilege principle for API tokens
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devops
|
|
3
|
+
description: Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.
|
|
4
|
+
license: MIT
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
argument-hint: "[platform] [task]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# DevOps Skill
|
|
10
|
+
|
|
11
|
+
Deploy and manage cloud infrastructure across Cloudflare, Docker, Google Cloud, and Kubernetes.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Deploy serverless apps to Cloudflare Workers/Pages
|
|
16
|
+
- Containerize apps with Docker, Docker Compose
|
|
17
|
+
- Manage GCP with gcloud CLI (Cloud Run, GKE, Cloud SQL)
|
|
18
|
+
- Kubernetes cluster management (kubectl, Helm)
|
|
19
|
+
- GitOps workflows (Argo CD, Flux)
|
|
20
|
+
- CI/CD pipelines, multi-region deployments
|
|
21
|
+
- Security audits, RBAC, network policies
|
|
22
|
+
|
|
23
|
+
## Platform Selection
|
|
24
|
+
|
|
25
|
+
| Need | Choose |
|
|
26
|
+
|------|--------|
|
|
27
|
+
| Sub-50ms latency globally | Cloudflare Workers |
|
|
28
|
+
| Large file storage (zero egress) | Cloudflare R2 |
|
|
29
|
+
| SQL database (global reads) | Cloudflare D1 |
|
|
30
|
+
| Containerized workloads | Docker + Cloud Run/GKE |
|
|
31
|
+
| Enterprise Kubernetes | GKE |
|
|
32
|
+
| Managed relational DB | Cloud SQL |
|
|
33
|
+
| Static site + API | Cloudflare Pages |
|
|
34
|
+
| Container orchestration | Kubernetes |
|
|
35
|
+
| Package management for K8s | Helm |
|
|
36
|
+
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Cloudflare Worker
|
|
41
|
+
wrangler init my-worker && cd my-worker && wrangler deploy
|
|
42
|
+
|
|
43
|
+
# Docker
|
|
44
|
+
docker build -t myapp . && docker run -p 3000:3000 myapp
|
|
45
|
+
|
|
46
|
+
# GCP Cloud Run
|
|
47
|
+
gcloud run deploy my-service --image gcr.io/project/image --region us-central1
|
|
48
|
+
|
|
49
|
+
# Kubernetes
|
|
50
|
+
kubectl apply -f manifests/ && kubectl get pods
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Reference Navigation
|
|
54
|
+
|
|
55
|
+
### Cloudflare Platform
|
|
56
|
+
- `cloudflare-platform.md` - Edge computing overview
|
|
57
|
+
- `cloudflare-workers-basics.md` - Handler types, patterns
|
|
58
|
+
- `cloudflare-workers-advanced.md` - Performance, optimization
|
|
59
|
+
- `cloudflare-workers-apis.md` - Runtime APIs, bindings
|
|
60
|
+
- `cloudflare-r2-storage.md` - Object storage, S3 compatibility
|
|
61
|
+
- `cloudflare-d1-kv.md` - D1 SQLite, KV store
|
|
62
|
+
- `browser-rendering.md` - Puppeteer automation
|
|
63
|
+
|
|
64
|
+
### Docker
|
|
65
|
+
- `docker-basics.md` - Dockerfile, images, containers
|
|
66
|
+
- `docker-compose.md` - Multi-container apps
|
|
67
|
+
|
|
68
|
+
### Google Cloud
|
|
69
|
+
- `gcloud-platform.md` - gcloud CLI, authentication
|
|
70
|
+
- `gcloud-services.md` - Compute Engine, GKE, Cloud Run
|
|
71
|
+
|
|
72
|
+
### Kubernetes
|
|
73
|
+
- `kubernetes-basics.md` - Core concepts, architecture, workloads
|
|
74
|
+
- `kubernetes-kubectl.md` - Essential commands, debugging workflow
|
|
75
|
+
- `kubernetes-helm.md` / `kubernetes-helm-advanced.md` - Helm charts, templates
|
|
76
|
+
- `kubernetes-security.md` / `kubernetes-security-advanced.md` - RBAC, secrets
|
|
77
|
+
- `kubernetes-workflows.md` / `kubernetes-workflows-advanced.md` - GitOps, CI/CD
|
|
78
|
+
- `kubernetes-troubleshooting.md` / `kubernetes-troubleshooting-advanced.md` - Debug
|
|
79
|
+
|
|
80
|
+
### Scripts
|
|
81
|
+
- `scripts/cloudflare-deploy.py` - Automate Worker deployments
|
|
82
|
+
- `scripts/docker-optimize.py` - Analyze Dockerfiles
|
|
83
|
+
|
|
84
|
+
## Best Practices
|
|
85
|
+
|
|
86
|
+
**Security:** Non-root containers, RBAC, secrets in env vars, image scanning
|
|
87
|
+
**Performance:** Multi-stage builds, edge caching, resource limits
|
|
88
|
+
**Cost:** R2 for large egress, caching, right-size resources
|
|
89
|
+
**Development:** Docker Compose local dev, wrangler dev, version control IaC
|
|
90
|
+
|
|
91
|
+
## Resources
|
|
92
|
+
|
|
93
|
+
- Cloudflare: https://developers.cloudflare.com
|
|
94
|
+
- Docker: https://docs.docker.com
|
|
95
|
+
- GCP: https://cloud.google.com/docs
|
|
96
|
+
- Kubernetes: https://kubernetes.io/docs
|
|
97
|
+
- Helm: https://helm.sh/docs
|