Skip to content

Syncing next and main#62

Closed
joehan wants to merge 34 commits intonextfrom
main
Closed

Syncing next and main#62
joehan wants to merge 34 commits intonextfrom
main

Conversation

@joehan
Copy link
Copy Markdown
Member

@joehan joehan commented Apr 2, 2026

No description provided.

joehan and others added 30 commits February 11, 2026 14:57
* 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>
* 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
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.
- 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.
Co-authored-by: ssbushi <66321939+ssbushi@users.noreply.github.com>
* 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>
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

- 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 their description so that firebase-basics can be picked up more consistently
- Update instructions about how to refresh skills for Antigravity and other agents.
* docs: improve local installation instructions

* docs: address reviewer feedback on local installation instructions
#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>
charlotteliang and others added 4 commits March 26, 2026 19:06
* Moving battlehardened AI studio prompt into skills

* PR fixes

* Address PR feedback: add isRecent, isAdmin, fix regex escaping and numbering

* PR fixes

* PR fixes
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request expands the repository with new agent skills for Genkit and Firebase Data Connect, automation scripts, and integration files for Cursor and Kiro. The review identified several issues, including incorrect yq flags in shell scripts, a command injection vulnerability in the token counter utility, and factual errors regarding Gemini model availability. Additionally, typos and broken links were found in the documentation.

if [ -f "$skill_md" ]; then
# We use yq to check the metadata.
# The '|| echo false' handles cases where the field is missing or yq fails.
is_managed=$(yq -f extract '.metadata["genkit-managed"] == true' "$skill_md" 2>/dev/null || echo false)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The yq command uses the -f flag with extract, which instructs yq to read the filter expression from a file named extract. This file is not present in the repository. If you intended to pass the filter string directly, the -f extract part should be removed.

Suggested change
is_managed=$(yq -f extract '.metadata["genkit-managed"] == true' "$skill_md" 2>/dev/null || echo false)
is_managed=$(yq '.metadata["genkit-managed"] == true' "$skill_md" 2>/dev/null || echo false)


# Mark as managed by Genkit using yq
# The -i flag edits in place, -f process runs the filter
yq -i -f process '.metadata["genkit-managed"] = true' "$dest_dir/SKILL.md"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Similar to the prune script, the -f process flag instructs yq to look for a file named process containing the filter, which is missing. To apply the filter string directly, remove these flags.

Suggested change
yq -i -f process '.metadata["genkit-managed"] = true' "$dest_dir/SKILL.md"
yq -i '.metadata["genkit-managed"] = true' "$dest_dir/SKILL.md"

process.exit(1);
}

const modelName = "gemini-3.1-pro-preview";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The model name gemini-3.1-pro-preview does not correspond to any currently available Google Generative AI model (current versions are 1.5 and 2.0). This will cause the script to fail when attempting to initialize the model.

Suggested change
const modelName = "gemini-3.1-pro-preview";
const modelName = "gemini-1.5-flash";


getFileContent(ref, relativePath) {
try {
return execSync(`git show ${ref}:"${relativePath}"`, { stdio: 'pipe', cwd: this.root }).toString('utf8');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security-high high

Using execSync with template literals containing variables like ref and relativePath is vulnerable to command injection if these variables contain shell metacharacters. It is safer to use execFileSync or spawnSync which allow passing arguments as an array, bypassing the shell.

ai.defineTool(
name: 'add',
description: 'Add two numbers together',
inputSchema: .map(.string(), .dynamicSChema()),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Typo in function name: .dynamicSChema() should be .dynamicSchema().

Suggested change
inputSchema: .map(.string(), .dynamicSChema()),
inputSchema: .map(.string(), .dynamicSchema()),


## Model Selection (Google AI)
- **Gemini Models**: If using Google AI, ALWAYS use the latest generation (`gemini-3-*` or `gemini-2.5-*`).
- **NEVER** use `gemini-2.0-*` or `gemini-1.5-*` series, as they are decommissioned and won't work.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The statement that Gemini 1.5 and 2.0 series are 'decommissioned and won't work' is factually incorrect. Gemini 1.5 is the current stable production series, and 2.0 is the latest generation. This documentation will mislead users and should be corrected to reflect actual model availability.

- **Gemini CLI**: Follow [references/refresh-gemini-cli.md](references/refresh-gemini-cli.md)
- **Claude Code**: Follow [references/refresh-claude.md](references/refresh-claude.md)
- **Cursor**: Follow [references/refresh-cursor.md](references/refresh-cursor.md)
- **Others**: Follow [references/refresh-other.md](references/refresh-other-agents.md)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The link text references/refresh-other.md is inconsistent with the actual filename references/refresh-other-agents.md provided in the repository.

Suggested change
- **Others**: Follow [references/refresh-other.md](references/refresh-other-agents.md)
- **Others**: Follow [references/refresh-other-agents.md](references/refresh-other-agents.md)

@joehan joehan closed this Apr 2, 2026
@ssbushi ssbushi temporarily deployed to genkit skills automerger cron April 3, 2026 14:13 — with GitHub Actions Inactive
@ssbushi ssbushi temporarily deployed to genkit skills automerger cron April 6, 2026 14:18 — with GitHub Actions Inactive
@ssbushi ssbushi temporarily deployed to genkit skills automerger cron April 7, 2026 14:30 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.