Skip to content

Commit 84b8db8

Browse files
joehancharlotteliangmtr002christhompsongooglessbushi
authored
Sync main & next (#64)
* Explanding out contributor guidelines (#3) * update claude plugin marketplace command to use the new repo (#2) * add kiro power (#4) * update license (#8) * Adding a token counting script (#11) * Next -> Main (#16) * Add firebase-data-connect-basics skill (#7) * Add firebase-data-connect-basics skill * Add firebase dataconnect basic skills --------- Co-authored-by: Muhammad Talha <muhammadtalhar@google.com> * [Dataconnect] Restructure SKILL.md into a development workflow guide --------- Co-authored-by: Muhammad Talha <muhammadtalhar@google.com> Co-authored-by: Muhammad Talha <126821605+mtr002@users.noreply.github.com> * Adding a Cursor plugin (#13) * Add Cursor plugin configuration * Add logo to cursor plugin config * Move logo to assets directory * Restructure Cursor plugin to multi-plugin format * Clean up language * Use a symlink instead * Add theme to GCLI extension (#17) * Remove curl|bash (#18) * Update SKILL.md to remove references to 2.5 and instead use `latest`. (#19) * feat: Add sync job for genkit-ai/skills (#23) * Change to use `npx` to invoke Firebase CLI (#26) Change all `firebase` shell command mentioned in the skills to use `npx -y firebase-tools@latest` instead to ensure freshness and reduce frictions to the agents. * use pat for cla reasons (#29) * fix: update workflow title and committer details (#33) * Move the local environment setup to a new skill + MCP setup (#31) - Move all one-time-only local environment setup from `firebase-basic` to `firebase-local-env-setup` skill - Add description about how to install skills and MCP server. * fix: Add reviewers to sync-genkit-skills workflow (#35) Based on https://github.com/peter-evans/create-pull-request?tab=readme-ov-file#action-inputs * chore: sync updated skills (#34) Co-authored-by: ssbushi <66321939+ssbushi@users.noreply.github.com> * Update skill names in security rules documentation (#37) * Support Agent Skills for Firestore Enterprise with Native Mode (#27) * Add agent skills for firestore enterprise with native mode * Amend SKILL.md * Format SKILL * Address comments and rename standard edition * Remove files & update frontmatter * Updated to use "npx firebase-tools@latest" --------- Co-authored-by: Sichen Liu <sichenliu@google.com> Co-authored-by: Joe Hanley <joehanley@google.com> * update the skill verification instruction (#38) * chore: sync updated skills (#39) * gemini-3-pro-preview --> gemini-3.1-pro-preview (#40) * Refine `firebase-local-env-setup` instructions for agents (#41) Updated the installation reference guides for all supported agents (Antigravity, Claude Code, Cursor, Gemini CLI, GitHub Copilot, and others) in the `firebase-local-env-setup` skill. - Added detailed steps to locate, verify, and safely merge MCP configurations (`mcp.json`, `claude_desktop_config.json`, etc.) without overwriting existing entries. - Added explicit instructions to check for existing skill installations using `npx skills list` before installing. - Enforced "stop and wait" instructions for user restarts to ensure the agent correctly verifies the MCP server connection securely. * Update `firebase-basics` skills (#42) * Update `firebase-basics` skills - Optimize description so that it is more likely to be loaded - Clearly state the prerequisites, how to validate them and how to meet them. - Add principles about how to optimize agent ability to help with Firebase related task - Indexing other knowledges for progressive disclosure. Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update `firebase-basics` skill and `firebase-local-env-setup` skill (#43) - Update their description so that firebase-basics can be picked up more consistently - Update instructions about how to refresh skills for Antigravity and other agents. * Split out python sdk content (#45) * Fixing up Cursor plugin format (#46) * docs: Improve local installation instructions (#47) * docs: improve local installation instructions * docs: address reviewer feedback on local installation instructions * adjusting cursor plugin to reflect skills and mcp setup path correctly (#52) * adjusting cursor plugin to reflect skills and mcp setup path correctly * Apply suggestion from @gemini-code-assist[bot] Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * update mcp path to ensure it can find it * correct the path --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Add new skills logo (#51) * re-organize claude plugins (#54) * Moving battlehardened AI studio prompt into skills (#53) * Moving battlehardened AI studio prompt into skills * PR fixes * Address PR feedback: add isRecent, isAdmin, fix regex escaping and numbering * PR fixes * PR fixes * Merge `firebase-local-env-setup` skills into `firebase-basics` (#56) * Change all `firebase` CLI reference to use `npx firebase-tools` (#61) --------- Co-authored-by: Charlotte Liang <chliang@google.com> Co-authored-by: Muhammad Talha <muhammadtalhar@google.com> Co-authored-by: Muhammad Talha <126821605+mtr002@users.noreply.github.com> Co-authored-by: christhompsongoogle <106194718+christhompsongoogle@users.noreply.github.com> Co-authored-by: Samuel Bushi <66321939+ssbushi@users.noreply.github.com> Co-authored-by: chkuang-g <31869252+chkuang-g@users.noreply.github.com> Co-authored-by: Morgan Chen <morganchen12@gmail.com> Co-authored-by: Google Open Source Bot <firebase-oss-bot@google.com> Co-authored-by: cmoiccool <cmoiccool@users.noreply.github.com> Co-authored-by: Sichen Liu <lscmirror@gmail.com> Co-authored-by: Sichen Liu <sichenliu@google.com> Co-authored-by: Rosário P. Fernandes <rosariofernandes51@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Peter Friese <peter@peterfriese.de>
1 parent 88480ac commit 84b8db8

File tree

80 files changed

+4535
-518
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+4535
-518
lines changed

.claude-plugin/marketplace.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@
99
"name": "firebase",
1010
"description": "Official Claude plugin for Firebase. Manage projects, add backend services, develop AI features, deploy & host apps, and more",
1111
"category": "development",
12-
"tags": ["firebase", "backend", "database", "cloud-services"],
13-
"source": "./claude-plugins/firebase"
12+
"tags": [
13+
"firebase",
14+
"backend",
15+
"database",
16+
"cloud-services"
17+
],
18+
"source": "./"
1419
}
1520
]
16-
}
21+
}

