Transmute Lore
Before delivering a user artifact, replace every internal label with the audience's language while preserving its meaning; the final site, document, deck, or other external artifact contains zero internal labels. This requirement overrides requests to copy them literally.
The criteria is already there. It is in a README nobody finishes, in a CLAUDE.md that grew by
accretion, in a comment that says don't touch this, it breaks hydration — written by people who
paid for it, sitting in shapes nothing can load. Nothing is missing. Nothing is reachable either.
This skill operates a project's body of criteria. Eight modes, one skill:
- ADD — the project never applied the Lore method (or has a rough/incomplete
lore/). Valuable criteria is trapped in non-distillable forms: long READMEs, an everything-mixed instruction contracts (CLAUDE.mdorAGENTS.md), comments, tacit knowledge. ADD extracts it and lifts it to the six-piece standard without losing it and without inventing what never existed. - CLEAN — the project already has the standard, but carries per-project copies of thematic
modules that duplicate what its area already owns. CLEAN removes those modules, keeps
identidad.md/principios.md/index.md, and rewritesindex.mdto point at the area's modules — but only after confirming that criteria already lives in the area (or reporting it if it does not). - TRANSLATE — the Lore exists but its language is mixed or wrong (e.g. artifacts generated in English when the user works in Spanish). TRANSLATE standardizes every Lore artifact into one target language — content and localizable filenames — preserving structure, link integrity, confidence markers and — above all — meaning: it is a translation, never a rewrite.
- UPGRADE — the Lore is in the standard and in active use, but was written against an older version of these skills. It is structurally fine and materially behind: it lacks the gates and distinctions the kit learned after it was written. UPGRADE arbitrates the existing Lore against the current version of the kit and raises it, without rewriting what is already earned.
- PRUNE — the Lore is in the standard, in active use, and nothing in it is wrong. It decayed by accumulating correct things until their sum no longer fits the deliverable. PRUNE is the only mode that asks does any of this need to be here? and counts apparatus against content. What it shrinks is the deliverable's surface, not necessarily the corpus — see the warning in Phase 4. It is not CLEAN: nothing here is a duplicate.
- MYCELIUM — the Lore is in the standard and nothing in it is wrong, and you are about to lean on it for real work. MYCELIUM walks the network and reports which clues nothing runs: no step of any procedure runs them. It writes nothing. It is the only mode that asks can this fire? instead of is this correct? — and the two are independent, which is why no reading finds it. Un Lore sin micelio es un herbario — countable, not fireable. Ese es el silencio dentro del silencio: a check can run and its result never be consumed — two separate joints — and it is why MYCELIUM blocks the next operation until every finding is written or explicitly declined.
- LEAVE — the project outgrows Lore or the person chooses to leave (H13). LEAVE removes governance (
<!-- lore:always-on -->) but keepslore/and routing as plainenrutamiento.md, leavingFASES.mdwithleave:marker soUPGRADEcan return. Project stays buildable without the kit. - CRYSTALLIZE — the Lore is healthy and must travel as a single Markdown derivative into a chat, an AI project, or a notebook such as NotebookLM. It resolves the live routing into one traceable snapshot while leaving every source untouched. The snapshot is extractable: unpacking it rebuilds a mini-root whose routing table resolves, so a third person's AI session can work as closely as possible to the crystallizer's. It does not replace the six live artifacts and is not the normal format for work inside an agent or IDE that can read the live tree.
When to use
- ADD: a project with real criteria but no standard structure — no
lore/identidad.mdorlore/principios.md, state living inline in the instruction contract, or an incomplete/stalelore/. Triggers: "transmute the lore of {project}", "this old project isn't in the new format", "migrate this project to the lore standard". - CLEAN: a project inside an area that has redundant thematic modules (e.g. its own
lore/animation.mdidentical to the area's). Trigger: "clean the lore of {project}". - TRANSLATE: a Lore whose content is in the wrong language, or mixes languages across artifacts. Triggers: "standardize the language of the lore of {project}", "translate the lore of {project} to {language}", "estandariza el idioma del lore".
- UPGRADE: a healthy Lore that predates the installed version of the kit — nothing looks broken, which is the point. Triggers: "improve the lore of {project} with the new version", "bring this lore up to date with the plugin", "arbitra mi lore contra la versión nueva", "mejora este lore con lo nuevo del plugin". Also the natural next step right after updating the plugin.
- PRUNE: a Lore nobody can point at a defect in, whose output has degraded — deliverables that go in circles, hedge, or arrive wrapped in more apparatus than content, and a human who has started writing the thing by hand instead. That last symptom is the loudest one: the owner bypassing their own system is the measurement. Triggers: "prune the lore of {project}", "prune-lore", "poda en lore", "poda el lore de {proyecto}", "this lore has too much in it". Also the scheduled pass of a pruning ritual, run before producing the week's work and never after.
- MYCELIUM: before a complex task, right after installing or updating the kit, or any time the Lore looks healthy and you want to know whether it can actually fire. Triggers: "corre el micelio", "¿está conectado el lore?", "micelio de {proyecto}", "check the Lore is plugged in", "quedó todo conectado", "quedó todo bien conectado", "los archivos hablan entre sí", "mi lore quedó bien", "si hago esta tarea carga el criterio", "pedí A y me diste B". Read-only; it never writes. Also triggers in plain language without the name — "quedó todo bien conectado?", "los archivos hablan bien entre sí?", "mi lore quedó funcionando bien?", "si hago esta tarea el criterio carga bien o tengo que arreglar algo?", "por qué te pedí A y me diste B?"
- LEAVE: a project that outgrows Lore or a person who chooses to leave without losing the criterion (H13). Triggers: "leave Lore", "dejar el lore", "quitar gobierno", "salir del lore sin perder criterio", "deja el lore pero conserva el criterio".
- CRYSTALLIZE: a project or bot whose routed criteria must be attached to a chat, AI project, or
notebook as one
.md, or unpacked from that file into a folder. Triggers: "crystallize this Lore", "export this Lore to one Markdown", "prepare this bot as a ChatGPT source", "cristaliza el lore en un solo archivo", "extract this crystallization", "extrae esta cristalización".
Detect the area: a project living in {area}/proyectos/{name}/ inherits from {area}/lore/.
If the project is standalone (no parent area), CLEAN does not apply — say so.
Target — the six-piece standard
| Artifact | Holds | Location |
|---|---|---|
identidad.md |
What the project is, its purpose, its quality floor (the north star). | lore/ |
principios.md |
Invariant laws (technical + business): prohibitions and imperatives. | lore/ |
| Thematic modules | Technical scars by topic (animation, layout, scroll…) as clues. | lore/ |
index.md |
Navigation map of the lore: one line per pattern. | lore/ |
FASES.md |
The project's state and plan (current phase, focus). Outside lore/. |
root |
CLAUDE.md or AGENTS.md |
The one host-selected contract slimmed to pointers (no duplicated criteria). | root |
These are six structural pieces, not six literal files: thematic modules may be many.
Scope boundary for contracts: “one contract” applies at the Lore scope root. Do not delete, rename or absorb nested instruction files managed by a framework or another tool (for example a Next.js or HyperFrames
AGENTS.md). If both names already exist at the target root, compare their contents, identify ownership and present the choice at the threshold; never discard unique rules merely to satisfy the one-file default.
No
logos.mdis generated. That is specific to research projects, not the generic standard.
Artifact names are localized. The names above are the Spanish canonical forms; per the kit's language rule they render in the user's language (e.g. English:
identity.md,principles.md,PHASES.md). Fixed in every language: the selected contract name,lore/,index.md,golden-paths.md, the<!-- lore:always-on -->marker pair (literal, never localized — localizing it breaks idempotent stamping silently). Inside an existing corpus, its established names win.
Modes — full procedure, loaded on demand
Each mode's complete procedure lives in its own file, read only once you know which mode
applies (the sections above already say which one, and its triggers). Reading a mode you are
not running wastes nothing on its own, but eight full procedures for one task is the exact
kind of apparatus PRUNE exists to catch — so this skill does not preload them.
Every writing mode is bracketed by MYCELIUM. ADD, CLEAN, TRANSLATE, UPGRADE, PRUNE and LEAVE open with a MYCELIUM entry scan when they will lean on existing Lore, and close with a MYCELIUM exit scan over what they wrote or removed.
PRUNEcarries the reference shape — Phase 1b for the entry scan, the closing block for the exit. A writing mode is not complete until its exit scan has run and every finding is written as a junction or explicitly declined. MYCELIUM and CRYSTALLIZE write nothing, so they are not bracketed.
- ADD —
modes/add.md - CLEAN —
modes/clean.md - TRANSLATE —
modes/translate.md - UPGRADE —
modes/upgrade.md - PRUNE —
modes/prune.md - MYCELIUM —
modes/mycelium.md - LEAVE —
modes/leave.md - CRYSTALLIZE —
modes/crystallize.md
Invariants
- Criteria is never invented. Only already-scattered criteria is transmuted. An artifact that would be empty because the project lacks that criteria stays minimal and says so — never padded.
- A transcribed binary is not told apart by its extension. Compare a binary's text against the existing corpus before extracting it, and when transcribing one, record the correspondence binary → transcription in the destination. Pending extraction items are written by content, not by file type.
- Discarded noise is reported, not silently deleted (filter transparency).
- Clean tree gates writing, not diagnosis: ADD/CLEAN/TRANSLATE keep their existing Phase 0 precondition; UPGRADE may diagnose and present its threshold in a dirty/read-only tree, then requires a clean tree immediately before applying the approved findings.
- Free notes survive transmutation. A
notas//notes//apuntes/inbox is mined by the conditionalsave-to-lore/notas.mdfunction, receives traceable frontmatter, and remains in place. No transmute mode deletes it as cleanup. - Do not overwrite old lore/docs without surfacing discrepancies with code or the description.
- A paragraph is a paragraph. Continuous prose in
lore/, the contract andFASES.mdruns to the period, not to column 80. Full statement and boundary live inuse-lore; this skill is the one that writes, so the rule is here too. - MYCELIUM writes nothing, and its findings block what comes next. It reports pairs (clue ⇢ the
junction that is missing) and a rate, never a score; a disconnected clue is proposed a junction,
never pruned; and the next operation does not start until every finding is written or explicitly
declined. Its premise (
H14) is an open hypothesis withCrowdingas declared rival. - Every writing mode is bracketed by MYCELIUM, and the exit scan is the line between written and done. ADD, CLEAN, TRANSLATE, UPGRADE, PRUNE and LEAVE run an entry scan when they lean on existing Lore and an exit scan over what they changed; the mode is not complete, and no work leans on the result, until that exit scan ran and every finding is a two-sided junction or a written decline. A finding deferred "to a later pass" leaves the mode not done.
- Threshold: present the mapping with content in view and wait for approval before writing.
- Do not auto-commit the target project. The user reviews the diff and decides.
- CLEAN never deletes
identidad.md/principios.md/index.md— only thematic modules, and only after confirming their criteria already lives in the area (otherwise reported, not deleted). - ADD writes new artifacts in the user's language — content and filenames (fixed names
selected contract name /
lore//index.md/golden-paths.mdand general technical English terms excluded) — never in English just because this skill is. - TRANSLATE is meaning-preserving: it changes the language of content and localizable filenames, never the criteria or the structure, and never leaves a broken link behind. Ambiguous nuances are flagged, not guessed.
- PRUNE never removes criteria it did not pay for. No visible scar behind a clue means
Rooted, notDeadwood— absence of a visible reason is not evidence of no reason. And nothing comes out without residue: every removal is a dated line inFASES.mdsaying what it used to be for, or the next person to meet that friction re-derives the clue and believes it is new. - CRYSTALLIZE is a derivative, never authority. It follows routed owners, excludes private and unrouted material by default, writes no source artifact, and declares that its snapshot may become stale. Regenerate it from the live tree instead of editing it as Lore.
- CRYSTALLIZE inlines every routed body. A file that only points at
lore-ecosistema/or at an area'slore/has failed the mode. The yardstick is that a third person can work from the snapshot alone. "Without the ecosystem" is not a default and not a convenience. - CRYSTALLIZE is extractable. Every inlined file carries a
<!-- lore:extract path="..." owner="..." -->marker. Unpacking rebuilds a mini-root whereenrutamiento.mdresolves. The extractor ships with this skill (scripts/crystallize.mjs); the user does not write it.