Repository navigation
FAQ
GitHub creates a wiki's .wiki.git repository only when someone saves a first page in the web UI. Switching the wiki feature on does not create it: on 2026-09-28 the repository was still missing 61 seconds after --enable, and present 11 seconds after a first page was saved. There is no API for it. So when preflight reports no-wiki-repo, the agent asks you to open https://github.com/OWNER/REPO/wiki/_new, save any text, and tell it; the push replaces that page. It keeps working on the pages while it waits.
No. preflight --clone reports has-pages for any wiki that is more than GitHub's single placeholder page, and the skill then reads every page and updates them in place. It overwrites only the placeholder.
Not unless you ask. They ship inside the package and reach the registry only with a release. So the skill lists what it found wrong in them, numbered, in its report and in the repository's wiki note, for you to fix in the next release.
Examples run against the published package installed into a scratch folder. A package that makes requests is answered by a local fixture server or stand-in proxy, and the npm host-fixture kit tests that its socket guard blocks anything leaving 127.0.0.1 before a case runs. A package that writes files runs each case on a fresh scratch copy of a fixture tree. The skill never requests the real service, not even once to record an answer. What does reach the network: installing the package from its registry, registry, preflight and live.
npm and NuGet. registry reads npmjs.org and nuget.org, and scaffold has an npm template (JavaScript, with TypeScript snippets) and a NuGet template (a .NET 10 file-based app that can also run F# and PowerShell). There is no template for PyPI, crates.io, Maven or Go. A repository with no package, such as this one, gets its page set chosen by hand.
Partly. preflight, check --host and live follow what was measured on 2026-09-29 without an account, on local Gitea, Forgejo and GitLab instances and anonymous reads of public wikis. One real wiki has been published on another host, on a local Forgejo. What needs an account is marked unverified in the skill's references/hosts.md. On Gitea and Forgejo a push cannot create the wiki; preflight --seed with a token in WIKIWRIGHT_TOKEN can, or a first page saved by hand. On GitLab the first push does.
On Windows, Git refuses paths over 260 characters unless core.longpaths is on. Claude Code clones the marketplace into a temporary folder under its config folder, and the repository holds ai-docs/decisions/2026-09-28-wikiwright-its-own-plugin-script-checks-model-writes-verify-.md, a 92-character path inside the repository. On 2026-10-03, with CLAUDE_CONFIG_DIR set to a scratch folder whose path was 119 characters long, the clone's longest path came to about 270 characters and the clone failed:
error: unable to create file ai-docs/decisions/2026-09-28-wikiwright-its-own-plugin-script-checks-model-writes-verify-.md: Filename too long
fatal: unable to checkout working tree
Turn long paths on with git config --global core.longpaths true, or use a shorter config folder. With core.longpaths on, the same command succeeded. The default config folder, ~/.claude, is much shorter; it was not tried.
Use the HTTPS URL, claude plugin marketplace add https://github.com/m4bwav/wikiwright.git, which needs no SSH key. On the machine these pages were tested on, the short form m4bwav/wikiwright cloned over HTTPS too, so the error was not reproduced here.
Two things can hold an old copy. claude plugin update keeps the installed files while the version number is unchanged, which matters when you install from a local clone; cachecheck shows which files differ, and uninstalling and installing again fixes it. And a running Claude Code session keeps the SKILL.md it read at start, so a session started before the update runs the old steps.
In auto mode, Claude Code's permission check has refused an agent's push to a wiki repository as creating a public surface, even when the request asked for it. Approve the push when it asks, or push the committed wiki yourself with git -C <wiki> push, then run live.
The repository is public, so it holds no machine paths, identities or lists of your projects. Your own values go in a markdown file named by WIKIWRIGHT_OVERLAY, or at ~/.wikiwright/OVERLAY.md: where your clones live, which identity to commit as, and which repositories have a wiki and which still owe one. The overlay wins over the skill's defaults.
check reports every line holding the placeholder (<BS>), inside code blocks too, because a placeholder left anywhere means unbs was not run. A page that needs to show the placeholder itself has to spell it with HTML entities outside code, as this one does.
references/page-sets.md lists the twelve wikis the skill wrote or retrofitted from 2026-09-28 to 2026-09-30, and TESTS.md records each eval run. Development has the details.
This wiki describes wikiwright 0.9.0 (master at a809eff) and was last updated on 2026-10-03. The skill is MIT licensed. Report problems in the issues.
Using it
The releases
Contributing
Elsewhere