opencode-agent-kit 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/README.md +796 -0
- package/bin/commands/init.mjs +221 -0
- package/bin/init.mjs +21 -0
- package/package.json +22 -0
- package/template/.opencode/agent-docs/backend/README.md +0 -0
- package/template/.opencode/agent-docs/backend/node/BACKEND_PATTERNS.md +82 -0
- package/template/.opencode/agent-docs/backend/node/BACKEND_QUICK_START.md +49 -0
- package/template/.opencode/agent-docs/frontend/next/README.md +0 -0
- package/template/.opencode/agent-docs/frontend/nuxt/API_PATTERNS.md +807 -0
- package/template/.opencode/agent-docs/frontend/nuxt/CHEATSHEET.md +676 -0
- package/template/.opencode/agent-docs/frontend/nuxt/COMPLETION_REPORT.md +613 -0
- package/template/.opencode/agent-docs/frontend/nuxt/EXAMPLES.md +956 -0
- package/template/.opencode/agent-docs/frontend/nuxt/INDEX.md +596 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MCP_GUIDE.md +881 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_30_DAYS.md +256 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_CHECKLIST.md +156 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_WEEKLY_ASSIGNMENTS.md +191 -0
- package/template/.opencode/agent-docs/frontend/nuxt/QUICK_START.md +509 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README.md +506 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README_AGENTS.md +140 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README_DOCS.md +65 -0
- package/template/.opencode/agent-docs/frontend/nuxt/SUMMARY.md +474 -0
- package/template/.opencode/agent-docs/frontend/nuxt/TEAM_OPERATING_GUIDE.md +54 -0
- package/template/.opencode/agent-docs/frontend/nuxt/TESTING_GUIDE.md +904 -0
- package/template/.opencode/agent-docs/frontend/nuxt/WORKFLOWS.md +758 -0
- package/template/.opencode/agent-docs/frontend/react/API_PATTERNS.md +187 -0
- package/template/.opencode/agent-docs/frontend/react/CHEATSHEET.md +87 -0
- package/template/.opencode/agent-docs/frontend/react/INDEX.md +45 -0
- package/template/.opencode/agent-docs/frontend/react/QUICK_START.md +43 -0
- package/template/.opencode/agent-docs/frontend/react/README.md +159 -0
- package/template/.opencode/agent-docs/frontend/vue/README.md +0 -0
- package/template/.opencode/agent-docs/mobile/android/README.md +45 -0
- package/template/.opencode/agent-docs/mobile/flutter/README.md +44 -0
- package/template/.opencode/agents/android-developer.md +418 -0
- package/template/.opencode/agents/code-igniter-3-fullstack.md +345 -0
- package/template/.opencode/agents/code-reviewer.md +517 -0
- package/template/.opencode/agents/database-specialist.md +455 -0
- package/template/.opencode/agents/devops-specialist.md +562 -0
- package/template/.opencode/agents/flutter-developer.md +556 -0
- package/template/.opencode/agents/it-leader.md +911 -0
- package/template/.opencode/agents/laravel-advanced.md +691 -0
- package/template/.opencode/agents/node-backend-developer.md +343 -0
- package/template/.opencode/agents/nuxt-frontend-developer-mentor.md +402 -0
- package/template/.opencode/agents/nuxt-frontend-developer.md +1573 -0
- package/template/.opencode/agents/react-frontend-developer.md +1017 -0
- package/template/.opencode/agents/seo-specialist.md +681 -0
- package/template/.opencode/agents/ui-ux-designer.md +783 -0
- package/template/.opencode/commands/android-build/command.md +25 -0
- package/template/.opencode/commands/android-test/command.md +23 -0
- package/template/.opencode/commands/build-fix.md +29 -0
- package/template/.opencode/commands/checkpoint.md +74 -0
- package/template/.opencode/commands/code-review.md +40 -0
- package/template/.opencode/commands/e2e.md +363 -0
- package/template/.opencode/commands/eval.md +120 -0
- package/template/.opencode/commands/evolve.md +193 -0
- package/template/.opencode/commands/flutter-build/command.md +25 -0
- package/template/.opencode/commands/flutter-test/command.md +24 -0
- package/template/.opencode/commands/go-build.md +183 -0
- package/template/.opencode/commands/go-review.md +148 -0
- package/template/.opencode/commands/go-test.md +268 -0
- package/template/.opencode/commands/gpc-release/command.md +30 -0
- package/template/.opencode/commands/instinct-export.md +91 -0
- package/template/.opencode/commands/instinct-import.md +142 -0
- package/template/.opencode/commands/instinct-status.md +86 -0
- package/template/.opencode/commands/learn.md +70 -0
- package/template/.opencode/commands/multi-backend.md +158 -0
- package/template/.opencode/commands/multi-execute.md +310 -0
- package/template/.opencode/commands/multi-frontend.md +158 -0
- package/template/.opencode/commands/multi-plan.md +261 -0
- package/template/.opencode/commands/multi-workflow.md +183 -0
- package/template/.opencode/commands/orchestrate.md +172 -0
- package/template/.opencode/commands/plan.md +113 -0
- package/template/.opencode/commands/pm2.md +271 -0
- package/template/.opencode/commands/python-review.md +297 -0
- package/template/.opencode/commands/refactor-clean.md +28 -0
- package/template/.opencode/commands/sessions.md +305 -0
- package/template/.opencode/commands/setup-pm.md +80 -0
- package/template/.opencode/commands/skill-create.md +174 -0
- package/template/.opencode/commands/tdd.md +326 -0
- package/template/.opencode/commands/test-coverage.md +27 -0
- package/template/.opencode/commands/update-codemaps.md +17 -0
- package/template/.opencode/commands/update-docs.md +31 -0
- package/template/.opencode/commands/verify.md +59 -0
- package/template/.opencode/config.example.json +309 -0
- package/template/.opencode/config.json +341 -0
- package/template/.opencode/contexts/dev.md +20 -0
- package/template/.opencode/contexts/research.md +26 -0
- package/template/.opencode/contexts/review.md +22 -0
- package/template/.opencode/hooks/hooks.json +169 -0
- package/template/.opencode/instructions/INSTRUCTIONS.md +388 -0
- package/template/.opencode/package.json +5 -0
- package/template/.opencode/rules/README.md +82 -0
- package/template/.opencode/rules/android/gradle.md +62 -0
- package/template/.opencode/rules/android/testing.md +27 -0
- package/template/.opencode/rules/common/agents.md +49 -0
- package/template/.opencode/rules/common/coding-style.md +48 -0
- package/template/.opencode/rules/common/git-workflow.md +45 -0
- package/template/.opencode/rules/common/hooks.md +30 -0
- package/template/.opencode/rules/common/patterns.md +31 -0
- package/template/.opencode/rules/common/performance.md +55 -0
- package/template/.opencode/rules/common/security.md +29 -0
- package/template/.opencode/rules/common/testing.md +29 -0
- package/template/.opencode/rules/flutter/state-management.md +57 -0
- package/template/.opencode/rules/flutter/testing.md +42 -0
- package/template/.opencode/rules/golang/coding-style.md +26 -0
- package/template/.opencode/rules/golang/hooks.md +11 -0
- package/template/.opencode/rules/golang/patterns.md +39 -0
- package/template/.opencode/rules/golang/security.md +28 -0
- package/template/.opencode/rules/golang/testing.md +25 -0
- package/template/.opencode/rules/mobile/performance.md +36 -0
- package/template/.opencode/rules/python/coding-style.md +37 -0
- package/template/.opencode/rules/python/hooks.md +14 -0
- package/template/.opencode/rules/python/patterns.md +34 -0
- package/template/.opencode/rules/python/security.md +25 -0
- package/template/.opencode/rules/python/testing.md +33 -0
- package/template/.opencode/rules/typescript/coding-style.md +58 -0
- package/template/.opencode/rules/typescript/hooks.md +15 -0
- package/template/.opencode/rules/typescript/patterns.md +45 -0
- package/template/.opencode/rules/typescript/security.md +21 -0
- package/template/.opencode/rules/typescript/testing.md +11 -0
- package/template/.opencode/skills/api-documentation/SKILL.md +188 -0
- package/template/.opencode/skills/backend-patterns/SKILL.md +587 -0
- package/template/.opencode/skills/building-components/SKILL.md +37 -0
- package/template/.opencode/skills/building-components/references/accessibility.mdx +819 -0
- package/template/.opencode/skills/building-components/references/as-child.mdx +324 -0
- package/template/.opencode/skills/building-components/references/composition.mdx +239 -0
- package/template/.opencode/skills/building-components/references/data-attributes.mdx +413 -0
- package/template/.opencode/skills/building-components/references/definitions.mdx +258 -0
- package/template/.opencode/skills/building-components/references/design-tokens.mdx +57 -0
- package/template/.opencode/skills/building-components/references/docs.mdx +155 -0
- package/template/.opencode/skills/building-components/references/marketplaces.mdx +144 -0
- package/template/.opencode/skills/building-components/references/npm.mdx +166 -0
- package/template/.opencode/skills/building-components/references/polymorphism.mdx +583 -0
- package/template/.opencode/skills/building-components/references/principles.mdx +61 -0
- package/template/.opencode/skills/building-components/references/registry.mdx +169 -0
- package/template/.opencode/skills/building-components/references/state.mdx +99 -0
- package/template/.opencode/skills/building-components/references/styling.mdx +286 -0
- package/template/.opencode/skills/building-components/references/types.mdx +191 -0
- package/template/.opencode/skills/clickhouse-io/SKILL.md +429 -0
- package/template/.opencode/skills/coding-standards/SKILL.md +520 -0
- package/template/.opencode/skills/configure-ecc/SKILL.md +298 -0
- package/template/.opencode/skills/continuous-learning/SKILL.md +110 -0
- package/template/.opencode/skills/continuous-learning/config.json +18 -0
- package/template/.opencode/skills/continuous-learning/evaluate-session.sh +60 -0
- package/template/.opencode/skills/continuous-learning-v2/SKILL.md +284 -0
- package/template/.opencode/skills/continuous-learning-v2/agents/observer.md +137 -0
- package/template/.opencode/skills/continuous-learning-v2/agents/start-observer.sh +134 -0
- package/template/.opencode/skills/continuous-learning-v2/config.json +41 -0
- package/template/.opencode/skills/continuous-learning-v2/hooks/observe.sh +153 -0
- package/template/.opencode/skills/continuous-learning-v2/scripts/instinct-cli.py +489 -0
- package/template/.opencode/skills/continuous-learning-v2/scripts/test_parse_instinct.py +82 -0
- package/template/.opencode/skills/dart-add-unit-test/SKILL.md +122 -0
- package/template/.opencode/skills/dart-build-cli-app/SKILL.md +185 -0
- package/template/.opencode/skills/dart-collect-coverage/SKILL.md +141 -0
- package/template/.opencode/skills/dart-fix-runtime-errors/SKILL.md +166 -0
- package/template/.opencode/skills/dart-generate-test-mocks/SKILL.md +155 -0
- package/template/.opencode/skills/dart-migrate-to-checks-package/SKILL.md +126 -0
- package/template/.opencode/skills/dart-resolve-package-conflicts/SKILL.md +116 -0
- package/template/.opencode/skills/dart-run-static-analysis/SKILL.md +104 -0
- package/template/.opencode/skills/dart-use-pattern-matching/SKILL.md +146 -0
- package/template/.opencode/skills/django-patterns/SKILL.md +733 -0
- package/template/.opencode/skills/django-security/SKILL.md +592 -0
- package/template/.opencode/skills/django-tdd/SKILL.md +728 -0
- package/template/.opencode/skills/django-verification/SKILL.md +460 -0
- package/template/.opencode/skills/eval-harness/SKILL.md +227 -0
- package/template/.opencode/skills/firebase-basics/SKILL.md +103 -0
- package/template/.opencode/skills/firebase-basics/references/additional-skills.md +113 -0
- package/template/.opencode/skills/firebase-basics/references/cli-usage.md +31 -0
- package/template/.opencode/skills/firebase-basics/references/client-library-usage.md +45 -0
- package/template/.opencode/skills/firebase-basics/references/core-concepts.md +61 -0
- package/template/.opencode/skills/firebase-basics/references/iac-usage.md +40 -0
- package/template/.opencode/skills/firebase-basics/references/iam-security.md +74 -0
- package/template/.opencode/skills/firebase-basics/references/mcp-usage.md +63 -0
- package/template/.opencode/skills/flutter/SKILL.md +292 -0
- package/template/.opencode/skills/flutter-add-integration-test/SKILL.md +163 -0
- package/template/.opencode/skills/flutter-add-widget-preview/SKILL.md +145 -0
- package/template/.opencode/skills/flutter-add-widget-test/SKILL.md +154 -0
- package/template/.opencode/skills/flutter-apply-architecture-best-practices/SKILL.md +162 -0
- package/template/.opencode/skills/flutter-build-responsive-layout/SKILL.md +139 -0
- package/template/.opencode/skills/flutter-fix-layout-issues/SKILL.md +130 -0
- package/template/.opencode/skills/flutter-implement-json-serialization/SKILL.md +153 -0
- package/template/.opencode/skills/flutter-setup-declarative-routing/SKILL.md +255 -0
- package/template/.opencode/skills/flutter-setup-localization/SKILL.md +210 -0
- package/template/.opencode/skills/flutter-use-http-package/SKILL.md +174 -0
- package/template/.opencode/skills/frontend-design/SKILL.md +89 -0
- package/template/.opencode/skills/frontend-patterns/SKILL.md +631 -0
- package/template/.opencode/skills/golang-patterns/SKILL.md +673 -0
- package/template/.opencode/skills/golang-testing/SKILL.md +719 -0
- package/template/.opencode/skills/impeccable/SKILL.md +165 -0
- package/template/.opencode/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
- package/template/.opencode/skills/impeccable/reference/adapt.md +190 -0
- package/template/.opencode/skills/impeccable/reference/animate.md +175 -0
- package/template/.opencode/skills/impeccable/reference/audit.md +133 -0
- package/template/.opencode/skills/impeccable/reference/bolder.md +113 -0
- package/template/.opencode/skills/impeccable/reference/brand.md +118 -0
- package/template/.opencode/skills/impeccable/reference/clarify.md +174 -0
- package/template/.opencode/skills/impeccable/reference/codex.md +105 -0
- package/template/.opencode/skills/impeccable/reference/cognitive-load.md +106 -0
- package/template/.opencode/skills/impeccable/reference/color-and-contrast.md +105 -0
- package/template/.opencode/skills/impeccable/reference/colorize.md +154 -0
- package/template/.opencode/skills/impeccable/reference/craft.md +123 -0
- package/template/.opencode/skills/impeccable/reference/critique.md +273 -0
- package/template/.opencode/skills/impeccable/reference/delight.md +302 -0
- package/template/.opencode/skills/impeccable/reference/distill.md +111 -0
- package/template/.opencode/skills/impeccable/reference/document.md +427 -0
- package/template/.opencode/skills/impeccable/reference/extract.md +69 -0
- package/template/.opencode/skills/impeccable/reference/harden.md +347 -0
- package/template/.opencode/skills/impeccable/reference/heuristics-scoring.md +234 -0
- package/template/.opencode/skills/impeccable/reference/interaction-design.md +195 -0
- package/template/.opencode/skills/impeccable/reference/layout.md +141 -0
- package/template/.opencode/skills/impeccable/reference/live.md +622 -0
- package/template/.opencode/skills/impeccable/reference/motion-design.md +109 -0
- package/template/.opencode/skills/impeccable/reference/onboard.md +234 -0
- package/template/.opencode/skills/impeccable/reference/optimize.md +258 -0
- package/template/.opencode/skills/impeccable/reference/overdrive.md +130 -0
- package/template/.opencode/skills/impeccable/reference/personas.md +179 -0
- package/template/.opencode/skills/impeccable/reference/polish.md +242 -0
- package/template/.opencode/skills/impeccable/reference/product.md +62 -0
- package/template/.opencode/skills/impeccable/reference/quieter.md +99 -0
- package/template/.opencode/skills/impeccable/reference/responsive-design.md +114 -0
- package/template/.opencode/skills/impeccable/reference/shape.md +165 -0
- package/template/.opencode/skills/impeccable/reference/spatial-design.md +100 -0
- package/template/.opencode/skills/impeccable/reference/teach.md +156 -0
- package/template/.opencode/skills/impeccable/reference/typeset.md +124 -0
- package/template/.opencode/skills/impeccable/reference/typography.md +159 -0
- package/template/.opencode/skills/impeccable/reference/ux-writing.md +107 -0
- package/template/.opencode/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
- package/template/.opencode/skills/impeccable/scripts/command-metadata.json +94 -0
- package/template/.opencode/skills/impeccable/scripts/critique-storage.mjs +242 -0
- package/template/.opencode/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/template/.opencode/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/template/.opencode/skills/impeccable/scripts/detect.mjs +21 -0
- package/template/.opencode/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
- package/template/.opencode/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/template/.opencode/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/template/.opencode/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/template/.opencode/skills/impeccable/scripts/live-browser.js +4860 -0
- package/template/.opencode/skills/impeccable/scripts/live-complete.mjs +75 -0
- package/template/.opencode/skills/impeccable/scripts/live-completion.mjs +18 -0
- package/template/.opencode/skills/impeccable/scripts/live-inject.mjs +446 -0
- package/template/.opencode/skills/impeccable/scripts/live-poll.mjs +200 -0
- package/template/.opencode/skills/impeccable/scripts/live-resume.mjs +48 -0
- package/template/.opencode/skills/impeccable/scripts/live-server.mjs +838 -0
- package/template/.opencode/skills/impeccable/scripts/live-session-store.mjs +254 -0
- package/template/.opencode/skills/impeccable/scripts/live-status.mjs +47 -0
- package/template/.opencode/skills/impeccable/scripts/live-wrap.mjs +632 -0
- package/template/.opencode/skills/impeccable/scripts/live.mjs +247 -0
- package/template/.opencode/skills/impeccable/scripts/load-context.mjs +141 -0
- package/template/.opencode/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/template/.opencode/skills/impeccable/scripts/pin.mjs +214 -0
- package/template/.opencode/skills/iterative-retrieval/SKILL.md +202 -0
- package/template/.opencode/skills/java-coding-standards/SKILL.md +138 -0
- package/template/.opencode/skills/jetpack-compose/.skillfish.json +10 -0
- package/template/.opencode/skills/jetpack-compose/SKILL.md +420 -0
- package/template/.opencode/skills/jpa-patterns/SKILL.md +141 -0
- package/template/.opencode/skills/nutrient-document-processing/SKILL.md +165 -0
- package/template/.opencode/skills/nuxt-ui/SKILL.md +334 -0
- package/template/.opencode/skills/nuxt-ui/references/components.md +377 -0
- package/template/.opencode/skills/nuxt-ui/references/composables.md +127 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/chat.md +266 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/dashboard.md +220 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/docs.md +141 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/editor.md +168 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/page.md +260 -0
- package/template/.opencode/skills/nuxt-ui/references/theming.md +427 -0
- package/template/.opencode/skills/postgres-patterns/SKILL.md +146 -0
- package/template/.opencode/skills/project-guidelines-example/SKILL.md +345 -0
- package/template/.opencode/skills/python-patterns/SKILL.md +749 -0
- package/template/.opencode/skills/python-testing/SKILL.md +815 -0
- package/template/.opencode/skills/security-review/SKILL.md +494 -0
- package/template/.opencode/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/template/.opencode/skills/shadcn-ui/README.md +248 -0
- package/template/.opencode/skills/shadcn-ui/SKILL.md +326 -0
- package/template/.opencode/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/template/.opencode/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/template/.opencode/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/template/.opencode/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/template/.opencode/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/template/.opencode/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/template/.opencode/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/template/.opencode/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/template/.opencode/skills/springboot-patterns/SKILL.md +304 -0
- package/template/.opencode/skills/springboot-security/SKILL.md +119 -0
- package/template/.opencode/skills/springboot-tdd/SKILL.md +157 -0
- package/template/.opencode/skills/springboot-verification/SKILL.md +100 -0
- package/template/.opencode/skills/strategic-compact/SKILL.md +63 -0
- package/template/.opencode/skills/strategic-compact/suggest-compact.sh +52 -0
- package/template/.opencode/skills/tdd-workflow/SKILL.md +409 -0
- package/template/.opencode/skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/template/.opencode/skills/vercel-composition-patterns/SKILL.md +89 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/template/.opencode/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/template/.opencode/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/template/.opencode/skills/verification-loop/SKILL.md +120 -0
- package/template/.opencode/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/AGENTS.md +32 -0
- package/template/opencode.json +354 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: firebase-basics
|
|
3
|
+
description: Use this skill whenever you are working on a project that uses Firebase products or services, especially for mobile or web apps.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Firebase Basics
|
|
7
|
+
|
|
8
|
+
### **CRITICAL** Mandatory prerequisites
|
|
9
|
+
|
|
10
|
+
Before attempting to fulfill any user request regarding Firebase, you **MUST**
|
|
11
|
+
follow these steps in order. Do not proceed to implementation until these are
|
|
12
|
+
completed. Failure to follow these instructions may result in using outdated
|
|
13
|
+
patterns and lack of access to essential reference materials.
|
|
14
|
+
|
|
15
|
+
1. **Leverage the planning phase**
|
|
16
|
+
|
|
17
|
+
If you use a planning mode (e.g., maintaining a `task.md` file), you
|
|
18
|
+
**MUST** include a task to check and install `firebase/agent-skills` as your
|
|
19
|
+
very first item.
|
|
20
|
+
|
|
21
|
+
2. **Ensure NPM is installed.**
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
## Check if NPM is installed
|
|
25
|
+
npm --version
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If NPM is not installed, guide the user to download and install the
|
|
29
|
+
LTS version from https://nodejs.org/en/download.
|
|
30
|
+
|
|
31
|
+
Then, request the user to manually install Node.js and to reply with a
|
|
32
|
+
confirmation that the installation is finished. **Stop and wait** for the
|
|
33
|
+
user's confirmation.
|
|
34
|
+
|
|
35
|
+
3. **Verify and install Agent Skills for Firebase**
|
|
36
|
+
|
|
37
|
+
You **MUST** ensure the full set of skills is installed to avoid using
|
|
38
|
+
outdated patterns. Run this command:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx -y skills add firebase/agent-skills -y
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
*If the skills are already installed, this command will ensure they are up
|
|
45
|
+
to date. Do not skip this step.*
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Quick start
|
|
49
|
+
|
|
50
|
+
After completing the mandatory prerequisites above, proceed with these steps to
|
|
51
|
+
set up your environment:
|
|
52
|
+
|
|
53
|
+
1. **Log in to the Firebase CLI.**
|
|
54
|
+
|
|
55
|
+
Run this command:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx -y firebase-tools@latest login
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then, ask the user to complete the login flow in the browser.
|
|
62
|
+
|
|
63
|
+
2. **Set an active project for the CLI.**
|
|
64
|
+
|
|
65
|
+
Most Firebase tasks require an active project context. Check the current
|
|
66
|
+
project for the Firebase CLI by running this command:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx -y firebase-tools@latest use
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- If the command outputs `Active Project: <PROJECT_ID>`, you can proceed
|
|
73
|
+
with your task.
|
|
74
|
+
|
|
75
|
+
- If the command does *not* output an active project, ask the user if they
|
|
76
|
+
have an existing Firebase project ID.
|
|
77
|
+
|
|
78
|
+
- If yes: Set the ID as the active project and add a default alias by
|
|
79
|
+
running:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx -y firebase-tools@latest use --add <PROJECT_ID>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- If no: Create a new Firebase project by running:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npx -y firebase-tools@latest projects:create <PROJECT_ID> --display-name <DISPLAY_NAME>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Reference directory
|
|
92
|
+
|
|
93
|
+
- [Firebase core concepts](references/core-concepts.md)
|
|
94
|
+
- [Firebase CLI usage](references/cli-usage.md)
|
|
95
|
+
- [Firebase client library usage](references/client-library-usage.md)
|
|
96
|
+
- [Firebase CLI and MCP server](references/mcp-usage.md)
|
|
97
|
+
- [Firebase IaC usage](references/iac-usage.md)
|
|
98
|
+
- [Firebase security-related features](references/iam-security.md)
|
|
99
|
+
- [Additional Published Skills](references/additional-skills.md)
|
|
100
|
+
|
|
101
|
+
If you need product information that's not found in these references, check the
|
|
102
|
+
other skills for Firebase that you have installed, or use the `search_documents`
|
|
103
|
+
tool of the Developer Knowledge MCP server.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
## Additional Published Skills
|
|
2
|
+
|
|
3
|
+
The following skills and reference files are published in the [Firebase Agent Skills repository](https://github.com/firebase/agent-skills/tree/main/skills):
|
|
4
|
+
|
|
5
|
+
### `developing-genkit-dart`
|
|
6
|
+
|
|
7
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/SKILL.md)
|
|
8
|
+
- [`references/genkit.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit.md)
|
|
9
|
+
- [`references/genkit_anthropic.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_anthropic.md)
|
|
10
|
+
- [`references/genkit_chrome.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_chrome.md)
|
|
11
|
+
- [`references/genkit_firebase_ai.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_firebase_ai.md)
|
|
12
|
+
- [`references/genkit_google_genai.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_google_genai.md)
|
|
13
|
+
- [`references/genkit_mcp.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_mcp.md)
|
|
14
|
+
- [`references/genkit_middleware.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_middleware.md)
|
|
15
|
+
- [`references/genkit_openai.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_openai.md)
|
|
16
|
+
- [`references/genkit_shelf.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/genkit_shelf.md)
|
|
17
|
+
- [`references/schemantic.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-dart/references/schemantic.md)
|
|
18
|
+
|
|
19
|
+
### `developing-genkit-go`
|
|
20
|
+
|
|
21
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/SKILL.md)
|
|
22
|
+
- [`references/flows-and-http.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/flows-and-http.md)
|
|
23
|
+
- [`references/generation.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/generation.md)
|
|
24
|
+
- [`references/getting-started.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/getting-started.md)
|
|
25
|
+
- [`references/prompts.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/prompts.md)
|
|
26
|
+
- [`references/providers.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/providers.md)
|
|
27
|
+
- [`references/tools.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-go/references/tools.md)
|
|
28
|
+
|
|
29
|
+
### `developing-genkit-js`
|
|
30
|
+
|
|
31
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/SKILL.md)
|
|
32
|
+
- [`references/best-practices.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/references/best-practices.md)
|
|
33
|
+
- [`references/common-errors.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/references/common-errors.md)
|
|
34
|
+
- [`references/docs-and-cli.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/references/docs-and-cli.md)
|
|
35
|
+
- [`references/examples.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/references/examples.md)
|
|
36
|
+
- [`references/setup.md`](https://github.com/firebase/agent-skills/blob/main/skills/developing-genkit-js/references/setup.md)
|
|
37
|
+
|
|
38
|
+
### `firebase-ai-logic-basics`
|
|
39
|
+
|
|
40
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-ai-logic-basics/SKILL.md)
|
|
41
|
+
- [`references/usage_patterns_web.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-ai-logic-basics/references/usage_patterns_web.md)
|
|
42
|
+
|
|
43
|
+
### `firebase-app-hosting-basics`
|
|
44
|
+
|
|
45
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-app-hosting-basics/SKILL.md)
|
|
46
|
+
- [`references/cli_commands.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-app-hosting-basics/references/cli_commands.md)
|
|
47
|
+
- [`references/configuration.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-app-hosting-basics/references/configuration.md)
|
|
48
|
+
- [`references/emulation.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-app-hosting-basics/references/emulation.md)
|
|
49
|
+
|
|
50
|
+
### `firebase-auth-basics`
|
|
51
|
+
|
|
52
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-auth-basics/SKILL.md)
|
|
53
|
+
- [`references/client_sdk_web.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-auth-basics/references/client_sdk_web.md)
|
|
54
|
+
- [`references/security_rules.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-auth-basics/references/security_rules.md)
|
|
55
|
+
|
|
56
|
+
### `firebase-basics`
|
|
57
|
+
|
|
58
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/SKILL.md)
|
|
59
|
+
- [`references/firebase-cli-guide.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/firebase-cli-guide.md)
|
|
60
|
+
- [`references/firebase-service-init.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/firebase-service-init.md)
|
|
61
|
+
- [`references/local-env-setup.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/local-env-setup.md)
|
|
62
|
+
- [`references/web_setup.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/web_setup.md)
|
|
63
|
+
- [`references/refresh/antigravity.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/refresh/antigravity.md)
|
|
64
|
+
- [`references/refresh/claude.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/refresh/claude.md)
|
|
65
|
+
- [`references/refresh/gemini-cli.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/refresh/gemini-cli.md)
|
|
66
|
+
- [`references/refresh/other-agents.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/refresh/other-agents.md)
|
|
67
|
+
- [`references/setup/antigravity.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/antigravity.md)
|
|
68
|
+
- [`references/setup/claude_code.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/claude_code.md)
|
|
69
|
+
- [`references/setup/cursor.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/cursor.md)
|
|
70
|
+
- [`references/setup/gemini_cli.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/gemini_cli.md)
|
|
71
|
+
- [`references/setup/github_copilot.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/github_copilot.md)
|
|
72
|
+
- [`references/setup/other_agents.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-basics/references/setup/other_agents.md)
|
|
73
|
+
|
|
74
|
+
### `firebase-data-connect-basics`
|
|
75
|
+
|
|
76
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/SKILL.md)
|
|
77
|
+
- [`examples.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/examples.md)
|
|
78
|
+
- [`templates.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/templates.md)
|
|
79
|
+
- [`reference/advanced.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/advanced.md)
|
|
80
|
+
- [`reference/config.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/config.md)
|
|
81
|
+
- [`reference/native_sql.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/native_sql.md)
|
|
82
|
+
- [`reference/operations.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/operations.md)
|
|
83
|
+
- [`reference/schema.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/schema.md)
|
|
84
|
+
- [`reference/sdks.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/sdks.md)
|
|
85
|
+
- [`reference/security.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-data-connect-basics/reference/security.md)
|
|
86
|
+
|
|
87
|
+
### `firebase-firestore-enterprise-native-mode`
|
|
88
|
+
|
|
89
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/SKILL.md)
|
|
90
|
+
- [`references/data_model.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/data_model.md)
|
|
91
|
+
- [`references/indexes.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/indexes.md)
|
|
92
|
+
- [`references/provisioning.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/provisioning.md)
|
|
93
|
+
- [`references/python_sdk_usage.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/python_sdk_usage.md)
|
|
94
|
+
- [`references/security_rules.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/security_rules.md)
|
|
95
|
+
- [`references/web_sdk_usage.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-enterprise-native-mode/references/web_sdk_usage.md)
|
|
96
|
+
|
|
97
|
+
### `firebase-firestore-standard`
|
|
98
|
+
|
|
99
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-standard/SKILL.md)
|
|
100
|
+
- [`references/indexes.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-standard/references/indexes.md)
|
|
101
|
+
- [`references/provisioning.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-standard/references/provisioning.md)
|
|
102
|
+
- [`references/security_rules.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-standard/references/security_rules.md)
|
|
103
|
+
- [`references/web_sdk_usage.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-firestore-standard/references/web_sdk_usage.md)
|
|
104
|
+
|
|
105
|
+
### `firebase-hosting-basics`
|
|
106
|
+
|
|
107
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-hosting-basics/SKILL.md)
|
|
108
|
+
- [`references/configuration.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-hosting-basics/references/configuration.md)
|
|
109
|
+
- [`references/deploying.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-hosting-basics/references/deploying.md)
|
|
110
|
+
|
|
111
|
+
### `firebase-security-rules-auditor`
|
|
112
|
+
|
|
113
|
+
- [`SKILL.md`](https://github.com/firebase/agent-skills/blob/main/skills/firebase-security-rules-auditor/SKILL.md)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Firebase CLI usage
|
|
2
|
+
|
|
3
|
+
The Firebase CLI (`firebase-tools`) is the primary tool for managing Firebase
|
|
4
|
+
projects and resources from the command line.
|
|
5
|
+
|
|
6
|
+
**Use npx for Firebase CLI commands**: To ensure you always use the latest
|
|
7
|
+
version of the Firebase CLI, always run commands with
|
|
8
|
+
`npx -y firebase-tools@latest` instead of just `firebase`. (e.g., use
|
|
9
|
+
`npx -y firebase-tools@latest --version` instead of `firebase --version`).
|
|
10
|
+
|
|
11
|
+
## Exploring commands
|
|
12
|
+
|
|
13
|
+
The Firebase CLI documents itself. Use help commands to discover functionality.
|
|
14
|
+
|
|
15
|
+
- **Global help**: List all available commands and categories:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx -y firebase-tools@latest --help
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- **Command help**: Get detailed usage for a specific command:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx -y firebase-tools@latest [command] --help
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Example:
|
|
29
|
+
npx -y firebase-tools@latest deploy --help
|
|
30
|
+
npx -y firebase-tools@latest firestore:indexes --help
|
|
31
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Firebase client library usage
|
|
2
|
+
|
|
3
|
+
Firebase provides SDKs for both client-side application development and
|
|
4
|
+
server-side administrative tasks.
|
|
5
|
+
|
|
6
|
+
For a full list of Firebase client libraries and links to their documentation
|
|
7
|
+
and GitHub repositories, see https://firebase.google.com/docs/libraries
|
|
8
|
+
|
|
9
|
+
## Mobile and web client-side SDKs
|
|
10
|
+
|
|
11
|
+
The Firebase client-side SDKs allow direct interaction with Firebase services
|
|
12
|
+
from a mobile or web app. These SDKs are available for iOS (Swift and
|
|
13
|
+
Objective-C), Android (Kotlin and Java), Web (JavaScript), Flutter (Dart),
|
|
14
|
+
Unity, and C++.
|
|
15
|
+
|
|
16
|
+
- For **web apps**, Agent Skills for Firebase provide guides to get started
|
|
17
|
+
with the JavaScript client SDK. Install these skills by running:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx -y skills add firebase/agent-skills -y
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- For **native iOS or Android mobile apps**, see the documentation to get
|
|
24
|
+
started:
|
|
25
|
+
|
|
26
|
+
- **iOS**: https://firebase.google.com/docs/ios/setup.md.txt
|
|
27
|
+
- **Android**: https://firebase.google.com/docs/android/setup.md.txt
|
|
28
|
+
|
|
29
|
+
- For **Flutter apps**, see the documentation to get started:
|
|
30
|
+
|
|
31
|
+
- **Flutter**: https://firebase.google.com/docs/flutter/setup.md.txt
|
|
32
|
+
|
|
33
|
+
- For **Unity and C++ mobile apps**, see the documentation to get started:
|
|
34
|
+
|
|
35
|
+
- **Unity**: https://firebase.google.com/docs/unity/setup.md.txt
|
|
36
|
+
- **C++**: https://firebase.google.com/docs/cpp/setup.md.txt
|
|
37
|
+
|
|
38
|
+
## Server-side Admin SDKs
|
|
39
|
+
|
|
40
|
+
The Firebase Admin SDKs provide privileged access to Firebase services from a
|
|
41
|
+
server environment. These SDKs are available for Node.js, Java, Python, and Go.
|
|
42
|
+
|
|
43
|
+
For details about Firebase Admin SDKs and getting started, see
|
|
44
|
+
https://firebase.google.com/docs/reference/admin.md.txt and
|
|
45
|
+
https://firebase.google.com/docs/admin/setup.md.txt
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Firebase core concepts
|
|
2
|
+
|
|
3
|
+
Firebase is a platform of services for mobile and web applications. It offers
|
|
4
|
+
products for managed backend infrastructure (BaaS), building AI-powered
|
|
5
|
+
experiences in apps, DevOps, and end-user engagement. Most services are
|
|
6
|
+
integrated into apps using mobile and web client SDKs.
|
|
7
|
+
|
|
8
|
+
## Key services
|
|
9
|
+
|
|
10
|
+
Here are some popular Firebase products:
|
|
11
|
+
|
|
12
|
+
- **Firebase Authentication**: Simplify end-user authentication and sign-in on a
|
|
13
|
+
secure, all-in-one identity platform.
|
|
14
|
+
- **Firestore**: Store and sync data using a secure, scalable NoSQL cloud
|
|
15
|
+
database with rich data models and queryability.
|
|
16
|
+
- **Firebase Data Connect**: Build and scale your apps using a fully-managed
|
|
17
|
+
PostgreSQL relational database service.
|
|
18
|
+
- **Cloud Storage for Firebase**: Store and serve unstructured content like
|
|
19
|
+
images, audio, video with a secure cloud-hosted solution.
|
|
20
|
+
- **Firebase App Hosting**: Deploy modern, full-stack web apps that require
|
|
21
|
+
server-side rendering and automated secret management, CI/CD, and CDN caching.
|
|
22
|
+
- **Firebase Hosting**: Deploy static and single-page web apps to a global CDN
|
|
23
|
+
with a single command.
|
|
24
|
+
- **Cloud Functions for Firebase**: Run backend code in response to events and
|
|
25
|
+
HTTPS requests without provisioning or managing a server.
|
|
26
|
+
- **Firebase AI Logic**: Build secure AI-powered experiences in mobile and web
|
|
27
|
+
apps using the Gemini API and without provisioning or managing a server.
|
|
28
|
+
- **Firebase Crashlytics**: Track, prioritize, and fix stability issues in
|
|
29
|
+
mobile apps.
|
|
30
|
+
- **Firebase Cloud Messaging (FCM)**: Send push notifications and messages to
|
|
31
|
+
end users.
|
|
32
|
+
|
|
33
|
+
## Regional availability
|
|
34
|
+
|
|
35
|
+
Firebase services are available globally, with several products supporting
|
|
36
|
+
specific regional configurations.
|
|
37
|
+
|
|
38
|
+
- **Firestore**: Each instance can be provisioned in a different location;
|
|
39
|
+
supports multi-region (e.g., `nam5`) and regional (e.g., `us-east1`)
|
|
40
|
+
locations.
|
|
41
|
+
- **Cloud Storage for Firebase**: Each bucket can be provisioned in a different
|
|
42
|
+
location.
|
|
43
|
+
- **Firebase App Hosting**: Can be deployed to specific regions to minimize
|
|
44
|
+
latency for operations and end users.
|
|
45
|
+
- **Firebase Hosting**: Content is delivered via a global CDN.
|
|
46
|
+
- **Cloud Functions for Firebase**: Can be deployed to specific regions to
|
|
47
|
+
minimize latency for operations and end users.
|
|
48
|
+
|
|
49
|
+
## Pricing
|
|
50
|
+
|
|
51
|
+
Firebase offers two pricing plans:
|
|
52
|
+
|
|
53
|
+
- **Spark (no-cost) pricing plan**: Projects don't need a billing account to
|
|
54
|
+
use only the no-cost Firebase services and to get started with generous
|
|
55
|
+
no-cost usage quota.
|
|
56
|
+
- **Blaze (pay-as-you-go) pricing plan**: Link a billing account to the project
|
|
57
|
+
to access more products and services and to get usage levels beyond the
|
|
58
|
+
no-cost usage quota.
|
|
59
|
+
|
|
60
|
+
For up-to-date detailed pricing information, see the Firebase pricing
|
|
61
|
+
page: https://firebase.google.com/pricing
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Firebase IaC usage
|
|
2
|
+
|
|
3
|
+
Firebase resources can be provisioned using Infrastructure as Code (IaC) tools,
|
|
4
|
+
like Terraform.
|
|
5
|
+
|
|
6
|
+
## Terraform configuration
|
|
7
|
+
|
|
8
|
+
Use the `google` or `google-beta` providers to manage Firebase resources.
|
|
9
|
+
|
|
10
|
+
### Example: Firebase project setup
|
|
11
|
+
|
|
12
|
+
```hcl
|
|
13
|
+
resource "google_firebase_project" "default" {
|
|
14
|
+
provider = google-beta
|
|
15
|
+
project = "user-defined-project-id"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
resource "google_firebase_web_app" "default" {
|
|
19
|
+
provider = google-beta
|
|
20
|
+
project = google_firebase_project.default.project
|
|
21
|
+
display_name = "user-defined-display-name"
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Supported Terraform resources
|
|
26
|
+
|
|
27
|
+
Here are some common Terraform resources for Firebase:
|
|
28
|
+
|
|
29
|
+
- `google_firebase_project`: Enable Firebase services on an existing
|
|
30
|
+
Google Cloud project.
|
|
31
|
+
- `google_identity_platform_config`: Set up Firebase Authentication.
|
|
32
|
+
- `google_firestore_database`: Provision a Firestore database.
|
|
33
|
+
Always set `type = "FIRESTORE_NATIVE"`.
|
|
34
|
+
- `google_firebaserules_ruleset`: Define Firebase Security Rules to protect
|
|
35
|
+
Firestore data or Cloud Storage for Firebase data.
|
|
36
|
+
- `google_firebaserules_release`: Deploy Firebase Security Rules rulesets for
|
|
37
|
+
Firestore or for Cloud Storage for Firebase.
|
|
38
|
+
|
|
39
|
+
For a complete list of Terraform resources, and details about Terraform and
|
|
40
|
+
Firebase, see: https://firebase.google.com/docs/projects/terraform/get-started
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Firebase security-related features
|
|
2
|
+
|
|
3
|
+
Firebase offers several security-related features and services, including:
|
|
4
|
+
|
|
5
|
+
- **Identity and Access Management (IAM)**: Restrict a project member's
|
|
6
|
+
administrative access for projects, resources, and data.
|
|
7
|
+
- **Firebase Security Rules**: Restrict client-side access for Firestore data
|
|
8
|
+
and Cloud Storage for Firebase data to only authorized users.
|
|
9
|
+
- **Firebase App Check**: Restrict client-side access for APIs and backend
|
|
10
|
+
resources to only an authentic client and an authentic, untampered device.
|
|
11
|
+
|
|
12
|
+
## Identity and Access Management (IAM)
|
|
13
|
+
|
|
14
|
+
Here are some common IAM roles:
|
|
15
|
+
|
|
16
|
+
| Role | Description |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `roles/viewer` | Permissions for read-only actions, such as viewing (but not modifying) existing resources or data. |
|
|
19
|
+
| `roles/editor` | All the `roles/viewer` permissions, plus permissions for actions that modify state, such as changing existing resources. |
|
|
20
|
+
| `roles/owner` | All the `roles/editor` permissions, plus permissions for the following actions: manage IAM for a project, manage all resources within the project, set up and manage billing for a project, and delete or restore a project. |
|
|
21
|
+
| `roles/firebase.viewer` | Read-only access to Firebase resources and data. |
|
|
22
|
+
| `roles/firebase.admin` | Full access to all Firebase products and project management. |
|
|
23
|
+
|
|
24
|
+
For details about IAM and Firebase, see
|
|
25
|
+
https://firebase.google.com/docs/projects/iam/overview.md.txt
|
|
26
|
+
|
|
27
|
+
## Firebase Security Rules
|
|
28
|
+
|
|
29
|
+
Firebase Security Rules are CRITICAL to protecting Firestore data and
|
|
30
|
+
Cloud Storage for Firebase data from unauthorized mobile and web client-side
|
|
31
|
+
access. They are defined in the project directory (e.g., `firestore.rules`)
|
|
32
|
+
and deployed using the Firebase CLI.
|
|
33
|
+
|
|
34
|
+
Here is a basic example of Security Rules for Firestore that restricts access
|
|
35
|
+
to authenticated end-users only:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
service cloud.firestore {
|
|
39
|
+
match /databases/{database}/documents {
|
|
40
|
+
match /some_collection/{document} {
|
|
41
|
+
allow read, write: if request.auth != null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**CRITICAL**: Agent Skills for Firebase provide tools to draft and test Firebase
|
|
48
|
+
Security Rules. Install these skills by running:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx -y skills add firebase/agent-skills -y
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Firebase App Check
|
|
55
|
+
|
|
56
|
+
Firebase App Check is CRITICAL to protecting a project's enabled APIs and
|
|
57
|
+
backend resources from unauthorized clients and devices. For example, it can
|
|
58
|
+
help protect Firebase AI Logic, Firestore, Cloud Storage for Firebase,
|
|
59
|
+
Cloud Functions for Firebase, and Firebase Data Connect.
|
|
60
|
+
|
|
61
|
+
For details about Firebase App Check, see
|
|
62
|
+
https://firebase.google.com/docs/app-check.md.txt
|
|
63
|
+
|
|
64
|
+
## Security best practices
|
|
65
|
+
|
|
66
|
+
- **Principle of least privilege:** Assign specific product-level roles instead
|
|
67
|
+
of `roles/owner` whenever possible.
|
|
68
|
+
- **Firebase App Check:** Use this service to protect a project's enabled APIs
|
|
69
|
+
and backend resources from abuse by allowing only authentic clients and
|
|
70
|
+
devices to access them.
|
|
71
|
+
- **Environment management:** Use separate Firebase projects for development,
|
|
72
|
+
staging, and production.
|
|
73
|
+
- **Sensitive operations:** Always have a human user approve sensitive
|
|
74
|
+
operations like granting permissive IAM roles or deleting a database.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Firebase CLI and MCP server
|
|
2
|
+
|
|
3
|
+
The Firebase CLI includes a built-in local MCP server that can help with common
|
|
4
|
+
tasks.
|
|
5
|
+
|
|
6
|
+
1. **Locate MCP configuration**
|
|
7
|
+
|
|
8
|
+
Find the configuration file for your agent
|
|
9
|
+
(e.g., `~/.codeium/windsurf/mcp_config.json`, `cline_mcp_settings.json`, or
|
|
10
|
+
`claude_desktop_config.json`).
|
|
11
|
+
|
|
12
|
+
*Note: If the document or its containing directory does not exist, create
|
|
13
|
+
them and initialize the file with `{ "mcpServers": {} }` before proceeding.*
|
|
14
|
+
|
|
15
|
+
2. **Check existing configuration**
|
|
16
|
+
|
|
17
|
+
Open the configuration file and check the `mcpServers` section for a
|
|
18
|
+
`firebase` entry.
|
|
19
|
+
|
|
20
|
+
- Firebase is already configured if the `command` is `"firebase"` OR if the
|
|
21
|
+
`command` is `"npx"` with `"firebase-tools"` and `"mcp"` in the `args`.
|
|
22
|
+
|
|
23
|
+
- **Important**: If a valid `firebase` entry is found, the MCP server is
|
|
24
|
+
already configured. **Skip step 3** and proceed directly to step 4.
|
|
25
|
+
|
|
26
|
+
**Example valid configurations**:
|
|
27
|
+
```json
|
|
28
|
+
"firebase": {
|
|
29
|
+
"command": "npx",
|
|
30
|
+
"args": ["-y", "firebase-tools@latest", "mcp"]
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
OR
|
|
34
|
+
```json
|
|
35
|
+
"firebase": {
|
|
36
|
+
"command": "firebase",
|
|
37
|
+
"args": ["mcp"]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3. **Add or update configuration**
|
|
42
|
+
|
|
43
|
+
If the `firebase` entry is missing or incorrect, add it to the `mcpServers`
|
|
44
|
+
object:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
"firebase": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": [
|
|
50
|
+
"-y",
|
|
51
|
+
"firebase-tools@latest",
|
|
52
|
+
"mcp"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
*CRITICAL: Merge this configuration into the existing file. You MUST
|
|
58
|
+
preserve any other existing servers inside the `mcpServers` object.*
|
|
59
|
+
|
|
60
|
+
4. **Verify configuration**
|
|
61
|
+
|
|
62
|
+
Save the file and confirm the `firebase` block is present and is properly
|
|
63
|
+
formatted JSON.
|