Skip to content
Development
Skill

/save-to-lore

Use when saving a lesson to the Lore, right after solving a problem worth keeping, when distilling Lore from an external body of criteria (a skill, a style guide, a third-party playbook), or when reviewing a folder of loose notes to decide what becomes criteria or state. Trigger

From plugin
lore
77 skills2 hooks
Install
$ npx -y skills add andresanemic/lore-plugin --skill save-to-lore --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/save-to-lore

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when saving a lesson to the Lore, right after solving a problem worth keeping, when distilling Lore from an external body of criteria (a skill, a style guide, a third-party playbook), or when reviewing a folder of loose notes to decide what becomes criteria or state. Trigger

SKILL.md

save-to-lore.SKILL.md
name: save-to-lore
description: Use when saving a lesson to the Lore, right after solving a problem worth keeping, when distilling Lore from an external body of criteria (a skill, a style guide, a third-party playbook), or when reviewing a folder of loose notes to decide what becomes criteria or state. Trigger on "save to lore", "distill this to the lore", "guarda en lore", "distill this skill", "destila esta skill", "guárdalo como formato base", "esto es el estándar de ahora en más", "revisa mis notas", "mina la bandeja", or proactively after resolving a friction that passes the Lore bar (constraint + signal + executability + genericity).

save-to-lore — Incremental capture and promotion

> 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 bug is fixed. The tests pass. You are already reaching for the next thing — and the most expensive part of the last two hours is not the patch, it is the sentence you would say if someone asked *why it had to be done that way*. That sentence has about a minute left before it is gone.

This skill catches it. It captures a friction into the **current project's** `lore/`, then promotes to the project's **mother area** the clues that are already **confirmed + generic**. It is the incremental counterpart to the structural skills: `transmute-lore` migrates a whole project; `save-to-lore` adds one clue at a time and routes it to the right level.

> **This pass is bracketed by MYCELIUM, and both ends are mandatory.** Set up two todos before you > write anything. **Entry:** if this pass will lean on existing Lore to decide where things go, open > with a MYCELIUM entry scan (`transmute-lore` MYCELIUM) and address its findings first. **Exit:** > after you write, close with a MYCELIUM exit scan over what this pass produced — detail in *Closing > either mode*, below. **The pass is not complete** — do not report success, do not hand back control > — until the exit scan has run and every finding is written as a junction or explicitly declined > with a reason. Deferring a junction "to a later pass" is not a completion state; it is the exact > failure the exit scan exists to catch.

> **Language rule:** write every clue, index line and law in the **language the target lore already > uses** (consistency wins); if the lore has no established language yet, use the **user's > language** — never English by default. The same applies to filenames: new module files are named > in the target lore's language, and existing files are never renamed by this skill (that is > `transmute-lore` TRANSLATE's job). Artifact names in this skill (`identidad.md`, `principios.md`, > `proyecto.md`…) are Spanish canonical forms — use the corpus's actual localized names. Relative > paths, confidence markers (`conjecture`/`confirmed`), the ` · ↑` glyph, the `<!-- lore:always-on -->` > marker pair and general technical English terms stay as-is.

> **The area is the shared corpus.** A project lives in `{area}/proyectos/{name}/` and inherits from > `{area}/lore/`. Generic, confirmed criteria belongs in the **area** (every project sees it); > project-specific criteria stays in the **project**. This skill decides which is which.

Loose-note function — load only for note tasks

When the request points at `notas/`, `notes/`, `apuntes/`, meeting notes, or any folder of `.md`, `.txt` or `.docx` and asks to review, integrate, extract, distill or save its contents, **read [`notas.md`](notas.md) before touching the files**. That file owns the source-side sweep, frontmatter, four-bucket classification, debt report and archive. It is app-neutral: Obsidian is one possible editor, never a prerequisite.

Do not load `notas.md` for an ordinary CAPTURE or GRAFT whose source is not a loose-note folder. The separation is deliberate: users who never keep notes should not pay for the mining procedure.

Before anything: the mode is decided here, not before you arrived

If you already drafted the entry and are invoking this skill to check it, **stop and classify the source first.** The mode is not formatting applied to a finished draft — it changes what the entry must contain. A draft written assuming CAPTURE, when the criteria was actually imported, is missing its provenance header, its confidence split and its defeats section. And a module with no defeats does not enter at all.

The tell that you skipped this step: the draft reads like a good summary of the source. That is the failure state of GRAFT, not its output.

> **Routing gate — before you write:** If your task touches an artifact that is **not a clue** — the `<!-- lore:always-on -->` block, the host contract, `FASES.md`, `enrutamiento.md`, or the shape of the tree — **stop: this is `transmute-lore` (LEAVE/CLEAN/PRUNE class), not CAPTURE/GRAFT.** Writing the clue in its module **and** its line in `index.md` is one capture, not two artifacts; promotion to the area (`index.md` does not count as the second artifact) is still CAPTURE. Check `use-lore` routing table first; if no row matches, run `brainstorming-lore` before choosing a skill. Batching 5 edits without that check is how `Exit` landed in the wrong file (`H14` for skills, `837eb73` fix).

Two modes — pick by the SOURCE of the criteria

| Mode | Source | What it is | |---|---|---| | **CAPTURE** (default) | **lived friction** — a bug, a collapse, a client rejection | The scar. Everything below (threshold, routing, promotion) is written for this mode. | | **GRAFT** | **imported criteria** — a skill, a style guide, a third-party playbook, **another kit's constitution or governing document** | Criteria already distilled **by someone else, under someone else's purpose**, arriving with no validity boundary declared. |

> **Why it is called grafting, and the metaphor is l

Read more
Ships withlore

Local fine-tuning for your own tasks — and the one doing the training is you. A provider-neutral kit that turns project experience into reusable criteria, distilled at a threshold you control, pruned when it grows, and portable between models.

Get the whole plugin
Stats
7
Stars
0
Forks
Active
Maintenance
JavaScript
Language
MIT
License
6d ago
Last commit
2mo ago
Created

Repo: andresanemic/lore-plugin

Other skills on lore.