wiki-ingest
Skill0 starsChanged 3 months agoMITView on GitHub
Ingest sources into the Obsidian wiki vault. Reads a source, extracts entities and concepts, creates or updates wiki pages, cross-references, and logs the operation. Supports files, URLs, and batch mode. Triggers on: ingest, process this source, add this to the wiki, read and file this, batch ingest, ingest all of these, ingest this url.
47 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- microsoft/llmwikitheir own version, first seen Nov 15, 2026
- tboome33/obsidian-mcp-routertheir own version, first seen Nov 15, 2026
- methylo/claude-skill-booktheir own version, first seen Nov 8, 2026
- Ar9av/obsidian-wikitheir own version, first seen Nov 8, 2026
- barakgut/llm-wikitheir own version, first seen Nov 1, 2026
- chobizzy/llm-wikitheir own version, first seen Nov 1, 2026
Used with
Projects with it also use wiki-status, wiki-capture 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.
nexuschainsSkillwiki-status
Reports the current state of the wiki vault — page counts, category breakdown, hub pages, orphans, stale entries, and a delta showing what has changed since the last ingest. Use this skill when the operator asks "what's the status", "wiki dashboard", "how many pages", "what's stale", "what's been ingested", "show me the delta", or "wiki health overview". Also surfaces structural insights (top hubs, fragmented clusters, bridge pages) when the operator asks "wiki insights", "what's central", or "show me the hubs". Read-only: this skill reports and recommends; it does not modify any files.
Also in 5 projects that use this
jehrhardtSkillwiki-capture
Quickly capture raw thoughts, links, images, or notes to today's Obsidian daily note from anywhere in Pi. Use when the user wants to jot something down for later wiki processing.
Also in 6 projects that use this
Ivy-Chen1999Skillwiki-research
Autonomously research a topic via multi-round web search, synthesize findings, and file structured results into the Obsidian wiki. Use this skill when the user says "/wiki-research [topic]", "research X", "find everything about Y", "do a deep dive on Z", "autonomous research on X", or wants comprehensive, web-sourced knowledge on a topic filed directly into their wiki.
Also in 5 projects that use this
nexuschainsSkillcross-linker
Scans the wiki vault and adds missing [[wikilinks]] between pages that are related but not yet connected. Use this skill when the operator says "link my pages", "find missing links", "cross-reference the wiki", "connect my wiki", "add wikilinks", or after any large ingest to weave new pages into the existing knowledge graph. Also trigger when orphaned pages need connecting or when wiki-lint reports fragmented tag clusters. This is a write-heavy skill — it modifies page files to insert links, unlike wiki-lint which only reports.
Also in 4 projects that use this
Ivy-Chen1999Skillwiki-setup
Initialize a new Obsidian wiki vault with the correct structure, special files, and configuration. Use this skill when the user wants to set up a new wiki from scratch, initialize the vault structure, create the .env file, or says things like "set up my wiki", "initialize obsidian", "create a new vault", "get started with the wiki". Also use when the user needs to reconfigure their existing vault or fix a broken setup.
Also in 5 projects that use this
bozhouDevSkillwiki-init
Use when bootstrapping a new personal wiki for any knowledge domain — research, codebase documentation, reading notes, competitive analysis, or any long-term knowledge accumulation project.
Also in 7 projects that use this
- +1 more from nexuschains
- +3 more from Ivy-Chen1999
Other versions47 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- CarbeneAI/Forge★ 996% same
Wrote their own version · 46
- AgriciDaniel/claude-obsidian★ 16ksame name
- sanyuan0704/code-review-expert★ 3.9ksame name
- sanyuan0704/sanyuan-skills★ 3.9ksame name
- Ar9av/obsidian-wiki★ 3.7ksame name
- kfchou/wiki-skills★ 189same name
- IssacW228/student-llm-wiki★ 173same name
- microsoft/llmwiki★ 116same name
- bozhouDev/bozhou-skills★ 78same name
- vanillaflava/llm-wiki-skills★ 65same name
- cookyman74/llmwiki-harness★ 34same name
36 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.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/maz-works-knowledge-vault.mdcCursor rule
- autoresearchSkill
- canvasSkill
- defuddleSkill
- obsidian-basesSkill
- obsidian-markdownSkill
- saveSkill
- thinkSkill
- wiki-cliSkill
- wiki-foldSkill
- wiki-lintSkill
- wiki-modeSkill
- wiki-querySkill
- wiki-retrieveSkill
- wikiSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
34 rules. 0 are common, 15 are distinctive, and 19 are very specific to this project.
0
Common
Most of the 38 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
19
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Read the source. Write the wiki.
- Very specific: line 16
Before mutating any vault file, consult .vault-meta/transport.json (auto-created by bash scripts/detect-transport.sh).
- Very specific: line 28
Before creating any new wiki page, consult the vault's methodology mode via python3 scripts/wiki-mode.py route <type> "<name>".
- Very specific: line 41
If .vault-meta/mode.json is absent, the router returns mode=generic paths (identical to v1.7 behavior).
- Very specific: line 44
LYT: after filing the atomic note, update the relevant MOC (wiki/mocs/<topic>-moc.md) to link the new note.
- Very specific: line 70
Age-based staleness: Default STALE_AFTER_SEC=60.
- Very specific: line 82
Before ingesting any file, check .raw/.manifest.json to avoid re-processing unchanged sources.
- Very specific: line 105
Check if the path exists in .manifest.json with the same hash.
- Very specific: line 106
If hash matches, skip. Report: "Already ingested (unchanged).
- Distinctive: line 107
If missing or hash differs, proceed with ingest.
- Distinctive: line 111
Write the updated manifest back.
- Distinctive: line 159
Use cases: whiteboard photos, screenshots, diagrams, infographics, document scans.
- Very specific: line 187
Check for contradictions: If new info conflicts with existing pages, add > [!contradiction] callouts on both pages.
- Distinctive: line 199
After all sources: do a cross-reference pass.
- Distinctive: line 200
Update index, hot cache, and log once at the end (not per-source).
- Very specific: line 211
Read wiki/hot.md first. If it contains the relevant context, don't re-read full pages.
- Very specific: line 212
Read wiki/index.md to find existing pages before creating new ones.
- Distinctive: line 213
Read only 3-5 existing pages per ingest.
- Distinctive: line 214
Use PATCH for surgical edits.
- Distinctive: line 215
Keep wiki pages short. 100-300 lines max.
- Very specific: line 216
Use search (/search/simple/) to find specific content without reading full pages.
- Distinctive: line 225
When new info contradicts an existing wiki page:
- Distinctive: line 240
Do not silently overwrite old claims.
- Distinctive: line 247
Do not create duplicate pages.
- Distinctive: line 248
Do not skip the log entry.
- Distinctive: line 249
Do not skip the hot cache update.
- Very specific: line 267
When DRAGONSCALE_ADDRESSES=0, pages are created without an address: frontmatter field, and wiki-lint's Address Validation section is …
- Very specific: line 269
When DRAGONSCALE_ADDRESSES=1, proceed with the rest of this section.
- Distinctive: line 273
Every newly created non-meta wiki page gets a stable address in its frontmatter:
- Very specific: line 292
CRITICAL: never use the Write or Edit tool on .vault-meta/address-counter.txt.
- Very specific: line 302
Before writing a new non-meta page, call ./scripts/allocate-address.sh and capture the output.
- Very specific: line 330
If a page being (re)written already has an address: field in its current content, REUSE it.
- Very specific: line 331
If a source is re-ingested and address_map has a mapping for the target path, reuse that mapping.
- Very specific: line 348
When working on this skill, apply the 10-principle loop.
“Common” is measured: kept by at least 6 in 10 of the 38 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
wiki-ingest: Source Ingestion
Read the source. Write the wiki. Cross-reference everything. A single source typically touches 8-15 wiki pages.
Syntax standard: Write all Obsidian Markdown using proper Obsidian Flavored Markdown. Wikilinks as [[Note Name]], callouts as > [!type] Title, embeds as ![[file]], properties as YAML frontmatter. If the kepano/obsidian-skills plugin is installed, prefer its canonical obsidian-markdown skill for Obsidian syntax reference. Otherwise, follow the guidance in this skill.
Transport (v1.7+)
Before mutating any vault file, consult .vault-meta/transport.json (auto-created by bash scripts/detect-transport.sh). Use the preferred transport per the fallback chain:
- cli —
obsidian-cli write "$VAULT" "$NOTE" < content.md(orappend,property:set); seeskills/wiki-cli/SKILL.md - mcp-obsidian / mcpvault —
mcp__obsidian-vault__write_noteand friends; seeskills/wiki/references/mcp-setup.md - filesystem — Claude's
Write/Edittools with absolute vault-rooted paths (final floor; always works)
Full decision tree: wiki/references/transport-fallback.md.
Mode awareness (v1.8+)
Before creating any new wiki page, consult the vault's methodology mode via python3 scripts/wiki-mode.py route <type> "<name>". The router returns the vault-relative path where the page should be filed.
SRC_PATH=$(python3 scripts/wiki-mode.py route source "Karpathy 2025 LLM Wiki essay")
# generic: wiki/sources/Karpathy-2025-LLM-Wiki-essay.md
# lyt: wiki/notes/Karpathy-2025-LLM-Wiki-essay.md (also update relevant MOC)
# para: wiki/resources/incoming/Karpathy-2025-LLM-Wiki-essay.md
# zettelkasten: wiki/20260517123456-Karpathy-2025-LLM-Wiki-essay.md
ENT_PATH=$(python3 scripts/wiki-mode.py route entity "Andrej Karpathy")
CON_PATH=$(python3 scripts/wiki-mode.py route concept "Compounding Vault Pattern")If .vault-meta/mode.json is absent, the router returns mode=generic paths (identical to v1.7 behavior). No special-casing needed in this skill.
Mode-specific follow-up:
- LYT: after filing the atomic note, update the relevant MOC (
wiki/mocs/<topic>-moc.md) to link the new note. If no MOC exists for the topic, create one usingskills/wiki-mode/templates/lyt/moc-template.md. - Zettelkasten: filename already includes the timestamp ID. Populate the
id:frontmatter field to match. - PARA: new ingests land in
wiki/resources/incoming/by default. Do NOT auto-guess the topic; leave in incoming/ for user review.
Concurrency (v1.7+)
Multi-writer is safe in v1.7. The latent corruption bug from v1.6 — where two parallel sub-agents writing to the same page could silently trample each other — is closed by per-file advisory locking. Every wiki page write MUST be preceded by wiki-lock acquire <path>.
# Acquire — blocks (returns 75 EX_TEMPFAIL) if another writer holds the lock
if bash scripts/wiki-lock.sh acquire wiki/concepts/Foo.md; then
# ... do the write via the §Transport-selected method ...
bash scripts/wiki-lock.sh release wiki/concepts/Foo.md
else
# rc=75: another writer is in flight. Retry once after 2s; if still held,
# log to wiki/log.md and skip this page rather than overwrite.
sleep 2
bash scripts/wiki-lock.sh acquire wiki/concepts/Foo.md && {
# write …
bash scripts/wiki-lock.sh release wiki/concepts/Foo.md
} || echo "skipped wiki/concepts/Foo.md (locked); logged to wiki/log.md"
fiProperties:
- Per-file granularity. Locks key on
sha1(<vault-relative-path>); concurrent writes to DIFFERENT pages run in parallel. - Age-based staleness. Default
STALE_AFTER_SEC=60. A crashed holder unblocks in ≤60 seconds without manual intervention. Seescripts/wiki-lock.shheader for the full semantics. - Cross-process release. Release is
rm -f(no PID match required). Skill authors are trusted to release locks they acquire; cross-skill release is allowed by design (a janitor runningwiki-lock clear-stale --max-age 0is the canonical recovery path). - The PostToolUse hook now defers
git addif any locks are currently held, so the auto-commit doesn't fire mid-ingest and produce torn commits. Seehooks/hooks.json.
wiki-lock is unconditional in v1.7+ — there is no feature gate, no fallback. Skills that don't acquire locks are racing against any other writer. The script is in core, not opt-in.
Sub-agent rule from v1.6 — "Sub-agents MUST NOT call scripts/allocate-address.sh" — is preserved (orchestrator still backfills addresses to keep the counter monotonic). The NEW rule is: sub-agents MAY now write pages, but MUST acquire locks first. See agents/wiki-ingest.md.
Delta Tracking
Before ingesting any file, check .raw/.manifest.json to avoid re-processing unchanged sources.
# Check if manifest exists
[ -f .raw/.manifest.json ] && echo "exists" || echo "no manifest yet"Manifest format (create if missing):
{
"sources": {
".raw/articles/article-slug-2026-04-08.md": {
"hash": "abc123",
"ingested_at": "2026-04-08",
"pages_created": ["wiki/sources/article-slug.md", "wiki/entities/Person.md"],
"pages_updated": ["wiki/index.md"]
}
}
}Before ingesting a file:
- Compute a hash:
md5sum [file] | cut -d' ' -f1(orsha256sumon Linux). - Check if the path exists in
.manifest.jsonwith the same hash. - If hash matches, skip. Report: "Already ingested (unchanged). Use
forceto re-ingest." - If missing or hash differs, proceed with ingest.
After ingesting a file:
- Record
{hash, ingested_at, pages_created, pages_updated}in.manifest.json. - Write the updated manifest back.
Skip delta checking if the user says "force ingest" or "re-ingest".
URL Ingestion
Trigger: user passes a URL starting with https://.
Steps:
- Fetch the page using WebFetch.
- Clean (optional): if
defuddleis available (which defuddle 2>/dev/null), rundefuddle [url]to strip ads, nav, and clutter. Typically saves 40-60% tokens. Fall back to raw WebFetch output if not installed. - Derive slug from the URL path (last segment, lowercased, spaces→hyphens, strip query strings).
- Save to
.raw/articles/[slug]-[YYYY-MM-DD].mdwith a frontmatter header:--- source_url: [url] fetched: [YYYY-MM-DD] --- - Proceed with Single Source Ingest starting at step 2 (file is now in
.raw/).
Image / Vision Ingestion
Trigger: user passes an image file path (.png, .jpg, .jpeg, .gif, .webp, .svg, .avif).
Steps:
- Read the image file using the Read tool. Claude can process images natively.
- Describe the image contents: extract all text (OCR), identify key concepts, entities, diagrams, and data visible in the image.
- Save the description to
.raw/images/[slug]-[YYYY-MM-DD].md:--- source_type: image original_file: [original path] fetched: YYYY-MM-DD --- # Image: [slug] [Full description of image contents, transcribed text, entities visible, etc.] - Copy the image to
_attachments/images/[slug].[ext]if it's not already in the vault. - Proceed with Single Source Ingest on the saved description file.
Use cases: whiteboard photos, screenshots, diagrams, infographics, document scans.
Single Source Ingest
Trigger: user drops a file into .raw/ or pastes content.
Steps:
- Read the source completely. Do not skim.
- Discuss key takeaways with the user. Ask: "What should I emphasize? How granular?" Skip this if the user says "just ingest it."
- Create source summary in
wiki/sources/. Use the source frontmatter schema fromreferences/frontmatter.md. Assign an address per the Address Assignment section below. - Create or update entity pages for every person, org, product, and repo mentioned. One page per entity. Assign addresses to new entity pages.
- Create or update concept pages for significant ideas and frameworks. Assign addresses to new concept pages.
- Update relevant domain page(s) and their
_index.mdsub-indexes. - Update
wiki/overview.mdif the big picture changed. - Update
wiki/index.md. Add entries for all new pages. - Update
wiki/hot.mdwith this ingest's context. - Append to
wiki/log.md(new entries at the TOP):## [YYYY-MM-DD] ingest | Source Title - Source: `.raw/articles/filename.md` - Summary: [[Source Title]] - Pages created: [[Page 1]], [[Page 2]] - Pages updated: [[Page 3]], [[Page 4]] - Key insight: One sentence on what is new. - Check for contradictions. If new info conflicts with existing pages, add
> [!contradiction]callouts on both pages.
Batch Ingest
Trigger: user drops multiple files or says "ingest all of these."
Steps:
- List all files to process. Confirm with user before starting.
- Process each source following the single ingest flow. Defer cross-referencing between sources until step 3.
- After all sources: do a cross-reference pass. Look for connections between the newly ingested sources.
- Update index, hot cache, and log once at the end (not per-source).
- Report: "Processed N sources. Created X pages, updated Y pages. Here are the key connections I found."
Batch ingest is less interactive. For 30+ sources, expect significant processing time. Check in with the user after every 10 sources.
Context Window Discipline
Token budget matters. Follow these rules during ingest:
- Read
wiki/hot.mdfirst. If it contains the relevant context, don't re-read full pages. - Read
wiki/index.mdto find existing pages before creating new ones. - Read only 3-5 existing pages per ingest. If you need 10+, you are reading too broadly.
- Use PATCH for surgical edits. Never re-read an entire file just to update one field.
- Keep wiki pages short. 100-300 lines max. If a page grows beyond 300 lines, split it.
- Use search (
/search/simple/) to find specific content without reading full pages.
Contradictions
[!note] Custom callout dependency The
[!contradiction]callout type used below is a custom callout defined in.obsidian/snippets/vault-colors.css(auto-installed by/wikiscaffold). It renders with reddish-brown styling and an alert-triangle icon when the snippet is enabled. If the snippet is missing, Obsidian falls back to default callout styling, so the page still works without the visual flourish. See [[skills/wiki/references/css-snippets.md]] for the four custom callouts (contradiction,gap,key-insight,stale).
When new info contradicts an existing wiki page:
On the existing page, add:
> [!contradiction] Conflict with [[New Source]]
> [[Existing Page]] claims X. [[New Source]] says Y.
> Needs resolution. Check dates, context, and primary sources.On the new source summary, reference it:
> [!contradiction] Contradicts [[Existing Page]]
> This source says Y, but existing wiki says X. See [[Existing Page]] for details.Do not silently overwrite old claims. Flag and let the user decide.
What Not to Do
- Source files under
.raw/are immutable. Do not modify the files that users drop there (articles, transcripts, images). The.raw/.manifest.jsondelta tracker and itsaddress_map(DragonScale Mechanism 2) are the only files under.raw/thatwiki-ingestitself maintains. Treat every other file under.raw/as read-only source content. - Do not create duplicate pages. Always check the index and search before creating.
- Do not skip the log entry. Every ingest must be recorded.
- Do not skip the hot cache update. It is what keeps future sessions fast.
Address Assignment (DragonScale Mechanism 2 MVP)
Opt-in feature. DragonScale address assignment runs only if scripts/allocate-address.sh is present AND .vault-meta/ exists. Otherwise, skip this entire section and proceed with ingest normally.
Feature detection (run at start of every ingest):
if [ -x ./scripts/allocate-address.sh ] && [ -d ./.vault-meta ]; then
DRAGONSCALE_ADDRESSES=1
else
DRAGONSCALE_ADDRESSES=0
fiWhen DRAGONSCALE_ADDRESSES=0, pages are created without an address: frontmatter field, and wiki-lint's Address Validation section is skipped entirely (missing addresses are not flagged in any severity). This preserves default plugin behavior for vaults that have not adopted DragonScale.
When DRAGONSCALE_ADDRESSES=1, proceed with the rest of this section.
Every newly created non-meta wiki page gets a stable address in its frontmatter:
address: c-000042Format: c-<6-digit-counter>. The c- prefix stands for "creation-order counter." Zero-padded.
Rollout baseline: 2026-04-23 (Phase 2 ship date). Pages with created: >= this date are post-rollout and MUST have an address (unless excluded below). Pages with created: earlier are legacy-exempt until a deliberate backfill pass assigns l-NNNNNN addresses.
Required tool: scripts/allocate-address.sh
Address allocation is delegated to an atomic Bash helper. The helper uses flock on .vault-meta/.address.lock to prevent read-use-increment races and recovers the counter by scanning existing frontmatter if the counter file is missing.
ADDR=$(./scripts/allocate-address.sh)
# ADDR is now e.g. "c-000042"; counter is already incrementedCRITICAL: never use the Write or Edit tool on .vault-meta/address-counter.txt. That would fire the PostToolUse hook, which runs git add wiki/ .raw/ and can accidentally commit unrelated pending wiki changes under a generic message. Counter mutation is only permitted through the helper script (Bash tool).
Helper modes
./scripts/allocate-address.sh— atomically reserves and returns the next address../scripts/allocate-address.sh --peek— prints the next value without reserving (safe, read-only)../scripts/allocate-address.sh --rebuild— recomputes the counter from the highest observedc-NNNNNNin existing frontmatter. Never resets to 1 silently if pages already have addresses. Run this if the counter file is suspected corrupt.
Assignment procedure (per new page)
- Before writing a new non-meta page, call
./scripts/allocate-address.shand capture the output. - Include
address: c-XXXXXXin the page's frontmatter. - Record the path-to-address mapping in
.raw/.manifest.jsonunder a new top-level keyaddress_map(see schema below).
address_map in .raw/.manifest.json
{
"sources": { ... },
"address_map": {
"wiki/concepts/Example.md": "c-000042",
"wiki/entities/Another.md": "c-000043"
}
}On re-ingest of the same source (whether by --force or a changed hash), always consult address_map first. If the target page path has a prior address, REUSE it. Do not allocate a new one.
On a page rename, the skill must update the address_map key (old path -> new path) while preserving the address value.
Exclusions (do NOT assign an address to)
- Meta files:
_index.md,index.md,log.md,hot.md,overview.md,dashboard.md,dashboard.base,Wiki Map.md,getting-started.md. - Fold pages under
wiki/folds/(they use their own deterministicfold_id). - Pre-rollout legacy pages (
created:< 2026-04-23). Legacy pages getl-NNNNNNaddresses only via a deliberate backfill operation.
Idempotency rules
- If a page being (re)written already has an
address:field in its current content, REUSE it. Do not allocate a new one. - If a source is re-ingested and
address_maphas a mapping for the target path, reuse that mapping. - If the source has been ingested before AND the target page has no address AND the page
created:date is post-rollout, allocate an address and record it. This covers the case where an older ingest produced a page before Phase 2 rollout; the rollout cutoff still applies (pages dated pre-2026-04-23 stay legacy).
Concurrency policy
- Single-writer only in Phase 2. Do not run parallel ingests from multiple Claude sessions or sub-agents that assign addresses. The
flockin the helper prevents counter corruption but does not serialize page writes themselves. - Sub-agents (codex, general-purpose) that are dispatched for research or review MUST NOT call the allocator. They are read-only in this respect.
- Multi-writer support is a deferred feature.
Batch ingest
Assign addresses sequentially during single-source-ingest for each source. Do not pre-reserve a block of counter values. The helper is cheap (one lock, one integer read/write).
How to think (10-principle mapping)
When working on this skill, apply the 10-principle loop. See skills/think/SKILL.md for the canonical framework.
| # | Principle | Application here |
| 1 | OBSERVE (ext) | Read the source file completely before extracting anything. No shortcuts on long sources. |
| 2 | OBSERVE (int) | Am I biased toward the source's framing? Where do my disagreements live? Note them as contradiction callouts. |
| 3 | LISTEN | The user's source-selection intent — what made THIS source worth ingesting, and what is the user hoping to extract? |
| 4 | THINK | Which entities deserve pages? Which concepts? What cross-references? What contradictions with existing pages? |
| 5 | CONNECT (lat) | This source's claims vs other sources already in the wiki. Contradictions are the highest-signal finding. |
| 6 | CONNECT (sys) | wiki-mode.py route for paths + wiki-lock.sh for safety + index/log/hot for consumer visibility. |
| 7 | FEEL | A page that compounds — useful in 6 months, not just today. Skip filler; favor synthesis over transcription. |
| 8 | ACCEPT | Not every claim is wiki-worthy. Editorial judgment is part of ingest, not a bug to remove. |
| 9 | CREATE | Source + entity + concept pages with full frontmatter; cross-references; contradiction callouts where needed. |
| 10 | GROW | Contradictions found mid-ingest are the most valuable wiki signal. File them as questions for follow-up, not silently. |
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.

