everything-gemini 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.github/workflows/release.yml +49 -0
  2. package/CHANGELOG.md +81 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +55 -25
  5. package/assets/banner.jpg +0 -0
  6. package/bin/everything-gemini +198 -7
  7. package/docs/LAUNCH_KIT.md +156 -0
  8. package/docs/architecture/progressive-disclosure.md +1 -1
  9. package/docs/index.html +555 -0
  10. package/docs/workflows/slash-commands.md +3 -3
  11. package/examples/python-sdk/README.md +36 -0
  12. package/examples/python-sdk/orchestrate_subagents.py +59 -0
  13. package/hooks/auto-lint-formatter/scripts/auto-format.sh +1 -1
  14. package/hooks/ephemeral-context/scripts/inject-context.sh +2 -2
  15. package/hooks/goal-verifier/scripts/verify-goal.sh +2 -2
  16. package/hooks/safety-shield/scripts/safety-gate.sh +3 -3
  17. package/package.json +2 -1
  18. package/plugins/core/plugin.json +1 -1
  19. package/plugins/python-ai/plugin.json +1 -1
  20. package/plugins/security-shield/plugin.json +1 -1
  21. package/plugins/web-fullstack/plugin.json +1 -1
  22. package/rules/common/AGENTS.md +1 -1
  23. package/rules/common/GEMINI.md +1 -1
  24. package/skills/ai-first-engineering/SKILL.md +68 -0
  25. package/skills/cloudflare-workers/SKILL.md +72 -0
  26. package/skills/gemini-function-calling/SKILL.md +90 -0
  27. package/skills/gemini-grounding/SKILL.md +37 -0
  28. package/skills/github-ops/SKILL.md +102 -0
  29. package/skills/kubernetes-operator/SKILL.md +82 -0
  30. package/skills/rag-architect/SKILL.md +60 -0
  31. package/skills/stripe-integration/SKILL.md +65 -0
  32. package/skills/supabase-architect/SKILL.md +53 -0
  33. package/templates/full-power/AGENTS.md +12 -0
  34. package/templates/full-power/GEMINI.md +12 -0
  35. package/templates/full-power/hooks.json +56 -0
  36. package/templates/full-power/mcp_config.json +15 -0
  37. package/templates/recommended/AGENTS.md +11 -0
  38. package/templates/recommended/GEMINI.md +11 -0
  39. package/templates/recommended/hooks.json +43 -0
