Skip to content

Commit 4895cce

Browse files
authored
Merge pull request #56 from Jamkris/docs/upstream-policy
docs: document upstream sync policy and ecosystem-port framing
2 parents a5f85f4 + a176681 commit 4895cce

8 files changed

Lines changed: 443 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,30 @@ Command instructions...
100100

101101
---
102102

103+
## Upstream contributions (ECC backports)
104+
105+
EGC is an ecosystem port of [Everything Claude Code](https://github.com/affaan-m/everything-claude-code). When a contribution to EGC is harness-agnostic, it may also belong upstream in ECC. The full sync policy is in [`upstream/README.md`](upstream/README.md); the short version follows.
106+
107+
### When a change belongs upstream too
108+
109+
- The skill, rule, or workflow idea is not specific to Gemini CLI.
110+
- The bug exists in both repos (e.g., a logic error in shared rubric or validator concepts).
111+
- A new agent's intent translates cleanly to Claude Code's tool model.
112+
113+
### How to dual-PR
114+
115+
1. Land the change in EGC first (you control the merge and the review cycle is faster).
116+
2. Open a corresponding PR against `affaan-m/everything-claude-code`, porting out the Gemini-specific parts (file format, tool names, paths — see the conversion table below).
117+
3. Cross-link the two PRs in their descriptions so reviewers on either side can see the upstream/downstream pair.
118+
119+
The maintainer of EGC is not affiliated with the maintainer of ECC; backports are a contributor-driven activity. Do not block an EGC PR on an upstream merge.
120+
121+
### Recording an upstream sync
122+
123+
When pulling new content from ECC into EGC, follow the procedure documented in [`upstream/README.md`](upstream/README.md) — update both the prose baseline section and `upstream/.upstream-sync.json`, then commit with a `docs: sync upstream baseline to <short-sha>` message.
124+
125+
---
126+
103127
## Tool Name Conversion (Claude → Gemini)
104128

105129
If you are migrating agents from Claude Code:

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
**Language:** **English** | [한국어](docs/ko-KR/README.md) | [简体中文](docs/zh-CN/README.md)
22

33
> **Attribution:** This project was built by migrating [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) by [@affaan-m](https://github.com/affaan-m) to the Gemini CLI ecosystem. Huge thanks for the original work.
4+
>
5+
> EGC is an **ecosystem port** of ECC, not an official ECC release, and does not claim API or behavioral compatibility with ECC. Harness-specific behavior is verified inside Gemini CLI itself. See [`upstream/README.md`](upstream/README.md) for the sync policy, the recorded upstream baseline, and a category-level summary of what was changed versus copied during the port.
46
57
# Everything Gemini Code
68

docs/ko-KR/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
**언어:** [English](../../README.md) | **한국어** | [简体中文](../zh-CN/README.md)
22

33
> **출처:** 이 프로젝트는 [@affaan-m](https://github.com/affaan-m)[Everything Claude Code](https://github.com/affaan-m/everything-claude-code)를 Gemini CLI 생태계로 마이그레이션하여 만들었습니다. 원본 프로젝트에 감사드립니다.
4+
>
5+
> EGC는 ECC의 **생태계 포트(ecosystem port)** 이며 ECC의 공식 릴리스가 아닙니다. ECC와의 API/동작 호환성을 주장하지 않으며, 하네스 고유 동작은 Gemini CLI 내부에서 직접 검증합니다. 동기화 정책, 업스트림 베이스라인, 포팅 시 무엇이 변경/복사되었는지의 카테고리별 정리는 [`upstream/ko-KR/README.md`](../../upstream/ko-KR/README.md) 를 참조하세요.
46
57
# Everything Gemini Code
68

docs/zh-CN/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
**Language:** [English](../../README.md) | [한국어](../ko-KR/README.md) | **简体中文**
22

3+
> **致谢:** 本项目通过将 [@affaan-m](https://github.com/affaan-m)[Everything Claude Code](https://github.com/affaan-m/everything-claude-code) 迁移到 Gemini CLI 生态系统而构建。衷心感谢原作者的工作。
4+
>
5+
> EGC 是 ECC 的**生态系统移植版本(ecosystem port)**,不是 ECC 的官方发行版,也不声称与 ECC 在 API 或行为层面兼容。涉及 harness 自身的行为以 Gemini CLI 内部验证为准。同步策略、上游基线,以及在移植过程中改动了什么的类别级概览,请见 [`upstream/zh-CN/README.md`](../../upstream/zh-CN/README.md)
6+
37
# Everything Gemini Code
48

59
[![Stars](https://img.shields.io/github/stars/Jamkris/everything-gemini-code?style=flat)](https://github.com/Jamkris/everything-gemini-code/stargazers)

upstream/.upstream-sync.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"upstream": "affaan-m/everything-claude-code",
3+
"lastSyncedSha": "9db98673d054f5ed0991ba9d67ff4c883c81a42f",
4+
"lastSyncedAt": "2026-02-09",
5+
"notes": "Initial baseline recorded retroactively. EGC's first commit (ff331996) followed this ECC HEAD by 1h13m."
6+
}

upstream/README.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# Upstream Sync Policy
2+
3+
**Language:** **English** | [한국어](ko-KR/README.md) | [简体中文](zh-CN/README.md)
4+
5+
![Upstream Sync](https://img.shields.io/badge/Upstream_Sync-Best_effort-blue)
6+
![Upstream](https://img.shields.io/badge/upstream-affaan--m%2Feverything--claude--code-informational)
7+
![Baseline](https://img.shields.io/badge/baseline-9db98673-informational)
8+
9+
EGC (Everything Gemini Code) is an **ecosystem port** of [ECC (Everything Claude Code)](https://github.com/affaan-m/everything-claude-code) by [@affaan-m](https://github.com/affaan-m). It is not an official ECC release and does not claim API or behavioral compatibility with ECC. Harness-specific behavior is verified inside Gemini CLI itself, not by reference to ECC's Claude Code behavior.
10+
11+
This document records how EGC tracks the upstream ECC repository and what was changed during the port.
12+
13+
---
14+
15+
## Upstream baseline
16+
17+
- **Upstream repository**: [`affaan-m/everything-claude-code`](https://github.com/affaan-m/everything-claude-code)
18+
- **Last-synced upstream commit**: [`9db98673d054f5ed0991ba9d67ff4c883c81a42f`](https://github.com/affaan-m/everything-claude-code/commit/9db98673d054f5ed0991ba9d67ff4c883c81a42f)
19+
- **Last-synced date**: 2026-02-09
20+
- **Initial EGC commit**: [`ff331996a061c2bbd17ffaa23d4eed2dcdd6ad35`](https://github.com/Jamkris/everything-gemini-code/commit/ff331996a061c2bbd17ffaa23d4eed2dcdd6ad35) (2026-02-09)
21+
22+
A machine-readable copy of this state lives at [`.upstream-sync.json`](./.upstream-sync.json). A follow-up CI validator will assert the two files agree on the SHA; until then the maintainer keeps them in sync by hand at sync time.
23+
24+
---
25+
26+
## Sync policy
27+
28+
EGC syncs with ECC on a **best-effort basis**. There is no committed sync cadence — a solo maintainer cannot reliably promise one, and a missed promise is itself the kind of drift this policy is meant to prevent.
29+
30+
Instead, drift is made **mechanically visible**:
31+
32+
- The last-synced commit SHA is recorded above and in `.upstream-sync.json`.
33+
- A scheduled GitHub Action (planned) compares the recorded SHA against `affaan-m/everything-claude-code` HEAD on a weekly cadence and maintains a single rolling tracking issue labelled `upstream-sync` when there is drift.
34+
- When a sync round happens, the maintainer advances the SHA, the tracker closes the issue, and the cycle repeats.
35+
36+
This way the *commitment* is to surface drift, not to fix it on a schedule.
37+
38+
### What is eligible for backport from ECC to EGC
39+
40+
- Skill content, rule content, and workflow ideas that are harness-agnostic.
41+
- Bug fixes in shared logic (validators, scoring rubrics, deterministic engines).
42+
- New agents whose intent translates cleanly to Gemini CLI's tool model.
43+
- Documentation improvements.
44+
45+
### What is intentionally divergent
46+
47+
- Anything tied to Claude Code's runtime model (Claude-specific tool names, `model: opus/sonnet` selectors, `~/.claude/` paths, `CLAUDE.md` filenames).
48+
- ECC features built on Claude Code APIs that have no equivalent in Gemini CLI.
49+
- Native Gemini CLI features that have no ECC equivalent (Gemini extension manifest, `.gemini/` path layout, `gemini-extension.json`).
50+
51+
### Conflict resolution
52+
53+
When an upstream change touches surface area that EGC has already adapted for Gemini CLI — command/agent file formats, the path layout, install scripts, the Gemini extension manifest, the Antigravity flow, or the Gemini-specific validators — **Gemini CLI native behavior stability takes precedence over upstream alignment**. Adopt the spirit of the ECC change but reshape it to the Gemini conventions documented in [`CONTRIBUTING.md`](../CONTRIBUTING.md). When in doubt, prefer a verifiable Gemini CLI behavior over a closer textual match to ECC.
54+
55+
---
56+
57+
## What was copied vs. changed vs. removed vs. added
58+
59+
This is a category-level summary. The repository itself is the source of truth — see the file tree for the exhaustive list.
60+
61+
### Copied (with format/path translation only)
62+
63+
| Category | Notes |
64+
|---|---|
65+
| Skills | Content largely preserved; frontmatter and references retargeted to Gemini conventions. |
66+
| Rules | Language-specific rule files copied as-is where the rule is language-, not harness-, specific. |
67+
| Workflow ideas | Workflow names and step structures preserved; tool invocations retranslated. |
68+
69+
### Changed (translated to Gemini CLI conventions)
70+
71+
| Category | Change |
72+
|---|---|
73+
| Commands | Migrated from Claude Code's command format to Gemini CLI's `commands/*.toml` format. |
74+
| Agents | Tool names migrated to Gemini equivalents (`Read``read_file`, `Bash``run_shell_command`, etc.). See [CONTRIBUTING.md](../CONTRIBUTING.md) for the full mapping. |
75+
| Agent frontmatter | `model: opus/sonnet` field removed (Gemini CLI does not support model selection at the agent level). |
76+
| Paths | `~/.claude/``~/.gemini/`; `CLAUDE.md``GEMINI.md`. |
77+
| MCP configs | Adapted to Gemini CLI's MCP server registration format. |
78+
| Install scripts | Rewritten for Gemini CLI / Antigravity installation flow. |
79+
| Branding | "Claude" → "Gemini" in user-facing strings where the reference is to the harness, not to Anthropic's model. |
80+
81+
### Removed (no Gemini equivalent or intentionally dropped)
82+
83+
| Category | Reason |
84+
|---|---|
85+
| Legacy Claude Code install scripts (`ecc.js`, `claw.js`, `install-plan.js`) | Gemini CLI manages installation natively via its Extension architecture. |
86+
| Claude-API-specific skills that hard-code Anthropic SDK usage | Out of scope for a Gemini CLI port. |
87+
88+
### Added (net-new in EGC, not in ECC)
89+
90+
| Category | Notes |
91+
|---|---|
92+
| Gemini extension manifest | `gemini-extension.json` and `.gemini-plugin/plugin.json` to register EGC as a Gemini CLI extension. |
93+
| Antigravity-specific install paths | Antigravity (VS Code / Cursor) flow in `scripts/install.sh`. |
94+
| Multilingual docs | Korean and Simplified Chinese mirrors under `docs/ko-KR/`, `docs/zh-CN/`, and this folder's `ko-KR/` and `zh-CN/` subdirectories. |
95+
| `/egc-grok` | Repo-wide audit command leveraging Gemini's 1M context window — no ECC analogue. |
96+
| Validators | `scripts/ci/validate-{agents,commands,hooks,skills,workflow-security}.js` enforce the Gemini-specific frontmatter rules introduced by the port. |
97+
98+
---
99+
100+
## Backporting to ECC
101+
102+
When a contribution to EGC is harness-agnostic and would also benefit ECC users:
103+
104+
1. Land it in EGC first (faster review cycle, you control the merge).
105+
2. Open a corresponding PR against `affaan-m/everything-claude-code`, porting out the Gemini-specific parts (file format, tool names, paths).
106+
3. Cross-link the two PRs in their descriptions so reviewers on either side can see the upstream/downstream pair.
107+
4. If ECC accepts the upstream version, note it in your EGC PR description for traceability.
108+
109+
The maintainer of EGC is not affiliated with the maintainer of ECC; backports are a contributor-driven activity.
110+
111+
---
112+
113+
## Open questions and known drift
114+
115+
This section is honest about gaps. Resolve and prune items as they go away.
116+
117+
- The adapter surface (commands, agents, hooks, validators) has not been end-to-end reviewed by the ECC maintainer. EGC's behavior is verified against Gemini CLI; ECC compatibility is not asserted.
118+
- Skill counts and command counts will drift over time as both repos evolve independently. The `/egc-grok` audit can produce a current inventory on demand.
119+
- Translation drift: when ECC adds new agents/skills, the Korean and Chinese mirrors are updated on a follow-up cycle, not in lockstep with the English docs.
120+
121+
---
122+
123+
## Recording a sync
124+
125+
When upstream is reviewed and the baseline advances:
126+
127+
1. Update `lastSyncedSha`, `lastSyncedAt`, and optionally `notes` in [`.upstream-sync.json`](./.upstream-sync.json).
128+
2. Bring the **Upstream baseline** section above into agreement with the JSON.
129+
3. If any item in **Open questions and known drift** is resolved, remove it.
130+
4. Run `npm run lint && npm test`.
131+
5. Commit with a `docs: sync upstream baseline to <short-sha>` message.
132+
133+
**This procedure is open to community contributors** — anyone can propose a sync update via a PR, not just the maintainer. The validator (once landed) plus normal code review will check that the SHAs and the recorded date are consistent.
134+
135+
A follow-up PR will add a CI validator that asserts the SHAs in this document and in `.upstream-sync.json` agree; once that lands, a mismatch will block the PR automatically.

0 commit comments

Comments
 (0)