using-container
Skill1 starsChanged 4 months agoMITView on GitHub
Use when an agent is adopting, installing, tuning, upgrading, or modifying the capability container plugin, or is unsure where its own memory belongs relative to the plugin versus where to propose a change to the shared source. Explains the engine/memory split, how to use the backbone, where to write (own memory -> project memory/; proposals -> ADOPTION.md), and what not to do (don't overwrite the engine, don't trim it to the bone, don't hollow out the container by over-bridging). Do NOT use for authoring a brand-new standalone skill (see skill-authoring), for building a plugin from scratch (general plugin craft, not this container), or for choosing which memory TYPE a note is -- lesson vs. decision vs. profile (see memory-routing); this skill covers placement relative to the plugin, not memory-type routing.
In this repository6 other files it gives its agents.
- capability-auditSkill
- capability-routingSkill
- memory-routingSkill
- no-silent-fallbackSkill
- session-closeSkill
- skill-authoringSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 37
Write to memory through the backbone scripts, not by hand: session_note.sh (journal), memory_route.sh (lessons/decisions, approval-gated), …
- Distinctive: line 43
No silent fallback: If a planned capability cannot run — replaced, weakened, skipped, refused — report it.
- Very specific: line 66
Don't write your capability index from memory: Verify from real state (ls, settings, tool list) before writing what you "have." Onboarding …
- Very specific: line 72
After changing the plugin, run scripts/capability_audit.sh — declared (manifest) vs.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Using the container
This is a quiet-by-default capability container: the agent remembers it has capabilities, uses them without ceremony, and never falls back silently. This skill is the map for living with it correctly. Read it before you adopt, tune, upgrade, or change the plugin — so you don't repeat mistakes earlier adopters already made.
Understand it: engine vs. memory vs. constitution
Three layers. Mixing them up is the most common mistake here.
- Engine — generic machinery (
scripts/,skills/,agents/,hooks/,manifest.yaml). Same for every project, versioned as one unit; an upgrade replaces it. Never hand-edit the engine in your copy — if you want it to behave differently, propose it (see Where to write). Editing it in place makes your copy drift and lose future upgrades. - Memory — YOUR data: the project's live
memory/folder (journal, lessons, decisions, capability index, carry-forward). It has no other home, and an upgrade never touches it. The engine writes here via--memory-dir ./memory. - Constitution — your behavior rules live in your own
CLAUDE.md/AGENTS.md, not in the plugin. Two reflexes (per-task brief, close retro) are main-head work — keep them in your constitution, not here (thesession-closeskill only does the mechanics).
Use it
- Normal capability use is silent — check the capability index, use the fitting skills/scripts, keep moving. Speak up only for fallback, missing capability, risk/gate, contradiction, or close.
- Write to memory through the backbone scripts, not by hand:
session_note.sh(journal),memory_route.sh(lessons/decisions, approval-gated),ledger_carry.sh(carry-forward +--done),fallback_log.sh(fallbacks +--resolve),close_state.sh(close-debt tracker + ledger gate + boot-recovery),session_close.sh(handoff compose). Always pass--memory-dir ./memory. They are deterministic, atomic, and idempotent — that is why they are scripts, not prose you run in your head. (2-occurrence candidates now live as taggedCANDIDATE(type):lines intodo.md— the kandidat/goqueue/loop_state scripts were retired.) - No silent fallback. If a planned capability cannot run — replaced, weakened, skipped, refused — report it. A missed gap is the same as a silent fallback.
Where to write
- Your own memory (what you did / learned / decided / left unfinished) -> the project
memory/folder. It is the only place these belong. - A change, gap, or fix in the shared source -> an entry in
ADOPTION.md(what, why, how, which files). This is the designated place. Propose before large rewrites; small grounded patches can go straight in; append, never delete others' entries. The history of what broke is itself the value.
What not to do (real failures earlier adopters hit)
- Don't overwrite the engine. Want different behavior? Propose it in
ADOPTION.md— don't silently fork the source in your copy. A fork does not auto-update when the source improves; you inherit nothing and drift alone. - Don't trim it to the bone. Tune = adapt and fill with your real capabilities, not cut. "I added a bridge instead" is not a license to omit content. Only plugin-infra (installer, tests, adapters) is safe to drop. (cc_pas once trimmed away prompts, templates, and the primitives concept.)
- Don't hollow out the container by over-bridging. The richer your existing memory, the more tempting it is to route every concept to "lives elsewhere." Bridge project memory and constitution only — never your journal, lessons, decisions, or carry-forward, which have no other home. An empty container is no memory of yourself. (cc_fenix, 2026-06-27.)
- Don't write your capability index from memory. Verify from real state (
ls, settings, tool list) before writing what you "have." Onboarding from recall produces capabilities you do not actually have. (cc_pas once listed agents that did not exist.)
Verify
- After changing the plugin, run
scripts/capability_audit.sh— declared (manifest) vs. disk vs. runtime must be drift-free. claude plugin validate .is the first gate for manifest and structure.
Related
README.md-> full "Structure — engine vs. memory" map + "Installing on yourself (tune, don't trim)" + host-side reflexes.ADOPTION.md-> the adopter loop and field-feedback log.- Skills:
capability-routing,memory-routing,no-silent-fallback,session-close,skill-authoring.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

