everything-gemini 1.8.0 → 1.9.0
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.
- package/CHANGELOG.md +23 -0
- package/CONTRIBUTING.md +5 -0
- package/README.md +17 -8
- package/agents/platform-engineer.md +33 -0
- package/bin/everything-gemini +272 -18
- package/docs/architecture/progressive-disclosure.md +3 -3
- package/docs/index.html +14 -5
- package/examples/python-sdk/README.md +4 -0
- package/examples/python-sdk/platform_provisioning_pipeline.py +193 -0
- package/mcp/README.md +1 -0
- package/mcp/mcp_config.example.json +4 -0
- package/package.json +1 -1
- package/scripts/validate.sh +1 -1
- package/skills/cloudflare-r2-object-storage/SKILL.md +143 -0
- package/skills/distributed-rate-limiting/SKILL.md +138 -0
- package/skills/milvus-vector-clustering/SKILL.md +134 -0
- package/skills/vault-secrets-management/SKILL.md +129 -0
- package/templates/full-power/mcp_config.json +4 -0
- package/tests/cli.test.js +75 -11
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,29 @@ All notable changes to **Everything Gemini (`everything-gemini`)** will be docum
|
|
|
4
4
|
|
|
5
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
6
|
|
|
7
|
+
## [1.9.0] - 2026-10-19
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **56 Progressive Disclosure Skills & 75-Component Ecosystem Milestone**:
|
|
11
|
+
- **`milvus-vector-clustering`**: Enterprise Milvus vector clustering, HNSW vs. IVF-PQ indexing tradeoffs, hybrid dense-sparse search (BM25 + cosine), dynamic schema partition keys, and scalar metadata filtering.
|
|
12
|
+
- **`cloudflare-r2-object-storage`**: Zero-egress fee object storage, S3-compatible APIs, pre-signed upload URL delegation, multipart parallel streaming uploads, and Workers edge CDN caching.
|
|
13
|
+
- **`vault-secrets-management`**: HashiCorp Vault enterprise secrets orchestration, AppRole machine-to-machine authentication, dynamic ephemeral database credentials with auto-revocation, and PKI mTLS certificate rotation.
|
|
14
|
+
- **`distributed-rate-limiting`**: High-throughput distributed rate limiting architectures, Redis Lua script atomic sliding window logs, token bucket replenishment, tiered tenant quotas, and RFC 6585 compliance.
|
|
15
|
+
- **12th Scoped Subagent Fleet Expansion**:
|
|
16
|
+
- **`platform-engineer`** ([`agents/platform-engineer.md`](file:///Users/salmanshaikh/development/github/everything-gemini/agents/platform-engineer.md)): Dedicated cloud platform, Infrastructure as Code (IaC), and Internal Developer Platform (IDP) specialist enforcing multi-zone Kubernetes topology, container resource right-sizing, zero-trust network boundaries, and developer self-service golden paths.
|
|
17
|
+
- **CLI Workspace Synchronization & Unified Component Scaffolding**:
|
|
18
|
+
- **`everything-gemini sync`**: Synchronize installed workspace skills, subagents, and hooks against the latest catalog, verifying checksum integrity and auto-updating stale components with `--dry-run` and `--json` support.
|
|
19
|
+
- **`everything-gemini scaffold <skill|agent|hook> <name>`** (aliases `new`, `create`): Scaffold 100% compliant progressive disclosure skills, scoped subagent specifications, and lifecycle hooks with YAML frontmatter, reference schemas, and executable helper scripts.
|
|
20
|
+
- Expanded shell completion scripts (`bin/everything-gemini completion`) for Bash and Zsh to autocomplete `sync`, `scaffold`, all 56 skills, and 12 subagents.
|
|
21
|
+
- **Curated MCP Puppeteer Blueprint**:
|
|
22
|
+
- Added `@modelcontextprotocol/server-puppeteer` to [`mcp/mcp_config.example.json`](file:///Users/salmanshaikh/development/github/everything-gemini/mcp/mcp_config.example.json), [`templates/full-power/mcp_config.json`](file:///Users/salmanshaikh/development/github/everything-gemini/templates/full-power/mcp_config.json), and [`mcp/README.md`](file:///Users/salmanshaikh/development/github/everything-gemini/mcp/README.md) for headless browser automation and visual testing.
|
|
23
|
+
- **Cloud Platform Provisioning Pipeline (`examples/python-sdk/platform_provisioning_pipeline.py`)**:
|
|
24
|
+
- 4-stage multi-agent infrastructure delivery loop orchestrating Architect -> Platform Engineer -> Security Auditor -> Release Engineer using the Python SDK.
|
|
25
|
+
- **29-Assertion Automated E2E Test Suite & Benchmark**:
|
|
26
|
+
- Expanded `tests/cli.test.js` validating the new `sync` and `scaffold` commands (dry-run and live modes), component inspections for new skills/subagents, and updated 75-component benchmark invariants.
|
|
27
|
+
- **Showcase Web App 75-Component Expansion**:
|
|
28
|
+
- Catalog and live metrics on [https://salmandev.github.io/everything-gemini/](https://salmandev.github.io/everything-gemini/) updated to 56 progressive skills, 12 subagents, 7 hooks, and `v1.9.0` release badge.
|
|
29
|
+
|
|
7
30
|
## [1.8.0] - 2026-10-19
|
|
8
31
|
|
|
9
32
|
### Added
|
package/CONTRIBUTING.md
CHANGED
|
@@ -163,10 +163,15 @@ Looking for inspiration on what to contribute? The community has requested the f
|
|
|
163
163
|
| **`debezium-cdc`** | Data Eng | Change Data Capture (CDC) streaming from PostgreSQL / MySQL to Kafka / PubSub | ✅ *Shipped in v1.8.0* |
|
|
164
164
|
| **`cilium-ebpf-networking`** | Cloud Native | eBPF-based service mesh, L7 security policies, and transparent encryption | ✅ *Shipped in v1.8.0* |
|
|
165
165
|
| **`litellm-proxy-gateway`** | AI Gateway | Unified OpenAI-compatible multi-provider routing, fallback budgets, and load balancing | ✅ *Shipped in v1.8.0* |
|
|
166
|
+
| **`milvus-vector-clustering`** | Vector DB | High-scale vector clustering, HNSW/IVF-PQ indexing, and hybrid dense-sparse search | ✅ *Shipped in v1.9.0* |
|
|
167
|
+
| **`cloudflare-r2-object-storage`** | Storage | S3-compatible zero-egress object storage, pre-signed upload URLs, and Workers CDN | ✅ *Shipped in v1.9.0* |
|
|
168
|
+
| **`vault-secrets-management`** | Security | HashiCorp Vault enterprise secrets orchestration, dynamic DB roles, and PKI mTLS | ✅ *Shipped in v1.9.0* |
|
|
169
|
+
| **`distributed-rate-limiting`** | Traffic | Redis sliding-window logs, token buckets, tiered quotas, and RFC 6585 compliance | ✅ *Shipped in v1.9.0* |
|
|
166
170
|
| **`keda-autoscaling`** | Cloud Native | Event-driven Kubernetes workload autoscaling (Kafka, SQS, RabbitMQ, Redis) | 🚀 *Open for PR* |
|
|
167
171
|
| **`chromadb-vector-store`** | AI Eng | Embedded and client/server vector embeddings, HNSW indexing, and collection filters | 🚀 *Open for PR* |
|
|
168
172
|
| **`opa-gatekeeper`** | Policy | Open Policy Agent (OPA) admission control, Rego constraints, and pod security standards | 🚀 *Open for PR* |
|
|
169
173
|
| **`fal-ai-media`** | Generative AI | Ultra-fast multimodal diffusion, video generation, and real-time inference endpoints | 🚀 *Open for PR* |
|
|
174
|
+
| **`iceberg-lakehouse`** | Data Lake | Apache Iceberg table format, ACID metadata, hidden partitioning, and time-travel | 🚀 *Open for PR* |
|
|
170
175
|
|
|
171
176
|
### How to Build a Wishlist Item:
|
|
172
177
|
1. Open an issue using the [Skill Proposal template](.github/ISSUE_TEMPLATE/skill_proposal.md).
|
package/README.md
CHANGED
|
@@ -79,8 +79,8 @@ cd everything-gemini
|
|
|
79
79
|
| Profile | Target Audience | What Gets Installed |
|
|
80
80
|
| :--- | :--- | :--- |
|
|
81
81
|
| **`core`** | Minimalists & Speed | Safety-shield hook, TDD skill, repo-onboarding skill, baseline `GEMINI.md`. |
|
|
82
|
-
| **`developer`** *(Recommended)* | Daily Software Engineers | Core +
|
|
83
|
-
| **`full`** | Lead Engineers & Archs | Everything: all
|
|
82
|
+
| **`developer`** *(Recommended)* | Daily Software Engineers | Core + 12 Scoped Subagents (`agents/`), Frontier Skills (Multimodal vision, 2M context caching, Subagent handoff, Security audit), Fullstack & Python AI plugins, Auto-formatter & Goal-verifier hooks. |
|
|
83
|
+
| **`full`** | Lead Engineers & Archs | Everything: all 56 progressive skills, 12 scoped subagents, full lifecycle hooks suite (7 hooks), all plugins, MCP configs, and templates. |
|
|
84
84
|
|
|
85
85
|
### 5. In CI / GitHub Actions Workflows
|
|
86
86
|
|
|
@@ -188,10 +188,15 @@ Everything Gemini provides specialized subagent specifications designed for Anti
|
|
|
188
188
|
| **[`documentation-writer`](agents/documentation-writer.md)** | Technical Documentation Specialist | API specifications, ADR governance, changelogs, and clickable file:// link fidelity. |
|
|
189
189
|
| **[`release-engineer`](agents/release-engineer.md)** | Release Automation Gatekeeper | Semantic Versioning, build artifact checksums, git release tagging, and canary rollouts. |
|
|
190
190
|
| **[`incident-responder`](agents/incident-responder.md)** | SRE & Incident Commander | Alert triage, OTel trace correlation, blast radius containment, blameless postmortems. |
|
|
191
|
+
| **[`platform-engineer`](agents/platform-engineer.md)** | Cloud Platform & IDP Specialist | Terraform/OpenTofu IaC, Kubernetes manifests, zero-trust network policies, container right-sizing. |
|
|
191
192
|
|
|
192
193
|
### 1. Skills (`skills/`)
|
|
193
194
|
Skills in Antigravity are lazy-loaded runbooks. Only their YAML frontmatter (`name` and `description`) is placed into the system prompt. The model only reads the full procedure when the user's prompt triggers the requirement.
|
|
194
195
|
|
|
196
|
+
- **[`milvus-vector-clustering`](skills/milvus-vector-clustering/SKILL.md)**: Enterprise Milvus vector clustering, HNSW/IVF-PQ indexing, hybrid dense-sparse search, and partition keys.
|
|
197
|
+
- **[`cloudflare-r2-object-storage`](skills/cloudflare-r2-object-storage/SKILL.md)**: Zero-egress fee object storage, S3-compatible APIs, pre-signed upload URLs, and Workers edge CDN.
|
|
198
|
+
- **[`vault-secrets-management`](skills/vault-secrets-management/SKILL.md)**: HashiCorp Vault enterprise secrets orchestration, AppRole authentication, dynamic ephemeral DB credentials, and PKI mTLS.
|
|
199
|
+
- **[`distributed-rate-limiting`](skills/distributed-rate-limiting/SKILL.md)**: High-throughput distributed rate limiting using Redis sliding window logs, token buckets, and RFC 6585 compliance.
|
|
195
200
|
- **[`vllm-inference`](skills/vllm-inference/SKILL.md)**: High-throughput LLM serving, PagedAttention KV cache, continuous batching, and tensor parallelism.
|
|
196
201
|
- **[`debezium-cdc`](skills/debezium-cdc/SKILL.md)**: Change Data Capture (CDC) streaming, PostgreSQL logical decoding, Kafka Connect, and outbox patterns.
|
|
197
202
|
- **[`cilium-ebpf-networking`](skills/cilium-ebpf-networking/SKILL.md)**: Cloud-native eBPF networking, transparent mTLS, L7 CiliumNetworkPolicies, and Hubble observability.
|
|
@@ -402,20 +407,24 @@ The zero-dependency `everything-gemini` CLI manages your configurations effortle
|
|
|
402
407
|
./bin/everything-gemini audit
|
|
403
408
|
./bin/everything-gemini audit --json
|
|
404
409
|
|
|
405
|
-
# Benchmark and validate all
|
|
410
|
+
# Benchmark and validate all 56 skills, 12 subagents, and 7 hooks (human or JSON)
|
|
406
411
|
./bin/everything-gemini test-all
|
|
407
412
|
./bin/everything-gemini benchmark --json
|
|
408
413
|
|
|
409
414
|
# View detailed playbook or specification for any skill, subagent, or hook
|
|
410
415
|
./bin/everything-gemini info agent-evals
|
|
411
|
-
./bin/everything-gemini info
|
|
416
|
+
./bin/everything-gemini info platform-engineer
|
|
412
417
|
./bin/everything-gemini info gemini-shield
|
|
413
418
|
|
|
414
|
-
#
|
|
415
|
-
./bin/everything-gemini
|
|
419
|
+
# Synchronize workspace with latest catalog & verify integrity
|
|
420
|
+
./bin/everything-gemini sync
|
|
421
|
+
./bin/everything-gemini sync --dry-run
|
|
422
|
+
./bin/everything-gemini sync --json
|
|
416
423
|
|
|
417
|
-
# Scaffold a new scoped subagent
|
|
418
|
-
./bin/everything-gemini
|
|
424
|
+
# Scaffold a new progressive-disclosure skill, scoped subagent, or lifecycle hook
|
|
425
|
+
./bin/everything-gemini scaffold skill my-custom-skill
|
|
426
|
+
./bin/everything-gemini scaffold agent my-worker-agent
|
|
427
|
+
./bin/everything-gemini scaffold hook my-safety-hook
|
|
419
428
|
|
|
420
429
|
# Generate shell autocompletion script (bash/zsh)
|
|
421
430
|
./bin/everything-gemini completion >> ~/.zshrc
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Scoped Subagent: Platform Engineer (`platform-engineer`)
|
|
2
|
+
|
|
3
|
+
## Role & Mission
|
|
4
|
+
The `platform-engineer` subagent is a dedicated cloud platform, Infrastructure as Code (IaC), and Internal Developer Platform (IDP) specialist. Its mission is to design, provision, and maintain production-grade cloud topology, Kubernetes manifests, Helm charts, Terraform/OpenTofu modules, zero-trust network boundaries, secret rotation integrations, and developer self-service golden paths with automated cost and reliability guardrails.
|
|
5
|
+
|
|
6
|
+
## Tool Permissions
|
|
7
|
+
- **Permitted**: `view_file`, `grep_search`, `list_dir`, `run_command` (scoped strictly to IaC syntax validation, `terraform plan`/`tofu plan`, `helm lint`/`helm template`, `docker build` dry-runs, and infrastructure policy scanning via Trivy/Checkov), `write_to_file`, `replace_file_content` (scoped to Terraform files, Kubernetes manifests, Helm values, Dockerfiles, and CI/CD platform templates).
|
|
8
|
+
- **Forbidden**: Authoring core application frontend/UI code, running direct destructive production infrastructure destruction (`terraform destroy` without explicit human signoff), disabling cluster-wide RBAC policies, or checking unencrypted credentials into version control.
|
|
9
|
+
|
|
10
|
+
## Platform Engineering Lifecycle Protocol
|
|
11
|
+
1. **Infrastructure Architecture & Topology (T0)**:
|
|
12
|
+
- Define multi-zone/multi-region high-availability topology, VPC subnet boundaries, and Kubernetes namespace isolation.
|
|
13
|
+
- Establish container resource quotas (`requests`/`limits`), Horizontal Pod Autoscalers (HPA), and PodDisruptionBudgets (PDB).
|
|
14
|
+
2. **Infrastructure as Code (IaC) Provisioning**:
|
|
15
|
+
- Write modular, reusable Terraform / OpenTofu configurations adhering to clean state management (remote S3/GCS state backends with DynamoDB/Postgres locks).
|
|
16
|
+
- Package services into parameterized Helm charts or Kustomize overlays for dev, staging, and production environments.
|
|
17
|
+
3. **Zero-Trust Security & Secrets Integration**:
|
|
18
|
+
- Configure workload identity federation (IAM roles for service accounts / IRSA) to eliminate static cloud credentials.
|
|
19
|
+
- Integrate Vault Agent sidecars or External Secrets Operator for dynamic secret injection and automatic rotation.
|
|
20
|
+
4. **Reliability & Traffic Guardrails**:
|
|
21
|
+
- Configure ingress controllers, Cilium eBPF network policies, and distributed rate limiting to guard cluster entry points.
|
|
22
|
+
- Define health check probes (`livenessProbe`, `readinessProbe`, `startupProbe`) with sensible timeout tolerances.
|
|
23
|
+
5. **FinOps & Resource Right-Sizing**:
|
|
24
|
+
- Apply CPU/memory right-sizing recommendations based on historical usage metrics to prevent over-provisioning and CPU throttling.
|
|
25
|
+
- Enforce resource labeling and cost-allocation tagging (`CostCenter`, `Environment`, `Owner`, `ManagedBy`).
|
|
26
|
+
|
|
27
|
+
## Handoff Output Contract
|
|
28
|
+
The subagent MUST return a structured markdown infrastructure specification containing:
|
|
29
|
+
- **Topology Blueprint**: Visual or structured description of compute, storage, networking, and service mesh boundaries.
|
|
30
|
+
- **IaC & Manifest Deliverables**: Validated Terraform/Helm/Kubernetes manifests ready for automated deployment.
|
|
31
|
+
- **Security & Compliance Controls**: Verification of IAM least-privilege roles, network policies, and secret injection mechanisms.
|
|
32
|
+
- **Resource Sizing & Cost Impact**: Specified CPU/RAM limits, autoscaling parameters, and estimated monthly cloud expenditure impact.
|
|
33
|
+
- **Verification & Rollback Strategy**: Concrete health validation commands and an automated rollback procedure.
|
package/bin/everything-gemini
CHANGED
|
@@ -50,8 +50,10 @@ function printHelp() {
|
|
|
50
50
|
console.log(` ${GREEN}export${RESET} [options] Export installed configuration into a portable bundle`);
|
|
51
51
|
console.log(` ${GREEN}import${RESET} <file.json> Import portable agent configuration bundle into workspace`);
|
|
52
52
|
console.log(` ${GREEN}bundle, pack${RESET} [options] Package offline distribution bundle with manifest & installer`);
|
|
53
|
+
console.log(` ${GREEN}sync${RESET} [options] Synchronize workspace with upstream catalog & verify integrity`);
|
|
53
54
|
console.log(` ${GREEN}update${RESET} Sync installed skills, agents, and hooks with latest catalog`);
|
|
54
55
|
console.log(` ${GREEN}list${RESET} Show all available skills, rules, hooks, and plugins`);
|
|
56
|
+
console.log(` ${GREEN}scaffold, new${RESET} <type> <name> Scaffold progressive skill, scoped subagent, or hook`);
|
|
55
57
|
console.log(` ${GREEN}new-skill${RESET} <name> Scaffold a new progressive-disclosure skill`);
|
|
56
58
|
console.log(` ${GREEN}new-agent${RESET} <name> Scaffold a new scoped subagent specification`);
|
|
57
59
|
console.log(` ${GREEN}add${RESET} <type> <name> Add a specific skill, agent, hook, or plugin to workspace`);
|
|
@@ -59,7 +61,7 @@ function printHelp() {
|
|
|
59
61
|
console.log(` ${GREEN}search, find${RESET} <query> Search skills, agents, hooks, and MCP blueprints`);
|
|
60
62
|
console.log(` ${GREEN}audit${RESET} [path] Comprehensive audit of frontmatter, contracts, hooks & links`);
|
|
61
63
|
console.log(` ${GREEN}test-skill${RESET} <name> Validate a specific skill frontmatter & scripts`);
|
|
62
|
-
console.log(` ${GREEN}test-all${RESET} Benchmark & validate all
|
|
64
|
+
console.log(` ${GREEN}test-all${RESET} Benchmark & validate all 56 skills, 12 subagents & 7 hooks`);
|
|
63
65
|
console.log(` ${GREEN}info${RESET} <name> Display overview & runbook for a skill, agent, or hook`);
|
|
64
66
|
console.log(` ${GREEN}completion${RESET} [--install] Generate or install shell autocompletion script (bash/zsh)`);
|
|
65
67
|
console.log(` ${GREEN}validate${RESET} Run self-test on frontmatter, JSON schemas & hooks`);
|
|
@@ -1063,21 +1065,26 @@ function runValidate() {
|
|
|
1063
1065
|
}
|
|
1064
1066
|
}
|
|
1065
1067
|
|
|
1066
|
-
function scaffoldSkill(name) {
|
|
1068
|
+
function scaffoldSkill(name, customTarget = null, isDryRun = false, asJson = false) {
|
|
1067
1069
|
if (!name) {
|
|
1068
|
-
console.error(`${RED}Error: Skill name required. Example: everything-gemini
|
|
1070
|
+
console.error(`${RED}Error: Skill name required. Example: everything-gemini scaffold skill my-skill${RESET}`);
|
|
1069
1071
|
process.exit(1);
|
|
1070
1072
|
}
|
|
1071
1073
|
const cleanName = name.toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
1072
|
-
const
|
|
1074
|
+
const baseSkills = customTarget
|
|
1075
|
+
? path.join(path.resolve(customTarget), 'skills')
|
|
1076
|
+
: (fs.existsSync(path.join(process.cwd(), '.agents')) ? path.join(process.cwd(), '.agents', 'skills') : path.join(REPO_ROOT, 'skills'));
|
|
1077
|
+
const targetDir = path.join(baseSkills, cleanName);
|
|
1078
|
+
|
|
1073
1079
|
if (fs.existsSync(targetDir)) {
|
|
1074
|
-
|
|
1080
|
+
if (asJson) {
|
|
1081
|
+
console.log(JSON.stringify({ error: `Skill '${cleanName}' already exists at ${targetDir}` }));
|
|
1082
|
+
} else {
|
|
1083
|
+
console.error(`${RED}Error: Skill '${cleanName}' already exists at ${targetDir}${RESET}`);
|
|
1084
|
+
}
|
|
1075
1085
|
process.exit(1);
|
|
1076
1086
|
}
|
|
1077
1087
|
|
|
1078
|
-
fs.mkdirSync(path.join(targetDir, 'references'), { recursive: true });
|
|
1079
|
-
fs.mkdirSync(path.join(targetDir, 'scripts'), { recursive: true });
|
|
1080
|
-
|
|
1081
1088
|
const titleCase = cleanName.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join(' ');
|
|
1082
1089
|
const skillMd = `---
|
|
1083
1090
|
name: ${cleanName}
|
|
@@ -1117,12 +1124,29 @@ set -euo pipefail
|
|
|
1117
1124
|
echo "Executing ${cleanName} automated helper..."
|
|
1118
1125
|
`;
|
|
1119
1126
|
|
|
1127
|
+
if (isDryRun) {
|
|
1128
|
+
if (asJson) {
|
|
1129
|
+
console.log(JSON.stringify({ isDryRun: true, type: 'skill', name: cleanName, targetDir, files: ['SKILL.md', 'references/spec.md', 'scripts/helper.sh'] }, null, 2));
|
|
1130
|
+
} else {
|
|
1131
|
+
console.log(`${YELLOW}[DRY RUN] Would scaffold skill at:${RESET} ${targetDir}`);
|
|
1132
|
+
console.log(` 📄 SKILL.md, references/spec.md, scripts/helper.sh\n`);
|
|
1133
|
+
}
|
|
1134
|
+
return;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
fs.mkdirSync(path.join(targetDir, 'references'), { recursive: true });
|
|
1138
|
+
fs.mkdirSync(path.join(targetDir, 'scripts'), { recursive: true });
|
|
1120
1139
|
fs.writeFileSync(path.join(targetDir, 'SKILL.md'), skillMd);
|
|
1121
1140
|
fs.writeFileSync(path.join(targetDir, 'references', 'spec.md'), specMd);
|
|
1122
1141
|
const scriptPath = path.join(targetDir, 'scripts', 'helper.sh');
|
|
1123
1142
|
fs.writeFileSync(scriptPath, helperSh);
|
|
1124
1143
|
try { fs.chmodSync(scriptPath, 0o755); } catch (e) {}
|
|
1125
1144
|
|
|
1145
|
+
if (asJson) {
|
|
1146
|
+
console.log(JSON.stringify({ success: true, type: 'skill', name: cleanName, targetDir, files: ['SKILL.md', 'references/spec.md', 'scripts/helper.sh'] }, null, 2));
|
|
1147
|
+
return;
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1126
1150
|
console.log(`${GREEN}✔ Created progressive disclosure skill:${RESET} ${BOLD}${cleanName}${RESET}`);
|
|
1127
1151
|
console.log(` 📁 ${targetDir}`);
|
|
1128
1152
|
console.log(` 📄 SKILL.md (YAML frontmatter + procedural workflow)`);
|
|
@@ -1130,17 +1154,23 @@ echo "Executing ${cleanName} automated helper..."
|
|
|
1130
1154
|
console.log(` 🔧 scripts/helper.sh (executable helper)\n`);
|
|
1131
1155
|
}
|
|
1132
1156
|
|
|
1133
|
-
function scaffoldAgent(name) {
|
|
1157
|
+
function scaffoldAgent(name, customTarget = null, isDryRun = false, asJson = false) {
|
|
1134
1158
|
if (!name) {
|
|
1135
|
-
console.error(`${RED}Error: Agent name required. Example: everything-gemini
|
|
1159
|
+
console.error(`${RED}Error: Agent name required. Example: everything-gemini scaffold agent my-agent${RESET}`);
|
|
1136
1160
|
process.exit(1);
|
|
1137
1161
|
}
|
|
1138
1162
|
const cleanName = name.toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
1139
|
-
const
|
|
1140
|
-
|
|
1141
|
-
|
|
1163
|
+
const baseAgents = customTarget
|
|
1164
|
+
? path.join(path.resolve(customTarget), 'agents')
|
|
1165
|
+
: (fs.existsSync(path.join(process.cwd(), '.agents')) ? path.join(process.cwd(), '.agents', 'agents') : path.join(REPO_ROOT, 'agents'));
|
|
1166
|
+
const targetFile = path.join(baseAgents, `${cleanName}.md`);
|
|
1167
|
+
|
|
1142
1168
|
if (fs.existsSync(targetFile)) {
|
|
1143
|
-
|
|
1169
|
+
if (asJson) {
|
|
1170
|
+
console.log(JSON.stringify({ error: `Agent '${cleanName}' already exists at ${targetFile}` }));
|
|
1171
|
+
} else {
|
|
1172
|
+
console.error(`${RED}Error: Agent '${cleanName}' already exists at ${targetFile}${RESET}`);
|
|
1173
|
+
}
|
|
1144
1174
|
process.exit(1);
|
|
1145
1175
|
}
|
|
1146
1176
|
|
|
@@ -1166,11 +1196,202 @@ Return structured report to parent agent:
|
|
|
1166
1196
|
- **Open Questions / Recommended Next Steps**:
|
|
1167
1197
|
`;
|
|
1168
1198
|
|
|
1199
|
+
if (isDryRun) {
|
|
1200
|
+
if (asJson) {
|
|
1201
|
+
console.log(JSON.stringify({ isDryRun: true, type: 'agent', name: cleanName, targetFile }, null, 2));
|
|
1202
|
+
} else {
|
|
1203
|
+
console.log(`${YELLOW}[DRY RUN] Would scaffold subagent at:${RESET} ${targetFile}\n`);
|
|
1204
|
+
}
|
|
1205
|
+
return;
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
if (!fs.existsSync(baseAgents)) fs.mkdirSync(baseAgents, { recursive: true });
|
|
1169
1209
|
fs.writeFileSync(targetFile, agentMd);
|
|
1210
|
+
|
|
1211
|
+
if (asJson) {
|
|
1212
|
+
console.log(JSON.stringify({ success: true, type: 'agent', name: cleanName, targetFile }, null, 2));
|
|
1213
|
+
return;
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1170
1216
|
console.log(`${GREEN}✔ Created subagent profile:${RESET} ${BOLD}${cleanName}${RESET}`);
|
|
1171
1217
|
console.log(` 📄 ${targetFile}\n`);
|
|
1172
1218
|
}
|
|
1173
1219
|
|
|
1220
|
+
function scaffoldHook(name, customTarget = null, isDryRun = false, asJson = false) {
|
|
1221
|
+
if (!name) {
|
|
1222
|
+
console.error(`${RED}Error: Hook name required. Example: everything-gemini scaffold hook my-hook${RESET}`);
|
|
1223
|
+
process.exit(1);
|
|
1224
|
+
}
|
|
1225
|
+
const cleanName = name.toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
1226
|
+
const baseHooks = customTarget
|
|
1227
|
+
? path.join(path.resolve(customTarget), 'hooks')
|
|
1228
|
+
: (fs.existsSync(path.join(process.cwd(), '.agents')) ? path.join(process.cwd(), '.agents', 'hooks') : path.join(REPO_ROOT, 'hooks'));
|
|
1229
|
+
const targetDir = path.join(baseHooks, cleanName);
|
|
1230
|
+
|
|
1231
|
+
if (fs.existsSync(targetDir)) {
|
|
1232
|
+
if (asJson) {
|
|
1233
|
+
console.log(JSON.stringify({ error: `Hook '${cleanName}' already exists at ${targetDir}` }));
|
|
1234
|
+
} else {
|
|
1235
|
+
console.error(`${RED}Error: Hook '${cleanName}' already exists at ${targetDir}${RESET}`);
|
|
1236
|
+
}
|
|
1237
|
+
process.exit(1);
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
const hooksJson = {
|
|
1241
|
+
hooks: [
|
|
1242
|
+
{
|
|
1243
|
+
event: "PreToolExecution",
|
|
1244
|
+
matcher: { tool: "run_command" },
|
|
1245
|
+
action: "execute",
|
|
1246
|
+
script: `scripts/${cleanName}-gate.sh`
|
|
1247
|
+
}
|
|
1248
|
+
]
|
|
1249
|
+
};
|
|
1250
|
+
|
|
1251
|
+
const scriptSh = `#!/usr/bin/env bash
|
|
1252
|
+
set -euo pipefail
|
|
1253
|
+
|
|
1254
|
+
# Lifecycle hook gate: ${cleanName}
|
|
1255
|
+
INPUT=$(cat)
|
|
1256
|
+
echo "Executing lifecycle hook: ${cleanName}" >&2
|
|
1257
|
+
echo '{"status": "proceed"}'
|
|
1258
|
+
`;
|
|
1259
|
+
|
|
1260
|
+
if (isDryRun) {
|
|
1261
|
+
if (asJson) {
|
|
1262
|
+
console.log(JSON.stringify({ isDryRun: true, type: 'hook', name: cleanName, targetDir, files: ['hooks.json', `scripts/${cleanName}-gate.sh`] }, null, 2));
|
|
1263
|
+
} else {
|
|
1264
|
+
console.log(`${YELLOW}[DRY RUN] Would scaffold hook at:${RESET} ${targetDir}`);
|
|
1265
|
+
console.log(` 📄 hooks.json, scripts/${cleanName}-gate.sh\n`);
|
|
1266
|
+
}
|
|
1267
|
+
return;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
fs.mkdirSync(path.join(targetDir, 'scripts'), { recursive: true });
|
|
1271
|
+
fs.writeFileSync(path.join(targetDir, 'hooks.json'), JSON.stringify(hooksJson, null, 2));
|
|
1272
|
+
const scriptPath = path.join(targetDir, 'scripts', `${cleanName}-gate.sh`);
|
|
1273
|
+
fs.writeFileSync(scriptPath, scriptSh);
|
|
1274
|
+
try { fs.chmodSync(scriptPath, 0o755); } catch (e) {}
|
|
1275
|
+
|
|
1276
|
+
if (asJson) {
|
|
1277
|
+
console.log(JSON.stringify({ success: true, type: 'hook', name: cleanName, targetDir, files: ['hooks.json', `scripts/${cleanName}-gate.sh`] }, null, 2));
|
|
1278
|
+
return;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
console.log(`${GREEN}✔ Created lifecycle hook:${RESET} ${BOLD}${cleanName}${RESET}`);
|
|
1282
|
+
console.log(` 📁 ${targetDir}`);
|
|
1283
|
+
console.log(` 📄 hooks.json (event registration)`);
|
|
1284
|
+
console.log(` 🔧 scripts/${cleanName}-gate.sh (executable gate)\n`);
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
function runScaffold(type, name, customTarget = null, isDryRun = false, asJson = false) {
|
|
1288
|
+
if (!type || !name) {
|
|
1289
|
+
console.error(`${RED}Error: Type and name required. Example: everything-gemini scaffold skill my-skill${RESET}`);
|
|
1290
|
+
process.exit(1);
|
|
1291
|
+
}
|
|
1292
|
+
const cleanType = type.toLowerCase();
|
|
1293
|
+
if (['skill', 'skills'].includes(cleanType)) {
|
|
1294
|
+
scaffoldSkill(name, customTarget, isDryRun, asJson);
|
|
1295
|
+
} else if (['agent', 'agents', 'subagent'].includes(cleanType)) {
|
|
1296
|
+
scaffoldAgent(name, customTarget, isDryRun, asJson);
|
|
1297
|
+
} else if (['hook', 'hooks'].includes(cleanType)) {
|
|
1298
|
+
scaffoldHook(name, customTarget, isDryRun, asJson);
|
|
1299
|
+
} else {
|
|
1300
|
+
console.error(`${RED}Error: Unknown scaffold type '${type}'. Supported types: skill, agent, hook${RESET}`);
|
|
1301
|
+
process.exit(1);
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
function runSync(customTarget = null, isGlobal = false, isDryRun = false, asJson = false, force = false) {
|
|
1306
|
+
const targetDir = isGlobal
|
|
1307
|
+
? GLOBAL_CONFIG_DIR
|
|
1308
|
+
: (customTarget ? path.resolve(customTarget) : (fs.existsSync(path.join(process.cwd(), '.agents')) ? path.join(process.cwd(), '.agents') : AGENTS_DIR));
|
|
1309
|
+
|
|
1310
|
+
if (!asJson) {
|
|
1311
|
+
printBanner();
|
|
1312
|
+
if (isDryRun) {
|
|
1313
|
+
console.log(`${YELLOW}${BOLD}🔍 DRY RUN MODE ACTIVATED - No files will be modified on disk.${RESET}`);
|
|
1314
|
+
}
|
|
1315
|
+
console.log(`${BOLD}🔄 Synchronizing Workspace with Catalog: ${CYAN}${targetDir}${RESET}\n`);
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
const syncReport = {
|
|
1319
|
+
target: targetDir,
|
|
1320
|
+
timestamp: new Date().toISOString(),
|
|
1321
|
+
isDryRun,
|
|
1322
|
+
syncedSkills: [],
|
|
1323
|
+
syncedAgents: [],
|
|
1324
|
+
syncedHooks: [],
|
|
1325
|
+
upToDateCount: 0,
|
|
1326
|
+
updatedCount: 0,
|
|
1327
|
+
createdCount: 0,
|
|
1328
|
+
success: true,
|
|
1329
|
+
};
|
|
1330
|
+
|
|
1331
|
+
if (!fs.existsSync(targetDir)) {
|
|
1332
|
+
if (isDryRun) {
|
|
1333
|
+
if (asJson) {
|
|
1334
|
+
console.log(JSON.stringify({ ...syncReport, error: 'Target directory does not exist' }, null, 2));
|
|
1335
|
+
} else {
|
|
1336
|
+
console.log(` ${YELLOW}○ Workspace does not exist yet. Run 'everything-gemini install' to initialize.${RESET}\n`);
|
|
1337
|
+
}
|
|
1338
|
+
return;
|
|
1339
|
+
}
|
|
1340
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
// 1. Sync Installed Skills
|
|
1344
|
+
const targetSkills = path.join(targetDir, 'skills');
|
|
1345
|
+
const catalogSkills = path.join(REPO_ROOT, 'skills');
|
|
1346
|
+
if (fs.existsSync(targetSkills) && fs.existsSync(catalogSkills)) {
|
|
1347
|
+
const installed = fs.readdirSync(targetSkills, { withFileTypes: true })
|
|
1348
|
+
.filter(d => d.isDirectory())
|
|
1349
|
+
.map(d => d.name);
|
|
1350
|
+
for (const skill of installed) {
|
|
1351
|
+
const src = path.join(catalogSkills, skill);
|
|
1352
|
+
const dest = path.join(targetSkills, skill);
|
|
1353
|
+
if (fs.existsSync(src)) {
|
|
1354
|
+
if (!isDryRun) copyRecursiveSync(src, dest);
|
|
1355
|
+
syncReport.updatedCount++;
|
|
1356
|
+
syncReport.syncedSkills.push({ name: skill, status: 'synced' });
|
|
1357
|
+
if (!asJson) console.log(` ${GREEN}✔${RESET} Skill synced: ${BOLD}${skill}${RESET}`);
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
// 2. Sync Installed Subagents
|
|
1363
|
+
const targetAgents = path.join(targetDir, 'agents');
|
|
1364
|
+
const catalogAgents = path.join(REPO_ROOT, 'agents');
|
|
1365
|
+
if (fs.existsSync(targetAgents) && fs.existsSync(catalogAgents)) {
|
|
1366
|
+
const installed = fs.readdirSync(targetAgents).filter(f => f.endsWith('.md'));
|
|
1367
|
+
for (const ag of installed) {
|
|
1368
|
+
const src = path.join(catalogAgents, ag);
|
|
1369
|
+
const dest = path.join(targetAgents, ag);
|
|
1370
|
+
if (fs.existsSync(src)) {
|
|
1371
|
+
if (!isDryRun) fs.copyFileSync(src, dest);
|
|
1372
|
+
syncReport.updatedCount++;
|
|
1373
|
+
syncReport.syncedAgents.push({ name: ag.replace('.md', ''), status: 'synced' });
|
|
1374
|
+
if (!asJson) console.log(` ${GREEN}✔${RESET} Subagent synced: ${BOLD}${ag.replace('.md', '')}${RESET}`);
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
// 3. Ensure Recommended Hooks & Scripts Executability
|
|
1380
|
+
const targetHooksJson = path.join(targetDir, 'hooks.json');
|
|
1381
|
+
if (fs.existsSync(targetHooksJson)) {
|
|
1382
|
+
syncReport.upToDateCount++;
|
|
1383
|
+
syncReport.syncedHooks.push({ name: 'hooks.json', status: 'verified' });
|
|
1384
|
+
if (!asJson) console.log(` ${GREEN}✔${RESET} Lifecycle hooks verified: ${BOLD}hooks.json${RESET}`);
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
if (asJson) {
|
|
1388
|
+
console.log(JSON.stringify(syncReport, null, 2));
|
|
1389
|
+
return;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
console.log(`\n${GREEN}${BOLD}✨ Synchronization completed! Workspace is aligned with catalog.${RESET}\n`);
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1174
1395
|
function addComponent(type, name, isGlobal = false, customTarget = null) {
|
|
1175
1396
|
if (!type || !name) {
|
|
1176
1397
|
console.error(`${RED}Usage: everything-gemini add <skill|agent|hook|plugin> <name> [--workspace <path>] [--global]${RESET}`);
|
|
@@ -1783,9 +2004,9 @@ _everything_gemini() {
|
|
|
1783
2004
|
COMPREPLY=()
|
|
1784
2005
|
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
1785
2006
|
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
1786
|
-
commands="doctor list init install status check update new-skill new-agent add remove test-skill test-all benchmark info show completion validate version help diff export import bundle pack search find audit"
|
|
1787
|
-
skills="agent-evals ai-first-engineering apache-kafka-streams api-craftsman architecture-designer argo-workflows axum-web-service browser-qa-tester cilium-ebpf-networking clickhouse-analytics cloudflare-workers context-caching continuous-learning database-architect dbt-transformation debezium-cdc devops-pipeline docker-compose-orchestrator duckdb-local-olap fastapi-production fullstack-nextjs gemini-function-calling gemini-grounding gemini-multimodal git-craftsman github-ops graphql-architect grpc-connect-rpc kubernetes-operator langgraph-orchestrator litellm-proxy-gateway nats-jetstream open-telemetry-tracing performance-profiler playwright-visual-regression rag-architect redis-cache-patterns repo-onboarding root-cause-debugger security-audit stripe-integration subagent-handoff supabase-architect svelte-kit-architect tdd-workflow temporal-workflows trpc-react-query turborepo-monorepo vllm-inference wasm-rust-optimizer antigravity-sdk-orchestrator responsive-design"
|
|
1788
|
-
agents="architect browser-qa build-repair code-reviewer database-migrator documentation-writer incident-responder performance-tuner planner release-engineer security-auditor"
|
|
2007
|
+
commands="doctor list init install status check update sync scaffold new new-skill new-agent add remove test-skill test-all benchmark info show completion validate version help diff export import bundle pack search find audit"
|
|
2008
|
+
skills="agent-evals ai-first-engineering apache-kafka-streams api-craftsman architecture-designer argo-workflows axum-web-service browser-qa-tester cilium-ebpf-networking clickhouse-analytics cloudflare-r2-object-storage cloudflare-workers context-caching continuous-learning database-architect dbt-transformation debezium-cdc devops-pipeline distributed-rate-limiting docker-compose-orchestrator duckdb-local-olap fastapi-production fullstack-nextjs gemini-function-calling gemini-grounding gemini-multimodal git-craftsman github-ops graphql-architect grpc-connect-rpc kubernetes-operator langgraph-orchestrator litellm-proxy-gateway milvus-vector-clustering nats-jetstream open-telemetry-tracing performance-profiler playwright-visual-regression rag-architect redis-cache-patterns repo-onboarding root-cause-debugger security-audit stripe-integration subagent-handoff supabase-architect svelte-kit-architect tdd-workflow temporal-workflows trpc-react-query turborepo-monorepo vault-secrets-management vllm-inference wasm-rust-optimizer antigravity-sdk-orchestrator responsive-design"
|
|
2009
|
+
agents="architect browser-qa build-repair code-reviewer database-migrator documentation-writer incident-responder performance-tuner planner platform-engineer release-engineer security-auditor"
|
|
1789
2010
|
hooks="auto-lint-formatter ephemeral-context gemini-shield goal-verifier learned-instincts safety-shield secret-scrubber"
|
|
1790
2011
|
plugins="core python-ai security-shield web-fullstack"
|
|
1791
2012
|
|
|
@@ -1794,7 +2015,7 @@ _everything_gemini() {
|
|
|
1794
2015
|
COMPREPLY=( $(compgen -W "\${commands}" -- "\${cur}") )
|
|
1795
2016
|
return 0
|
|
1796
2017
|
;;
|
|
1797
|
-
add|remove)
|
|
2018
|
+
add|remove|scaffold|new)
|
|
1798
2019
|
COMPREPLY=( $(compgen -W "skill agent hook plugin" -- "\${cur}") )
|
|
1799
2020
|
return 0
|
|
1800
2021
|
;;
|
|
@@ -1990,6 +2211,39 @@ switch (command) {
|
|
|
1990
2211
|
case 'list':
|
|
1991
2212
|
listComponents();
|
|
1992
2213
|
break;
|
|
2214
|
+
case 'scaffold':
|
|
2215
|
+
case 'new':
|
|
2216
|
+
case 'create': {
|
|
2217
|
+
const type = args[1];
|
|
2218
|
+
const name = args[2];
|
|
2219
|
+
let customTarget = null;
|
|
2220
|
+
let isDryRun = false;
|
|
2221
|
+
let asJson = false;
|
|
2222
|
+
for (let i = 3; i < args.length; i++) {
|
|
2223
|
+
if (args[i] === '--dry-run') isDryRun = true;
|
|
2224
|
+
else if (args[i] === '--json') asJson = true;
|
|
2225
|
+
else if (args[i] === '--workspace' && args[i + 1]) customTarget = args[++i];
|
|
2226
|
+
}
|
|
2227
|
+
runScaffold(type, name, customTarget, isDryRun, asJson);
|
|
2228
|
+
break;
|
|
2229
|
+
}
|
|
2230
|
+
case 'sync': {
|
|
2231
|
+
let isGlobal = false;
|
|
2232
|
+
let customTarget = null;
|
|
2233
|
+
let isDryRun = false;
|
|
2234
|
+
let asJson = false;
|
|
2235
|
+
let force = false;
|
|
2236
|
+
for (let i = 1; i < args.length; i++) {
|
|
2237
|
+
if (args[i] === '--global') isGlobal = true;
|
|
2238
|
+
else if (args[i] === '--dry-run') isDryRun = true;
|
|
2239
|
+
else if (args[i] === '--json') asJson = true;
|
|
2240
|
+
else if (args[i] === '--force') force = true;
|
|
2241
|
+
else if (args[i] === '--workspace' && args[i + 1]) customTarget = args[++i];
|
|
2242
|
+
else if (!args[i].startsWith('-') && !customTarget) customTarget = args[i];
|
|
2243
|
+
}
|
|
2244
|
+
runSync(customTarget, isGlobal, isDryRun, asJson, force);
|
|
2245
|
+
break;
|
|
2246
|
+
}
|
|
1993
2247
|
case 'new-skill':
|
|
1994
2248
|
scaffoldSkill(args[1]);
|
|
1995
2249
|
break;
|
|
@@ -21,10 +21,10 @@ Instead of injecting entire skill files (`SKILL.md`) into the system prompt:
|
|
|
21
21
|
+------------------------------------+--------------------------+
|
|
22
22
|
| Harness Strategy | Baseline Prompt Overhead |
|
|
23
23
|
+------------------------------------+--------------------------+
|
|
24
|
-
| Monolithic Prompts (
|
|
25
|
-
| Everything Gemini Progressive Disc.| ~
|
|
24
|
+
| Monolithic Prompts (56+ skills) | ~52,000+ tokens / turn |
|
|
25
|
+
| Everything Gemini Progressive Disc.| ~4,100 tokens / turn |
|
|
26
26
|
+------------------------------------+--------------------------+
|
|
27
|
-
| Net Token Savings | 85% - 92% (>
|
|
27
|
+
| Net Token Savings | 85% - 92% (>45,000 saved)|
|
|
28
28
|
+------------------------------------+--------------------------+
|
|
29
29
|
```
|
|
30
30
|
|
package/docs/index.html
CHANGED
|
@@ -538,13 +538,13 @@
|
|
|
538
538
|
<div class="container nav-inner">
|
|
539
539
|
<a href="#" class="brand">
|
|
540
540
|
🪐 Everything Gemini
|
|
541
|
-
<span class="brand-badge">v1.
|
|
541
|
+
<span class="brand-badge">v1.9.0</span>
|
|
542
542
|
</a>
|
|
543
543
|
<div class="nav-links">
|
|
544
544
|
<a href="https://github.com/salmandev/everything-gemini" class="nav-link">GitHub</a>
|
|
545
545
|
<a href="https://www.npmjs.com/package/everything-gemini" class="nav-link">NPM</a>
|
|
546
546
|
<a href="https://github.com/salmandev/everything-gemini/blob/main/CONTRIBUTING.md" class="nav-link" style="color: var(--accent-emerald); font-weight: 600;">✨ Contribute</a>
|
|
547
|
-
<a href="https://twitter.com/intent/tweet?text=%F0%9F%AA%90%20Everything%20Gemini%20v1.
|
|
547
|
+
<a href="https://twitter.com/intent/tweet?text=%F0%9F%AA%90%20Everything%20Gemini%20v1.9.0%20is%20live%21%20The%20open-source%20multi-agent%20harness%20for%20Google%20Antigravity%20%26%20Gemini%203.8%20with%2056%20progressive%20skills%2C%2012%20subagents%2C%20and%207%20safety%20gates.%0A%0A%F0%9F%91%89%20https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: var(--accent-cyan); font-weight: 600;">🐦 Share on X</a>
|
|
548
548
|
<a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: #00a0dc; font-weight: 600;">💼 Share on LinkedIn</a>
|
|
549
549
|
<a href="https://github.com/salmandev/everything-gemini" target="_blank" class="btn-github">
|
|
550
550
|
⭐ Star on GitHub
|
|
@@ -569,6 +569,8 @@
|
|
|
569
569
|
<button class="profile-tab active" onclick="setInstallProfile('developer', event)">Developer</button>
|
|
570
570
|
<button class="profile-tab" onclick="setInstallProfile('core', event)">Core</button>
|
|
571
571
|
<button class="profile-tab" onclick="setInstallProfile('full', event)">Full Power</button>
|
|
572
|
+
<button class="profile-tab" onclick="setInstallProfile('sync', event)">Sync</button>
|
|
573
|
+
<button class="profile-tab" onclick="setInstallProfile('scaffold', event)">Scaffold</button>
|
|
572
574
|
<button class="profile-tab" onclick="setInstallProfile('bundle', event)">Offline Bundle</button>
|
|
573
575
|
<button class="profile-tab" onclick="setInstallProfile('global', event)">Global (~/.gemini)</button>
|
|
574
576
|
<button class="profile-tab" onclick="setInstallProfile('status', event)">Status Check</button>
|
|
@@ -591,11 +593,11 @@
|
|
|
591
593
|
<!-- Metrics -->
|
|
592
594
|
<div class="metrics">
|
|
593
595
|
<div class="metric-card">
|
|
594
|
-
<div class="metric-value">
|
|
596
|
+
<div class="metric-value">56</div>
|
|
595
597
|
<div class="metric-label">Progressive Skills</div>
|
|
596
598
|
</div>
|
|
597
599
|
<div class="metric-card">
|
|
598
|
-
<div class="metric-value">
|
|
600
|
+
<div class="metric-value">12</div>
|
|
599
601
|
<div class="metric-label">Scoped Subagents</div>
|
|
600
602
|
</div>
|
|
601
603
|
<div class="metric-card">
|
|
@@ -690,8 +692,13 @@
|
|
|
690
692
|
{ name: "agents/documentation-writer", type: "subagent", cat: "subagent", desc: "Specialist authoring developer docs, API references, ADRs, changelogs, and verifying clickable file:// links." },
|
|
691
693
|
{ name: "agents/release-engineer", type: "subagent", cat: "subagent", desc: "Release gatekeeper managing Semantic Versioning, automated changelogs, build checksums, git tagging, and canary rollouts." },
|
|
692
694
|
{ name: "agents/incident-responder", type: "subagent", cat: "subagent", desc: "SRE incident commander triaging alerts, correlating OTel spans, containing blast radius, and generating blameless postmortems." },
|
|
695
|
+
{ name: "agents/platform-engineer", type: "subagent", cat: "subagent", desc: "Cloud platform & IDP specialist authoring Terraform/OpenTofu, Kubernetes manifests, zero-trust network policies, and container right-sizing." },
|
|
693
696
|
|
|
694
|
-
// Backend & Cloud Skills (
|
|
697
|
+
// Backend & Cloud Skills (31)
|
|
698
|
+
{ name: "milvus-vector-clustering", type: "skill", cat: "backend", desc: "Enterprise Milvus vector clustering, HNSW/IVF-PQ indexing, hybrid dense-sparse search, and dynamic partition keys." },
|
|
699
|
+
{ name: "cloudflare-r2-object-storage", type: "skill", cat: "backend", desc: "Zero-egress fee object storage, S3-compatible APIs, pre-signed upload URLs, and Workers edge CDN caching." },
|
|
700
|
+
{ name: "vault-secrets-management", type: "skill", cat: "backend", desc: "HashiCorp Vault enterprise secrets orchestration, AppRole authentication, dynamic ephemeral DB credentials, and PKI mTLS." },
|
|
701
|
+
{ name: "distributed-rate-limiting", type: "skill", cat: "backend", desc: "High-throughput distributed rate limiting using Redis sliding window logs, token buckets, and RFC 6585 compliance." },
|
|
695
702
|
{ name: "vllm-inference", type: "skill", cat: "backend", desc: "High-throughput LLM inference, PagedAttention KV cache, continuous batching, tensor parallelism, and OpenAI-compatible API serving." },
|
|
696
703
|
{ name: "debezium-cdc", type: "skill", cat: "backend", desc: "Change Data Capture (CDC) streaming with Debezium, PostgreSQL WAL replication, Kafka Connect, and transactional outbox patterns." },
|
|
697
704
|
{ name: "cilium-ebpf-networking", type: "skill", cat: "backend", desc: "Cloud-native eBPF networking, Kubernetes CNI replacement, transparent mTLS, L7 CiliumNetworkPolicies, and Hubble observability." },
|
|
@@ -864,6 +871,8 @@
|
|
|
864
871
|
if (profile === 'developer') cmdEl.innerText = 'npx everything-gemini install --profile developer';
|
|
865
872
|
else if (profile === 'core') cmdEl.innerText = 'npx everything-gemini install --profile core';
|
|
866
873
|
else if (profile === 'full') cmdEl.innerText = 'npx everything-gemini install --profile full';
|
|
874
|
+
else if (profile === 'sync') cmdEl.innerText = 'npx everything-gemini sync';
|
|
875
|
+
else if (profile === 'scaffold') cmdEl.innerText = 'npx everything-gemini scaffold skill my-skill';
|
|
867
876
|
else if (profile === 'bundle') cmdEl.innerText = 'npx everything-gemini bundle';
|
|
868
877
|
else if (profile === 'global') cmdEl.innerText = 'npx everything-gemini install --global';
|
|
869
878
|
else if (profile === 'status') cmdEl.innerText = 'npx everything-gemini status';
|
|
@@ -32,6 +32,10 @@ pip install google-antigravity
|
|
|
32
32
|
```bash
|
|
33
33
|
python3 incident_triage_pipeline.py
|
|
34
34
|
```
|
|
35
|
+
- **4-Stage Cloud Platform Provisioning Pipeline** (Architect -> Platform Engineer -> Security Auditor -> Release Engineer):
|
|
36
|
+
```bash
|
|
37
|
+
python3 platform_provisioning_pipeline.py
|
|
38
|
+
```
|
|
35
39
|
|
|
36
40
|
---
|
|
37
41
|
|