Releases: Jamkris/everything-gemini-code
v1.3.5
What's Changed in v1.3.5
feat: port block-no-verify hook + workflow-security CI validator (#47) by @Jamkris
Summary
Adopts two security additions from everything-claude-code (upstream as of 4e66b28) that are protocol-portable to Gemini CLI without rewriting:
-
scripts/hooks/block-no-verify.js— registered as a BeforeTool hook onrun_shell_command. Blocks--no-verify(and-nshorthand oncommit) plus-c core.hooksPath=overrides forgit commit / push / merge / cherry-pick / rebase / am. Detects subcommand even in chained shells (git log -n 5 && git commit ...) without false-positiving on-nthat belongs togit log. Returns exit 2 with stderr explanation when blocking; exit 0 otherwise. -
scripts/ci/validate-workflow-security.js— rejects unsafegithub.event.{workflow_run,pull_request}.head.*refs insideactions/checkoutsteps when triggered from privileged events (workflow_run/pull_request_target). Wired intoreusable-validate.ymlas a 5th validation step.
The tool_input.command JSON shape that block-no-verify reads is the same shape Gemini CLI's BeforeTool already produces, so no protocol translation was needed for the hook code itself.
Hook registration (per session direction: same blast radius as the Claude side)
{
"matcher": "tool == \"run_shell_command\"",
"hooks": [
{ "type": "command", "command": "node \"$HOME/.gemini/extensions/everything-gemini-code/scripts/hooks/block-no-verify.js\"" }
]
}Always-on: matches every shell command, with the hook returning exit 0 fast for non-git commands.
Skipped from upstream (with reasons)
gateguard-fact-force.js+skills/gateguard— hardcoded Claude tool names (Edit/Write/MultiEdit/Bash), ClaudepermissionDecisionJSON output protocol,CLAUDE_*env vars. Porting would be a near-rewrite to fit Gemini's stderr+exit hook contract.bash-hook-dispatcher.js+pre/post-bash-dispatcher.js— dispatcher pattern works around Claude's single-hook-per-event limit; Geminihooks.jsonalready supports multiple entries per event natively.
Test plan
-
node scripts/hooks/block-no-verify.js— direct stdin invocation works (12 cases pass) -
node scripts/ci/validate-workflow-security.js— passes against this repo's 5 workflow files (and against the 4 fixture cases in the test) -
node scripts/ci/validate-hooks.js— 16 hook matchers (was 15) -
npm run lint— clean -
npm test— 181/181 pass (was 165: +12 hook tests, +4 CI validator tests) - Reviewer spot-check: manually verify a
git commit --no-verifyattempt is blocked once the extension is reinstalled
feat: port a11y-architect agent + accessibility skill from upstream (#46) by @Jamkris
Summary
Ports two clean additions from everything-claude-code (upstream as of 4e66b28) that fit the Gemini CLI extension scope without rewriting:
agents/a11y-architect.md— WCAG 2.2 accessibility architect (Web/iOS/Android). Frontmatter migrated to the Gemini CLI shape per the strict validator added in #45.skills/accessibility/SKILL.md— WCAG 2.2 implementation patterns. Copied as-is (no Claude-specific content).
Larger upstream items (gateguard hook + skill, bash dispatcher, Python LLM provider layer, Rust core, plugin manifests) are intentionally not included — they are deeply Claude-Code-protocol-coupled or out of scope for a Gemini CLI extension. PR 2 in this sync wave will cover block-no-verify.js and validate-workflow-security.js.
Frontmatter migration (a11y-architect)
| Before (upstream) | After (this PR) |
|---|---|
model: sonnet + model: opus (duplicate, schema-forbidden) |
removed (Gemini CLI agent schema does not accept model) |
tools: [Read, Write, Edit, Bash, Grep, Glob] |
tools: [read_file, write_file, replace, run_shell_command, search_file_content, glob] |
| Body content | unchanged — no Claude-specific references |
The migration is the exact mapping enforced by scripts/lib/gemini-tools.js (Phase 2 SoT).
Test plan
-
node scripts/ci/validate-agents.js— 48 agents validated (was 47) -
node scripts/ci/validate-skills.js— 183 skill directories validated (was 182) -
npm run lint— clean -
npm test— 165/165 pass - Reviewer spot-check that the agent's tool list still makes sense for an accessibility audit workflow
Summary by CodeRabbit
- Documentation
- Added new accessibility agent guidance for designing WCAG 2.2 Level AA compliant interfaces
- Included comprehensive skill documentation covering semantic mapping, focus management, and cross-platform labeling standards for Web, iOS, and Android
- Provided best practices, anti-patterns, and implementation examples for accessible components
feat: strict agent/command validators to prevent Issue #34-class regr… (#45) by @Jamkris
Strengthens the existing CI validators to catch frontmatter and filename issues before the Gemini CLI agent loader rejects them.
scripts/lib/gemini-tools.js (new)
- Single source of truth for the 11 valid Gemini CLI tool names
- Claude-style → Gemini name mapping table for actionable error hints
- Levenshtein-based "Did you mean?" suggestions for typos
- Frontmatter validator: required keys, forbidden keys (color/model), malformed/empty tools array, MCP entries
scripts/ci/validate-agents.js
- Now uses the lib instead of only checking that "tools" exists
- Catches Read/Edit/Bash, search_files/replace_in_file, mcp__* tools, and color/model keys (all of which break the loader)
scripts/ci/validate-commands.js
- Enforces egc- filename prefix (PR #38 regression guard)
- Requires a non-empty description field
- Logic exported as a module for integration tests
tests/lib/gemini-tools.test.js (new, 24 cases)
- parseToolsField, suggestTool, validateToolList, validateAgentFrontmatter, allowlist sanity
tests/lint/validators.test.js (new, 13 cases)
- Fixture-based: good + Claude-style + MCP + forbidden keys + legacy names + missing frontmatter; mirrored for commands
- Plus a sweep that runs the live validators across every real agents/.md and commands/.toml in the repo
.gemini/styleguide.md
- Notes that scripts/lib/gemini-tools.js is the authoritative allowlist and the styleguide is its human-facing mirror
Lint green / 161 tests pass (was 124).
Summary by CodeRabbit
-
New Features
- Enhanced validation for agent and command configurations with detection of invalid tool names, forbidden keys, missing descriptions, and naming convention violations.
- Added intelligent tool name suggestions for common misspellings.
-
Documentation
- Updated style guide to clarify validation requirements and enforcement mechanisms.
-
Tests
- Added comprehensive test suites and fixtures for validation verification.
chore: release v1.3.4 (#44) by @Jamkris
Bump version to 1.3.4
v1.3.4
What's Changed in v1.3.4
fix: make hook commands cross-platform (Windows PowerShell) — fixes #42 (#43) by @Jamkris
Issue #42 reports "Alerta constante" parser errors on Windows, caused by POSIX-only shell syntax in hooks/hooks.json:
node "$HOME/.../scripts/hooks/pre-compact.js" 2>/dev/null \
|| node "$HOME/.gemini/scripts/hooks/pre-compact.js" 2>/dev/null \
|| true
Windows PowerShell 5.x (the default shell on Windows 10/11) rejects || as an "invalid statement separator" and has no /dev/null or true.
Replace the six script-launching hook commands with a single Node launcher:
node "$HOME/.../scripts/hooks/run.js" <hook-name>
The launcher (scripts/hooks/run.js) resolves the target hook file via __dirname, silently skips missing hooks (preserving the prior || true semantics), and never fails the parent Gemini CLI action. Inline node -e "..." hooks are untouched — the JS string is consumed by Node, not the shell, so they are already cross-platform.
Tests:
- Add a regression guard asserting no hook command contains
||,2>/dev/null, or|| true(inlinenode -ecommands exempted). - Add a sanity check on run.js for __dirname + argv[2] usage.
Summary by CodeRabbit
- Chores
- Unified hook execution mechanism for improved reliability and maintainability.
- Added cross-platform compatibility validation to prevent Windows PowerShell issues.
- Expanded hook testing to verify correct execution paths and error handling behavior.
docs: note Antigravity-only bare workflow names vs Gemini CLI egc- pr… (#41) by @Jamkris
…efix
Only /egc-plan gets the egc- prefix under Antigravity (it would otherwise shadow Antigravity's built-in /plan). Every other workflow installed via scripts/install.sh --antigravity keeps its bare name (/tdd, /build-fix, /code-review, …). Gemini CLI still requires the prefix on every command to avoid its built-in command collisions.
Add this note to the Slash Commands section of the EN/KO/ZH READMEs so users don't assume commands were renamed everywhere.
Summary by CodeRabbit
- Documentation
- Added clarification on command naming conventions for Antigravity workflows, explaining that workflows use bare command names (e.g.,
/tdd,/code-review,/build-fix) with the exception of/egc-planto avoid conflicts with built-in commands. - Updated documentation in English, Korean, and Chinese.
- Added clarification on command naming conventions for Antigravity workflows, explaining that workflows use bare command names (e.g.,
chore: release v1.3.3 (#40) by @Jamkris
Bump version to 1.3.3
v1.3.3
What's Changed in v1.3.3
fix: rename conflicting commands to egc-* and drop bare duplicates (#39) by @Jamkris
- fix: rename conflicting commands to egc-* and drop bare duplicates
- refactor: prefix all extension commands with egc- to avoid name conflicts
chore: release v1.3.2 (#38) by @Jamkris
Bump version to 1.3.2
v1.3.2
What's Changed in v1.3.2
fix: remove invalid MCP tool refs and color frontmatter from agents (#37) by @Jamkris
Gemini CLI's agent schema rejects two patterns that were producing "Validation failed" errors at extension install / session start:
-
mcp__<server>__<tool>entries in the frontmattertools:array — the schema only accepts built-in tool names. MCP tools stay usable at runtime via the configured MCP server regardless of being listed; removing them from the array just unblocks validation. Fixed in chief-of-staff.md (4 Slack entries) and docs-lookup.md (2 Context7 entries); the agent bodies still document how to invoke them. -
color:key in frontmatter — not part of the Gemini CLI agent schema (appears to be a Claude Code carry-over). Removed from gan-evaluator, gan-generator, gan-planner, harness-optimizer, and loop-operator.
Note: the previously observed ~/.gemini/commands/command-explain.toml parse error is from a user-local file outside this repo and is not addressed here.
Summary by CodeRabbit
-
Refactor
- Removed messaging and external doc lookup integrations from several agents; retained local file and system utilities.
- Cleared non-functional visual metadata (color fields) from multiple agents for UI/validation consistency.
-
Chores
- Tightened agent frontmatter validation to restrict declared tools to the allowlist and disallow unsupported metadata keys.
chore: release v1.3.1 (#36) by @Jamkris
Bump version to 1.3.1
v1.3.1
What's Changed in v1.3.1
fix: correct invalid Gemini CLI tool names in agents and docs (#35) by @Jamkris
Replace search_files with search_file_content and replace_in_file with replace across all agent frontmatter and documentation. These were not valid Gemini CLI built-in tool names and caused agent loading failures at startup (validation error: tools.N: Invalid tool name).
The terminology tables in docs/ that mapped Claude Code tools to Gemini CLI equivalents were the source of the incorrect names, which had propagated into 18 agent files.
Fixes #34
Summary by CodeRabbit
-
Chores
- Added repository-wide configuration for automated, incremental code reviews with an assertive, bug/security-first tone; enabled early-access/free-tier behavior, chat auto-replies, labeling rules, path filters, and security/style checks (shellcheck, gitleaks, markdownlint, eslint).
- Standardized internal tool names and capabilities across agent configurations for consistent behavior.
-
Documentation
- Updated contributor and agent docs and mapping tables to reflect the new tool name mappings and guidance.
Feat/sync from claude code (#33) by @Jamkris
- feat: add rules directory with 89 language-specific rule files
- feat: add 19 new agent definitions
- feat: add 19 new commands in TOML format
- feat: add 19 new workflow definitions
- feat: add 57 new skill definitions
- docs: add Contributor Covenant Code of Conduct
- docs: add SECURITY.md with vulnerability reporting policy
- docs: add CONTRIBUTING.md to project root from English docs
- Revert "docs: add CONTRIBUTING.md to project root from English docs"
- docs: move CONTRIBUTING.md from docs/en/contributing/ to project root
- fix: resolve markdownlint errors in CODE_OF_CONDUCT.md
- fix: remove model field and convert tool names to Gemini format in 19 agents
- fix: rename 'When to Activate' to 'When to Use' in 14 skill files
- fix: replace placeholder email and wrap bare URLs in CODE_OF_CONDUCT.md
- docs: add attribution to Everything Claude Code by @affaan-m
- fix: align JWT regex in opensource-forker with opensource-sanitizer
- fix: replace Claude Code references with Gemini CLI in agents
- fix: use @agent-name format and add usage examples in feature-dev command
- fix: rephrase unprofessional comment in rules README
- fix: convert skills/ck scripts from ESM (.mjs) to CommonJS (.js)
v1.3.0
What's Changed in v1.3.0
Refactor/all (#32) by @Jamkris
Summary of Changes
This pull request implements a comprehensive refactor of the Gemini CLI extension, focusing on command naming consistency, documentation structure, and execution silence. By adopting the /ecc- prefix for custom commands and organizing documentation into a localized directory structure, the project improves maintainability and user accessibility. Additionally, the removal of verbose logging from hook scripts addresses user feedback regarding terminal noise, ensuring a more seamless interaction model.
Highlights
- Command Refactoring: Renamed core commands to use the
/ecc-prefix (e.g.,/ecc-plan,/ecc-docs) to align with the new naming convention. - Documentation Restructuring: Reorganized documentation into a structured
docs/directory with language-specific subdirectories (en, ko-KR, zh-CN) and added new guides for MCP configurations, skills, and contributing. - Silent Execution Policy: Refactored hook scripts to eliminate console output, ensuring a cleaner user experience by removing unnecessary logs during session lifecycle events.
- Project Cleanup: Consolidated utility scripts into a dedicated
scripts/directory and removed redundant file-based command definitions.
Ignored Files
- Ignored by pattern:
.gemini/**(2)- .gemini/config.yaml
- .gemini/styleguide.md
Activity
- Initial PR submission by Jamkris.
- Automated code review identified inconsistencies in command naming and redundant function calls.
- Author addressed feedback regarding silent execution policy, confirming that silent tracking is intentional to reduce terminal noise.
- Author clarified that specific version references in documentation (e.g., iOS 26) are accurate and intentional.
- Documentation and command structure updated to reflect the new naming conventions and directory organization.
v1.2.3
What's Changed in v1.2.3
Refactor/all (#31) by @Jamkris
Summary of Changes
This pull request implements a comprehensive refactor of the Gemini CLI extension, focusing on command naming consistency, documentation structure, and execution silence. By adopting the /ecc- prefix for custom commands and organizing documentation into a localized directory structure, the project improves maintainability and user accessibility. Additionally, the removal of verbose logging from hook scripts addresses user feedback regarding terminal noise, ensuring a more seamless interaction model.
Highlights
- Command Refactoring: Renamed core commands to use the
/ecc-prefix (e.g.,/ecc-plan,/ecc-docs) to align with the new naming convention. - Documentation Restructuring: Reorganized documentation into a structured
docs/directory with language-specific subdirectories (en, ko-KR, zh-CN) and added new guides for MCP configurations, skills, and contributing. - Silent Execution Policy: Refactored hook scripts to eliminate console output, ensuring a cleaner user experience by removing unnecessary logs during session lifecycle events.
- Project Cleanup: Consolidated utility scripts into a dedicated
scripts/directory and removed redundant file-based command definitions.
Ignored Files
- Ignored by pattern:
.gemini/**(2)- .gemini/config.yaml
- .gemini/styleguide.md
Activity
- Initial PR submission by Jamkris.
- Automated code review identified inconsistencies in command naming and redundant function calls.
- Author addressed feedback regarding silent execution policy, confirming that silent tracking is intentional to reduce terminal noise.
- Author clarified that specific version references in documentation (e.g., iOS 26) are accurate and intentional.
- Documentation and command structure updated to reflect the new naming conventions and directory organization.
v1.2.2
What's Changed in v1.2.2
docs: update installation instructions and directory structure to ref… (#30) by @Jamkris
…lect the migration of rules to GEMINI.md templates
chore: bump version to 1.2.1 (#29) by @Jamkris
- chore: bump version to 1.2.1
- refactor: update release script to support non-main branch deployments and automate PR creation
v1.2.1
v1.2.0
What's Changed in v1.2.0
No pull requests merged since last release.