Consolidate knowledge
Skill grimaldost/craft-collection/plugins/session-workflow/skills/consolidate-knowledge
A Claude Code plugin marketplace that codifies engineering craft: disciplined Python and data-engineering practice alongside deliberate session-knowledge workflows, packaged as reusable skills.
npx -y skills add grimaldost/craft-collection --skill consolidate-knowledgeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when a body of captured journal entries from many sessions should be distilled into durable, higher-level guidance — cluster related entries, synthesize the one generalization each cluster supports, promote only the reinforced and specific ones into long-lived guidance, and reconcile supersession when newer evidence overrides older. Triggers on "consolidate my journals", "what patterns emerged across these sessions", "distill these notes into guidance", "what have we learned over time", "promote the durable insights", "synthesize my entries into wisdom", or running "/consolidate-knowledge". This is the downstream pass that journaling-sessions feeds — journaling captures raw entries one session at a time, this consolidates many of them across sessions. Not for capturing a single session (use journaling-sessions), not for a one-off summary, and distinct from consolidating your agent memory files.
SKILL.md
7.0 KB, as published. Nobody here has run it
Consolidate Knowledge
Distill a corpus of raw journal entries into durable, higher-level guidance — the
pass that turns many specific captures into a few reinforced generalizations.
journaling-sessions produces the raw input (one idea per entry, reasoning inline,
anti-patterns hunted); this clusters those entries and promotes the patterns that have
earned it. The bar is not "summarize the journals" but: a future session, retrieving
this cold, gets a generalization it can act on that no single entry stated — and that
the base model would not have volunteered.
The pipeline — run in order
- Gather the entries in scope — by area, by date range, or the whole corpus. Read
them; do not work from titles. By default the entries are the journal files
journaling-sessionswrites underdocs/journal/(or a store'starget_storepathwhen one is set). Also read the prior promoted guidance first — the durable layer this pass appends to, by defaultdocs/journal/guidance.md(a store's configured guidance path wins when one is set) — so what already exists is known before anything new is synthesized. Record the scope as an explicit Inputs line — entry count, sessions, date range — the same wayfeedback-triagerecords the reports a triage covers. - Reconcile already-promoted first. A generalization this corpus supports may already be in the durable layer from an earlier consolidation. Open the output with an "Already promoted — NOT re-promoted" reconciliation listing those, and do not re-emit them; a cluster that sharpens or extends an existing entry says so (and takes the supersession path in step 6 if it overrides it). Without this step, an overlapping re-run re-promotes the same guidance every time — the durable-layer pollution this skill exists to prevent.
- Cluster related entries. Entries about the same mechanism, decision, or failure mode across different sessions belong together. The cluster is the unit of consolidation; a singleton is usually not yet promotable (see the gate).
- Synthesize one generalization per cluster. What durable pattern do these entries jointly support that none states alone? Name it concretely, cite the entries it rests on, and keep the specificity that made them valuable — a generalization that drops the names and numbers is a platitude.
- Apply the promotion gate (below). Promote only what has earned it; leave the rest as raw entries to revisit when more evidence arrives.
- Reconcile supersession. If a cluster contradicts already-promoted guidance, the newer evidence wins: write the updated guidance, mark it as superseding the prior, and state what changed and why. Never leave two equally-confident contradictory claims in the store.
- Emit the promoted guidance entries (format below) and append them to the same
durable layer read in step 1 —
docs/journal/guidance.mdby default, the store's configured path when one is set — each linking back to the source entries it generalizes, so the chain from raw capture to durable guidance stays traceable. Without a pinned destination, step 1 of the next run has nothing to reconcile against and re-promotes the same clusters.
The promotion gate — what earns "durable"
Promote a generalization only if ALL of these hold; otherwise leave the entries raw:
- Reinforced — supported by multiple entries, ideally across more than one session. A pattern seen once is a hypothesis, not guidance.
- Specific — carries a concrete anchor (a named mechanism, a number, a condition, a tool or version) that makes it checkable. Strip the anchor and you have a fortune cookie; do not promote it.
- Non-reconstructable — a fresh expert model would not already volunteer it. If it is generic best practice, the corpus does not need to remember it.
- Actionable — it changes what a future session would do, not just what it knows.
Most clusters do not pass on the first pass. Under-promoting is safe; over-promoting pollutes the durable layer with noise that every later consolidation must then fight.
Anti-patterns — hunt these
- Over-generalizing from one entry — a single observation promoted as a law.
- Platitude promotion — "test your code", "communicate clearly": true, useless, already known. The specificity and non-reconstructable checks exist to kill these.
- Losing the scar — the source entries are vivid because they carry the specific
failure; a consolidation that abstracts away the
69,449 → 31,032keeps the shape and loses the teeth. Generalize the lesson, keep the evidence. - Silent contradiction — promoting an insight that conflicts with a prior one without marking the supersession.
Output format
Emit each promoted insight as a durable-guidance entry — broader scope and higher confidence than a journal entry, and explicitly derived:
--- GUIDANCE_START ---
scope: <the area / domain it governs>
confidence: <0.0-1.0 — promoted insights start higher than a single journal entry, but
a generalization is only as strong as its weakest supporting cluster>
derived_from: <the source entry ids / sessions this generalizes over>
supersedes: <optional — a prior guidance id this replaces, and what changed>
--- CONTENT ---
<the generalization, stated concretely with its anchors and the condition under which
it applies. One durable idea.>
--- GUIDANCE_END ---
No downstream store? Write the CONTENT prose to the default durable layer
(docs/journal/guidance.md) and skip the envelope — keep the discipline (one anchored,
derived generalization per entry, supersession marked); drop only the ceremony.
Relationship to journaling-sessions
journaling-sessions = capture: raw, per-session, tuned for recall. This = consolidate:
distilled, cross-session, tuned for precision. Run journaling often; run this
periodically, once a corpus has accumulated. Do not consolidate a single session's
entries — there is nothing to generalize across yet; just journal it.