[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CD08859T7FPEYM7QS0H2WD":3,"skill-same:01M6CD08859T7FPEYM7QS0H2WD":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":14,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":43,"install":44,"resources":57},"01M6CD08859T7FPEYM7QS0H2WD","curating-memories",null,"Guidance for maintaining memory quality through curation. Covers updating outdated notes, marking obsolete content, and linking related knowledge. Use when notes need modification, when new information supersedes old, or when building knowledge graph connections.","loriensleafs\u002Fbrain","loriensleafs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F315385?v=4","01M6CCYZETMCJPTHNS258YRCBC","Peter Kloss","01M6CCYZK25T8516A39S9PCJT7",0,"MIT","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fcurating-memories\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"curating memories","memory","notes","content","graph","knowledge graph","knowledge","quality","use","guidance","2026-11-10 10:12:30",false,"---\nname: curating-memories\ndescription: Guidance for maintaining memory quality through curation. Covers updating outdated notes, marking obsolete content, and linking related knowledge. Use when notes need modification, when new information supersedes old, or when building knowledge graph connections.\nlicense: MIT\nagents:\n  - memory\nmodel: claude-sonnet-4-5\nmetadata:\n  version: 2.0.0\n---\n\n# Curating Memories\n\nActive curation keeps the knowledge base accurate and connected. Outdated notes pollute search results and reduce effectiveness.\n\n## Triggers\n\n| Trigger Phrase | Operation |\n|----------------|-----------|\n| `how do I update a memory` | edit_note with append\u002Freplace_section |\n| `how do I mark a memory obsolete` | edit_note to add obsolescence marker |\n| `how do I link related memories` | edit_note to add relation wikilinks |\n| `how do I deduplicate memories` | Curation workflow: search, analyze, merge |\n| `how do I clean up stale memories` | Identify and mark obsolete outdated content |\n\n---\n\n## When to Update a Note\n\nUse `edit_note` when:\n\n- Information needs correction or clarification\n- Content needs refinement or additional observations\n- Relations to other notes need to be added\n- A section needs replacement with updated content\n\n```python\n# Append new observations to a note\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n- [fact] Updated information about this topic #tag\"\n})\n\n# Replace a specific section\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"replace_section\",\n  \"heading\": \"Observations\",\n  \"content\": \"## Observations\\n\\n- [decision] Revised approach selected #architecture\\n- [fact] New constraint discovered #constraint\"\n})\n\n# Find and replace specific content\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"find_replace\",\n  \"content\": \"old content\",\n  \"replacement\": \"new content\"\n})\n```\n\n## When to Mark Obsolete\n\nMark a note obsolete when:\n\n- Note is outdated or contradicted by newer information\n- Decision has been reversed or superseded\n- Referenced code\u002Ffeature no longer exists\n- Note was created in error\n\n```python\n# Add obsolescence marker via append\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n\\n## Status\\n\\n- [decision] OBSOLETE: Superseded by new architecture decision #obsolete\\n\\n## Relations\\n\\n- supersedes [[New Decision Note Title]]\"\n})\n```\n\nFor notes that should be fully removed:\n\n```python\nmcp__plugin_brain_brain__delete_note({\n  \"identifier\": \"\u003Cnote title or permalink>\"\n})\n```\n\n## When to Link Notes\n\nUse `edit_note` to add relations when:\n\n- Concepts are related but not connected via wikilinks\n- Building explicit knowledge graph structure\n- Connecting decisions to their implementations\n- Relating patterns across projects\n\n```python\n# Add relations to an existing note\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n- relates_to [[Target Note Title]]\\n- implements [[ADR-015 Auth Strategy]]\"\n})\n```\n\nRelations are expressed as wikilinks in the Relations section. Valid relation types: `implements`, `depends_on`, `relates_to`, `extends`, `part_of`, `inspired_by`, `contains`, `pairs_with`, `supersedes`, `leads_to`, `caused_by`.\n\n## Curation Workflow\n\nWhen creating new notes, check impact on existing knowledge:\n\n### Step 1: Search for Related Notes\n\n```python\nmcp__plugin_brain_brain__search({\n  \"query\": \"\u003Ctopic of new note>\",\n  \"mode\": \"semantic\",\n  \"limit\": 5\n})\n```\n\n### Step 2: Analyze Each Result\n\nFor each existing note, determine action:\n\n| Situation | Action |\n|-----------|--------|\n| Existing note is still accurate | Add relation wikilink to it |\n| Existing note has minor gaps | Edit it with edit_note (append) |\n| Existing note is now wrong | Mark obsolete, create new note |\n| Existing note is partially valid | Create new note, add relations between both |\n\n### Step 3: Execute Curation Plan\n\nPresent plan to user before executing:\n\n```text\nCuration plan:\n- Create: \"New Authentication Approach\" in decisions\u002F\n- Mark obsolete: \"Old Auth Pattern\" (superseded)\n- Add relation: New note -> \"Security Requirements\" note\n\nProceed? (y\u002Fn)\n```\n\n### Step 4: Execute and Report\n\nAfter user confirms:\n\n1. Create new note via `write_note`\n2. Mark obsolete notes via `edit_note` (append obsolescence marker)\n3. Add relations via `edit_note` (append wikilinks)\n4. Report results with all changes made\n\n## Signs of Poor Curation\n\nWatch for these indicators:\n\n- Multiple similar notes on same topic (deduplicate)\n- Notes referencing deleted code (mark obsolete)\n- Contradictory notes (resolve conflict)\n- Orphaned notes with no relations (consider linking or removing)\n\n---\n\n## When to Use\n\nUse this skill when:\n\n- Existing notes need correction or updated content\n- New information supersedes an older note\n- Building explicit relations between related knowledge\n- Duplicate notes need consolidation\n- Referenced code or features no longer exist\n\nUse [exploring-knowledge-graph](..\u002Fexploring-knowledge-graph\u002FSKILL.md) instead when:\n\n- Traversing relations for comprehensive context\n- Investigating cross-project connections\n\n---\n\n## Process\n\n1. Search for the target note using `mcp__plugin_brain_brain__search`\n2. Read the note using `mcp__plugin_brain_brain__read_note`\n3. Evaluate whether the note needs editing, linking, or marking obsolete\n4. Apply the appropriate curation operation via `edit_note`, `write_note`, or `delete_note`\n5. Verify the change took effect\n\n---\n\n## Anti-Patterns\n\n| Avoid | Why | Instead |\n|-------|-----|---------|\n| Deleting notes without checking relations | Breaks wikilinks in other notes | Mark obsolete first, check for incoming relations |\n| Creating duplicates of existing notes | Pollutes search results | Search first, edit existing if found |\n| Linking everything to everything | Dilutes relationship signal | Link only semantically meaningful connections |\n| Skipping user confirmation on curation plans | May obsolete valuable content | Present plan and wait for approval |\n| Ignoring orphaned notes | Degrades search quality over time | Periodically review and cull disconnected notes |\n\n---\n\n## Verification\n\nAfter curation operations:\n\n- [ ] Updated notes reflect accurate current state\n- [ ] Obsolete notes have clear reason documented\n- [ ] New relations use valid relation types and wikilink format\n- [ ] No duplicate notes remain on the same topic\n- [ ] Curation changes were confirmed by user before execution\n","# Curating Memories\n\nActive curation keeps the knowledge base accurate and connected. Outdated notes pollute search results and reduce effectiveness.\n\n## Triggers\n\n| Trigger Phrase | Operation |\n|----------------|-----------|\n| `how do I update a memory` | edit_note with append\u002Freplace_section |\n| `how do I mark a memory obsolete` | edit_note to add obsolescence marker |\n| `how do I link related memories` | edit_note to add relation wikilinks |\n| `how do I deduplicate memories` | Curation workflow: search, analyze, merge |\n| `how do I clean up stale memories` | Identify and mark obsolete outdated content |\n\n---\n\n## When to Update a Note\n\nUse `edit_note` when:\n\n- Information needs correction or clarification\n- Content needs refinement or additional observations\n- Relations to other notes need to be added\n- A section needs replacement with updated content\n\n```python\n# Append new observations to a note\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n- [fact] Updated information about this topic #tag\"\n})\n\n# Replace a specific section\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"replace_section\",\n  \"heading\": \"Observations\",\n  \"content\": \"## Observations\\n\\n- [decision] Revised approach selected #architecture\\n- [fact] New constraint discovered #constraint\"\n})\n\n# Find and replace specific content\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"find_replace\",\n  \"content\": \"old content\",\n  \"replacement\": \"new content\"\n})\n```\n\n## When to Mark Obsolete\n\nMark a note obsolete when:\n\n- Note is outdated or contradicted by newer information\n- Decision has been reversed or superseded\n- Referenced code\u002Ffeature no longer exists\n- Note was created in error\n\n```python\n# Add obsolescence marker via append\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n\\n## Status\\n\\n- [decision] OBSOLETE: Superseded by new architecture decision #obsolete\\n\\n## Relations\\n\\n- supersedes [[New Decision Note Title]]\"\n})\n```\n\nFor notes that should be fully removed:\n\n```python\nmcp__plugin_brain_brain__delete_note({\n  \"identifier\": \"\u003Cnote title or permalink>\"\n})\n```\n\n## When to Link Notes\n\nUse `edit_note` to add relations when:\n\n- Concepts are related but not connected via wikilinks\n- Building explicit knowledge graph structure\n- Connecting decisions to their implementations\n- Relating patterns across projects\n\n```python\n# Add relations to an existing note\nmcp__plugin_brain_brain__edit_note({\n  \"identifier\": \"\u003Cnote title or permalink>\",\n  \"operation\": \"append\",\n  \"content\": \"\\n- relates_to [[Target Note Title]]\\n- implements [[ADR-015 Auth Strategy]]\"\n})\n```\n\nRelations are expressed as wikilinks in the Relations section. Valid relation types: `implements`, `depends_on`, `relates_to`, `extends`, `part_of`, `inspired_by`, `contains`, `pairs_with`, `supersedes`, `leads_to`, `caused_by`.\n\n## Curation Workflow\n\nWhen creating new notes, check impact on existing knowledge:\n\n### Step 1: Search for Related Notes\n\n```python\nmcp__plugin_brain_brain__search({\n  \"query\": \"\u003Ctopic of new note>\",\n  \"mode\": \"semantic\",\n  \"limit\": 5\n})\n```\n\n### Step 2: Analyze Each Result\n\nFor each existing note, determine action:\n\n| Situation | Action |\n|-----------|--------|\n| Existing note is still accurate | Add relation wikilink to it |\n| Existing note has minor gaps | Edit it with edit_note (append) |\n| Existing note is now wrong | Mark obsolete, create new note |\n| Existing note is partially valid | Create new note, add relations between both |\n\n### Step 3: Execute Curation Plan\n\nPresent plan to user before executing:\n\n```text\nCuration plan:\n- Create: \"New Authentication Approach\" in decisions\u002F\n- Mark obsolete: \"Old Auth Pattern\" (superseded)\n- Add relation: New note -> \"Security Requirements\" note\n\nProceed? (y\u002Fn)\n```\n\n### Step 4: Execute and Report\n\nAfter user confirms:\n\n1. Create new note via `write_note`\n2. Mark obsolete notes via `edit_note` (append obsolescence marker)\n3. Add relations via `edit_note` (append wikilinks)\n4. Report results with all changes made\n\n## Signs of Poor Curation\n\nWatch for these indicators:\n\n- Multiple similar notes on same topic (deduplicate)\n- Notes referencing deleted code (mark obsolete)\n- Contradictory notes (resolve conflict)\n- Orphaned notes with no relations (consider linking or removing)\n\n---\n\n## When to Use\n\nUse this skill when:\n\n- Existing notes need correction or updated content\n- New information supersedes an older note\n- Building explicit relations between related knowledge\n- Duplicate notes need consolidation\n- Referenced code or features no longer exist\n\nUse [exploring-knowledge-graph](..\u002Fexploring-knowledge-graph\u002FSKILL.md) instead when:\n\n- Traversing relations for comprehensive context\n- Investigating cross-project connections\n\n---\n\n## Process\n\n1. Search for the target note using `mcp__plugin_brain_brain__search`\n2. Read the note using `mcp__plugin_brain_brain__read_note`\n3. Evaluate whether the note needs editing, linking, or marking obsolete\n4. Apply the appropriate curation operation via `edit_note`, `write_note`, or `delete_note`\n5. Verify the change took effect\n\n---\n\n## Anti-Patterns\n\n| Avoid | Why | Instead |\n|-------|-----|---------|\n| Deleting notes without checking relations | Breaks wikilinks in other notes | Mark obsolete first, check for incoming relations |\n| Creating duplicates of existing notes | Pollutes search results | Search first, edit existing if found |\n| Linking everything to everything | Dilutes relationship signal | Link only semantically meaningful connections |\n| Skipping user confirmation on curation plans | May obsolete valuable content | Present plan and wait for approval |\n| Ignoring orphaned notes | Degrades search quality over time | Periodically review and cull disconnected notes |\n\n---\n\n## Verification\n\nAfter curation operations:\n\n- [ ] Updated notes reflect accurate current state\n- [ ] Obsolete notes have clear reason documented\n- [ ] New relations use valid relation types and wikilink format\n- [ ] No duplicate notes remain on the same topic\n- [ ] Curation changes were confirmed by user before execution\n",{"name":5,"model":34,"agents":35,"license":15,"metadata":36,"description":7},"claude-sonnet-4-5",[20],{"version":37},"2.0.0","main","2bd10cb7ca989f88dbf338b57957763718eda59b","templates\u002Fskills\u002Fcurating-memories","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain","https:\u002F\u002Fgithub.com\u002Floriensleafs","2026-03-11 23:51:59",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add loriensleafs\u002Fbrain --skill curating-memories",{"tool":50,"command":51},"bunx","bunx skills add loriensleafs\u002Fbrain --skill curating-memories",{"tool":53,"command":54},"pnpm","pnpm dlx skills add loriensleafs\u002Fbrain --skill curating-memories","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fcurating-memories\u002FSKILL.md",true,[58],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"REFERENCE.md","REFERENCE","参考文档",1894,"https:\u002F\u002Fgithub.com\u002Fmalinskibeniamin\u002Fskills\u002Fblob\u002Fmain\u002Fprime\u002FREFERENCE.md",[65,81,91,114,135,159],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":29},"01M6CD3KHDHPR633RVP95G4XWN","validation-authority","Treat upstream validators as authoritative. Align local config to them. Use when validation fails unexpectedly, before modifying validator behavior, or when tempted to change upstream tool code.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fvalidation-authority\u002FSKILL.md",[],[72,73,74,27,75,76,77,78,79,80],"validation authority","validation","config","implementer","behavior","tool","architect","code","change",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":29},"01M6CD3H29Q8FWN9YETT8YVQTS","using-brain-memory","Guidance for using Brain semantic memory effectively. Applies Zettelkasten atomic note principles with observations and relations. Use when deciding whether to query or create notes, structuring note content, or understanding the semantic knowledge graph.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fusing-forgetful-memory\u002FSKILL.md",[],[88,20,22,89,21,23,28,27,90,25,24],"using brain memory","create","context",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":29},"01M6CD3E2KTTMNSWXRJAAZA7D1","threat-modeling","Structured security analysis using OWASP Four-Question Framework and STRIDE methodology. Generates threat matrices with risk ratings, mitigations, and prioritization. Use for attack surface analysis, security architecture review, or when asking what can go wrong.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fthreat-modeling\u002FSKILL.md",[],[98,99,100,27,101,78,102,103,104,105,106,107,108,109,110,111,112,113],"threat","threat modeling","prioritization","question","architecture review","stride","analysis","risk","owasp","methodology","framework","security analysis","architecture","security","go","review",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":29},"01M6CD3BC6G0Q2MDNW6X51XHBQ","taste-lints","Custom lints with agent-readable remediation instructions. Enforces taste invariants (file size, naming conventions, structured logging, complexity) and surfaces errors that agents can act on directly. Use when writing or reviewing code to catch style violations early.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Ftaste-lints\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[126,75,127,128,27,129,130,131,132,133,79,134],"taste lints","surfaces","complexity","instructions","remediation","file","logging","qa","writing",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":29},"01M6CD37Z7VD22BH42TG0GM66V","style-enforcement","Validate code against style rules from .editorconfig, StyleCop.json, and Directory.Build.props. Detects line ending violations, naming convention issues, indentation problems, and charset mismatches across C#, Python, TypeScript, and JavaScript. Produces JSON reports for pre-commit hooks and CI pipelines.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fstyle-enforcement\u002FSKILL.md",[],[142,143,144,145,146,147,75,148,149,150,151,152,133,153,79,154,155,156,157,158],"style enforcement","enforcement","ci","pipelines","directory","hooks","Rules","json","pre-commit","editorconfig","reports","issues","validate","commit","javascript","python","typescript",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":29},"01M6CD35JW73TPMCZBF9DTDEE8","steering-matcher","Match file paths against steering file glob patterns to determine applicable steering guidance. Use when orchestrator needs to inject context-aware guidance based on files being modified.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fsteering-matcher\u002FSKILL.md",[],[166,27,167,168,90,169,28,131],"steering matcher","files","haiku","orchestrator"]