From dev-workflow
Use after resolving a bug, completing a task with notable pitfalls, or discovering an important architecture constraint. Extracts a structured entry from the session and saves it to the knowledge base.
npx claudepluginhub n0rvyn/indie-toolkit --plugin dev-workflowThis skill uses the workspace's default tool permissions.
This skill extracts a structured knowledge entry from the current session and writes it to the central knowledge base at `~/.claude/knowledge/` or the project-local `docs/09-lessons-learned/`. It checks for near-duplicates before creating, and asks the user to confirm the draft.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
This skill extracts a structured knowledge entry from the current session and writes it to the central knowledge base at ~/.claude/knowledge/ or the project-local docs/09-lessons-learned/. It checks for near-duplicates before creating, and asks the user to confirm the draft.
| Type | When to use | Suggested body structure |
|---|---|---|
| Lesson / Error | Bug fixed, pitfall discovered | Symptom / Root Cause / Prevention |
| API Note | API quirk, undocumented behavior, version diff | Behavior / Gotcha / Example |
| Architecture Decision | Cross-project reusable pattern or constraint | Context / Decision / Consequences |
| Reference | WWDC note, framework learning, article summary | Summary / Key Points / Links |
The body format is flexible; the YAML frontmatter is mandatory.
Review the current conversation to identify:
api-usage, bug-postmortem, architecture, platform-constraints, stability-audit, data-research, workflow, reference, or a new slug if none fitSearch the central knowledge base for similar entries:
Grep(pattern="<keywords joined by |>", path="~/.claude/knowledge/", output_mode="files_with_matches")keywords: line and titleIf ~/.claude/knowledge/ does not exist yet, skip this step.
Present the draft entry:
Draft knowledge entry:
Title: {suggested title}
Category: {category}
Keywords: {keyword1}, {keyword2}, ...
Scope: global (saves to ~/.claude/knowledge/{category}/)
OR project (saves to docs/09-lessons-learned/)
---
{markdown body}
---
Options:
- Save as-is (global or project scope?)
- Edit (specify what to change)
- Skip
Wait for user response. Apply any edits before saving.
Once the user confirms:
Determine the target directory:
~/.claude/knowledge/{category}/docs/09-lessons-learned/Generate filename: YYYY-MM-DD-{slug}.md where slug is the title lowercased, spaces replaced with hyphens, non-alphanumeric removed, truncated to 40 chars
Create directory if needed: Bash("mkdir -p {target_directory}")
Write the file using the Write tool:
---
category: {category}
keywords: [{kw1}, {kw2}, ...]
date: {YYYY-MM-DD}
source_project: {current project name, optional}
---
# {Title}
{body}
Saved to {file_path}After saving, propagate links to related entries in ~/.claude/knowledge/. Skip this step if the entry was saved to project-local docs/09-lessons-learned/.
Search for entries sharing keywords with the new entry:
| into a single regex: Grep(pattern="{kw1}|{kw2}|{kw3}", path="~/.claude/knowledge/", glob="*.md", output_mode="files_with_matches")keywords: lineIf no related entries found, skip to Step 5d.
For each related entry:
related: field:
Edit the file to insert related: [{new-entry-filename}] after the date: line in frontmatterrelated: field and the new entry is not listed:
Edit the file to append the new entry's filename to the existing related: arrayAfter processing all related entries, Edit the new entry's frontmatter to add related: [{list of related filenames}] after the date: line.
Related entries are referenced by filename only (e.g., 2026-04-07-some-slug.md), not full paths, since category directories may differ.
For each related entry with >=3 keyword overlaps:
> ⚠️ Potential conflict with [[{related-filename}]] — review both entries.After the "Saved to {file_path}" message from Step 4, append:
Cross-references: {N} related entries found, {M} mutual links added, {C} contradictions flagged
If no related entries: Cross-references: no related entries (< 2 keyword overlap)
After saving, inform the user:
Optional: Run `/generate-bases-views --target lessons` to update the Obsidian Bases lessons dashboard.
~/.claude/knowledge/{category}/ or docs/09-lessons-learned/ with correct frontmatterrelated: cross-references in frontmatter