Learn knowledge from local directories and store it in agent memory for future reference.
Activate this skill when user says:
FormatExtensionsSupportMarkdown.md, .markdownFullPython.pyFullJavaScript/TypeScript.js, .ts, .jsx, .tsxFullJava.javaFullGo.goFullRust.rsFullC/C++.c, .cpp, .h, .hppFullShell.sh, .bash, .zshFullYAML/JSON/TOML.yaml, .yml, .json, .tomlFullSQL.sqlFullOther text.txt, .csvFull
Not supported in v0.0.1: PDF, Word, Excel, PowerPoint, Keynote, audio, video files.
LayerStorageContentPurposeL1 Core MemoryAgent MemoryKey conclusions, core concepts, decisionsAuto-surface in daily conversationsL2 Knowledge IndexAgent MemoryFile paths, summaries, keyword mappingsKnow where knowledge livesL3 Source FilesLocal filesystemComplete original contentDeep-dive when needed via read_file
How It Works:
All runtime data is stored in ~/.keep-learning/:
FilePurposelast-commitGit commit hash of last learning sessionconfig.jsonUser configuration (knowledge base path, etc.)
First, search memory (category: project_environment_configuration) for an existing knowledge base path.
~/knowledge/work-assistant. Start learning from there?"Once confirmed, store the path in memory using update_memory with category project_environment_configuration.
Check if knowledge base is a git repository and pull latest changes before learning.
Scan for supported files. Exclude: .git, node_modules, .obsidian, pycache, .venv
For git repositories, detect ALL types of changes:
~/.keep-learning/last-commit using git diff <last-commit> HEAD --name-onlygit status --porcelainCombine both results to get the full list of changed files. This ensures learning happens even when:
After learning completes, update ~/.keep-learning/last-commit with current HEAD hash.
For non-git directories: scan all supported files (no incremental detection).
For each file: read content, identify theme/concepts/conclusions, extract key knowledge.
Create L1 memory entries using update_memory with appropriate category:
Title format: [Domain] Concise Topic Description
Create knowledge index with file path, theme, keywords mappings.
Output: Timestamp, Statistics, L1 Memories list, L2 Index summary, Notes.
Before creating: search_memory first. If exists, update; if not, create.
SituationActionFirst time userAsk for knowledge base pathGit repo detectedRun git pull before scanningLarge fileRead in chunks, summarize each sectionDuplicate knowledgeUpdate existing memoryUnsupported fileSkip and note in report