kb-lessons-bridge
Skill3 starsChanged 3 months agoMITView on GitHub
Bridges reading-derived workflow insights into the self-improvement loop. Reads a kb-compile output note (project:knowledge-base, type:reference/zettel) or a Knowledge Intake synthesis note's "## Workflow implications" / "## Candidate actions" sections, filters for process/workflow-relevant insights (discarding general domain knowledge), and emits them as REC-ID blocks in the exact schema self-improvement already scans — written to a Generated/*Lesson*.md note so `/claude-skills:self-improvement` picks them up unchanged. Use when a reading note surfaces "we should change how we work" insights that would otherwise dead-end at operator grooming, or when the user says "bridge this reading to lessons-learned" / "turn this KB note into RECs" / "route this Workflow Implications section into self-improvement.
In this repository41 other files it gives its agents.
- cadence-goalsSkill
- ci-feedback-loopSkill
- compoundSkill
- decision-rights-doctrineSkill
- diataxisSkill
- dispatch-gateSkill
- drift-checkSkill
- family-checkSkill
- fix-then-re-review-ladderSkill
- github-projectsSkill
- gitSkill
- goal-treeSkill
- handoffSkill
- improvement-loopSkill
- kb-captureSkill
- kb-compileSkill
- kb-coreSkill
- kb-lintSkill
- l1-supervisorSkill
- l2-supervisorSkill
- lessons-learnedSkill
- lN-lifecycle-doctrineSkill
- lN-review-doctrineSkill
- medical-recordsSkill
- operator-interview-doctrineSkill
- operator-interviewSkill
- operator-reviewSkill
- planning-workflowSkill
- pr-review-fanoutSkill
- pull-taskSkill
- ralph-wiggumSkill
- reviewSkill
- root-cause-depthSkill
- scan-documentSkill
- self-improvementSkill
- self-verifySkill
- skillifySkill
- task-workflowSkill
- testing-without-mocksSkill
- vault-cloudSkill
- verify-inherited-premiseSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 95
If invoked with no argument, ask which note(s) to bridge (or accept a path/title directly).
- Very specific: line 114
When in doubt, exclude — a missed REC costs nothing (the source note still exists and can be re-bridged later).
- Very specific: line 139
Show the drafted REC(s) and ask for confirmation: before writing — same safety gate lessons-learned and skillify both use.
- Very specific: line 153
Use the obsidian-notes skill's CLI recipes exactly as lessons-learned Phase 4 does (property:set for frontmatter, append for body).
- Very specific: line 161
Not a reimplementation of lessons-learned's Five Whys or Phase 1-3 discussion — there is no live session to retrospect on, only a written …
- Very specific: line 163
Not a reimplementation of self-improvement's scan/analyze/propose/apply cycle — this skill stops once the REC note is written.
- Distinctive: line 165
Not a bypass of the confirm-before-write step.
- Very specific: line 166
Not a way to sneak general domain knowledge into the improvement queue — that's what kb-compile's reference/zettel notes are for.
- Very specific: line 168
Not auto-chained to kb-compile or Knowledge Intake — see Trigger above.
≈ “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
kb-lessons-bridge — reading → REC bridge
The gap this closes
Two loops exist and don't talk to each other:
- Reading → knowledge:
kb-capture → kb-compileturns highlighted Readwise sources into vault notes (type: reference/type: zettel,project: knowledge-base). CoS's Knowledge Intake mode also writes synthesis notes with## Workflow implicationsand## Candidate actionssections. - Experience → process improvement:
lessons-learned → self-improvement → skillify. Butself-improvement's only input is lessons-learned documents — it globsGenerated/*Lesson*.mdand regex-scans for#### REC-\d+:blocks. It never looks at KB notes.
Reading-derived workflow implications currently dead-end at operator grooming. This skill is
the missing pipe: it does not reimplement lessons-learned's Five-Whys discussion or
self-improvement's scan/analyze/apply cycle — it only produces a drop-in lessons-learned
note so those two skills work on reading-derived insight exactly as they already work on
session-derived insight.
Trigger
Standalone / explicit invocation only. This skill is never auto-wired to the end of
kb-compile or CoS Knowledge Intake — it runs only when explicitly invoked (natural-language
request or a future /kb-lessons-bridge command). Chaining it automatically would remove the
confirm-before-write gate's meaning (see Step 4) and is out of scope for this skill.
Schema this must match (verified against source, not assumed)
Read directly from
${CLAUDE_PLUGIN_ROOT}/skills/self-improvement/operations/scan-recommendations.md (Step 2
extraction regex) and
${CLAUDE_PLUGIN_ROOT}/skills/lessons-learned/operations/single-session-analysis.md (body
template):
- Discovery glob:
ls -1t "$OBSIDIAN_VAULT_PATH"/Generated/*Lesson*.md— the output filename must contain the literal substringLesson. - REC block regex (
self-improvementextracts on this exact pattern):
followed by a#### REC-(\d+): (.+) **Category**: (.+) **Effort**: (.+) **Impact**: (.+)**Target**:line, free-text description, a**Implementation**:line, and a---separator before the next REC. Category must be one ofWorkflow | Commands | Utilities | Skillsto surviveself-improvement's Step 3 category filter (Documentation / User Practices / External Tools get excluded there). - Frontmatter (per
lessons-learned's Phase 4): tags must include bothgenerated_noteandlessons_learned;keywords:as capitalized, space-separated wikilinks. Do not invent new tags — pull the vocabulary from theobsidian-notesskill. - Filename base pattern:
lessons-learneditself writesGenerated/YYYYMMDDHHmm-Lessons Learned - {topic}.md. This skill's own output (Step 5 below) adds aReading Bridge -segment ahead of{topic}so a bridge-generated note is distinguishable from a session-derived one at a glance — the added segment doesn't change the*Lesson*.mddiscovery glob match (both still contain the literal substringLesson). - REC numbering is per-note, not global —
self-improvementscans#### REC-\d+:within each lessons file independently, so a bridge-generated note numberingREC-001, REC-002, ...from 1 in its own file is safe even though other lessons-learned notes also start atREC-001. Do not add a bridge-specific REC-ID prefix (e.g.REC-R1) — that would break theREC-(\d+)capture group other tooling relies on. Provenance instead rides the**Source**:line (per-REC) plus a[[Reading Derived]]frontmatter keyword (note-level) — both additive, neither touches the regex.
Nothing above is reimplemented logic — it is the literal contract the two existing skills already speak. This skill's only job is to produce a note that satisfies it, sourced from reading instead of a live session.
Inputs
One or both of, discovered by Globbing the vault directly (never the plugin tree — this skill has no source data of its own, only the vault does):
- A kb-compile output note —
Notes/YYYY/MM/*.mdwithtype: referenceortype: zettelandproject: knowledge-basefrontmatter (written bykb-compile). - A Knowledge Intake synthesis note — a vault
Referencenote (type: reference,area: workflow) containing## Workflow implicationsand## Candidate actionssections. CoS's Knowledge Intake mode writes these; the CoS skill itself lives at~/.claude/skills/chief-of-staff, outside theclaude-skillsplugin tree, so this skill never reads CoS's definition — only the vault notes it produces.
If invoked with no argument, ask which note(s) to bridge (or accept a path/title directly).
Eligibility filter — process/workflow-relevant only
An insight qualifies for a REC only if it proposes a change to how Claude/the operator's
system works — mirroring lessons-learned's own Phase 3 INCLUDE/EXCLUDE test:
INCLUDE — insight suggests:
- A new or changed skill operation, slash command, or agent behavior
- A workflow/process change (e.g., "always do X before Y")
- A tool-usage pattern or permission-whitelist candidate
- A documentation gap in an existing skill
EXCLUDE — insight is:
- General domain knowledge with no workflow-change implication (this is what
kb-compilealready captured correctly as areference/zettelnote — leave it there) - A one-off fact about the subject matter, not about how work gets done
- Too vague to name a target skill/command/file even approximately
When in doubt, exclude — a missed REC costs nothing (the source note still exists and can be
re-bridged later); a spurious REC pollutes self-improvement's queue.
Steps
- Read the source note(s). For a kb-compile note, read the full body (reference/zettel
notes are short). For a Knowledge Intake note, read only
## Workflow implicationsand## Candidate actions— ignore the rest of the synthesis. - Extract candidate insights — one per distinct suggested change. Apply the eligibility filter above; drop anything that's general knowledge.
- For each surviving insight, draft a REC block:
#### REC-{next-number}: {short title}(numbered from 1 within this note — see the per-note numbering note above; no bridge-specific prefix)**Category**:one ofWorkflow | Commands | Utilities | Skills**Effort**:Quick / Medium / Complex (estimate)**Impact**:HIGH / MEDIUM / LOW**Target**:best-guess file path under theclaude-skillsrepo (validate it exists perlessons-learned's "Validate Target Paths" step — Glob for it; if it doesn't exist, either find the nearest real target or note "no existing target — would need a new skill")- Body: the insight, framed as a workflow change (not raw domain knowledge)
**Implementation**:what a PR toclaude-skillswould need to do**Source**:line (additive — does not break the regex above, which doesn't require the block to end afterImplementation):[[{source note title}]]plus the kb-compilesource_keyif the origin is a KB note. This is how traceability back to the original reading survives even after the insight is folded into an aggregated bridge note.
- Show the drafted REC(s) and ask for confirmation before writing — same safety gate
lessons-learnedandskillifyboth use. Let the user cut, merge, or edit any REC. - Write the note once confirmed. One bridge note per run, even when multiple source
notes were read in step 1 — every REC in the note carries its own
**Source**:line, so batching multiple sources into a single note never loses per-REC traceability.- Path:
Generated/YYYYMMDDHHmm-Lessons Learned - Reading Bridge - {topic}.md - Frontmatter:
tags: generated_note, lessons_learned;keywords:wikilinks including[[Lessons Learned]],[[Reading Derived]](marks the note's provenance at a glance), plus the source topic(s); consider addingsources:(list of kbsource_keys) as an extra field for provenance — harmless extra frontmatter, ignored byself-improvement's scan. - Body: minimal — a one-line "Source" section pointing at the originating note(s), then
## Recommendationswith the REC blocks from step 3. Skip Problems/Five-Whys/Positive Patterns sections entirely — there's no session to retrospect on, only insight to route. - Use the
obsidian-notesskill's CLI recipes exactly aslessons-learnedPhase 4 does (property:setfor frontmatter,appendfor body). Fall back todocs/lessons-learned/if the vault helper is unavailable.
- Path:
- Report the note path and REC count. Do not run
/claude-skills:self-improvementautomatically — that stays a separate, explicit invocation.
What this is NOT
- Not a reimplementation of
lessons-learned's Five Whys or Phase 1-3 discussion — there is no live session to retrospect on, only a written note to route. - Not a reimplementation of
self-improvement's scan/analyze/propose/apply cycle — this skill stops once the REC note is written. - Not a bypass of the confirm-before-write step.
- Not a way to sneak general domain knowledge into the improvement queue — that's what
kb-compile'sreference/zettelnotes are for; leave it there. - Not auto-chained to
kb-compileor Knowledge Intake — see Trigger above.
See also
kb-compile— produces one of this skill's two input shapeslessons-learned— owns the REC-ID schema and Obsidian note conventions this skill mirrorsself-improvement— the consumer; scansGenerated/*Lesson*.mdfor#### REC-\d+:blocksobsidian-notes— frontmatter/tag vocabulary and CLI recipes used for the actual write
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.