@@ -0,0 +1,49 @@
1
+ name: Release & Publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ build-and-publish:
10
+ name: Build, Test & Publish to NPM
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: write
14
+ id-token: write
15
+
16
+ steps:
17
+ - name: Checkout Repository
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Setup Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: '20'
24
+ registry-url: 'https://registry.npmjs.org'
25
+
26
+ - name: Make Scripts Executable
27
+ run: |
28
+ chmod +x scripts/validate.sh scripts/install.sh bin/everything-gemini
29
+ find hooks/ -type f -name "*.sh" -exec chmod +x {} +
30
+ find skills/ -type f -name "*.sh" -exec chmod +x {} +
31
+
32
+ - name: Run Test Suite
33
+ run: npm test
34
+
35
+ - name: Create GitHub Release
36
+ uses: softprops/action-gh-release@v2
37
+ with:
38
+ generate_release_notes: true
39
+ files: |
40
+ LICENSE
41
+ README.md
42
+ CHANGELOG.md
43
+
44
+ - name: Publish to NPM
45
+ if: env.NPM_TOKEN != ''
46
+ run: npm publish --access public
47
+ env:
48
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
49
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,81 @@
1
+ # 📜 Changelog
2
+
3
+ All notable changes to **Everything Gemini (`everything-gemini`)** will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [1.1.1] - 2026-10-15
8
+
9
+ ### Added
10
+ - **Social Media Preview Engine**: Rich Open Graph (`og:*`) and Twitter Card (`twitter:*`) metadata embedded in `docs/index.html` for rich link unfurling on social platforms.
11
+ - **Turnkey Launch & Marketing Kit**: Added [`docs/LAUNCH_KIT.md`](docs/LAUNCH_KIT.md) featuring viral launch tweets, a 4-part thread, Reddit discussions, and Hacker News (Show HN) copy.
12
+ - **Enhanced CLI Catalog Discovery**: `everything-gemini list` now dynamically scans and highlights namespaced skills packaged within domain plugins.
13
+ - **Automated NPM Release CI**: Integrated automated npm publishing within `.github/workflows/release.yml` with provenance.
14
+
15
+ ---
16
+
17
+ ## [1.1.0] - 2026-10-15
18
+
19
+ ### Added
20
+ - **27 Progressive Disclosure Skills Milestone**:
21
+ - **`github-ops`**: End-to-end GitHub automation, PR generation, code review triage, and semantic releases via `gh` CLI and GitHub MCP.
22
+ - **`ai-first-engineering`**: Requirement decomposition, executable acceptance criteria, and blast-radius containment.
23
+ - **`rag-architect`**: RAG engineering with `text-embedding-004`, hybrid search (dense + BM25), and Gemini re-ranking.
24
+ - **`gemini-function-calling`**: Production tool schemas, Pydantic output formatting, parallel execution, and error recovery envelopes.
25
+ - **Interactive Web Catalog Expansion**: Updated [https://salmandev.github.io/everything-gemini/](https://salmandev.github.io/everything-gemini/) to feature all 27 progressive skills with instant search and category filtering.
26
+ - **Enhanced CLI Commands**: Added `everything-gemini init` for quickstart setup, `everything-gemini remove <type> <name>` for component uninstallation, and `everything-gemini test-skill <name>` for validation.
27
+
28
+ ---
29
+
30
+ ## [1.0.2] - 2026-10-15
31
+
32
+ ### Added
33
+ - **Interactive Web Showcase**: Launched official documentation and interactive skill catalog at [https://salmandev.github.io/everything-gemini/](https://salmandev.github.io/everything-gemini/).
34
+ - **Component Granular Management**: Added `everything-gemini add <type> <name>` to install individual skills, agents, or plugins into any workspace on demand.
35
+ - **Skill Quality Gate**: Added `everything-gemini test-skill <name>` validating frontmatter boundary syntax, descriptions, and script execution bits.
36
+ - **Python SDK Multi-Agent Orchestration**: Complete runnable pipeline example in `examples/python-sdk/` showcasing programmatic leasing of Planner and Reviewer subagents with token streaming.
37
+ - **Frontier Cloud & AI Skills**: Integrated `cloudflare-workers`, `supabase-architect`, `stripe-integration`, and `kubernetes-operator`.
38
+
39
+ ### Changed
40
+ - CLI dynamically resolves package version from `package.json`.
41
+ - Updated comprehensive CLI documentation across README and repository references.
42
+
43
+ ---
44
+
45
+ ## [1.0.1] - 2026-10-15
46
+
47
+ ### Added
48
+ - **`gemini-grounding` Skill**: Native Google Search Grounding and dynamic fact-verification playbook.
49
+ - **Automated Release Workflow**: `.github/workflows/release.yml` for automated GitHub releases and npm publishing.
50
+ - **NPM Package Verification**: Published to npm registry as `everything-gemini`.
51
+
52
+ ### Changed
53
+ - Normalized all documentation, plugins, and lifecycle hook manifests to `everything-gemini`.
54
+ - Added instant `npx everything-gemini install` installation instructions to README.
55
+ - Credited Everything Claude Code (ECC) by Affan Mustafa in dedicated `Acknowledgements & Prior Art` section.
56
+
57
+ ---
58
+
59
+ ## [1.0.0] - 2026-10-15
60
+
61
+ ### Initial Public Launch
62
+ - **18 Progressive Disclosure Skills**:
63
+ - `gemini-multimodal`: Visual mockups, diagram extraction, and automated UI regression testing.
64
+ - `context-caching`: 1M-2M token context optimization with static prefix caching.
65
+ - `subagent-handoff`: Multi-agent scoped delegation and synthesis.
66
+ - `api-craftsman`, `database-architect`, `devops-pipeline`, `root-cause-debugger`, `tdd-workflow`, `browser-qa-tester`, `architecture-designer`, `repo-onboarding`, `git-craftsman`, `performance-profiler`, `fullstack-nextjs`, `security-audit`, `continuous-learning`.
67
+ - **6 Scoped Subagents (`agents/`)**:
68
+ - `planner.md`, `code-reviewer.md`, `build-repair.md`, `browser-qa.md`, `security-auditor.md`, `architect.md`.
69
+ - **GeminiShield Safety Gate & Lifecycle Hooks**:
70
+ - `PreToolUse`: Catastrophic command blocker (`rm -rf`, `DROP TABLE`, `git push --force`).
71
+ - `PostToolUse`: Auto-lint formatter.
72
+ - `Stop`: Goal-verifier preventing premature agent completion on broken tests.
73
+ - `PreInvocation`: Ephemeral context injector.
74
+ - **4 Modular Plugins**:
75
+ - `plugins/core`, `plugins/web-fullstack`, `plugins/python-ai`, `plugins/security-shield`.
76
+ - **Zero-Dependency CLI (`bin/everything-gemini`)**:
77
+ - `doctor`, `install`, `list`, `new-skill`, `new-agent`, `validate`.
78
+ - **Comprehensive Documentation**:
79
+ - Architectural comparison breakdown against Everything Claude Code (ECC) (`docs/ecc-vs-everything-gemini.md`).
80
+ - 4 Antigravity Surfaces guide (Desktop 2.0, IDE, CLI, Python SDK).
81
+ - Progressive disclosure specifications and Cortex event loop diagrams.
package/CONTRIBUTING.md CHANGED
@@ -1,6 +1,6 @@
1
- # Contributing to Everything Antigravity (`eagy`)
1
+ # Contributing to Everything Gemini (`everything-gemini`)
2
2
 
3
- Thank you for your interest in contributing to **Everything Antigravity (`eagy`)**! Our goal is to build the highest-quality, most reliable, and most token-efficient agent harness and customization ecosystem for Google Antigravity.
3
+ Thank you for your interest in contributing to **Everything Gemini (`everything-gemini`)**! Our goal is to build the highest-quality, most reliable, and most token-efficient agent harness and customization ecosystem for Google Antigravity and Gemini.
4
4
 
5
5
  ---
6
6
 
package/README.md CHANGED
@@ -2,15 +2,19 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
+ <img src="assets/banner.jpg" alt="Everything Gemini Banner" width="100%" style="border-radius: 12px; margin-bottom: 16px;" />
6
+
7
+ [![Live Showcase](https://img.shields.io/badge/Live_Showcase-Visit_Catalog-00e5ff.svg)](https://salmandev.github.io/everything-gemini/)
8
+ [![npm version](https://img.shields.io/npm/v/everything-gemini.svg?color=cb3837)](https://www.npmjs.com/package/everything-gemini)
9
+ [![CI](https://github.com/salmandev/everything-gemini/actions/workflows/ci.yml/badge.svg)](https://github.com/salmandev/everything-gemini/actions/workflows/ci.yml)
5
10
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
6
11
  [![Antigravity](https://img.shields.io/badge/Google-Antigravity-4285F4.svg)](https://antigravity.google)
7
- [![Version](https://img.shields.io/badge/version-1.0.0-emerald.svg)](package.json)
8
12
  [![Status](https://img.shields.io/badge/status-active-success.svg)](https://github.com/salmandev/everything-gemini)
9
13
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
10
14
 
11
15
  **The open-source agent harness, multi-agent orchestrator, and performance ecosystem for Google Gemini & Antigravity.**
12
16
 
13
- [Quickstart](#-quickstart) • [What is everything-gemini?](#-what-is-everything-gemini) • [Architecture](#-architecture--internals) • [Customization Catalog](#-customization-catalog) • [Surfaces Guide](#-the-4-antigravity-surfaces) • [Contributing](CONTRIBUTING.md)
17
+ [Live Interactive Showcase](https://salmandev.github.io/everything-gemini/) • [Quickstart](#-quickstart) • [What is everything-gemini?](#-what-is-everything-gemini) • [Architecture](#-architecture--internals) • [Customization Catalog](#-customization-catalog) • [Surfaces Guide](#-the-4-antigravity-surfaces) • [Contributing](CONTRIBUTING.md)
14
18
 
15
19
  </div>
16
20
 
@@ -38,9 +42,15 @@ Out of the box, Antigravity is a formidable pair programmer. But without structu
38
42
 
39
43
  ## 🚀 Quickstart
40
44
 
41
- ### 1. One-Line Interactive Installer
45
+ ### 1. Instant Installation via npx (Zero Setup)
46
+
47
+ Run this directly in any project directory or terminal:
48
+
49
+ ```bash
50
+ npx everything-gemini install
51
+ ```
42
52
 
43
- Run this in your terminal to install `eagy` globally or into your current project:
53
+ ### 2. One-Line Interactive Installer
44
54
 
45
55
  ```bash
46
56
  # macOS / Linux
@@ -52,18 +62,17 @@ curl -fsSL https://raw.githubusercontent.com/salmandev/everything-gemini/main/sc
52
62
  irm https://raw.githubusercontent.com/salmandev/everything-gemini/main/scripts/install.ps1 | iex
53
63
  ```
54
64
 
55
- ### 2. Via `eagy` CLI (Zero-Dependency)
56
-
65
+ ### 3. Via Repository Clone
57
66
  ```bash
58
67
  # Clone the repository
59
68
  git clone https://github.com/salmandev/everything-gemini.git
60
69
  cd everything-gemini
61
70
 
62
- # Run the eagy harness CLI
71
+ # Run the Everything Gemini CLI
63
72
  ./bin/everything-gemini install --profile developer
64
73
  ```
65
74
 
66
- ### 3. Installation Profiles
75
+ ### 4. Installation Profiles
67
76
 
68
77
  | Profile | Target Audience | What Gets Installed |
69
78
  | :--- | :--- | :--- |
@@ -75,7 +84,7 @@ cd everything-gemini
75
84
 
76
85
  ## 🏗️ Architecture & Internals
77
86
 
78
- `eagy` is engineered specifically around Google Antigravity's internal execution engine:
87
+ `everything-gemini` is engineered specifically around Google Antigravity's internal execution engine:
79
88
 
80
89
  ```mermaid
81
90
  flowchart TB
@@ -91,7 +100,7 @@ flowchart TB
91
100
  Workspace[".agents/ (Workspace Root)"]
92
101
  end
93
102
 
94
- subgraph EagyHarness["3. eagy Harness & Engine"]
103
+ subgraph GeminiHarness["3. Everything Gemini Harness & Engine"]
95
104
  direction TB
96
105
  HookEngine["Lifecycle Hooks Engine\n(PreToolUse | PostToolUse | PreInvocation | Stop)"]
97
106
  Progressive["Progressive Disclosure Router\n(Injects only metadata until model decides to view)"]
@@ -105,8 +114,8 @@ flowchart TB
105
114
  end
106
115
 
107
116
  AntigravitySurfaces --> CustomizationRoots
108
- CustomizationRoots --> EagyHarness
109
- EagyHarness --> Capabilities
117
+ CustomizationRoots --> GeminiHarness
118
+ GeminiHarness --> Capabilities
110
119
  ```
111
120
 
112
121
  ### Key Differences: ECC vs. Everything Gemini
@@ -136,7 +145,7 @@ everything-gemini/
136
145
  ├── agents/ # Scoped subagent fleet (Planner, Reviewer, Architect, etc.)
137
146
  ├── scripts/ # Automated installers and harness validators
138
147
  ├── plugins/ # Reusable modular plugins (web-fullstack, python-ai, security)
139
- ├── skills/ # 16+ Progressive disclosure skills
148
+ ├── skills/ # 27 Progressive disclosure skills (25 core + 2 plugins)
140
149
  ├── rules/ # Contextual guidelines & standards
141
150
  ├── hooks/ # Event-driven lifecycle hooks (GeminiShield, Auto-lint)
142
151
  ├── mcp/ # Production-ready MCP server blueprints
@@ -166,9 +175,19 @@ Skills in Antigravity are lazy-loaded runbooks. Only their YAML frontmatter (`na
166
175
 
167
176
  - **[`gemini-multimodal`](skills/gemini-multimodal/SKILL.md)**: Native visual reasoning over mockups, diagrams, and automated WebP browser recordings.
168
177
  - **[`context-caching`](skills/context-caching/SKILL.md)**: 1M-2M token context optimization, static prefix caching, and repository indexing.
178
+ - **[`gemini-grounding`](skills/gemini-grounding/SKILL.md)**: Real-time Google Search grounding, live documentation retrieval, and fact-checking.
179
+ - **[`rag-architect`](skills/rag-architect/SKILL.md)**: RAG pipeline design, AST semantic chunking, hybrid vector-keyword retrieval, and Gemini re-ranking.
180
+ - **[`gemini-function-calling`](skills/gemini-function-calling/SKILL.md)**: Production function declarations, structured JSON output schemas (Pydantic), and parallel tool dispatch.
181
+ - **[`ai-first-engineering`](skills/ai-first-engineering/SKILL.md)**: Requirement decomposition, executable acceptance criteria (BDD), and blast-radius containment.
182
+ - **[`github-ops`](skills/github-ops/SKILL.md)**: GitHub workflow automation, PR generation, code review triage, and semantic releases with `gh` CLI & GitHub MCP.
169
183
  - **[`subagent-handoff`](skills/subagent-handoff/SKILL.md)**: Multi-agent task delegation protocol, scoped contexts, and report synthesis.
170
184
  - **[`api-craftsman`](skills/api-craftsman/SKILL.md)**: REST, OpenAPI 3.1 specifications, gRPC protos, and RFC 7807 error envelopes.
171
185
  - **[`database-architect`](skills/database-architect/SKILL.md)**: Zero-downtime migrations, concurrent indexing, and ACID schema modeling.
186
+ - **[`fullstack-nextjs`](skills/fullstack-nextjs/SKILL.md)**: Next.js App Router, React Server Components (RSC), hydration error diagnosis, and Server Actions.
187
+ - **[`supabase-architect`](skills/supabase-architect/SKILL.md)**: Row Level Security (RLS) policies, pgvector embeddings, and edge function workflows.
188
+ - **[`cloudflare-workers`](skills/cloudflare-workers/SKILL.md)**: Serverless edge functions, Wrangler v3, D1 SQL, and KV low-latency storage.
189
+ - **[`kubernetes-operator`](skills/kubernetes-operator/SKILL.md)**: Production k8s manifests, HPA autoscaling, zero-downtime rolling updates, and health probes.
190
+ - **[`stripe-integration`](skills/stripe-integration/SKILL.md)**: Webhook signature verification, idempotent payments, and customer portal session flows.
172
191
  - **[`devops-pipeline`](skills/devops-pipeline/SKILL.md)**: Multi-stage Dockerfiles and caching GitHub Actions CI/CD workflows.
173
192
  - **[`root-cause-debugger`](skills/root-cause-debugger/SKILL.md)**: Regression diagnosis using binary search (`git bisect`) and minimal reproduction harnesses.
174
193
  - **[`tdd-workflow`](skills/tdd-workflow/SKILL.md)**: Red-Green-Refactor loop with automated test runners.
@@ -178,11 +197,7 @@ Skills in Antigravity are lazy-loaded runbooks. Only their YAML frontmatter (`na
178
197
  - **[`git-craftsman`](skills/git-craftsman/SKILL.md)**: Enforces conventional commits, atomic diffs, and clean PR descriptions.
179
198
  - **[`security-audit`](skills/security-audit/SKILL.md)**: Scans for credentials in commit history and audits dependency risks.
180
199
  - **[`performance-profiler`](skills/performance-profiler/SKILL.md)**: Identifies CPU/memory bottlenecks, analyzes database queries, and critical paths.
181
- - **[`fullstack-nextjs`](skills/fullstack-nextjs/SKILL.md)**: Best practices for React Server Components, hydration fixes, and Server Actions.
182
- - **[`git-craftsman`](skills/git-craftsman/SKILL.md)**: Enforces conventional commits, crafts atomic diffs, and writes PR summaries linked with file references.
183
- - **[`security-audit`](skills/security-audit/SKILL.md)**: Scans for credentials in commit history, tests for injection vulnerabilities, and verifies dependencies.
184
- - **[`performance-profiler`](skills/performance-profiler/SKILL.md)**: Identifies CPU/memory bottlenecks, analyzes database queries, and optimizes critical paths.
185
- - **[`fullstack-nextjs`](skills/fullstack-nextjs/SKILL.md)**: Best practices for React Server Components, hydration fixes, and API routes.
200
+ - **[`continuous-learning`](skills/continuous-learning/SKILL.md)**: Codifies corrections and developer feedback into enduring Knowledge Items.
186
201
 
187
202
  ### 2. Lifecycle Hooks (`hooks/`)
188
203
  Hooks run shell scripts at critical lifecycle events with typed JSON contracts on `stdin`/`stdout`:
@@ -203,7 +218,7 @@ Antigravity automatically discovers rules by walking up from the current file's
203
218
 
204
219
  ## 🖥️ The 4 Antigravity Surfaces
205
220
 
206
- Antigravity operates across four interconnected surfaces. `eagy` supports all of them seamlessly:
221
+ Antigravity operates across four interconnected surfaces. `everything-gemini` supports all of them seamlessly:
207
222
 
208
223
  ```
209
224
  +-----------------------------------------------------------------------------------+
@@ -232,9 +247,9 @@ Antigravity operates across four interconnected surfaces. `eagy` supports all of
232
247
 
233
248
  Antigravity provides built-in slash commands in chat that activate specialized cognitive modes:
234
249
 
235
- | Command | Purpose | How `eagy` Enhances It |
250
+ | Command | Purpose | How Everything Gemini Enhances It |
236
251
  | :--- | :--- | :--- |
237
- | **`/goal <task>`** | Long-running autonomous mode | Pairs with `eagy`'s **Goal Verifier Hook** to prevent premature termination until test suites pass. |
252
+ | **`/goal <task>`** | Long-running autonomous mode | Pairs with Everything Gemini's **Goal Verifier Hook** to prevent premature termination until test suites pass. |
238
253
  | **`/plan <task>`** | Step-by-step implementation blueprint | Enforces architectural review, risk assessment, and mermaid diagrams before code edits. |
239
254
  | **`/grill-me`** | Interactive design interview | Asks hard architectural and trade-off questions to resolve ambiguities before implementing. |
240
255
  | **`/learn`** | Persist feedback across sessions | Automatically indexes insights into a permanent Knowledge Item (`<appDataDir>/knowledge`). |
@@ -244,13 +259,13 @@ Antigravity provides built-in slash commands in chat that activate specialized c
244
259
 
245
260
  ## 📊 Token Efficiency & Benchmark
246
261
 
247
- Traditional agent harnesses dump dozens of prompt files into the system prompt on every single turn. Antigravity's **Progressive Disclosure** paired with `eagy` avoids this:
262
+ Traditional agent harnesses dump dozens of prompt files into the system prompt on every single turn. Antigravity's **Progressive Disclosure** paired with Everything Gemini avoids this:
248
263
 
249
264
  ```
250
265
  [Traditional Setup]
251
266
  System Prompt: Base Instructions + All 25 Skills (Full Text) + All Rules = ~45,000 Tokens / turn
252
267
 
253
- [eagy on Antigravity]
268
+ [Everything Gemini on Antigravity]
254
269
  System Prompt: Base Instructions + 25 Skill Summaries (YAML) + Directory Rules = ~3,200 Tokens / turn
255
270
  Skill Body: Loaded on-demand ONLY when invoked = ~1,500 Tokens (one-time)
256
271
  Savings: > 85% Token Reduction & 3x Faster First-Token Latency!
@@ -260,7 +275,7 @@ Savings: > 85% Token Reduction & 3x Faster First-Token Latency!
260
275
 
261
276
  ## 🛠️ Usage & CLI Reference
262
277
 
263
- The zero-dependency `eagy` CLI manages your configurations effortlessly:
278
+ The zero-dependency `everything-gemini` CLI manages your configurations effortlessly:
264
279
 
265
280
  ```bash
266
281
  # Verify your installation and check for conflicts
@@ -275,13 +290,28 @@ The zero-dependency `eagy` CLI manages your configurations effortlessly:
275
290
  # List all available skills, rules, hooks, and plugins
276
291
  ./bin/everything-gemini list
277
292
 
293
+ # Initialize everything-gemini in current workspace
294
+ ./bin/everything-gemini init
295
+
278
296
  # Add a specific skill to your active workspace
279
297
  ./bin/everything-gemini add skill tdd-workflow
280
298
 
299
+ # Remove a skill from your active workspace
300
+ ./bin/everything-gemini remove skill tdd-workflow
301
+
281
302
  # Add a specific plugin
282
303
  ./bin/everything-gemini add plugin web-fullstack
283
304
 
284
- # Validate all schemas and frontmatter
305
+ # Test and validate a specific skill's frontmatter and scripts
306
+ ./bin/everything-gemini test-skill gemini-multimodal
307
+
308
+ # Scaffold a new progressive-disclosure skill
309
+ ./bin/everything-gemini new-skill my-custom-skill
310
+
311
+ # Scaffold a new scoped subagent
312
+ ./bin/everything-gemini new-agent my-worker-agent
313
+
314
+ # Validate all schemas, hooks, and frontmatter
285
315
  ./bin/everything-gemini validate
286
316
  ```
287
317
 
Binary file
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * Everything Antigravity (eagy) CLI
5
- * Zero-dependency harness manager for Google Antigravity
4
+ * Everything Gemini (everything-gemini) CLI
5
+ * Zero-dependency harness manager for Google Antigravity & Gemini
6
6
  */
7
7
 
8
8
  const fs = require('fs');
@@ -15,6 +15,11 @@ const GLOBAL_CONFIG_DIR = path.join(os.homedir(), '.gemini', 'config');
15
15
  const WORKSPACE_DIR = process.cwd();
16
16
  const AGENTS_DIR = path.join(WORKSPACE_DIR, '.agents');
17
17
 
18
+ let VERSION = '1.0.1';
19
+ try {
20
+ VERSION = require(path.join(REPO_ROOT, 'package.json')).version || '1.0.1';
21
+ } catch (_) {}
22
+
18
23
  // ANSI Colors
19
24
  const RESET = '\x1b[0m';
20
25
  const BOLD = '\x1b[1m';
@@ -27,7 +32,7 @@ const GRAY = '\x1b[90m';
27
32
 
28
33
  function printBanner() {
29
34
  console.log(`
30
- ${CYAN}${BOLD}🪐 Everything Gemini (${GREEN}everything-gemini${CYAN}) v1.0.0${RESET}
35
+ ${CYAN}${BOLD}🪐 Everything Gemini (${GREEN}everything-gemini${CYAN}) v${VERSION}${RESET}
31
36
  ${GRAY}The open-source agent harness & multi-agent orchestrator for Google Gemini & Antigravity${RESET}
32
37
  `);
33
38
  }
@@ -38,11 +43,14 @@ function printHelp() {
38
43
  console.log(` everything-gemini <command> [options]\n`);
39
44
  console.log(`${BOLD}COMMANDS:${RESET}`);
40
45
  console.log(` ${GREEN}doctor${RESET} Inspect system, AGY surfaces, and configuration health`);
41
- console.log(` ${GREEN}install${RESET} [options] Install eagy profiles into workspace or globally`);
46
+ console.log(` ${GREEN}install${RESET} [options] Install everything-gemini profiles into workspace or globally`);
47
+ console.log(` ${GREEN}init${RESET} [options] Initialize everything-gemini in current workspace`);
42
48
  console.log(` ${GREEN}list${RESET} Show all available skills, rules, hooks, and plugins`);
43
49
  console.log(` ${GREEN}new-skill${RESET} <name> Scaffold a new progressive-disclosure skill`);
44
50
  console.log(` ${GREEN}new-agent${RESET} <name> Scaffold a new scoped subagent specification`);
45
- console.log(` ${GREEN}add${RESET} <type> <name> Add a specific skill, rule, or plugin to workspace`);
51
+ console.log(` ${GREEN}add${RESET} <type> <name> Add a specific skill, agent, or plugin to workspace`);
52
+ console.log(` ${GREEN}remove${RESET} <type> <name> Remove a specific skill, agent, or plugin from workspace`);
53
+ console.log(` ${GREEN}test-skill${RESET} <name> Validate a specific skill frontmatter & scripts`);
46
54
  console.log(` ${GREEN}validate${RESET} Run self-test on frontmatter, JSON schemas & hooks`);
47
55
  console.log(` ${GREEN}help${RESET} Show this help message\n`);
48
56
  console.log(`${BOLD}OPTIONS for 'install':${RESET}`);
@@ -141,7 +149,33 @@ function listComponents() {
141
149
  const match = content.match(/description:\s*>?-?\s*([^\n\r]+)/);
142
150
  if (match) desc = match[1].trim();
143
151
  }
144
- console.log(` ${BOLD}${skill.padEnd(24)}${RESET} ${GRAY}${desc}${RESET}`);
152
+ console.log(` ${BOLD}${skill.padEnd(28)}${RESET} ${GRAY}${desc}${RESET}`);
153
+ }
154
+ }
155
+
156
+ // Also scan plugin skills
157
+ const pluginsDirForSkills = path.join(REPO_ROOT, 'plugins');
158
+ if (fs.existsSync(pluginsDirForSkills)) {
159
+ const plugins = fs.readdirSync(pluginsDirForSkills, { withFileTypes: true })
160
+ .filter(d => d.isDirectory())
161
+ .map(d => d.name);
162
+ for (const plugin of plugins) {
163
+ const pSkillsDir = path.join(pluginsDirForSkills, plugin, 'skills');
164
+ if (fs.existsSync(pSkillsDir)) {
165
+ const pSkills = fs.readdirSync(pSkillsDir, { withFileTypes: true })
166
+ .filter(d => d.isDirectory())
167
+ .map(d => d.name);
168
+ for (const skill of pSkills) {
169
+ const skillMd = path.join(pSkillsDir, skill, 'SKILL.md');
170
+ let desc = 'No description';
171
+ if (fs.existsSync(skillMd)) {
172
+ const content = fs.readFileSync(skillMd, 'utf8');
173
+ const match = content.match(/description:\s*>?-?\s*([^\n\r]+)/);
174
+ if (match) desc = match[1].trim();
175
+ }
176
+ console.log(` ${BOLD}${skill.padEnd(28)}${RESET} ${CYAN}[${plugin}]${RESET} ${GRAY}${desc}${RESET}`);
177
+ }
178
+ }
145
179
  }
146
180
  }
147
181
 
@@ -217,7 +251,7 @@ function installProfile(profile = 'developer', isGlobal = false, customTarget =
217
251
  ? path.resolve(customTarget)
218
252
  : (isGlobal ? GLOBAL_CONFIG_DIR : AGENTS_DIR);
219
253
 
220
- console.log(`${BOLD}🚀 Installing eagy Profile: [${GREEN}${profile}${RESET}${BOLD}]${RESET}`);
254
+ console.log(`${BOLD}🚀 Installing everything-gemini Profile: [${GREEN}${profile}${RESET}${BOLD}]${RESET}`);
221
255
  console.log(`Target Directory: ${CYAN}${targetDir}${RESET}\n`);
222
256
 
223
257
  if (!fs.existsSync(targetDir)) {
@@ -472,6 +506,153 @@ Return structured report to parent agent:
472
506
  console.log(` 📄 ${targetFile}\n`);
473
507
  }
474
508
 
509
+ function addComponent(type, name) {
510
+ if (!type || !name) {
511
+ console.error(`${RED}Usage: everything-gemini add <skill|agent|plugin> <name>${RESET}`);
512
+ process.exit(1);
513
+ }
514
+
515
+ const cleanName = name.trim().toLowerCase();
516
+ const targetWorkspace = path.join(WORKSPACE_DIR, '.agents');
517
+ if (!fs.existsSync(targetWorkspace)) {
518
+ fs.mkdirSync(targetWorkspace, { recursive: true });
519
+ }
520
+
521
+ if (type === 'skill') {
522
+ const src = path.join(REPO_ROOT, 'skills', cleanName);
523
+ if (!fs.existsSync(src)) {
524
+ console.error(`${RED}Skill '${cleanName}' not found in catalog.${RESET}`);
525
+ process.exit(1);
526
+ }
527
+ const dest = path.join(targetWorkspace, 'skills', cleanName);
528
+ copyRecursiveSync(src, dest);
529
+ console.log(`${GREEN}✔ Added skill '${cleanName}' to ${dest}${RESET}`);
530
+ } else if (type === 'agent') {
531
+ const src = path.join(REPO_ROOT, 'agents', `${cleanName}.md`);
532
+ if (!fs.existsSync(src)) {
533
+ console.error(`${RED}Agent '${cleanName}' not found in catalog.${RESET}`);
534
+ process.exit(1);
535
+ }
536
+ const destDir = path.join(targetWorkspace, 'agents');
537
+ fs.mkdirSync(destDir, { recursive: true });
538
+ fs.copyFileSync(src, path.join(destDir, `${cleanName}.md`));
539
+ console.log(`${GREEN}✔ Added agent '${cleanName}' to ${destDir}${RESET}`);
540
+ } else if (type === 'plugin') {
541
+ const src = path.join(REPO_ROOT, 'plugins', cleanName);
542
+ if (!fs.existsSync(src)) {
543
+ console.error(`${RED}Plugin '${cleanName}' not found in catalog.${RESET}`);
544
+ process.exit(1);
545
+ }
546
+ const dest = path.join(targetWorkspace, 'plugins', cleanName);
547
+ copyRecursiveSync(src, dest);
548
+ console.log(`${GREEN}✔ Added plugin '${cleanName}' to ${dest}${RESET}`);
549
+ } else {
550
+ console.error(`${RED}Unknown type '${type}'. Use: skill, agent, or plugin.${RESET}`);
551
+ process.exit(1);
552
+ }
553
+ }
554
+
555
+ function removeComponent(type, name) {
556
+ if (!type || !name) {
557
+ console.error(`${RED}Usage: everything-gemini remove <skill|agent|plugin> <name>${RESET}`);
558
+ process.exit(1);
559
+ }
560
+
561
+ const cleanName = name.trim().toLowerCase();
562
+ const targetWorkspace = path.join(WORKSPACE_DIR, '.agents');
563
+
564
+ if (type === 'skill') {
565
+ const dest = path.join(targetWorkspace, 'skills', cleanName);
566
+ if (!fs.existsSync(dest)) {
567
+ console.log(`${YELLOW}Skill '${cleanName}' is not installed in ${dest}${RESET}`);
568
+ return;
569
+ }
570
+ fs.rmSync(dest, { recursive: true, force: true });
571
+ console.log(`${GREEN}✔ Removed skill '${cleanName}' from workspace.${RESET}`);
572
+ } else if (type === 'agent') {
573
+ const dest = path.join(targetWorkspace, 'agents', `${cleanName}.md`);
574
+ if (!fs.existsSync(dest)) {
575
+ console.log(`${YELLOW}Agent '${cleanName}' is not installed in ${dest}${RESET}`);
576
+ return;
577
+ }
578
+ fs.unlinkSync(dest);
579
+ console.log(`${GREEN}✔ Removed agent '${cleanName}' from workspace.${RESET}`);
580
+ } else if (type === 'plugin') {
581
+ const dest = path.join(targetWorkspace, 'plugins', cleanName);
582
+ if (!fs.existsSync(dest)) {
583
+ console.log(`${YELLOW}Plugin '${cleanName}' is not installed in ${dest}${RESET}`);
584
+ return;
585
+ }
586
+ fs.rmSync(dest, { recursive: true, force: true });
587
+ console.log(`${GREEN}✔ Removed plugin '${cleanName}' from workspace.${RESET}`);
588
+ } else {
589
+ console.error(`${RED}Unknown type '${type}'. Use: skill, agent, or plugin.${RESET}`);
590
+ process.exit(1);
591
+ }
592
+ }
593
+
594
+ function testSkill(name) {
595
+ if (!name) {
596
+ console.error(`${RED}Usage: everything-gemini test-skill <skill-name>${RESET}`);
597
+ process.exit(1);
598
+ }
599
+ const cleanName = name.trim().toLowerCase();
600
+ const skillDir = path.join(REPO_ROOT, 'skills', cleanName);
601
+ const skillMd = path.join(skillDir, 'SKILL.md');
602
+
603
+ if (!fs.existsSync(skillMd)) {
604
+ console.error(`${RED}✖ SKILL.md not found for skill '${cleanName}' at ${skillDir}${RESET}`);
605
+ process.exit(1);
606
+ }
607
+
608
+ const content = fs.readFileSync(skillMd, 'utf8');
609
+ console.log(`${BOLD}🔍 Validating skill: [${CYAN}${cleanName}${RESET}${BOLD}]...${RESET}`);
610
+
611
+ if (!content.startsWith('---')) {
612
+ console.error(` ${RED}✖ Missing YAML frontmatter start (---)${RESET}`);
613
+ process.exit(1);
614
+ }
615
+
616
+ const parts = content.split('---');
617
+ if (parts.length < 3) {
618
+ console.error(` ${RED}✖ Malformed YAML frontmatter boundary${RESET}`);
619
+ process.exit(1);
620
+ }
621
+
622
+ const frontmatter = parts[1];
623
+ const nameMatch = frontmatter.match(/name:\s*([^\n\r]+)/);
624
+ const descMatch = frontmatter.match(/description:\s*>?-?\s*([^\n\r]+)/);
625
+
626
+ if (!nameMatch) {
627
+ console.error(` ${RED}✖ Missing 'name' field in frontmatter${RESET}`);
628
+ process.exit(1);
629
+ }
630
+ console.log(` ${GREEN}✔${RESET} Name field: ${BOLD}${nameMatch[1].trim()}${RESET}`);
631
+
632
+ if (!descMatch) {
633
+ console.error(` ${RED}✖ Missing 'description' field in frontmatter${RESET}`);
634
+ process.exit(1);
635
+ }
636
+ console.log(` ${GREEN}✔${RESET} Description trigger: ${GRAY}${descMatch[1].trim()}${RESET}`);
637
+
638
+ const scriptsDir = path.join(skillDir, 'scripts');
639
+ if (fs.existsSync(scriptsDir)) {
640
+ const scripts = fs.readdirSync(scriptsDir).filter(f => f.endsWith('.sh'));
641
+ for (const s of scripts) {
642
+ const fullPath = path.join(scriptsDir, s);
643
+ const stat = fs.statSync(fullPath);
644
+ const isExec = (stat.mode & 0o111) !== 0;
645
+ if (!isExec) {
646
+ console.error(` ${RED}✖ Script ${s} is not executable. Run chmod +x${RESET}`);
647
+ process.exit(1);
648
+ }
649
+ console.log(` ${GREEN}✔${RESET} Script executable: ${s}`);
650
+ }
651
+ }
652
+
653
+ console.log(`\n${GREEN}${BOLD}✨ Skill '${cleanName}' passed all validation checks!${RESET}\n`);
654
+ }
655
+
475
656
  // CLI Argument Parsing
476
657
  const args = process.argv.slice(2);
477
658
  const command = args[0] || 'help';
@@ -489,6 +670,16 @@ switch (command) {
489
670
  case 'new-agent':
490
671
  scaffoldAgent(args[1]);
491
672
  break;
673
+ case 'add':
674
+ addComponent(args[1], args[2]);
675
+ break;
676
+ case 'remove':
677
+ removeComponent(args[1], args[2]);
678
+ break;
679
+ case 'test-skill':
680
+ testSkill(args[1]);
681
+ break;
682
+ case 'init':
492
683
  case 'install': {
493
684
  let profile = 'developer';
494
685
  let isGlobal = false;