From claude-team-toolkit
Use when user references Firebase, console.firebase.google.com URLs, *.firebaseapp.com, *.web.app links, or asks for Remote-Config/App-Distribution/Crashlytics-dSYM/Cloud-Functions/Hosting ops. Multi-project via FIREBASE_PROFILE.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-team-toolkit:firebaseThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Wraps `firebase` CLI with profile-based project switching. Each profile pins
Wraps firebase CLI with profile-based project switching. Each profile pins
project ID + service account JSON + default app IDs. Profile resolution:
--profile → FIREBASE_PROFILE → ~/.firebase/active_profile → [default].
Profile-based project switching, so commands target the right env without
explicit flags. Service Account auth (least privilege per env), never
firebase login token (which carries Owner role).
~/.firebase/credentials (mode 600):
[default]
project_id = my-app-dev
service_account = /Users/me/.firebase-keys/dev-sa.json
ios_app_id = 1:123456789012:ios:abc123
android_app_id = 1:123456789012:android:def456
[prod]
project_id = my-app-prod
service_account = /Users/me/.firebase-keys/prod-sa.json
ios_app_id = 1:222222222222:ios:zzz
android_app_id = 1:222222222222:android:www
require_confirm = true
Get SA key (least privilege):
Firebase App Distribution Admin for beta only)~/.firebase-keys/<env>-sa.json, chmod 600Why SA over firebase login: SA scoped to roles, revocable, no human
auth flow. CI/automation always uses SA. firebase login writes a token
with full user permissions (often Owner role).
Shared profile/INI/
ctt_*pattern reference: profiles-and-credentials.
source "$HOME/.claude-team-toolkit/lib/credentials.sh"
source "$HOME/.claude-team-toolkit/lib/confirm.sh"
ctt_load_creds firebase "$PROFILE"
firebase_run() wrapper and full dispatch implementations live in
recipes.md — load when user invokes a specific verb.
| Verb area | Mutating? | Confirm |
|---|---|---|
projects, apps, current | no | — |
rc-get | no | — |
rc-set, rc-rollback | yes | typed PUSH / ROLLBACK |
dist-upload, dist-testers add|remove | yes | ctt_audit_log |
crashlytics:symbols:upload, crashlytics:mappingfile:upload | additive | — |
fn-deploy | yes | ctt_confirm if profile require_confirm |
hosting deploy, hosting channel:deploy | yes | ctt_audit_log |
recipes.md — full firebase CLI invocations for every verb above (Remote Config push/rollback, App Distribution upload + tester management, Crashlytics symbol upload, Functions deploy + logs, Hosting deploy + preview channels). Load when user invokes a specific dispatch verb.firebase login token instead of SA → has Owner role, blast radius huge--project resolves correctlychmod 600.Owner/Editor for automation. Beta dist only → Firebase App Distribution Admin. RC only → Firebase Remote Config Admin.require_confirm=true on prod profiles for every deploy.npx claudepluginhub tuannv14/claude-team-toolkit --plugin claude-team-toolkitProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.