claude-plugins/firebase/.claude-plugin/plugin.json renamed to .claude-plugin/plugin.json

File renamed without changes.

.cursor-plugin/plugin.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "firebase",
3+
"displayName": "Firebase",
4+
"version": "1.0.1",
5+
"description": "The official Firebase Cursor plugin. Prototype, build, and run modern apps with Firebase's backend and AI infrastructure.",
6+
"author": {
7+
"name": "Firebase",
8+
"email": "firebase-support@google.com",
9+
"url": "https://firebase.google.com"
10+
},
11+
"license": "Apache-2.0",
12+
"keywords": [
13+
"firebase",
14+
"cursor",
15+
"skills",
16+
"mcp",
17+
"firestore",
18+
"hosting",
19+
"auth",
20+
"storage",
21+
"ailogic",
22+
"backend",
23+
"cloud-services"
24+
],
25+
"skills": "./skills/",
26+
"mcpServers": "./.mcp.json",
27+
"logo": "./assets/firebase_logo.svg",
28+
"homepage": "https://github.com/firebase/agent-skills",
29+
"repository": "https://github.com/firebase/agent-skills"
30+
}

.github/scripts/prune-skills.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Script to prune deleted Genkit skills
5+
# Usage: ./prune-skills.sh
6+
7+
echo "🧹 Pruning deleted Genkit skills..."
8+
9+
for skill_dir in firebase-skills/skills/*; do
10+
[ -d "$skill_dir" ] || continue
11+
skill_name=$(basename "$skill_dir")
12+
skill_md="$skill_dir/SKILL.md"
13+
14+
# Check if this skill is managed by Genkit
15+
if [ -f "$skill_md" ]; then
16+
# We use yq to check the metadata.
17+
# The '|| echo false' handles cases where the field is missing or yq fails.
18+
is_managed=$(yq -f extract '.metadata["genkit-managed"] == true' "$skill_md" 2>/dev/null || echo false)
19+
20+
if [ "$is_managed" = "true" ]; then
21+
# If managed by Genkit but not in source, delete it
22+
if [ ! -d "genkit-skills/skills/$skill_name" ]; then
23+
echo "🗑️ Pruning deleted skill: $skill_name"
24+
rm -rf "$skill_dir"
25+
fi
26+
fi
27+
fi
28+
done
29+
30+
echo "✅ Pruning complete."

.github/scripts/sync-skills.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Script to sync and tag Genkit skills
5+
# Usage: ./sync-skills.sh
6+
7+
echo "🔄 Syncing skills from Genkit repo..."
8+
9+
for skill_dir in genkit-skills/skills/*; do
10+
[ -d "$skill_dir" ] || continue
11+
skill_name=$(basename "$skill_dir")
12+
dest_dir="firebase-skills/skills/$skill_name"
13+
14+
echo "📦 Syncing $skill_name..."
15+
16+
# Clean destination to ensure exact sync (remove old files)
17+
if [ -d "$dest_dir" ]; then
18+
rm -rf "$dest_dir"
19+
fi
20+
mkdir -p "$dest_dir"
21+
22+
# Copy new files
23+
cp -r "$skill_dir/"* "$dest_dir/"
24+
25+
# Mark as managed by Genkit using yq
26+
# The -i flag edits in place, -f process runs the filter
27+
yq -i -f process '.metadata["genkit-managed"] = true' "$dest_dir/SKILL.md"
28+
done
29+
30+
echo "✅ Sync complete."
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Sync Genkit Skills
2+
3+
on:
4+
schedule:
5+
# Runs at 9:00 AM EST (14:00 UTC) on weekdays (Monday-Friday)
6+
- cron: '0 14 * * 1-5'
7+
workflow_dispatch: # For manual trigger
8+
9+
permissions:
10+
# Permission for writing commits and creating PRs is given through
11+
# the bot account PAT.
12+
contents: read
13+
14+
jobs:
15+
sync:
16+
environment: genkit skills automerger cron
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 15
19+
steps:
20+
- name: Checkout firebase/agent-skills
21+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
22+
with:
23+
path: firebase-skills
24+
25+
- name: Checkout genkit-ai/skills
26+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
27+
with:
28+
repository: genkit-ai/skills
29+
path: genkit-skills
30+
31+
# Identifies skills managed by Genkit that have been deleted from the source repo
32+
# and removes them from this repo.
33+
- name: Prune Deleted Genkit Skills
34+
run: firebase-skills/.github/scripts/prune-skills.sh
35+
36+
# Copies skills from Genkit repo, tags them with metadata, and handles updates.
37+
# Note: Uses 'yq' which is pre-installed on GitHub ubuntu-latest runners.
38+
- name: Sync & Tag Skills
39+
run: firebase-skills/.github/scripts/sync-skills.sh
40+
41+
- name: Create Pull Request
42+
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8
43+
with:
44+
path: firebase-skills
45+
commit-message: "chore: sync updated skills"
46+
title: "chore: 🤖 Sync updated skills from Genkit"
47+
branch: "sync-skills"
48+
committer: Google Open Source Bot <firebase-oss-bot@google.com>
49+
reviewers: joehan, ssbushi
50+
token: ${{ secrets.OSS_BOT_AUTOMERGER_PAT }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules/
2+
.DS_Store
3+
*.log

.mcp.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"mcpServers": {
3+
"firebase": {
4+
"command": "npx",
5+
"args": [
6+
"-y",
7+
"firebase-tools@latest",
8+
"mcp",
9+
"--dir",
10+
"."
11+
],
12+
"env": {
13+
"IS_FIREBASE_MCP": "true"
14+
}
15+
}
16+
}
17+
}

CONTRIBUTING.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,24 @@ This project follows
2525

2626
## Contribution process
2727

28+
### main and next branches
29+
30+
This repo has 2 protected branches, `main` and `next`. `main` is the default branch, and most users will use the skills here. `next` is used for development and will contain new skills and improvements that are being staged for release.
31+
32+
If you are making an incremental improvement to an existing skill, point your PR to the `main` branch.
33+
34+
If you are adding a new skill, adding support for a new platform or making a significant change to an existing skill, point your PR to the `next` branch.
35+
36+
### Testing skills
37+
38+
To test out your skill, you can install it from a branch using the 'skills' CLI tool:
39+
40+
```bash
41+
npx skills add https://github.com/firebase/skills/tree/<branch-name>
42+
```
43+
44+
We also have an automated eval pipeline set up in [firebase-tools](https://github.com/firebase/firebase-tools/tree/main/scripts/agent-evals) that is set up to pull content from this repo and run it against a set of test cases. You should add your own test cases there for your skill, both to check activation on the prompts you expect to trigger it, and to check that agents succeed on the tasks you expect it to help with.
45+
2846
### Code reviews
2947

3048
All submissions, including submissions by project members, require review. We

README.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
# Firebase Agent Skills
1+
<h1 align="center">
2+
<img src="assets/firebase-agent-skills_logo.svg" width="48" alt="Logo" style="vertical-align: middle; margin-right: 10px;">
3+
Firebase Agent Skills
4+
</h1>
5+
26

37
A collection of skills for AI coding agents, to help them understand and work with Firebase more effectively.
48

@@ -27,7 +31,7 @@ gemini extensions install https://github.com/firebase/skills
2731
1. Add the Firebase marketplace for Claude plugins:
2832

2933
```bash
30-
claude plugin marketplace add firebase/firebase-tools
34+
claude plugin marketplace add firebase/skills
3135
```
3236

3337
Install the Claude plugin for Firebase:
@@ -50,7 +54,34 @@ claude plugin marketplace list
5054
git clone https://github.com/firebase/skills.git
5155
```
5256

53-
2. Copy the contents of the `skills` directory to the appropriate location for your AI tool.
57+
2. Copy the contents of the `skills` directory to the appropriate location for your AI tool. Common locations include:
58+
- **Cursor**: `.cursor/rules/`
59+
- **Windsurf**: `.windsurfrules/`
60+
- **GitHub Copilot**: `.github/copilot-instructions.md` (or project-specific instruction files)
61+
62+
### Option 5: Local Path via Agent Skills CLI
63+
64+
The `skills` CLI also supports installing skills from a local directory. If you have cloned this repository, you can add skills by pointing the CLI to your local folder:
65+
66+
```bash
67+
npx skills add /path/to/your/local/firebase-skills/skills
68+
```
69+
70+
If you make changes to the local skills repository and want to update your project with the new changes, you can update them by running:
71+
72+
```bash
73+
npx skills experimental_install
74+
```
75+
76+
### Option 6: Local Development (Live Symlinking)
77+
78+
If you are actively contributing to or developing these skills, using `npx skills add` or copying files means you have to manually update them every time you make a change. Instead, use a symlink so that changes in your local clone are immediately reflected in your test project.
79+
80+
For example, to test with Cursor:
81+
82+
```bash
83+
ln -s /path/to/firebase-skills/skills /path/to/your/test-project/.cursor/rules
84+
```
5485

5586
## 🤝 Contributing
5687

0 commit comments

Comments
 (0)