CLAUDE.md ยท git:20260905.88fc672 ยท 2026-09-05 ยท sha256 a2fbc66498a256d4

CLAUDE.md git:20260905.88fc672A

Immutable. This exact content is served forever at /api/v1/blob/a2fbc66498a256d4.

# CLAUDE.md
<!-- Lemon AI Hub: Karpathy Standards -->
Single source of truth: `@AGENTS.md`

Read on start a new session:

1. `@AGENTS.md`
2. `@README.md`

## graphify

This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships.

Rules:
- For codebase questions, first run `graphify query "<question>"` when graphify-out/graph.json exists. Use `graphify path "<A>" "<B>"` for relationships and `graphify explain "<concept>"` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output.
- If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing.
- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context.
- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost).

## ๐Ÿ”Œ CLI Wrapper Ecosystem

This project IS the canonical source for the `cli-wrapper` plugin โ€” the multi-harness CLI wrapper ecosystem. Claude Code = single source of truth. Other CLIs (Codex, Gemini, Agy, OpenCode) access via symlink.

**When developing in this repo**: prefer wrapped CLI access.
- `/cli-wrapper:cli-wrapper-setup` โ€” one-shot ecosystem setup
- `/cli-wrapper wrap <cli>` โ€” wrap a new CLI
- `/cli-wrapper list` โ€” all wrapped CLIs + stats
- `/cli-wrapper audit all` โ€” ecosystem-wide savings

**Plugin structure** (this project):
```
plugins/cli-wrapper/        โ† CANONICAL SOURCE (git)
โ”œโ”€โ”€ SKILL.md                โ† main skill
โ”œโ”€โ”€ plugin.json             โ† v2.0.0
โ”œโ”€โ”€ skills/                 โ† sub-skills (cli-wrapper-setup, *-cli wrappers)
โ”œโ”€โ”€ agents/                 โ† wrapper agents (one per CLI)
โ””โ”€โ”€ templates/              โ† symlink-map.json + config templates
```

**`plugin.json` component fields** โ€” see [`docs/rules/plugin-manifest.md`](docs/rules/plugin-manifest.md). Claude Code validates the manifest *before* registering anything, so one bad field silently removes every skill and agent the plugin ships:
- `agents` MUST be an array of file paths. `"agents": "./agents/"` fails with `agents: Invalid input` and the plugin never installs โ€” it stays invisible in Claude Code and Codex while still working in Antigravity, which never parses `plugin.json`.
- Every declared `skills` / `commands` / `hooks` path MUST exist and be non-empty.
- **Prefer omitting these fields.** Components are discovered by convention from `agents/`, `skills/` and the root `SKILL.md`; 158 of 166 plugins here declare nothing.
- Verify before committing: `python3 scripts/validate_plugins.py` (MANIFEST_* codes) and `claude plugin validate plugins/<name>/plugin.json`.

**Global topology** (managed by `scripts/setup-symlinks.sh`; verified by `scripts/harness-doctor.sh`):
- Skills hub = this project's `plugins/`. Claude consumes it via the `lemon-ai-hub` plugin marketplace (no `~/.claude/skills` โ€” it would duplicate every skill).
- Codex/Agy: `~/.codex/skills` and `~/.agy/skills` โ†’ dir symlinks to `plugins/`
- OpenCode (`~/.config/opencode/skills`) and Gemini (`~/.gemini/skills`): curated per-skill symlinks into `plugins/`

- Use the `git-expert` and `gh-expert` plugins for git workflows. Prefer `/git-commit` for semantic commits.