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.