omniconductor 0.3.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 +64 -0
- package/LICENSE +219 -0
- package/NOTICE +11 -0
- package/README.md +526 -0
- package/THIRD_PARTY_NOTICES.md +31 -0
- package/TRADEMARKS.md +26 -0
- package/VISION.md +106 -0
- package/adapters/README.md +121 -0
- package/adapters/claude/README.md +102 -0
- package/adapters/claude/SUPPORTED-FEATURES.md +66 -0
- package/adapters/claude/hookify-templates/.recipe-scoped +9 -0
- package/adapters/claude/hookify-templates/README.md +93 -0
- package/adapters/claude/hookify-templates/block-completion-claim-without-push.local.md.template +56 -0
- package/adapters/claude/hookify-templates/block-direct-push-protected-branch.local.md.template +18 -0
- package/adapters/claude/hookify-templates/block-force-push-protected-branch.local.md.template +42 -0
- package/adapters/claude/hookify-templates/block-server-secret-in-client.local.md.template +36 -0
- package/adapters/claude/hookify-templates/warn-any-type-added.local.md.template +44 -0
- package/adapters/claude/hookify-templates/warn-commit-without-pre-commit-review.local.md.template +52 -0
- package/adapters/claude/hookify-templates/warn-console-direct.local.md.template +55 -0
- package/adapters/claude/hookify-templates/warn-create-table-without-access-control.local.md.template +35 -0
- package/adapters/claude/hookify-templates/warn-current-work-without-remaining-tasks.local.md.template +36 -0
- package/adapters/claude/hookify-templates/warn-gh-pr-create-without-pre-merge-review.local.md.template +38 -0
- package/adapters/claude/hookify-templates/warn-hardcoded-text-without-i18n-key.local.md.template +21 -0
- package/adapters/claude/hookify-templates/warn-on-gh-pr-merge.local.md.template +33 -0
- package/adapters/claude/hookify-templates/warn-plan-spec-without-remaining-tasks.local.md.template +44 -0
- package/adapters/claude/hookify-templates/warn-raw-hex-instead-of-token.local.md.template +21 -0
- package/adapters/claude/hookify-templates/warn-security-definer-without-search-path.local.md.template +30 -0
- package/adapters/claude/hookify-templates/warn-stop-commit-without-current-work.local.md.template +47 -0
- package/adapters/claude/hookify-templates/warn-user-manual-completion.local.md.template +40 -0
- package/adapters/claude/transform-spec.md +140 -0
- package/adapters/claude/transform.sh +1169 -0
- package/adapters/codex/README.md +87 -0
- package/adapters/codex/SUPPORTED-FEATURES.md +66 -0
- package/adapters/codex/transform-spec.md +90 -0
- package/adapters/codex/transform.sh +748 -0
- package/adapters/copilot/README.md +88 -0
- package/adapters/copilot/SUPPORTED-FEATURES.md +73 -0
- package/adapters/copilot/transform-spec.md +111 -0
- package/adapters/copilot/transform.sh +757 -0
- package/adapters/cursor/README.md +87 -0
- package/adapters/cursor/SUPPORTED-FEATURES.md +90 -0
- package/adapters/cursor/transform-spec.md +124 -0
- package/adapters/cursor/transform.sh +731 -0
- package/adapters/gemini/README.md +93 -0
- package/adapters/gemini/SUPPORTED-FEATURES.md +80 -0
- package/adapters/gemini/transform-spec.md +102 -0
- package/adapters/gemini/transform.sh +844 -0
- package/adapters/windsurf/README.md +93 -0
- package/adapters/windsurf/SUPPORTED-FEATURES.md +67 -0
- package/adapters/windsurf/transform-spec.md +99 -0
- package/adapters/windsurf/transform.sh +727 -0
- package/bin/omniconductor.js +130 -0
- package/core/README.md +64 -0
- package/core/anti-patterns/README.md +142 -0
- package/core/anti-patterns/dynamic-system-prompt.md +113 -0
- package/core/anti-patterns/frequent-rule-file-edit.md +83 -0
- package/core/anti-patterns/large-file-read-no-range.md +90 -0
- package/core/anti-patterns/no-sub-agent-dispatch.md +89 -0
- package/core/anti-patterns/single-monolithic-rule-file.md +99 -0
- package/core/anti-patterns/skill-eager-load.md +83 -0
- package/core/anti-patterns/tool-call-spam.md +93 -0
- package/core/docs-templates/CURRENT_WORK.md +64 -0
- package/core/docs-templates/INDEX.md +57 -0
- package/core/docs-templates/PLANS.md +44 -0
- package/core/docs-templates/README.md +40 -0
- package/core/docs-templates/REMAINING_TASKS.md +43 -0
- package/core/docs-templates/TASKS.md +51 -0
- package/core/docs-templates/specs/_example.md +121 -0
- package/core/hooks/README.md +62 -0
- package/core/hooks/pretool-agent-routing.sh.template +97 -0
- package/core/hooks/pretool-commit-current-work-check.sh.template +103 -0
- package/core/hooks/pretool-commit-test-coverage-check.sh.template +116 -0
- package/core/hooks/pretool-large-file-read-guard.sh.template +117 -0
- package/core/hooks/stop-cache-hit-baseline-check.sh.template +133 -0
- package/core/hooks/stop-r6-review-check.sh.template +80 -0
- package/core/hooks/stop-session-log-check.sh.template +101 -0
- package/core/hooks/stop-trajectory-log.sh.template +96 -0
- package/core/memory-pattern/EXAMPLES.md +114 -0
- package/core/memory-pattern/README.md +133 -0
- package/core/recipes/README.md +46 -0
- package/core/recipes/auto-mock-data.md +82 -0
- package/core/recipes/branch-strategy.md +100 -0
- package/core/recipes/coding-conventions.md +123 -0
- package/core/recipes/database-discipline.md +65 -0
- package/core/recipes/debugging.md +143 -0
- package/core/recipes/design-system.md +30 -0
- package/core/recipes/i18n.md +118 -0
- package/core/recipes/monorepo.md +101 -0
- package/core/recipes/self-improvement.md +61 -0
- package/core/recipes/tdd.md +128 -0
- package/core/recipes/web-mobile-parity.md +87 -0
- package/core/reflector/SCHEDULING.md +83 -0
- package/core/reflector/prune-lessons.sh +105 -0
- package/core/reflector/reflect-brief.md +11 -0
- package/core/reflector/reflect.command.md +13 -0
- package/core/reflector/run-weekly.sh +54 -0
- package/core/reflector/trajectory-log.sh +55 -0
- package/core/roles/README.md +61 -0
- package/core/roles/builder.md +75 -0
- package/core/roles/designer.md +93 -0
- package/core/roles/helper.md +70 -0
- package/core/roles/planner.md +123 -0
- package/core/roles/reflector.md +72 -0
- package/core/roles/reviewer.md +104 -0
- package/core/roles/scribe.md +89 -0
- package/core/universal-rules/README.md +71 -0
- package/core/universal-rules/meta-discipline.md +292 -0
- package/core/universal-rules/operations.md +162 -0
- package/core/universal-rules/quality-gates.md +191 -0
- package/core/universal-rules/spec-as-you-go.md +123 -0
- package/core/universal-rules/workflow.md +153 -0
- package/core/workflow/PHASES.md +134 -0
- package/core/workflow/README.md +56 -0
- package/docs/MANUAL-INSTALL.md +456 -0
- package/package.json +52 -0
- package/tools/check-framework-purity.sh +91 -0
- package/tools/measure-tokens.sh +169 -0
- package/tools/validate-adapter-output.sh +611 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Adapter — Gemini CLI (T2)
|
|
2
|
+
|
|
3
|
+
Gemini CLI is a T2 target because:
|
|
4
|
+
|
|
5
|
+
- It supports a single always-loaded rule file (`GEMINI.md`).
|
|
6
|
+
- It supports a coding-style guide convention (`.gemini/styleguide.md`).
|
|
7
|
+
- It excels at large-context exploration — the always-loaded rule bundle fits its strengths.
|
|
8
|
+
|
|
9
|
+
It is **T2** because:
|
|
10
|
+
|
|
11
|
+
- ❌ No per-pattern rule scoping (single-file bundle).
|
|
12
|
+
- ❌ No sub-agent dispatch.
|
|
13
|
+
- ❌ No hooks.
|
|
14
|
+
- ❌ No per-call model routing.
|
|
15
|
+
- ❌ No built-in memory directory.
|
|
16
|
+
|
|
17
|
+
**Tier**: T2 — Good for large-context use; rule scoping is "all rules always-loaded".
|
|
18
|
+
|
|
19
|
+
## Installation path
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# From the conductor repo root:
|
|
23
|
+
bash adapters/gemini/transform.sh <target-project>
|
|
24
|
+
|
|
25
|
+
# With opt-in recipes (coding-conventions also emits .gemini/styleguide.md):
|
|
26
|
+
bash adapters/gemini/transform.sh <target-project> --recipes=coding-conventions,i18n
|
|
27
|
+
|
|
28
|
+
# CI-safe (no interactive prompts) / preview / revert:
|
|
29
|
+
bash adapters/gemini/transform.sh <target-project> --no-prompt
|
|
30
|
+
bash adapters/gemini/transform.sh <target-project> --dry-run
|
|
31
|
+
bash adapters/gemini/transform.sh <target-project> --uninstall
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## What gets installed
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
<target>/
|
|
38
|
+
├── GEMINI.md # All universal rules concatenated, sectioned
|
|
39
|
+
├── .gemini/
|
|
40
|
+
│ └── styleguide.md # coding-conventions excerpt (Gemini convention)
|
|
41
|
+
└── docs/
|
|
42
|
+
├── CURRENT_WORK.md # Universal templates
|
|
43
|
+
├── REMAINING_TASKS.md
|
|
44
|
+
├── PLANS.md
|
|
45
|
+
├── TASKS.md
|
|
46
|
+
├── INDEX.md
|
|
47
|
+
└── specs/_example.md
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Native features supported
|
|
51
|
+
|
|
52
|
+
- ✅ Always-loaded baseline (`GEMINI.md`).
|
|
53
|
+
- ✅ Style guide convention (`.gemini/styleguide.md`).
|
|
54
|
+
- ✅ All universal rule TEXT (concatenated).
|
|
55
|
+
- ✅ All doc templates.
|
|
56
|
+
- ✅ Strong large-context capability — the bundled rule file is fine to load every session.
|
|
57
|
+
|
|
58
|
+
## Features NOT supported
|
|
59
|
+
|
|
60
|
+
| Feature | Workaround |
|
|
61
|
+
|---|---|
|
|
62
|
+
| Per-pattern rule scoping | All rules always-loaded; no per-file routing. Rule TEXT is the same; you just see all of it always. |
|
|
63
|
+
| Sub-agent dispatch | Human plays orchestrator. |
|
|
64
|
+
| Hooks | Pair with project pre-commit git hooks. |
|
|
65
|
+
| Per-call model routing | Single model per session. |
|
|
66
|
+
| Built-in memory directory | DIY at `.memory/`. |
|
|
67
|
+
|
|
68
|
+
## After install — first steps
|
|
69
|
+
|
|
70
|
+
1. Verify Gemini CLI reads `GEMINI.md` on session start (it should — that's the convention).
|
|
71
|
+
2. Customize the always-loaded section of `GEMINI.md` — replace `{{PROJECT_NAME}}`.
|
|
72
|
+
3. Rename `docs/specs/_example.md` → `docs/specs/<your-area>.md`.
|
|
73
|
+
4. Add `.memory/` to `.gitignore`.
|
|
74
|
+
5. Add your first entry to `docs/CURRENT_WORK.md`.
|
|
75
|
+
|
|
76
|
+
## Best fit use cases
|
|
77
|
+
|
|
78
|
+
- Large-context exploration ("read this 10K-line file and summarize").
|
|
79
|
+
- One-off scripts where the orchestrator pattern is overkill.
|
|
80
|
+
- Cheap second-opinion when the primary tool is Claude or Cursor.
|
|
81
|
+
|
|
82
|
+
## Quirks / known issues (P3 will fill)
|
|
83
|
+
|
|
84
|
+
- TBD: Gemini CLI's exact file-discovery behavior (does it walk parent directories looking for `GEMINI.md`?).
|
|
85
|
+
- TBD: `.gemini/styleguide.md` priority vs `GEMINI.md` when both contain conflicting rules.
|
|
86
|
+
|
|
87
|
+
## Status (P0 foundation)
|
|
88
|
+
|
|
89
|
+
- ✅ `README.md`
|
|
90
|
+
- ✅ `SUPPORTED-FEATURES.md`
|
|
91
|
+
- ✅ `transform-spec.md`
|
|
92
|
+
- ✅ `transform.sh` (implemented)
|
|
93
|
+
- ⏳ `notes.md` (P3)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Gemini CLI — supported features
|
|
2
|
+
|
|
3
|
+
Detailed matrix of which CONDUCTOR features Gemini CLI supports.
|
|
4
|
+
|
|
5
|
+
## Feature support
|
|
6
|
+
|
|
7
|
+
| Feature | Gemini support | Mechanism | Notes |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| **Always-loaded baseline** | ✅ Native | `GEMINI.md` at project root | Auto-loaded by Gemini CLI on session start. |
|
|
10
|
+
| **Style guide convention** | ✅ Native | `.gemini/styleguide.md` | Coding-style-specific guide; complements GEMINI.md. |
|
|
11
|
+
| **Large-context capability** | ✅ Strength | Up to ~1M-2M tokens depending on Gemini Pro version | Bundled rule loading is no problem. |
|
|
12
|
+
| **Per-pattern rule scoping** | ❌ | — | All rules always-loaded. No per-file routing. |
|
|
13
|
+
| **Sub-agent dispatch** | ✅ Native (2026) | Custom named agents in `.gemini/agents/*.md` | See `docs/COMPATIBILITY-MATRIX.md` / ADR-031. |
|
|
14
|
+
| **Hooks (SessionEnd etc.)** | ✅ Native (2026) | `hooks` block in `.gemini/settings.json` | ADR-031. CONDUCTOR currently emits only the Reflector hook (ADR-032); broader hook-set emission is Phase 2. |
|
|
15
|
+
| **Per-task model routing** | ✅ Native (2026) | Per-agent model config | ADR-031. |
|
|
16
|
+
| **Custom slash commands** | ✅ Native (2026) | `.gemini/commands/*.toml` | ADR-031. |
|
|
17
|
+
| **Built-in memory directory** | ❌ | — | DIY at `.memory/`. |
|
|
18
|
+
| **In-repo doc templates** | ✅ Universal | Plain markdown | Gemini reads on demand. |
|
|
19
|
+
| **Spec-as-you-go ABSOLUTE enforcement** | ❌ rule reminder only | Rule text in `GEMINI.md` reminds user | Self-policed. |
|
|
20
|
+
| **Two-stage code review enforcement** | ❌ rule reminder only | | |
|
|
21
|
+
|
|
22
|
+
## Universal-rule → Gemini bundle translation
|
|
23
|
+
|
|
24
|
+
For each `core/universal-rules/<rule>.md`:
|
|
25
|
+
|
|
26
|
+
1. Strip front-matter (Gemini doesn't use it).
|
|
27
|
+
2. Concatenate body content into `GEMINI.md` as a section with heading `## <rule name>`.
|
|
28
|
+
3. Tool-specific callouts:
|
|
29
|
+
- `> **Gemini-only mechanism**` callouts (rare): keep.
|
|
30
|
+
- `> **Claude-only mechanism**` callouts: REPLACE with `> **Note (Gemini)**: enforced by hook on Claude Code; on Gemini CLI, follow self-policed.`
|
|
31
|
+
- Other tool callouts: STRIP.
|
|
32
|
+
|
|
33
|
+
## `.gemini/styleguide.md` content
|
|
34
|
+
|
|
35
|
+
Specifically the coding-conventions rule's body, formatted as a Gemini styleguide. Use Google's published styleguide format as inspiration if Gemini documents one.
|
|
36
|
+
|
|
37
|
+
## What Gemini DOES NOT support
|
|
38
|
+
|
|
39
|
+
> **2026 reconciliation (first-party verified):** most limitations previously listed here are stale. Gemini CLI now natively supports hooks (via `.gemini/settings.json`, e.g. `SessionEnd`), sub-agent dispatch with custom named agents (`.gemini/agents/*.md`), per-task model routing, and custom commands (`.gemini/commands/*.toml`) — see `docs/COMPATIBILITY-MATRIX.md` / ADR-031.
|
|
40
|
+
|
|
41
|
+
Still true:
|
|
42
|
+
|
|
43
|
+
- Per-pattern rule scoping (everything is always-loaded — no per-file routing).
|
|
44
|
+
- No built-in memory directory — DIY at `.memory/`.
|
|
45
|
+
- No native scheduler.
|
|
46
|
+
- CONDUCTOR does not yet emit a Claude-parity hook set for Gemini. It currently emits only the self-improvement Reflector hook (ADR-032, opt-in — see below); broader hook-set emission (commit-blocking, spec enforcement) is Phase 2.
|
|
47
|
+
|
|
48
|
+
## Strengths to lean into
|
|
49
|
+
|
|
50
|
+
- Large context — loading the entire bundled `GEMINI.md` is cheap on Gemini Pro models.
|
|
51
|
+
- Use Gemini for "read everything, then answer" workflows where bundled rules are an asset, not a cost.
|
|
52
|
+
|
|
53
|
+
## Self-improvement (Reflector) — opt-in
|
|
54
|
+
|
|
55
|
+
With `--recipes=self-improvement`, the Gemini adapter emits the Reflector loop (ADR-032):
|
|
56
|
+
|
|
57
|
+
- **Hook**: `.gemini/settings.json` — registers `.conductor/reflect/trajectory-log.sh` on the `SessionEnd` event. Written only if no settings/hook config exists; if one is already present, the adapter emits a manual-merge log entry instead of overwriting.
|
|
58
|
+
- **Command**: `.gemini/commands/reflect.toml` — the `/reflect` command that distills the trajectory log into lesson candidates.
|
|
59
|
+
- **Agent**: `.gemini/agents/reflector.md` — named reflector agent for the distillation pass.
|
|
60
|
+
- **Scripts**: `.conductor/reflect/trajectory-log.sh` (session trajectory capture) and `.conductor/reflect/prune-lessons.sh` (lesson-file size pruning).
|
|
61
|
+
|
|
62
|
+
The loop is propose-only — lessons are proposed for human review, never auto-applied to rules. The hook no-ops unless `.conductor/reflect/` exists, so installs without the recipe are unaffected (opt-in gate).
|
|
63
|
+
|
|
64
|
+
## Verification
|
|
65
|
+
|
|
66
|
+
`adapters/gemini/transform.sh` is **implemented**. The adapter emits, on a real
|
|
67
|
+
install, `GEMINI.md` (5 universal rules + compressed workflow + ABSOLUTE summary +
|
|
68
|
+
docs pointer + DIY `.memory/` note), the opt-in `.gemini/styleguide.md` (when
|
|
69
|
+
`--recipes=coding-conventions`), the `docs/*` templates, and a
|
|
70
|
+
`.conductor-manifest.json` (supports `--uninstall`). Flags: `--recipes=`,
|
|
71
|
+
`--dry-run`, `--no-prompt`, `--uninstall`/`--force`, `--help`.
|
|
72
|
+
|
|
73
|
+
The two runtime-citation checks below still require a live Gemini CLI session
|
|
74
|
+
(whether the model actually cites the loaded files), so they remain observed-only:
|
|
75
|
+
|
|
76
|
+
| Feature claim | Verified-by-real-install | Verification command / observation |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Adapter emits `GEMINI.md` + `.gemini/styleguide.md` + `docs/*` | ✅ implemented | `bash adapters/gemini/transform.sh <target> --no-prompt --recipes=coding-conventions` then inspect the tree. |
|
|
79
|
+
| `GEMINI.md` auto-loads on session start | ⏳ live session | Open project with Gemini CLI; verify it cites `GEMINI.md` content. |
|
|
80
|
+
| `.gemini/styleguide.md` auto-loads | ⏳ live session | Ask Gemini for code-style guidance; verify styleguide cited. |
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Gemini CLI adapter — transform.sh specification
|
|
2
|
+
|
|
3
|
+
What `adapters/gemini/transform.sh` MUST do when implemented in P3.
|
|
4
|
+
|
|
5
|
+
## Invocation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
./transform.sh <target-dir> [--dry-run]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
core/universal-rules/meta-discipline.md
|
|
15
|
+
core/universal-rules/operations.md
|
|
16
|
+
core/universal-rules/quality-gates.md
|
|
17
|
+
core/universal-rules/spec-as-you-go.md
|
|
18
|
+
core/universal-rules/workflow.md
|
|
19
|
+
core/docs-templates/*.md
|
|
20
|
+
core/docs-templates/specs/_example.md
|
|
21
|
+
core/memory-pattern/README.md
|
|
22
|
+
adapters/gemini/_native/GEMINI.md.tpl # Header template (orchestrator manual intro for Gemini)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Outputs
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
<target-dir>/
|
|
29
|
+
├── GEMINI.md # Bundled all-rules + orchestrator manual + universal rule TEXT
|
|
30
|
+
├── .gemini/
|
|
31
|
+
│ └── styleguide.md # coding-conventions recipe excerpt (opt-in)
|
|
32
|
+
└── docs/
|
|
33
|
+
├── CURRENT_WORK.md # Verbatim
|
|
34
|
+
├── REMAINING_TASKS.md
|
|
35
|
+
├── PLANS.md
|
|
36
|
+
├── TASKS.md
|
|
37
|
+
├── INDEX.md
|
|
38
|
+
└── specs/_example.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## `GEMINI.md` composition (in order)
|
|
42
|
+
|
|
43
|
+
1. **Header from `_native/GEMINI.md.tpl`** — bilingual (한/영) "you are the orchestrator" intro adapted for Gemini single-session model.
|
|
44
|
+
2. **ABSOLUTE rules section** — R1-R8 minus Claude-only sub-agent enforcement. R-prefix renumbered for Gemini reality.
|
|
45
|
+
3. **Universal rules section** — for each `core/universal-rules/<rule>.md`:
|
|
46
|
+
- Heading: `## <rule title>`
|
|
47
|
+
- Body: rule content sans front-matter.
|
|
48
|
+
4. **Workflow section** — content from `core/workflow/PHASES.md`, slightly compressed for size.
|
|
49
|
+
5. **Pointer to docs** — `Read docs/CURRENT_WORK.md first every session.`
|
|
50
|
+
6. **Note on memory** — explain DIY `.memory/` setup (since Gemini has no built-in directory).
|
|
51
|
+
|
|
52
|
+
## `.gemini/styleguide.md` composition
|
|
53
|
+
|
|
54
|
+
- Body of `core/recipes/coding-conventions.md` (sans front-matter; opt-in recipe).
|
|
55
|
+
- Header: `# Code style guide for <project>` (with `{{PROJECT_NAME}}` placeholder for user to fill).
|
|
56
|
+
|
|
57
|
+
## Universal-rules → Gemini bundle translation
|
|
58
|
+
|
|
59
|
+
For each `core/universal-rules/<rule>.md`:
|
|
60
|
+
|
|
61
|
+
1. Strip front-matter (Gemini doesn't use front-matter).
|
|
62
|
+
2. Concatenate body into `GEMINI.md` as documented above.
|
|
63
|
+
3. Tool-specific callouts:
|
|
64
|
+
- `> **Gemini-only mechanism**`: keep as-is (rare).
|
|
65
|
+
- `> **Claude-only mechanism**`: REPLACE with `> **Note (Gemini)**: enforced by hook on Claude Code; on Gemini CLI, follow self-policed.`
|
|
66
|
+
- Other tool callouts: STRIP.
|
|
67
|
+
|
|
68
|
+
## Edge cases
|
|
69
|
+
|
|
70
|
+
| Case | Adapter behavior |
|
|
71
|
+
|---|---|
|
|
72
|
+
| Existing `GEMINI.md` at target | Skip; report "SKIP (exists)". |
|
|
73
|
+
| Existing `.gemini/styleguide.md` | Skip individually. |
|
|
74
|
+
| `GEMINI.md` would exceed Gemini context limit | Warn (and document mitigation in `notes.md`). |
|
|
75
|
+
|
|
76
|
+
## Idempotency check
|
|
77
|
+
|
|
78
|
+
Re-run reports "SKIP (exists)" for everything.
|
|
79
|
+
|
|
80
|
+
## Verification commands (P3 will fill)
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
test -f "<target>/GEMINI.md" || echo "MISSING GEMINI.md"
|
|
84
|
+
test -f "<target>/.gemini/styleguide.md" || echo "MISSING styleguide"
|
|
85
|
+
|
|
86
|
+
# Open Gemini CLI in <target>; verify it cites GEMINI.md content in responses.
|
|
87
|
+
# Ask Gemini for code-style guidance; verify .gemini/styleguide.md is consulted.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## P3 Gemini version compatibility check
|
|
91
|
+
|
|
92
|
+
Verify against current Gemini CLI conventions:
|
|
93
|
+
- `GEMINI.md` IS the canonical project-rules file.
|
|
94
|
+
- `.gemini/styleguide.md` IS the canonical style-guide convention.
|
|
95
|
+
- Whether Gemini walks parent directories for `GEMINI.md` (mono-repo implication).
|
|
96
|
+
|
|
97
|
+
If Gemini has changed conventions by P3, document in `notes.md`.
|
|
98
|
+
|
|
99
|
+
## Out of scope
|
|
100
|
+
|
|
101
|
+
- Gemini API key configuration (user does this in Gemini CLI auth flow).
|
|
102
|
+
- Per-stack auto-detection.
|