memory
Skill2 starsChanged 7 months agoMITView on GitHub
Cross-platform memory system. 3-tier HOT/WARM/COLD + LLM Wiki. Exhaustive source sync, session hooks, weekly consolidation, Notion publishing.
99 other projects use a version of this.
Adopted by
Most recently taken up by
- jaydubya818/ClaudeClaw-Mission-Controltheir own version, first seen Nov 8, 2026
- naman10parikh/pennytheir own version, first seen Nov 8, 2026
- NaturNestAI-Labs/beings-protocoltheir own version, first seen Nov 8, 2026
- wubinKKK/private-ai-workbenchtheir own version, first seen Nov 8, 2026
- shetengteng/skillix-hubtheir own version, first seen Nov 8, 2026
- matthewwong525/WongStacktheir own version, first seen Nov 8, 2026
Used with
Projects with it also use ecosystem-reference, fractal-delegation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
Maliot100XSkillsend-user-message
Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp). Use when the agent needs to notify, alert, or send an unsolicited message to a user — especially during heartbeat invocations, scheduled tasks, or when the agent wants to reach out without a prior user message in the current conversation. Triggers: 'send message to user', 'notify user', 'alert user', 'message the user on discord/telegram/whatsapp', or any need to proactively communicate with a paired sender.
Also in 4 projects that use this
jh941213Skilldocs-ci
문서 CI(링크·OpenAPI lint·breaking 게이트·mermaid 검증)나 문서 드리프트 감지(docs.yaml 신선도 검사)를 설치하거나 돌릴 때 사용. 문서 내용 작성은 docs-architecture·docs-interfaces·docs-manuals.
Also in 3 projects that use this
jh941213Skilldocs-interfaces
API·이벤트 인터페이스 문서(OpenAPI·swagger·AsyncAPI 명세, 엔드포인트 레퍼런스, API 구성도·시퀀스, API CHANGELOG)를 만들거나 코드와 맞출 때 사용. 시스템 구성도는 docs-architecture, API 설계 원칙은 api-design-principles.
Also in 3 projects that use this
- +6 more from naman10parikh
- +1 more from jh941213
Other versions99 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 99
- google-gemini/gemini-cli★ 109ksame name
- jlia0/tinyclaw★ 3.6ksame name
- TinyAGI/tinyagi★ 3.6ksame name
- TinyAGI/tinyclaw★ 3.6ksame name
- Chachamaru127/claude-code-harness★ 3.2ksame name
- codeaholicguy/ai-devkit★ 1.7ksame name
- Muuuun/luxas★ 1.2ksame name
- shobcoder/shob★ 575same name
- boshu2/agentops★ 453same name
- makushingu/harness-maxxing★ 161same name
89 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
58 rules. 0 are common, 18 are distinctive, and 40 are very specific to this project.
0
Common
Most of the 82 edited versions we read keep these.
18
Distinctive
This author's own choices. Worth a look.
40
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 144
Write SESSION-STATE.md BEFORE responding — not after.
- Very specific: line 177
All entries in memory/topics/*.md must have a decay class:
- Distinctive: line 231
If ambiguous: prefer the more specific category.
- Distinctive: line 234
Read the target file
- Very specific: line 244
Keep MEMORY.md ≤15 lines, format: - Title — one-line description
- Very specific: line 256
Read last 7 daily journals from memory/YYYY-MM-DD.md (relative to working directory)
- Very specific: line 266
Run /memory sync (picks up all sources including OpenClaw + compaction state)
- Distinctive: line 267
If OpenClaw is configured, ask the user before pushing openclaw-config to git
- Very specific: line 341
If the answer reveals a knowledge gap: create a stub page and log it as gap-identified
- Very specific: line 365
If a page is not in index.md, it functionally does not exist — the LLM won't find it in a query.
- Distinctive: line 373
Never edited, only appended
- Very specific: line 467
Every page in wiki/ must have:
- Very specific: line 495
Supersession rule: when a concept evolves, create the new page with supersedes: [[old-page]].
- Very specific: line 519
Run obsidian vault info=path — confirm vault is reachable
- Very specific: line 520
Verify wiki/ folder tree: {concepts,entities,sources,comparisons,raw/{web-clips,documents,sessions,external}}/
- Very specific: line 521
If any folder or file missing: create it (same as /memory wiki init)
- Very specific: line 522
Read wiki/schema.md — load operating rules before any write
- Very specific: line 542
Read knowledge/patterns/{cluster}/_*MOC.md — get cluster landscape
- Very specific: line 543
Read notes with agent-use: high (use obsidian search to filter)
- Very specific: line 544
Create or patch the target concept page: synthesize across all notes, cite top 5 by name in sources:
- Very specific: line 545
Update [[related]] cross-links to other concept pages in the same ingest pass
- Very specific: line 557
Read projects/_Projects MOC.md — get full project list with statuses
- Very specific: line 560
Create or patch wiki/entities/{name}.md with full frontmatter
- Very specific: line 584
Read memory/topics/*.md — all topic files
- Very specific: line 585
Read logs/sessions/*.md — last 7 days of session digests
- Distinctive: line 587
Do not create pages for ephemeral session facts — only route insights that would survive TTL
- Very specific: line 603
Rebuild
wiki/overview.md: update project landscape, concept cluster map, wiki vs knowledge/ table - Very specific: line 607
Notion publish: run /memory wiki sync notion — push all confidence: high + notion-id: "" + last_confirmed ≤90 days pages
- Very specific: line 660
--interactive: default for single-source ingests. - Very specific: line 663
Read source(s). Skip any with <!-- processed: YYYY-MM-DD -->.
- Distinctive: line 667
Ask: "Any emphasis or angles to focus on?
- Very specific: line 670
Read wiki/index.md — find existing pages this source touches.
- Very specific: line 675
Update wiki/index.md (≤30 entries — prune least-linked to make room).
- Very specific: line 680
Ingest rule: if a page isn't in wiki/index.md, it doesn't operationally exist.
- Very specific: line 683
Read wiki/index.md → identify 3–5 relevant pages by name
- Distinctive: line 691
If candidate, offer to file as new wiki page:
- Very specific: line 696
Add to wiki/index.md + append to wiki/log.md as query-filed
- Very specific: line 710
Write notion-id, notion-url, notion-synced: YYYY-MM-DD back to frontmatter
- Distinctive: line 714
Check and report (never auto-fix):
- Distinctive: line 726
After the problem report, always output a Growth Suggestions section:
- Distinctive: line 740
Run full lint, present findings
- Very specific: line 790
When the user runs /memory setup:
- Very specific: line 793
Check env: $OBSIDIAN_VAULT_PATH → use if set
- Distinctive: line 796
If none found: ask the user for the vault path
- Very specific: line 799
Run which obsidian → confirm binary exists
- Very specific: line 800
Run obsidian vault info=name → confirm app is reachable
- Distinctive: line 801
If CLI missing: inform user to install it, but continue (hooks have filesystem fallback)
- Very specific: line 806
If ~/.claude/hooks/ doesn't exist: mkdir -p ~/.claude/hooks/
- Distinctive: line 807
If a symlink already exists and points to the same file: skip
- Distinctive: line 808
If a symlink exists pointing elsewhere: warn the user, ask before overwriting
- Very specific: line 824
HOT tier: Read MEMORY.md → count lines, check for boundary violations
- Very specific: line 827
Last sync: Read the most recent memory/YYYY-MM-DD.md → show date
- Very specific: line 828
Vault status: Run obsidian vault info=path and obsidian files ext=md total → show stats
- Distinctive: line 849
If today > (date + N months): flag as expired
- Distinctive: line 850
If entry has no suffix and is older than 6 months: flag as missing TTL
- Very specific: line 851
Size audit: Check each topic file for >50 entries.
- Very specific: line 914
All vault notes must conform to this schema (defined in your vault's knowledge/TAXONOMY.md):
- Distinctive: line 934
Every sync operation outputs a structured report:
“Common” is measured: kept by at least 6 in 10 of the 82 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Memory
Cross-platform memory system for AI agents. 3-tier architecture (HOT/WARM/COLD), Obsidian vault sync, session hooks, weekly consolidation, and LLM Wiki (Mode 5) — a compounding knowledge base that publishes to Notion. Your agents forget everything between sessions — this fixes that.
Commands
| Command | Description |
/memory sync | Sync current session to memory (Mode 1) |
/memory sync openclaw | Pull OpenClaw journals into Obsidian (Mode 2) |
/memory sync projects | Sync Claude Code project memory to Obsidian (Mode 3) |
/memory dream | Analyze memory and evolve: journals→topics, prune, TTL audit (Mode 4) |
/memory status | Memory health: tier sizes, TTL alerts, last sync times |
/memory setup | Configure vault path, detect platforms, install hooks |
/memory audit | TTL audit + boundary check + health alerts |
/memory wiki sync | Full pipeline: init → ingest all vault sources → Notion publish (Mode 5) |
/memory wiki sync --full | Full pipeline, reprocessing all sources from scratch (Mode 5) |
/memory wiki init | Initialize wiki/ folder structure in vault (Mode 5) |
/memory wiki ingest [source] | Process raw source → compile wiki pages (Mode 5) |
/memory wiki ingest --from-memory | Pull session digests + topics → wiki pages (Mode 5) |
/memory wiki query [topic] | Answer from compiled wiki, not raw sources (Mode 5) |
/memory wiki sync notion | Push publish-ready pages to Notion (Mode 5) |
/memory wiki lint | Health check: orphans, stale, broken links, missing provenance (Mode 5) |
/memory wiki dream | Bulk consolidation: merge, contradiction detection, rebuild index (Mode 5) |
/memory wiki status | Wiki stats: pages, stale count, publish queue, last sync (Mode 5) |
Memory Architecture
HOT ≤2400tok, always loaded
MEMORY.md = router (project index, topic pointers — facts only)
SESSION-STATE.md = WAL hot RAM (current task, decisions, pending actions)
WARM on-demand read when domain is relevant
memory/topics/*.md domain-scoped facts with TTL
memory/YYYY-MM-DD.md daily journals (last 7 days)
COLD search-only, permanent
Obsidian vault knowledge/, logs/, projects/, identity/, dev/
↕ parallel, not replacing COLD ↕
WIKI LLM-owned, compounding synthesis (Mode 5)
wiki/concepts/ compiled concept + synthesis pages
wiki/entities/ people, products, tools
wiki/sources/ per-source summaries
wiki/comparisons/ structured option comparisons
wiki/raw/ immutable inputs (web-clips, docs, sessions, external)Sync direction: Session → HOT → WARM → COLD (Obsidian) → WIKI → Notion.
OpenClaw writes independently to openclaw-config/memory/ → synced to Obsidian via Mode 2.
Wiki feeds from COLD tier via ingest --from-memory and publishes outward to Notion.
Tier Rules
| Tier | Token Budget | Read Pattern | Write Pattern |
| HOT | ≤2400 tokens | Always loaded | Write-before-respond (WAL) |
| WARM | On-demand | Read when domain matches | Append with TTL suffix |
| COLD | Search-only | obsidian search → read | Create/patch via Obsidian CLI |
| WIKI | On-demand | wiki/index.md → targeted reads | LLM compiles + patches pages |
Boundary Rules (Critical)
| File | Contains | Never Contains |
MEMORY.md | Facts about the world, project index, identity | Behavioral rules, instructions |
AGENTS.md | Behavioral rules, instructions, compaction policy | Domain facts, API configs |
SESSION-STATE.md | Live working memory, WAL entries | Long-term facts |
memory/topics/*.md | Domain-scoped facts with TTL | Rules or instructions |
Obsidian knowledge/ | Patterns, decisions, learnings | Ephemeral session data |
Boundary test: grep -c "NEVER\|ALWAYS\|must\|rule" MEMORY.md must return 0.
Corruption risk: Mixing behavioral rules into MEMORY.md teaches agents facts that should be instructions. Mixing facts into AGENTS.md teaches agents rules that should decay. Both corruptions compound silently — the system appears healthy until an agent follows a stale rule or ignores a live fact.
WAL Protocol (Session-State)
Write SESSION-STATE.md BEFORE responding — not after.
| Trigger | Action |
| User states preference | Write SESSION-STATE.md → THEN respond |
| User makes decision | Write SESSION-STATE.md → THEN respond |
| User gives deadline | Write SESSION-STATE.md → THEN respond |
| User corrects you | Write SESSION-STATE.md → THEN respond |
| Session ending | Flush SESSION-STATE.md → daily journal + topic files |
SESSION-STATE.md Format
## Current Task
[What you're working on right now]
## Key Context
[Important facts from this session]
## Pending Actions
- [ ] [Action items]
## Recent Decisions
- [Decision with reasoning]
## Blockers
- [Anything blocking progress]TTL Convention
All entries in memory/topics/*.md must have a decay class:
| Class | Suffix | Default TTL | Examples |
| permanent | (no suffix) | never | User prefs, core arch decisions |
| operational | [date:6m] | 6 months | API versions, tool configs |
| project | [date:3m] | 3 months | Project-specific facts |
| session | [date:1m] | 30 days | Session notes, research citations |
Example: Stripe API v2024-12 [2026-03-16:6m]
Sync
Trigger: "save to memory" / "remember this" / "sync memory" / session compaction
/memory sync — no sub-commands, no flags. Every sync scrapes all available sources.
Sources (all checked on every sync):
| Source | Path | Available when |
| Session conversation | current context | always |
| Session state | SESSION-STATE.md (cwd) | always |
| Local journals | memory/YYYY-MM-DD.md (cwd) | if files exist |
| Compaction state | ~/.claude/compaction-state/latest.md | if file exists |
| CC project memories | ~/.claude/projects/*/memory/*.md | always |
| CC saved plans | ~/.claude/plans/*.md | if files exist |
| OpenClaw journals | $OPENCLAW_CONFIG_PATH/memory/*.md | if env var set |
| OpenClaw topics | $OPENCLAW_CONFIG_PATH/memory/topics/*.md | if env var set |
Pipeline:
- Collect — scan all sources above into one insight pool; mark each item with source label
- Dated sources (journals, compaction state): skip entries already in the vault
- CC project memories: read all files, infer type from frontmatter or content; prefix output filenames with
cc- - OpenClaw: strip raw JSON/webhook payloads; keep human-readable insights, summaries, decisions
- OpenClaw journals → write to Obsidian
logs/journals/YYYY-MM-DD.mdwithsource: openclaw-config/memory/frontmatter - OpenClaw topics → compare against
knowledge/learnings/openclaw-operational-lessons.md, patch in new entries
- Classify — run the full decision tree on every item in the pool:
- Contains a server, deploy, hosting, or infrastructure fact →
memory/topics/infra.md - References a specific project by name →
memory/topics/{project}.md - Contains an API key, CLI tool, credential, or version number →
memory/topics/tools-creds.md - Is a reusable framework, architecture, or technique applicable beyond this session → Obsidian
knowledge/patterns/ - Records a strategic choice with reasoning ("chose X over Y because...") → Obsidian
knowledge/decisions/ - Is a one-time gotcha, bug fix, or "I learned that..." → Obsidian
knowledge/learnings/ - Is a timestamped event or session summary →
memory/YYYY-MM-DD.md+ Obsidianlogs/journals/ - Is a behavioral instruction (NEVER, ALWAYS, must, should) →
AGENTS.md(NEVER to MEMORY.md) - CC reference/pattern → Obsidian
knowledge/patterns/cc-{name}.md - CC feedback/learning → Obsidian
knowledge/learnings/cc-{name}.md - CC decision → Obsidian
knowledge/decisions/cc-{name}.md - Plan file → Obsidian
knowledge/patterns/cc-plan-{name}.md - If ambiguous: prefer the more specific category. If still unclear: ask the user.
- Contains a server, deploy, hosting, or infrastructure fact →
- Dedup — before writing each entry:
- Read the target file
- Semantic match ≥80% → update in-place (patch). <80% → append. Exact duplicate → skip.
- TTL — assign suffix to topic entries:
- User preference or core architecture decision → permanent (no suffix)
- API version, tool config, credential →
[today:6m](operational) - Project-specific fact →
[today:3m](project) - Research note, session-specific finding →
[today:1m](session)
- Route to tiers — HOT: update
SESSION-STATE.md(WAL) +MEMORY.mdrouter → WARM:memory/topics/*.md→ COLD: Obsidian vault (tag per TAXONOMY.md)- Keep
MEMORY.md≤15 lines, format:- [Title](memory/topics/file.md) — one-line description
- Keep
- Feed wiki — for each new or updated COLD entry, create or update the corresponding
wiki/page (Karpathy pattern); updatewiki/index.mdif a new page is added; patch existing pages if content changed - Report —
Session: N | Journals: N | Compaction: N | CC: N | Plans: N | OpenClaw: N | Wiki pages touched: N | Skipped: N (duplicates)
Dream (Analyze & Evolve)
Runs on schedule (Sunday 3am UTC via DREAM_SCHEDULE cron) or manually. Not optional hygiene — it prevents silent decay. If it hasn't run in 7+ days, journals pile up unclassified, topics bloat, expired TTLs accumulate.
Trigger: Weekly cron OR "memory dream" OR "dream"
- Read last 7 daily journals from
memory/YYYY-MM-DD.md(relative to working directory) - For each journal entry, classify using the decision logic above → route to
memory/topics/*.md - Prune MEMORY.md: keep ≤15 lines, zero behavioral rules
- TTL audit: scan all topic files, compare
[YYYY-MM-DD:Nm]suffix against today's date → flag expired - Tag audit: ensure all new vault entries have TAXONOMY.md-compliant frontmatter tags + domain
- Health check:
- Topic file > 50 entries → split into sub-topics
- MEMORY.md > 15 lines → prune immediately
- Entry > 6 months with no TTL suffix → assign TTL or archive
- Rebuild wiki: merge stale pages, detect contradictions, rebuild
wiki/index.md— keep index ≤30 entries - Run
/memory sync(picks up all sources including OpenClaw + compaction state) - If OpenClaw is configured, ask the user before pushing openclaw-config to git
LLM Wiki — Karpathy Reference
Read this section before implementing any
/memory wikicommand. It is the canonical source of truth for why the wiki works the way it does. The operational details are inwiki/schema.md; this section explains the principles behind them.
Source: Andrej Karpathy, llm-wiki gist (April 4, 2026). 5K+ stars, 3.7K forks within days of publication. URL: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
The Core Insight
Traditional RAG re-derives answers from raw documents on every query — knowledge never accumulates. The LLM Wiki pattern inverts this:
"Rather than retrieving from raw documents each time, have the LLM incrementally build and maintain a persistent wiki — structured markdown files that synthesize and cross-reference sources."
The wiki is compiled knowledge. Like compiled code vs always recompiling from source — the compilation happens once, the cost amortizes across every subsequent query. Cross-references are already built in. Contradictions are already flagged. Synthesis is already done.
Why human-maintained wikis fail: The maintenance burden (updating cross-references, noting contradictions, keeping summaries current) grows faster than perceived value. Humans abandon wikis. LLMs don't get bored — they handle 15-file updates in one pass. The human's job becomes curation, direction, and asking the right questions.
Three Layers
Karpathy defines exactly three layers. This is not flexible — the structure is load-bearing:
Layer 1 — Raw Sources
Immutable documents the LLM reads but never modifies.
PDFs, articles, transcripts, web clips, session notes.
Ground truth. If something here is wrong, fix it here.
Layer 2 — The Wiki
LLM-generated and LLM-maintained markdown files.
Summaries, entity pages, concept pages, syntheses, contradiction flags.
The LLM owns this entirely.
Layer 3 — The Schema
A configuration document (CLAUDE.md or equivalent) that tells the LLM
how to structure and maintain the wiki.
Updated only intentionally, not automatically.Why three layers and not two: The schema layer is what prevents the wiki from drifting. Without explicit operating rules, LLMs make inconsistent structural decisions across sessions. The schema is the contract that makes the wiki coherent over time.
Three Operations
Karpathy specifies exactly three operations. Every /memory wiki command maps to one of these:
Operation 1: Ingest
"The LLM reads the source, discusses key takeaways, writes a summary page in the wiki, updates the index, updates relevant entity and concept pages across the wiki, and appends an entry to the log."
Key behaviors:
- A single source typically touches 5–15 existing pages — ingest is not a one-page operation
- The index (
wiki/index.md) is updated on every ingest — it is the operational registry - The log (
wiki/log.md) is updated on every ingest — it is the audit trail - Raw sources are marked
<!-- processed: YYYY-MM-DD -->— idempotency guarantee - Cross-links are bidirectional — A references B means B must reference A
Operation 2: Query
"You ask questions against the wiki. The LLM searches for relevant pages, reads them, and synthesizes an answer with citations. Answers can take different forms — markdown page, comparison table, slide deck, chart."
Key behaviors:
- The LLM reads
wiki/index.mdfirst to identify relevant pages — not the raw sources - Citations use
[[wikilink]]format — verifiable, navigable - If the answer reveals a knowledge gap: create a stub page and log it as
gap-identified - Valuable answers can be filed as new wiki pages — query output compounds the wiki
Operation 3: Lint
"Periodically, ask the LLM to health-check the wiki. Look for: contradictions between pages, stale claims that newer sources have superseded, orphan pages with no inbound links, important concepts mentioned but lacking their own page, missing cross-references, data gaps."
Key behaviors:
- Lint is periodic hygiene, not continuous — run it manually or with dream
- Report only — lint never auto-deletes or auto-fixes; it presents findings to the user
- Contradictions are surfaced, not resolved — resolution requires human judgment on which source to trust
Special Files
Two files are essential to every wiki. Without them, the wiki degrades:
wiki/index.md — The Catalog
"Catalog organized by category with links, one-line summaries, and metadata."
- Hard limit: ≤30 entries. This is not a soft guideline — it is a forced curation constraint. When full, the LLM must decide what to prune (least-linked) to add something new. This pressure is what prevents wiki rot.
- Updated on every ingest, every dream, every new page creation.
- If a page is not in
index.md, it functionally does not exist — the LLM won't find it in a query. - Format:
- [[page-name]] — one-line summary (type)
wiki/log.md — The Audit Trail
"Append-only chronological record with consistent prefixes:
## [YYYY-MM-DD] operation | Description"
- Grep-parseable by design:
grep "ingest" wiki/log.mdreturns every source ever processed - Never edited, only appended
- Operations:
init·ingest·update·query·lint·sync-notion·dream·gap-identified - Example:
## [2026-04-13] ingest | tiered-agent-memory-architecture.md | 7 pages touched
Why This Works (and When It Doesn't)
Why it works:
- Maintenance burden shifts entirely to the LLM — humans only need to drop sources and ask questions
- Knowledge compounds: each ingest enriches existing pages rather than adding isolated documents
- Cross-references are structural: the wiki has topology (graph), not just content (pile of files)
- Echoes Vannevar Bush's 1945 Memex — associative trails through personal knowledge — but solves the maintenance problem Bush couldn't
Known failure modes (community consensus from 120+ gist comments):
| Failure mode | Root cause | Fix |
| Wiki becomes unreliable | Error accumulation — LLM paraphrases instead of citing | Require sources: in every page; lint for missing provenance |
| Pages drift apart | Asymmetric links, no re-synthesis | Bidirectional link rule; periodic dream |
| Index becomes stale | Pages created without updating index | Enforce: index update is part of ingest, not optional |
| Near-duplicates proliferate | No dedup check before creation | Read index.md before creating; merge on dream |
| Confidence inflation | LLM marks everything high | Require ≥2 source-refs for confidence: high |
Community Extensions (v2 Pattern — rohitg00)
Extends the original with production lessons from building agentmemory:
- Confidence scoring — facts weighted by recency and confirmation count
- Supersession tracking — contradicted claims marked, not deleted
- Ebbinghaus forgetting — stale knowledge deprioritized on queries
- Schema validation —
resolver.pycatches malformed frontmatter before it hits the filesystem - Event-driven hooks — auto-ingest on new source drop; auto-lint on schedule
- Hybrid search at scale — BM25 + vector + graph traversal fused via RRF (needed beyond ~200 pages)
These are opt-in extensions. The base three-layer pattern is sufficient for most use cases.
Relationship to This Memory System
The wiki is Mode 5 — the output tier of the full memory pipeline:
HOT SESSION-STATE.md (WAL, current session)
↓ /memory sync (Modes 1–4)
WARM memory/topics/*.md + journals
↓
COLD Obsidian vault: knowledge/ + logs/ + projects/
↓ /memory wiki ingest --from-memory (Mode 5)
WIKI wiki/concepts/ + entities/ + sources/ ← LLM compiles from COLD
↓ /memory wiki sync notion
OUT Notion: Pattern Library + Learnings & InsightsThe key integration: ingest --from-memory treats recent session digests (logs/sessions/) and topic files (memory/topics/*.md) as raw sources for the wiki. Every /memory sync session potentially feeds the wiki. Knowledge accumulates without extra effort.
Parallel systems: wiki/ runs alongside knowledge/ — they are not the same system and must never be merged. knowledge/ is atomic, human-authored, TAXONOMY-governed. wiki/ is synthetic, LLM-authored, schema.md-governed. They have different granularity, different ownership, different output targets.
Mode 5: Wiki (LLM Wiki — Karpathy Pattern)
What it is: A compounding knowledge base in wiki/ — parallel to TAXONOMY-governed knowledge/, not replacing it. Unlike RAG which re-derives answers from raw docs on every query, the wiki compiles knowledge once and keeps it current. The LLM owns all pages in wiki/; humans curate sources and ask questions.
Full schema and operational rules: wiki/schema.md — read before any wiki operation.
Parallel systems rule:
knowledge/ | wiki/ | |
| Owner | Human | LLM |
| Granularity | Atomic (one concept per note) | Synthesized (cross-source) |
| Schema | TAXONOMY.md | wiki/schema.md |
| Structure | Type + domain folders | Type folders: concepts/entities/sources/comparisons/ |
| Trigger | Human writes | /memory wiki ingest |
| Output | Stays in vault | → Notion (Pattern Library + Learnings) |
Continuous loop:
Sessions (HOT)
↓ /memory sync (Modes 1–4)
WARM + COLD (topics/, knowledge/, logs/)
↓ /memory wiki ingest --from-memory
wiki/concepts/ + entities/ + sources/
↓ /memory wiki sync notion
Notion: Pattern Library + Learnings & InsightsWiki Frontmatter Schema
Every page in wiki/ must have:
---
title: Page Title
type: concept|entity|source-summary|comparison|synthesis|contradiction
sources: [] # vault paths or wiki/raw/ files that informed this page
related: [] # [[wikilinks]] to other wiki pages (bidirectional)
created: YYYY-MM-DD
updated: YYYY-MM-DD
last_confirmed: YYYY-MM-DD # date confidence was last verified; lint flags if >90 days old
confidence: high|medium|low
supersedes: "" # [[page]] this page replaces (if any)
superseded_by: "" # [[page]] that has replaced this page (set + downgrade to low)
domain: dev|operations|content|marketing|business|ai-agents|identity|product
tags: []
notion-id: "" # auto-populated by sync notion
notion-url: ""
notion-synced: ""
---Confidence semantics:
high— ≥2 sources confirm ANDlast_confirmed≤90 days old. Ready for Notion sync.medium— one source, or unverified in >90 days. Needs corroboration before publishing.low— stub, contradicted, or superseded. Do not publish.
last_confirmed rule: set to today on every ingest that touches the page. Lint flags confidence: high pages where last_confirmed > 90 days — downgrade to medium pending re-verification.
Supersession rule: when a concept evolves, create the new page with supersedes: [[old-page]]. On the old page, set superseded_by: [[new-page]] and downgrade to confidence: low. Do NOT delete — the history of belief changes matters.
Type → folder:
| type | folder |
| concept, synthesis | concepts/ |
| entity | entities/ |
| source-summary | sources/ |
| comparison | comparisons/ |
| contradiction | concepts/ (unresolved conflicts) |
/memory wiki sync [--full]
The primary wiki command. Orchestrates the complete pipeline: init → ingest all vault sources in order → Notion publish. Safe to run repeatedly — incremental by default.
--full flag: reprocesses all sources from scratch, ignoring <!-- processed: markers.
Strategy: The vault has ~479 notes. This command ingests by cluster (MOC-first), not note-by-note. Each cluster becomes 1–3 synthesis pages, not N individual pages. This keeps the wiki as a synthesis layer, not a mirror.
Phase 1 — Init (always runs)
- Run
obsidian vault info=path— confirm vault is reachable - Verify
wiki/folder tree:{concepts,entities,sources,comparisons,raw/{web-clips,documents,sessions,external}}/ - If any folder or file missing: create it (same as
/memory wiki init) - Read
wiki/schema.md— load operating rules before any write
Phase 2 — Knowledge Graph (Obsidian COLD tier)
Ingest the vault's knowledge/ folder by cluster via MOC. Read the MOC for each cluster + the 3–5 highest-agent-use: high notes per cluster. Do not read every note individually.
Source → Wiki target
knowledge/patterns/ai-agents/ → concepts/ai-agent-patterns.md (update or create)
knowledge/patterns/business/ → concepts/business-patterns.md
knowledge/patterns/content/ → concepts/content-patterns.md
knowledge/patterns/marketing/ → concepts/marketing-patterns.md
knowledge/patterns/technical/ → concepts/technical-patterns.md
knowledge/learnings/ → sources/vault-learnings.md (rolling summary)
knowledge/decisions/ → sources/vault-decisions.md (rolling summary)Steps per cluster:
- Read
knowledge/patterns/{cluster}/_*MOC.md— get cluster landscape - Read notes with
agent-use: high(useobsidian searchto filter) - Create or patch the target concept page: synthesize across all notes, cite top 5 by name in
sources: - Update
[[related]]cross-links to other concept pages in the same ingest pass
Mark each MOC as <!-- processed: YYYY-MM-DD --> on incremental runs to skip on re-run.
On --full: ignore processed markers, reprocess all clusters.
Phase 3 — Projects
Ingest projects/ folder. One entity page per active project.
Steps:
- Read
projects/_Projects MOC.md— get full project list with statuses - For each project with
status: activeorstatus: building:- Read
projects/{name}.md - Create or patch
wiki/entities/{name}.mdwith full frontmatter - Extract: stack, status, key architecture decisions, relationships to other projects
- Cross-link to any concept pages that apply (e.g., openclaw.md links to ai-agent-patterns.md)
- Read
- Skip
status: paused,archived,referenceunless--full
Phase 4 — Dev / Identity / Operations
Ingest supporting vault folders via their MOCs.
Source Strategy → Wiki target
dev/_Dev MOC.md Read MOC + top stacks/tools → sources/dev-stack-reference.md
identity/ Read all identity notes → entities/neo-identity.md
operations/ Read operational playbooks MOC → sources/operations-playbooks.mdPhase 5 — Memory Tier (--from-memory)
Ingest the HOT/WARM tier — the most recent session knowledge not yet in COLD.
- Read
memory/topics/*.md— all topic files - Read
logs/sessions/*.md— last 7 days of session digests - Route each insight to the most relevant existing wiki page (patch) or create new if no match
- Do not create pages for ephemeral session facts — only route insights that would survive TTL
Phase 6 — Raw Sources (wiki/raw/)
Process any unprocessed files dropped into the raw/ subdirs.
- Scan
wiki/raw/{web-clips,documents,sessions,external}/for files without<!-- processed:header - For each unprocessed file: run standard ingest (Phase 2 steps per source)
- Mark each as
<!-- processed: YYYY-MM-DD -->
Phase 7 — Finalize
- Rebuild
wiki/overview.md: update project landscape, concept cluster map, wiki vs knowledge/ table - Rebuild
wiki/index.md: scan all wiki pages, count inbound links per page, keep top ≤30 by inbound-link count - Append to
wiki/log.md:## [YYYY-MM-DD] sync | full-pipeline | [n] pages created | [n] patched | [n] Notion queued - Update
wiki/sources.md: append any newly processed sources to the registry - Notion publish: run
/memory wiki sync notion— push allconfidence: high+notion-id: ""+last_confirmed≤90 days pages- Skip stale pages (last_confirmed > 90 days); report count in sync report
Phase 7 — Sync Report
Wiki sync complete
──────────────────────────────────────────
Phase 2 (knowledge graph):
Clusters processed: 7
Pages created: [n] | patched: [n]
Phase 3 (projects):
Active projects: [n]
Entity pages created: [n] | patched: [n]
Phase 4 (dev/identity/operations):
Sources processed: 3
Pages created: [n] | patched: [n]
Phase 5 (memory tier):
Topic files: [n] | Session digests: [n]
Wiki pages updated: [n]
Phase 6 (raw sources):
Unprocessed files found: [n]
Pages created: [n]
Finalize:
Index: [n]/30 entries
Notion queue: [n] pages (confidence:high, last_confirmed ≤90d)
Notion published: [n]
Confidence stale (skipped Notion): [n] pages
Health: [OK | ALERTS: ...]
──────────────────────────────────────────/memory wiki init
- Confirm vault path via
obsidian vault info=path - Verify structure:
wiki/{concepts,entities,sources,comparisons,raw/{web-clips,documents,sessions,external}}/ - Confirm
wiki/schema.md,wiki/index.md,wiki/log.md,wiki/overview.mdexist - Report pages by type, last log entry
/memory wiki ingest [source|--from-memory] [--interactive]
--from-memory: reads logs/sessions/*.md (last 7 days) + memory/topics/*.md as source material.
[file]: reads specified file from wiki/raw/ or vault path.
[vault-cluster]: reads a folder of vault notes as a batch source (e.g., knowledge/patterns/ai-agents/).
--interactive: default for single-source ingests. Presents key takeaways before writing. Batch mode (--from-memory, wiki sync) is non-interactive.
Steps:
- Read source(s). Skip any with
<!-- processed: YYYY-MM-DD -->. 1.5 (interactive mode only) Present key takeaways before writing:- Summarize 3–5 key insights from the source
- List which existing wiki pages this source touches
- Ask: "Any emphasis or angles to focus on? [enter to proceed]"
- Adjust synthesis based on user direction before writing (Karpathy: "I prefer to ingest sources one at a time and stay involved — I read the summaries, check the updates, and guide the LLM on what to emphasize.")
- Read
wiki/index.md— find existing pages this source touches. - For each affected page (5–15 typical):
- Exists → patch: update body,
updated,last_confirmed, add tosources:, note contradictions - New → create: full frontmatter (including
last_confirmed: today), place in correct type folder
- Exists → patch: update body,
- Bidirectional cross-link: every
related:entry must link back. - Update
wiki/index.md(≤30 entries — prune least-linked to make room). - Append to
wiki/log.md:## [YYYY-MM-DD] ingest | [source] | [n] pages touched. - Mark source processed: prepend
<!-- processed: YYYY-MM-DD -->. - Append to
wiki/sources.md: add row| [source] | [type] | [today] | [today] | [pages touched] |.
Ingest rule: if a page isn't in wiki/index.md, it doesn't operationally exist. Always update index.
/memory wiki query [question]
- Read
wiki/index.md→ identify 3–5 relevant pages by name - Read those pages
- Synthesize answer with
[[page]]citations - Gap found → create stub page (
confidence: low), loggap-identified - Evaluate answer quality for filing:
- Synthesizes ≥2 wiki pages into a new conclusion → synthesis candidate
- Compares options from ≥2 pages → comparison candidate
- Merely restates one existing page → not a candidate
- If candidate, offer to file as new wiki page:
type: synthesis→concepts/·type: comparison→comparisons/sources:= the wiki pages read during this queryconfidence: medium(one query session = one source; needs corroboration to reachhigh)last_confirmed:today- Add to
wiki/index.md+ append towiki/log.mdasquery-filed
(Karpathy: "good answers can be filed back into the wiki as new pages... This way your explorations compound in the knowledge base just like ingested sources do.")
/memory wiki sync notion
- Find pages:
notion-id: ""+confidence: high+last_confirmed≤90 days old- Pages with
confidence: highbutlast_confirmed> 90 days: skip + report as "confidence stale"
- Pages with
- Route by type:
concept|entity|synthesis→ Pattern Library (bb55a805-3f8d-4958-8c89-0f353e8572de)source-summary|contradiction→ Learnings & Insights (0e411a6b-1367-4e9d-af52-5d2c534cc356)
- Property mapping:
- Pattern Library:
title→Pattern Name ·domain→Category · body→Description ·tags→Projects Used ·created→Date Discovered - Learnings & Insights:
title→Learning ·domain→Category · body→Insight ·tags→Tags ·created→Date Learned
- Pattern Library:
notion api POST /v1/pages(create) orPATCH /v1/pages/{id}(update existing)- Write
notion-id,notion-url,notion-synced: YYYY-MM-DDback to frontmatter - Append to
wiki/log.md
/memory wiki lint
Check and report (never auto-fix):
- Orphan pages not in
wiki/index.md - Pages with
updated> 90 days ago - Broken
[[wikilinks]](target file doesn't exist) - Raw files without
<!-- processed:header - Pages missing
sources:entries - Asymmetric
related:links (A lists B but B doesn't list A) - Concept gaps:
[[wikilink]]in body text pointing to a non-existent wiki page → "concept mentioned, no page" - Confidence staleness:
confidence: high+last_confirmed> 90 days ago → "confidence unverified" - Supersession orphans:
superseded_by:points to non-existent page → "broken supersession" - Sources registry gaps: sources in
wiki/raw/not listed inwiki/sources.md→ "unregistered raw source"
After the problem report, always output a Growth Suggestions section:
=== GROWTH SUGGESTIONS ===
Concepts worth creating (mentioned but no page):
- [[concept-name]] — mentioned in [n] pages
New questions to explore:
- [LLM-generated questions based on cluster gaps and missing citations]
Sources to investigate:
- [Suggested sources based on concept gaps](Karpathy: "The LLM is good at suggesting new questions to investigate and new sources to look for.")
/memory wiki dream
Runs alongside or after /memory dream. Steps:
- Run full lint, present findings
- Re-synthesize stale pages (check if
sources:have been updated sinceupdateddate) - Detect contradiction pairs across pages → create
contradictiontyped pages - Merge near-duplicates (>80% semantic overlap) → keep richer page, add redirect note to other
- Rebuild
wiki/index.mdfrom scratch: scan all pages, rank by inbound-link count, keep ≤30
/memory wiki status
Wiki Status
Pages: [n] total — concepts:[n] entities:[n] sources:[n] comparisons:[n]
Index: [n]/30 entries
Queue: [n] pending Notion sync (confidence:high, notion-id empty)
Stale: [n] pages not updated in 90+ days
Log: last — [YYYY-MM-DD] [operation]
Health: [OK | ALERTS: orphans:[n] broken-links:[n] unprocessed-raw:[n]]Wiki Design Principles (from Karpathy pattern + production lessons)
- Compounding beats retrieval — the wiki accumulates; RAG re-derives. Both have a place; wiki wins for frequently-accessed synthesis.
- index.md is the access gateway — if a page isn't in index.md (≤30 entries), it functionally doesn't exist. This constraint forces curation.
- LLM owns wiki/; humans own knowledge/ — never merge these. TAXONOMY governs knowledge/, wiki/schema.md governs wiki/.
- Dedup first, always — read index.md before creating any page. Patch existing; create new only when genuinely different.
- Bidirectional links are load-bearing — asymmetric links create orphans. Every related: entry must link back.
- Confidence gates publishing —
highonly after ≥2 sources confirm ANDlast_confirmed≤90 days. Never syncmediumorlowto Notion. - log.md enables grep-based archaeology —
grep "ingest" wiki/log.mdshows every source ever processed. - overview.md is the human entry point — update it when the wiki's topical coverage shifts significantly.
- Query output compounds the wiki — when a query produces a new synthesis or comparison, file it as a wiki page. Explorations should not disappear into chat history. (Karpathy's most-emphasized behavior.)
- Confidence must be actively maintained —
last_confirmeddecays. A page that hasn't been re-verified in 90 days is nothighconfidence, regardless of how many sources it had at creation.
Wiki Anti-Patterns
| Anti-pattern | Why it fails |
| Treating wiki as RAG | Defeats compounding; rebuild cost grows with every query |
| Pages too granular | Atomic facts belong in knowledge/; wiki pages should synthesize ≥2 sources |
| Skipping index.md update | Pages become orphans; index is the operational registry |
| One-directional links | Creates disconnected subgraphs; lint will surface these |
| Syncing low/medium confidence | Pollutes Notion with unverified claims |
| wiki/ replaces knowledge/ | They're parallel; knowledge/ is atomic+human, wiki/ is synthetic+LLM |
| Discarding query answers | Valuable syntheses disappear into chat history instead of compounding the wiki |
| Deleting superseded pages | History of belief changes matters; use superseded_by: + downgrade to low |
| Never re-verifying confidence | high without last_confirmed is a confidence lie; lint enforces 90-day rule |
/memory setup Implementation
When the user runs /memory setup:
- Detect Obsidian vault:
- Check env:
$OBSIDIAN_VAULT_PATH→ use if set - Try CLI:
obsidian vault info=path→ use if Obsidian app is running - Fallback: read
~/Library/Application Support/obsidian/obsidian.json(macOS) or~/.config/obsidian/obsidian.json(Linux), find the open vault path - If none found: ask the user for the vault path
- Check env:
- Validate Obsidian CLI:
- Run
which obsidian→ confirm binary exists - Run
obsidian vault info=name→ confirm app is reachable - If CLI missing: inform user to install it, but continue (hooks have filesystem fallback)
- Run
- Install hooks:
- Determine this skill's installation path (the directory containing this SKILL.md)
- For each hook in
hooks/*.sh: create symlink at~/.claude/hooks/{hook-name}.shpointing to the skill'shooks/{hook-name}.sh - If
~/.claude/hooks/doesn't exist:mkdir -p ~/.claude/hooks/ - If a symlink already exists and points to the same file: skip
- If a symlink exists pointing elsewhere: warn the user, ask before overwriting
- Report setup results:
Memory setup complete Vault: /path/to/vault (detected via CLI) CLI: obsidian v1.12.7 ✓ Hooks: 7/7 installed at ~/.claude/hooks/
/memory status Implementation
When the user runs /memory status:
- HOT tier: Read
MEMORY.md→ count lines, check for boundary violations - WARM tier: List
memory/topics/*.md→ count entries per file, flag any over 50 - TTL alerts: Scan topic files for entries with expired
[YYYY-MM-DD:Nm]suffixes - Last sync: Read the most recent
memory/YYYY-MM-DD.md→ show date - Vault status: Run
obsidian vault info=pathandobsidian files ext=md total→ show stats - Output format:
Memory Status HOT: MEMORY.md (12/15 lines) | SESSION-STATE.md (exists) WARM: 4 topic files, 91 total entries COLD: Obsidian vault at /path (475 notes) TTL: 2 entries expired, 0 missing suffix Last sync: 2026-04-09 (Mode 1) Health: OK
/memory audit Implementation
When the user runs /memory audit:
- Boundary test:
grep -c "NEVER\|ALWAYS\|must\|rule" MEMORY.md→ must return 0. If not: list violations. - TTL audit: For each entry in
memory/topics/*.md:- Parse the
[YYYY-MM-DD:Nm]suffix - If today > (date + N months): flag as expired
- If entry has no suffix and is older than 6 months: flag as missing TTL
- Parse the
- Size audit: Check each topic file for >50 entries. Check MEMORY.md for >15 lines.
- Report: List all flagged entries with their file and line number. Do NOT auto-delete — present findings to the user for decision.
Session Hooks
These hooks fire automatically on Claude Code session lifecycle events. Install via /memory setup or manually symlink from this repo's hooks/ directory.
| Hook | Event | What It Does |
session-start-vault.sh | SessionStart | Injects vault awareness: path, note count, journal count |
pre-compact-vault.sh | PreCompact | Appends SESSION-STATE to vault daily journal before compaction |
session-stop-vault.sh | Stop | Flushes session state to vault + ~/.claude/compaction-state/latest.md |
agent-start.sh | SubagentStart | Increments /tmp/claude-agents-count |
agent-stop.sh | SubagentStop | Decrements /tmp/claude-agents-count |
compact-notification.sh | Notification (compact) | Prints vault stats + SESSION-STATE preview |
force-mcp-connectors.sh | SessionStart (utility) | Force-enables MCP connectors flag |
Obsidian Integration
Dependency: Obsidian CLI v1.12.7+ (/usr/local/bin/obsidian) with Obsidian app running.
Key CLI Commands
obsidian vault info=path # Get vault path
obsidian daily:append content="" # Append to daily journal
obsidian search query="" limit=10 # Search vault notes
obsidian read path="" # Read a specific note
obsidian create name="" path="" content="" # Create note
obsidian files folder="" ext=md # List files
obsidian tags counts sort=count # List tagsVault Folder Map
| Content | Folder | Tier |
| Reusable patterns | knowledge/patterns/ | COLD |
| Learnings & gotchas | knowledge/learnings/ | COLD |
| Strategic decisions | knowledge/decisions/ | COLD |
| Daily journals | logs/journals/ | WARM→COLD |
| Session digests | logs/sessions/ | COLD |
| Project status | projects/ | WARM |
| Identity docs | identity/ | HOT-equivalent |
| Stack references | dev/stacks/ | COLD |
| Operational playbooks | operations/ | COLD |
| LLM Wiki | wiki/ | WIKI (Mode 5) |
| Wiki agent contract | wiki/schema.md | WIKI |
| Wiki master catalog | wiki/index.md (≤30 entries) | WIKI |
| Wiki operations log | wiki/log.md (append-only) | WIKI |
| Wiki synthesis entry | wiki/overview.md | WIKI |
| Raw sources (immutable) | wiki/raw/{web-clips,documents,sessions,external}/ | WIKI |
| Compiled concept pages | wiki/concepts/ | WIKI |
| Compiled entity pages | wiki/entities/ | WIKI |
| Per-source summaries | wiki/sources/ | WIKI |
| Option comparisons | wiki/comparisons/ | WIKI |
Obsidian Frontmatter Schema
All vault notes must conform to this schema (defined in your vault's knowledge/TAXONOMY.md):
---
type: pattern|learning|decision|journal|session-digest|project|moc|reference|identity|operations
status: active|draft|archived
agent-use: high|medium|low
use-when: "comma-separated keywords"
summary: "one-line description"
tags: [tag1, tag2] # YAML array, kebab-case
domain: dev|operations|content|marketing|business|ai-agents|identity|product
created: 'YYYY-MM-DD'
source: "origin" # optional
---Sync Report Format
Every sync operation outputs a structured report:
Memory sync complete
Mode: [1 session | 2 openclaw-pull | 3 cc-project | 4 dream | 5 wiki]
Topic files updated: X entries across Y files
Obsidian: X patterns, Y decisions, Z learnings, N journals
SESSION-STATE: flushed to memory/YYYY-MM-DD.md
TTL: X entries reviewed, Y archived
Skipped (duplicates): N
Wiki: [X pages created | Y pages patched | Z queued for Notion] (Mode 5 only)
Health: [OK | ALERTS: ...]Configuration
| Variable | Description | Default |
OBSIDIAN_VAULT_PATH | Absolute path to Obsidian vault | Auto-detected if app running |
OBSIDIAN_CLI_PATH | Path to obsidian CLI binary | /usr/local/bin/obsidian |
OPENCLAW_CONFIG_PATH | Path to openclaw-config repo | None (Mode 2 only) |
MEMORY_ROUTER_MAX_LINES | Max lines in MEMORY.md router | 15 |
MEMORY_TOPIC_MAX_ENTRIES | Max entries per topic file | 50 |
DREAM_SCHEDULE | Cron expression for weekly consolidation | 0 3 * * 0 |
Runtime Principles
- Obsidian vault is the single source of truth — all platforms sync to it, never away from it
- WAL-first — write SESSION-STATE.md BEFORE responding, not after
- MEMORY.md = facts only. AGENTS.md = rules only — boundary test enforced
- Every entry decays — TTL is mandatory, permanent is an explicit choice
- Dedup before writing — search existing content, patch or skip, never duplicate
- The system reports what it did — sync reports are structured, not silent
- wiki/ is parallel to knowledge/, not a replacement — knowledge/ is atomic+human-curated; wiki/ is synthetic+LLM-compiled. Never merge them.
- index.md gates wiki access — if a wiki page isn't in wiki/index.md (≤30 entries), it doesn't operationally exist
- Confidence gates Notion publishing — only
confidence: highpages sync to Notion; unverified claims stay in the vault
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.

