# Wiki Creator

> This skill should be used whenever the user wants a wiki page, encyclopedia article, or Wikipedia-style article on a topic — "write a wiki page on X", "add X to the wiki", "create an article about X", "start a wiki about Y" — or wants to grow or maintain the project's wiki store (interlinks, red links, backlinks, verification reports, rendering pages in a local MediaWiki). It researches the topic live on the internet, writes one MediaWiki wikitext article with every claim cited to a fetched and snapshotted source, blind-verifies every claim against the snapshots, and files the page into ./wiki/ with links to existing pages, backlinks from them, and a verification report for human review. Not for prose research reports or multi-source investigations without a wiki artifact — use researching-topics for those.

- Skill: `tubifix77/wiki-creator` (Agent Skill, multi-file: 29 files)
- Install (CLI): `npx skillmds@latest add tubifix77/wiki-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tubifix77/wiki-creator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Tubifix77 (https://skillmd.com/u/tubifix77)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tubifix77/wiki-creator

---


# Wiki Creator

One rule: **every claim on a published page survived being checked against a source snapshot
fetched this run, or it was cut.** This skill writes one MediaWiki wikitext article per invocation,
aware of the rest of the wiki it's joining. A page that fails its verification or QA gate is not
published in a degraded state — it's filed as `needs_attention` with a report explaining why. See
`ARCHITECTURE.md` at the repo root for the full reasoning; this file only points to what to read and
do.

## On activation

1. Read [`references/pipeline.md`](references/pipeline.md) in full before doing anything else. It is
   the normative, stage-by-stage procedure (intake → research → outline → draft → blind verification
   → QA lint → publish → report). This file is a shim, not a substitute for it.
2. If the `zero-assumption` skill is active in this session, compose with it rather than duplicating
   it: [`references/sourcing-policy.md`](references/sourcing-policy.md) is a stricter superset for
   wiki content, and zero-assumption's ledger (if present) gets facts registered into it as this
   pipeline's own research confirms them.
3. Treat parametric memory as unverified for every factual claim, exactly as zero-assumption does —
   it may guide reasoning (what to research, how to structure an outline) but never substantiate a
   sentence on the page.

## Tool binding priority

The pipeline's "fetch a source" step means, in this order:

1. `mcp__webproxy__search_web` / `fetch_url` / `fetch_json` — the primary path. `search_web` is
   globally serialized with a ~2.5-second minimum gap between calls, so budget queries deliberately
   (`references/pipeline.md` stage 1 gives the exact numbers) rather than fanning out. Always call
   `fetch_url` with `max_length=50000` when the result will be cited — its default of 8000 characters
   is too small and will silently truncate source text a claim might depend on.
2. Native `WebSearch` / `WebFetch`, if `webproxy` isn't available.
3. `mcp__workspace__browse` (headless browser) — only for pages that genuinely require JavaScript
   rendering, never as a way around access controls or paywalls.
4. If none of these are available: refuse to produce the page. Do not draft an article from
   parametric memory — that is the exact failure mode this project exists to prevent.

## Store convention

The skill writes into `./wiki/` in the **invoking project's** working directory, initialized on
first use from `assets/registry.template.json` and `assets/store.gitignore` (see
[`references/registry-spec.md`](references/registry-spec.md) for the full layout and schema).

## The pipeline, at a glance

| Stage | Reference | Artifact | Gate |
|---|---|---|---|
| 0. Intake | `pipeline.md` | `00-intake.json` | slug canonicalized, type detected |
| 1. Research | `pipeline.md`, `article-blueprint.md` | snapshots + `15-search-log.md` | every kept source snapshotted |
| 2. Outline | `pipeline.md`, `article-blueprint.md` | `20-outline.md` | every section has src-ids or a gap note |
| 3. Draft | `pipeline.md`, `wikitext-format.md` | `30-draft.wiki`, `35-claims.json` | every sentence bound to a src-id |
| 4. Blind verification | `verification-protocol.md` | `40-verification.json` | all claims supported or cut; `check_quotes.py` passes |
| 5. QA lint | `qa-checklist.md` | `50-lint.json`, `55-qa-judge.json` | `lint_page.py` exits 0; QA judge passes |
| 6. Publish | `pipeline.md`, `registry-spec.md` | `60-publish.log` | **only if stages 4 and 5 both passed** |
| 7. Report | `verification-protocol.md` | `reports/<slug>.verification.md` | — |

## References

| File | Read it for |
|---|---|
| `references/pipeline.md` | The full procedure — budgets, exact artifacts, resumability |
| `references/article-blueprint.md` | What to research: MOS:LEAD rules, per-type section sets, infobox field checklists |
| `references/wikitext-format.md` | How to write it: element order, citation syntax, link rules |
| `references/sourcing-policy.md` | What sources are allowed, the two-source rule, NPOV, words to watch |
| `references/verification-protocol.md` | The blind verifier and QA-judge subagent contracts |
| `references/registry-spec.md` | `registry.json` schema, slug rules, `registry.py` command reference |
| `references/qa-checklist.md` | The full stage-5 checklist, split into lint items and judgment items |

## Scripts

All stdlib-only Python, invoked from `skills/wiki-creator/scripts/`:

| Script | Invocation |
|---|---|
| `registry.py` | `python registry.py <command> ...` — sole mutation path for `registry.json`; see `registry-spec.md` §4 |
| `snapshot.py` | `<fetched text> \| python snapshot.py <url> --title "..." [--fetch-tool ...]` — persists already-fetched text, never fetches itself |
| `lint_page.py` | `python lint_page.py <path.wiki> --type <type> --title "..." --store wiki` |
| `check_quotes.py` | `python check_quotes.py <claims.json> <verification.json>` |
| `linkify.py` | `python linkify.py --store wiki pass-a <path.wiki>` / `pass-b "<Title>"` |

## Reminder

Research live, cite every claim to a snapshot fetched this run, and let the blind verifier and QA
judge — not the writer — decide whether a claim survives. A page that fails either gate becomes
`needs_attention`, not a published page with hedged language. Full procedure, schemas, and subagent
contracts are in `references/`.

