🧠 SELF-LEARNING · ⚡ SAVE TOKENS · 🚀 SKILLS TO GO · ✨ QUALITY COMPOUNDS
skill-everything
The memory layer for AI agents — self-learning instead of fine-tuning.
Up to 84 % fewer input tokens · $28 saved per 1,000 messages · same Markdown across four agent runtimes.
* in Claude Code & OpenCode (selective sub-skill loading); Cursor & Gemini CLI realise a smaller share through the compact router — see Per-tool token reality. Cost vs. 10k-token monolithic baseline at Sonnet-class pricing.
Turn accepted agent mistakes into reviewable, Git-versioned skills.
Self-extending skills in plain Markdown. Save tokens. Enhance quality. Ship smarter agents — across Claude Code, Cursor, Gemini CLI, and OpenCode.



🚀 One source of truth · Four agent runtimes · Zero re-authoring
♻️ Errors become commits · Commits become skills · Skills make agents smarter
Your agent forgets everything tomorrow.
What if every accepted fix became a Git-versioned rule the next session reads?
That's the workflow. Self-extending skills, reviewed PR by PR.
THE PITCH
Self-learning · Save tokens · Skills to GO · Quality compounds.
Self-learning skills for AI agents. Beyond fine-tuning, beyond vector DBs, beyond black-box memory. Your domain knowledge — local, in plain Markdown, versioned in Git, hot-loaded as composable sub-skills.
⚡ Save tokens. Up to 84 % fewer input tokens. $28 saved per 1,000 messages on Claude Code & OpenCode (selective sub-skill loading); compact-router savings on Cursor & Gemini CLI. Per-message bill stays flat as your library grows.
🚀 Skills to GO. Same Markdown across Claude Code, Cursor, Gemini CLI, OpenCode. Switch tools — your skills come with.
✨ Quality compounds. Every accepted PR makes the next session smarter — through reviewed commits, not silent self-learning.
git clone https://github.com/sordi-ai/skill-everything.git
Star this repo to ship smarter agents.
Note
Drop-in compatible. Generates CLAUDE.md, .cursorrules, GEMINI.md, and SKILL.md from one skills/_index.yml — same domain knowledge, four agent runtimes.
WHY IT WINS
Six reasons skill-everything is a Git-native pattern for agent memory.
- Cross-tool by design. One source, four agent runtimes —
Claude Code, Cursor, Gemini CLI, OpenCode. Generated from a single skills/_index.yml, drift-checked in CI on every PR. Same domain knowledge, four runtimes, zero re-authoring.
- Beyond fine-tuning. Domain knowledge compounds in plain Markdown —
git diff-able, screenshot-shareable, instantly auditable. Your agent's brain lives in skills/, versioned in Git, not in opaque weights.
- Self-extending memory. Every accepted change makes the next session smarter.
git log --grep="learn(" is your agent's growth trail. Quality compounds — commit by commit, through reviewed PRs gated by lint-rules + CODEOWNERS.
- 84 % fewer input tokens. $28 saved per 1,000 messages. Per-skill 3k-token cap, CI-enforced by
tools/validate_rules.py. On Claude Code & OpenCode the router loads only the matching sub-skill; on Cursor & Gemini CLI the saving comes from the compact router pattern (full breakdown in Per-tool token reality). Add the 50th skill, the 200th skill — your per-message bill stays flat where the runtime supports lazy loading.
- Modular by design. Composable sub-skills, hot-loaded on demand. Domain knowledge — local, in one place, organised by trigger. The library grows; per-message cost doesn't.
- Drop-in compatible with the agent ecosystem.
CLAUDE.md, .cursorrules, GEMINI.md, and SKILL.md are all generated from the same source. Works with the formats your tools already read — today.
ARCHITECTURE
One register. Four loaders. Same sub-skills across four agent runtimes.
skills/_index.yml is the single source of truth. Every sub-skill is declared once with its id, tokens_target, triggers, and load order. From it, tools/render_loaders.py regenerates four loader files: SKILL.md (OpenCode), CLAUDE.md (Claude Code), GEMINI.md (Gemini CLI), and .cursorrules (Cursor). Edit the index, regenerate, done.
A CI no-drift job runs git diff --exit-code against the regenerated loaders on every PR — the four runtimes stay in lockstep, automatically. One source updates them all.
One source of truth. Four loaders. Zero drift.
Note
CI-enforced single-source-of-truth. loaders-no-drift validates that every regenerated loader matches its source on every commit — the four-runtime ecosystem stays in lockstep, automatically.
TOKEN MATH
Same task. Same agent. Up to 84 % fewer input tokens. Add a skill, pay nothing extra.
The single-message punch: monolithic prompts load .cursorrules every turn, all of it. With selective sub-skill loading (Claude Code, OpenCode), skill-everything loads the router (~800 tokens) plus exactly one sub-skill on demand (~800 tokens) — 84 % fewer input tokens per message. On Cursor & Gemini CLI the router itself is the saving today (see Per-tool token reality).

