Use when a project's existing body of criteria must be operated as a whole instead of grown one clue at a time — criteria scattered outside the six-piece standard, project modules duplicating what the area already owns, a Lore in mixed languages, a healthy Lore written against an older version of these skills, a Lore that decayed by accumulating correct things, a project leaving Lore without losing its criterion, or a Lore that has to travel as one Markdown into a chat or notebook. Trigger on...
Scanned 9/3/2026
Install to Claude Code
npx -y skills add andresanemic/lore-plugin --skill transmute-lore --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Transmute Lore?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/andresanemic-transmute-lore)More formats (shields.io, HTML) on the badges page.
---
name: transmute-lore
description: Use when a project's existing body of criteria must be operated as a whole instead of grown one clue at a time — criteria scattered outside the six-piece standard, project modules duplicating what the area already owns, a Lore in mixed languages, a healthy Lore written against an older version of these skills, a Lore that decayed by accumulating correct things, a project leaving Lore without losing its criterion, or a Lore that has to travel as one Markdown into a chat or notebook. Trigger on transmute, migrate, clean, translate, upgrade, bring Lore up to date, prune the Lore, "prune-lore", "poda en lore", "poda el lore de {proyecto}", leave Lore, "dejar el lore", crystallize Lore, export Lore to one Markdown, prepare Lore as a chat/notebook source, extract a crystallization, "extrae esta cristalización", run MYCELIUM, "corre el micelio", "run MICELIO", "¿está conectado el lore?", "quedó todo conectado", "si hago esta tarea carga el criterio".
---
# Transmute Lore
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.md` or `AGENTS.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 rewrites `index.md` to 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 keeps `lore/` and routing as plain `enrutamiento.md`, leaving `FASES.md` with `leave:` marker so `UPGRADE` can 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.md` or
`lore/principios.md`, state living inline in the instruction contract, or an incomplete/stale `lore/`.
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.md` identical 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.md` is 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. `PRUNE` carries 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
conditional `save-to-lore/notas.md` function, 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 and `FASES.md` runs to
the period, not to column 80. Full statement and boundary live in `use-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 with `Crowding` as 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.md` and 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`,
not `Deadwood` — absence of a visible reason is not evidence of no reason. And **nothing comes out
without residue**: every removal is a dated line in `FASES.md` saying 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's `lore/` 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 where `enrutamiento.md` resolves. The extractor ships with
this skill (`scripts/crystallize.mjs`); the user does not write it.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!