Skip to content
Back to skills

Wiki Forge

ASecurity

Convert documents into an interconnected LLM wiki using the Karpathy wiki pattern and project conventions.

  • 3 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 23, 2026
ai-agentsgobash

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add juanitourquiza/shipframe --skill wiki-forge --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wiki Forge?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wiki Forge
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/juanitourquiza-wiki-forge/badge)](https://www.skillsdirectory.com/skills/juanitourquiza-wiki-forge)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wiki-forge
description: Convert documents into an interconnected LLM wiki using the Karpathy wiki pattern and project conventions.
allowed-tools: Read Write Edit Glob Bash AskUserQuestion
effort: high
---

# wiki-forge

Transforms raw documents into living knowledge wikis.

Core idea: the LLM reads sources once, extracts knowledge, and organizes it
into interlinked markdown pages that grow richer with each new source.
Knowledge accumulates — it is not re-derived on every query.

---

## The 4 operations

SETUP → INGEST (batch) → LINT → repeat.
For queries, use `/wiki-query`.

---

## SETUP — Create a new vault


Before creating anything, understand the project. If the user provides material
without explanation, infer from the content — acting beats asking.
If there is genuine ambiguity, ask only what is essential:

- **Domain** (what is this about?)
- **Source types** (what material will be ingested?)
- **Language** (detect from the material if not specified)

With that:

1. Create the folder structure (see Architecture below).
2. Move the user's sources into `raw/`.
3. Generate `WIKI.md` at the root — use `templates/wiki/wiki-md-template.md`
   substituting all `{{}}` placeholders.
4. Generate `.claude/wiki-conventions.md` — use
   `templates/wiki/conventions-template.md` substituting `{{VAULT_NAME}}` and
   `{{LANGUAGE}}` with the vault's values.
5. Create empty `wiki/index.md` and `wiki/log.md`.

> **Tip:** For a guided setup that asks all the right questions, use `/wiki-init` instead.

### Vault architecture

```
vault-name/
├── CLAUDE.md                    ← Orientation: structure, sources, skills
├── .claude/
│   └── wiki-conventions.md     ← Wiki standards: format, language, wikilinks
├── raw/                        ← Original sources — IMMUTABLE
│   └── [user structure]
├── wiki/
│   ├── index.md                ← Master catalog
│   ├── log.md                  ← Operation history
│   ├── logs/                   ← One file per sync (/wiki-sync)
│   ├── sources/                ← One summary per ingested source
│   └── [categories]/           ← Subdirectories adapted to the domain
```

### Detecting source structure

Analyze how the sources are organized before ingesting:

| Corpus structure | `sources/` granularity |
|---|---|
| Course with modules and lessons | One source page per module |
| Periodic meetings | One page per meeting or sprint |
| Slack / Discord channel | One page per thread or topic |
| Collection of articles / PDFs | One page per document |
| Standalone YouTube videos | One page per video |
| Loose notes | Group by topic or one per note |

Each `sources/` page must include wikilinks to all raw files it covers —
this connects the originals to the wiki graph.

---

## INGEST — Process sources

### Step 0 — Load conventions

Read `.claude/wiki-conventions.md`. All pages created or modified in this
operation must follow those conventions without exception.

### Steps

1. Read the source in full from `raw/`.
2. Classify the type (transcript, report, meeting, article, notes...).
3. Extract domain entities — the content dictates what to extract:
   concepts, techniques, tools, people, decisions, data, relationships.
4. Create or update wiki pages:
   - Always one page in `sources/` with wikilinks to the raw files it covers.
   - Thematic pages in the corresponding categories.
   - If a page already exists: extend with new content, do not duplicate.
5. Link densely with `[[wikilinks]]` — follow the rules in
   `wiki-conventions.md` (minimum count, distribution, no broken links).
6. Update `wiki/index.md`.
7. Log in `wiki/log.md`:
   ```
   ## [YYYY-MM-DD] ingest | Source name
   - Pages created: X
   - Pages updated: Y
   - Entities extracted: brief list
   ```

### Rules by source type

- **Transcripts** (YouTube, courses, podcasts): clean filler words.
  Extract logical structure, not temporal. Preserve practical examples.
- **Meetings**: preserve who said what if relevant. Extract
  decisions, action items, and context.
- **Reports / PDFs**: respect the document structure. Extract
  quantitative data, conclusions, recommendations.
- **Web articles**: distinguish facts from opinions. Record author, date, and URL.
- **User notes**: high-priority primary source. Integrate
  respecting the original intent.

### Batch ingest

1. List everything in `raw/`.
2. Order: chronological, by complexity, or by conceptual dependencies
   (basics first so foundational concepts exist before advanced ones).
3. Process one at a time, updating index and log after each.
4. When done, run LINT.

### Delegating to subagents

Follow the delegation instructions in `.claude/wiki-conventions.md` exactly.
Include all 4 mandatory elements in each subagent prompt.

---

## LINT — Maintenance

### Step 0 — Load conventions

Read `.claude/wiki-conventions.md` before running any check.

### Checklist (run all and report concrete numbers)

1. **Frontmatter**: 100% of pages with the exact 5 fields defined in
   `wiki-conventions.md`. Fix any that fail.
2. **Language**: 100% of pages in the language defined in `wiki-conventions.md`.
   Fix any in a different language.
3. **Ghost links**: 0 broken wikilinks. List all `[[wikilink]]` targets
   and verify they exist as `.md` files. Create missing pages or fix links.
4. **Density**: all thematic pages with at least 8 wikilinks distributed
   throughout the body. Fix those below threshold.
5. **Incoming links**: all thematic pages with at least 5 incoming links.
   Add links from related pages if needed.
6. **Raw linked**: all files in `raw/` referenced from at least
   one page in `sources/`.
7. **Orphans**: wiki pages with no incoming links — connect them or delete them.
8. **Gaps**: concepts mentioned repeatedly without their own page — create them.

Log results in `wiki/log.md` with the check numbers.

---

## MERGE — Connect wikis

If there are multiple vaults:

1. List the wikis and their domains.
2. Identify shared entities.
3. Create inter-vault links or propose consolidation.
4. Do not mix the `raw/` folders of different projects.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.