Skip to content

Releases: Jamkris/everything-gemini-code

v1.3.5

27 Apr 04:02

Choose a tag to compare

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:

  1. scripts/hooks/block-no-verify.js — registered as a BeforeTool hook on run_shell_command. Blocks --no-verify (and -n shorthand on commit) plus -c core.hooksPath= overrides for git commit / push / merge / cherry-pick / rebase / am. Detects subcommand even in chained shells (git log -n 5 && git commit ...) without false-positiving on -n that belongs to git log. Returns exit 2 with stderr explanation when blocking; exit 0 otherwise.

  2. scripts/ci/validate-workflow-security.js — rejects unsafe github.event.{workflow_run,pull_request}.head.* refs inside actions/checkout steps when triggered from privileged events (workflow_run / pull_request_target). Wired into reusable-validate.yml as 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), Claude permissionDecision JSON 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; Gemini hooks.json already 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 test181/181 pass (was 165: +12 hook tests, +4 CI validator tests)
  • Reviewer spot-check: manually verify a git commit --no-verify attempt 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

23 Apr 03:51

Choose a tag to compare

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 (inline node -e commands 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-plan to avoid conflicts with built-in commands.
    • Updated documentation in English, Korean, and Chinese.

chore: release v1.3.3 (#40) by @Jamkris

Bump version to 1.3.3

v1.3.3

22 Apr 06:51

Choose a tag to compare

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

22 Apr 06:17

Choose a tag to compare

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:

  1. mcp__<server>__<tool> entries in the frontmatter tools: 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.

  2. 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

22 Apr 05:06

Choose a tag to compare

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

10 Apr 06:40

Choose a tag to compare

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

08 Apr 05:17

Choose a tag to compare

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

08 Apr 02:02

Choose a tag to compare

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

08 Apr 01:50

Choose a tag to compare

What's Changed in v1.2.1

Refactor/all (#28) by @Jamkris

No description provided.


Fix/1.1.1 (#27) by @Jamkris

No description provided.

v1.2.0

27 Mar 09:59

Choose a tag to compare

What's Changed in v1.2.0

No pull requests merged since last release.