The scaling promise: monolithic prompts grow linearly with your skill library — every user, every message, every skill. Skill-everything stays flat as the library grows from 1 to 50 skills.

The bottom line: $47 with caching beats the $75 uncached-monolithic baseline — that's $28 saved per 1,000 messages, 37 % cheaper. And the architectural win compounds: at 30, 90, 200 skills, monolithic explodes — skill-everything stays flat. Caching helps both. Only one of the two stays flat as your library grows.

Same architecture, every provider. The up-to-84 % input-token reduction is architectural, not pricing-conditional — switch from Sonnet to Opus, Kimi, or GPT-4o, the ratio stays where the runtime loads sub-skills selectively. Per-message dollar amount scales with the provider tier; the proportional saving doesn't.
Per-tool token reality
The 84 % is architectural — it requires selective sub-skill loading. Here's what each runtime actually does today.
| Runtime | Selective loading | Realised reduction | Why |
|---|
| Claude Code | ✅ Native (@skills/<name>/SKILL.md) | ~84 % | Router (CLAUDE.md) auto-discovers, @-imports lazy-load exactly the matching sub-skill. |
| OpenCode | ✅ Native (skill_resource()) | ~80–84 % | Skill auto-discovery + native loader pulls one sub-skill on demand; per-turn footprint matches Claude Code. |
| Cursor | ⚠️ Build-dependent | ~30–50 % | .cursorrules ships every turn (router + trigger table). @file: references load only on newer builds; on older builds the saving is the compact router itself. |
| Gemini CLI | ❌ Not yet | ~20–30 % | GEMINI.md ships every turn; @skills/<name>/SKILL.md is Anthropic-specific syntax. The saving is the compact router; sub-skills must be inlined or pasted manually for true lazy loading. |
Takeaway. The architectural win is identical across all four runtimes — same sub-skills, same source of truth, same drift-checked CI. The realisation depends on what the runtime supports today: full lazy loading on Claude Code & OpenCode, compact-router savings on Cursor & Gemini CLI. Plain Markdown works everywhere; the loader maturity catches up over time.
Per-skill token budgets — real tiktoken counts, CI-validated
| Sub-skill | Path | Tokens (real, tiktoken cl100k) |
|---|
code-quality | skills/code-quality/SKILL.md | ~1,450 |
python | skills/python/SKILL.md | ~2,200 |
fastapi | skills/fastapi/SKILL.md | ~850 |
langchain | skills/langchain/SKILL.md | ~1,150 |
typescript | skills/typescript/SKILL.md | ~2,150 |
react | skills/react/SKILL.md | ~2,250 |
tdd | skills/tdd/SKILL.md | ~850 |
debugging | skills/debugging/SKILL.md | ~800 |
security-review | skills/security-review/SKILL.md | ~1,000 |
git-conventions | skills/git-conventions/SKILL.md | ~550 |
github-cli | skills/github-cli/SKILL.md | ~800 |
branch-finishing | skills/branch-finishing/SKILL.md | ~750 |
review-deployment | skills/review-deployment/SKILL.md | ~650 |
docker | skills/docker/SKILL.md | ~1,000 |
shell-scripting | skills/shell-scripting/SKILL.md | ~850 |