Skip to content
m4bwav edited this page Oct 4, 2026 · 2 revisions

wikiwright is an agent skill that writes a repository's GitHub wiki and keeps it current. The agent reads the repository and its npm or NuGet registry entry, and runs every example the pages will show against the version users install. Then it writes the pages with a sidebar and footer, pushes them to the .wiki.git repository and checks that each page is live. At the next release it runs the same examples again and fixes the pages whose output changed.

It ships as a Claude Code plugin and as a plain skills/wikiwright folder that other agents reading SKILL.md skills can load. The mechanical half is wikiwright.py, a single standard-library Python script with eleven subcommands that the agent (or you) can run on their own.

Install

In a terminal, with Claude Code installed:

claude plugin marketplace add https://github.com/m4bwav/wikiwright.git
claude plugin install wikiwright@wikiwright

Then ask for a wiki in a Claude Code session, in the repository you want documented: "write a wiki for this repo". Copilot, other agents and gh skill install are on Getting started.

What the helper catches

A wiki page whose output no longer matches its code is the commonest way a wiki goes wrong. Take this page, pages/Home.md, where someone added reverse=True and updated the output by hand:

Widget sorts words.

```python
words = ["pear", "fig", "apple"]
print(sorted(words, reverse=True))
```

It prints:

```text
['pear', 'fig', 'apple']
```

The saved output of the verification run, wiki-verify.out.txt, still holds the old answer, and the program wiki-verify.py still holds the old code. From a clone of the repository, outputs and snippets both report the page:

$ python skills/wikiwright/scripts/wikiwright.py outputs pages wiki-verify.out.txt
Home.md:10: error: output block not in the verify output: ['pear', 'fig', 'apple']
outputs: 1 pages, 1 outputs checked, 1 missing, 0 skipped
$ echo $?
1
$ python skills/wikiwright/scripts/wikiwright.py snippets pages wiki-verify.py
Home.md:3: error: code block not in the program (line 5 is in no program: print(sorted(words, reverse=True))): words = ["pear", "fig", "apple"]
snippets: 1 pages, 1 blocks checked, 1 missing, 0 skipped, 0 commands
$ echo $?
1

The fix is to add the case to the verification program, run it, and paste what it prints. With the skill installed, the agent does that itself before it pushes.

Pages

  • Getting started: what it needs, every install route, and a first command.
  • How the skill works: the eight steps, update mode, what the agent asks of you and what it never does.
  • What the helper checks: the rules behind check, outputs, snippets and live, and the markers that steer them.
  • Commands: every subcommand of wikiwright.py, its options, output and exit codes.
  • Recipes: asking the agent, gating a wiki before a push, updating for a release, surveying a package.
  • Versions and upgrading: what each release from 0.1.0 to 0.9.0 added, and how to update each install.
  • FAQ: the first-page click, Windows path limits, other registries and hosts, stale installs.
  • Development: the tests, CI, the eval suite and how a release is made.

Elsewhere

The current version is 0.9.0, released on 2026-10-01.

Clone this wiki locally