en un clic
llm-wiki
// Persistent markdown wiki maintenance — INGEST sources, QUERY with citations, LINT for drift, LEARNINGS capture. Vault at ~/knowledge-base/.
// Persistent markdown wiki maintenance — INGEST sources, QUERY with citations, LINT for drift, LEARNINGS capture. Vault at ~/knowledge-base/.
[HINT] Téléchargez le répertoire complet incluant SKILL.md et tous les fichiers associés
| name | llm-wiki |
| description | Persistent markdown wiki maintenance — INGEST sources, QUERY with citations, LINT for drift, LEARNINGS capture. Vault at ~/knowledge-base/. |
| version | 1 |
| created | "2026-04-07T00:00:00.000Z" |
| uses | 21 |
Persistent markdown wiki maintenance for the Obsidian vault at ~/knowledge-base/. The LLM handles bookkeeping (routing, cross-linking, contradiction detection, index maintenance) so the human only needs to provide source material and ask questions.
Maintain a living wiki by absorbing source documents, answering questions with citations, auditing the KB for drift, and continuously capturing session insights and surfacing relevant KB context during work sessions.
~/knowledge-base/
projects/ # Project-specific wiki pages
topics/ # Domain knowledge
tools/ # Tool and technique pages
raw/ # Immutable source documents (never edit)
index.md # Content-oriented navigation (updated on every ingest)
log.md # Append-only ingest/operation log
Invariants:
raw/ sources are never edited after placementlog.md entries are never deleted or modifiedindex.md is updated after every INGESTTriggered by: "ingest this", "add to wiki", "log this to KB", or when the user provides a source document (paste, file path, or URL).
1. Place the source in raw/
Save the source as an immutable file with a timestamped name:
raw/YYYY-MM-DD-<slug>.md
Where <slug> is a short kebab-case description of the content. If the source is a URL or external doc, save the full text content.
2. Read the source thoroughly
Read the entire source before touching any wiki pages. Note:
3. Identify affected wiki pages
Identify 10–15 wiki pages the source touches. For each, classify as:
UPDATE — page exists and needs new content, corrections, or cross-referencesCREATE — topic doesn't exist yet; needs a new pagePrefer updating existing pages over creating new ones unless the topic is genuinely absent.
4. Update each page
For each UPDATE page:
## Summary section if the source changes the understanding## See Also using Obsidian wikilinks: [[topics/ai-tools/tool-roles]]## Contradictions subsectionFor each CREATE page:
## Summary section## See Also with wikilinks to related pagesindex.md5. Append to log.md
## YYYY-MM-DD — <source slug>
- **Source:** `raw/YYYY-MM-DD-<slug>.md`
- **Pages updated:** [[path/to/page1]], [[path/to/page2]], ...
- **Pages created:** [[path/to/new-page]] (if any)
- **Key changes:** Brief bullet list of what changed and why it mattered
6. Update index.md
If any pages were created, add them to index.md under the correct section.
Triggered by: User asks a question that should be answerable from the knowledge base.
1. Identify relevant wiki pages
Search projects/, topics/, and tools/ using grep and glob. Search on key nouns, synonyms, project/tool names. Read ## Summary sections first; only read full pages when the summary is insufficient.
2. Synthesize the answer
Write a direct answer. Inline every claim with a citation:
[→ topics/ai-tools/tool-roles]
3. Offer to save new insight
After answering, check: did the synthesis produce an insight not captured in any single wiki page? If yes, offer to save it — but do NOT save without explicit user confirmation.
Triggered by: "lint the wiki", "check the KB", or "find stale pages".
1. Load the page index
Read index.md or glob **/*.md across projects/, topics/, tools/.
2. Scan for four issue types
3. Produce the lint report
## Contradictions
- [[page-a]] vs [[page-b]]: "<claim in a>" contradicts "<claim in b>"
## Stale Claims
- [[page]]: "<dated claim>" — last updated YYYY-MM-DD
## Orphaned Pages
- [[page]]: not linked from any other page
## Missing Cross-References
- [[page-a]] mentions <X> but doesn't link to [[page-b]] which covers <X>
4. Ask before fixing
Only proceed with fixes the user explicitly approves.
Placement:
projects/<project-name>/<page>.md — project-specific knowledgetopics/<domain>/<page>.md — domain or conceptual knowledgetools/<tool-name>.md — tool or technique pagesFilename: lowercase-with-hyphens.md
Required sections:
# <Title>
## Summary
One paragraph. What this is, what problem it solves, and why it matters.
## <Content sections as appropriate>
## See Also
- [[relative/path/to/related-page]]
After creating: add the page to index.md.
Always use Obsidian wikilinks with vault-relative paths (no leading slash):
[[topics/ai-tools/tool-roles]]
[[projects/execution-ui/overview]]
[[tools/yt-dlp]]
In query answers, use the citation arrow format:
[→ topics/ai-tools/tool-roles]
Two modes: proactive retrieval (at session start) and proactive capture (throughout and at session end).
When entering a domain that likely exists in the KB, surface what's already known before diving in. Read ## Summary sections of relevant pages and report:
[KB context: <project/topic name>]
<2-4 bullet points of relevant facts with citations>
[→ projects/foo/overview for full context]
Do this once at session start, not repeatedly.
Capture insights, patterns, preferences, and discoveries as they emerge.
What counts as a learning:
| Category | Examples |
|---|---|
| Technical discovery | A workaround, a gotcha in a library, a pattern that solved a class of problem |
| Architectural decision | Why X was chosen over Y, tradeoffs accepted |
| User preference | Stated constraint, preferred approach, disliked pattern |
| Workflow insight | A step sequence that worked well, a tool combo that's effective |
| Failure | What was tried and didn't work, and why |
| Silent hazard | Places where things fail silently — manual sync requirements, fallback paths that activate without indication, invariants enforced only by convention |
Steps:
log.mdraw/.log.md is append-only. Never delete, edit, or reorder existing entries.