# Gemini CLI Tool Mapping (for no-vibe skill)

The no-vibe skill is written against Claude Code tool names. Use these
Gemini CLI equivalents when executing skill steps:

| Skill references    | Gemini CLI equivalent |
|---------------------|-----------------------|
| `Read`              | `read_file`           |
| `Write`             | `write_file`          |
| `Edit`              | `replace`             |
| `Bash`              | `run_shell_command`   |
| `Grep`              | `grep_search`         |
| `Glob`              | `glob`                |
| `TodoWrite`         | `write_todos`         |
| `Skill` (invoke)    | `activate_skill`      |
| `WebSearch`         | `google_web_search`   |
| `WebFetch`          | `web_fetch`           |
| `Task` (subagent)   | No equivalent — run inline |

## Write-guard reminder

When `.no-vibe/active` exists, `write_file` and `replace` are refused on
paths outside `.no-vibe/` and `$HOME/.no-vibe/`. The same rule applies to
`run_shell_command`: self-enforce rejection of `>`, `>>`, `&>`, `&>>`,
`tee`, `sed -i` / `--in-place`, `cp`, `mv`, `install`, `dd of=…`, and
`cat <<EOF >` heredoc-redirects when the destination falls outside
`.no-vibe/**`, `$HOME/.no-vibe/**`, `/tmp/**`, `/var/tmp/**`, or
`/dev/{null,stdout,stderr,tty,fd/*}`. Variable or command-substituted
destinations (`$VAR`, `$(…)`, backticks) — fail closed.

`2>&1` and other fd-merge forms (no file target) are fine. Read-only
shells (`ls`, `git status`, `grep`, `cat`, build/test invocations that
don't redirect to project paths) are allowed.

Show code in chat; user types it.

## Data persistence

Use `save_memory` sparingly — no-vibe's adaptation state lives in plain
Markdown: `~/.no-vibe/PROFILE.md` (global stable identity — AI-created
on first `/no-vibe` per the schema in SKILL.md, AI-updated rarely when
identity or style shifts), `.no-vibe/SUMMARY.md` (project running
journey — AI-created at the first layer close worth recording,
AI-updated frequently with current focus / accomplishments / open
questions), plus every `*.md` under `~/.no-vibe/user/` and
`.no-vibe/user/` (user-only overrides — AI never creates, edits, or
deletes files inside `user/`). Per-session cycle state lives in
`.no-vibe/data/sessions/<slug>.json`. Do not duplicate any of those
into Gemini memory. For cycle state, write directly to the JSON file.
For adaptation, write to PROFILE.md or SUMMARY.md when the
silent-default + NO_CHANGE rules fire (see SKILL.md "PROFILE.md and
SUMMARY.md — the progression files"). For explicit user instructions
belonging in `user/`, show the line in chat for the user to add — do
not write to `user/` yourself.
