iwiki-lint
Report documentation health over docs/wiki/: broken [[refs]], orphan pages, stale pages, and gaps (source with no wiki page). Report-only — makes no edits.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Report documentation health over docs/wiki/: broken [[refs]], orphan pages, stale pages, and gaps (source with no wiki page). Report-only — makes no edits.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use when improving ONE numeric metric under a controlled research loop with a fixed eval and kept/reverted experiments. Not for a feature (use loop-delivery) or a failing test (use loop-repair).
Use when delivering ONE bounded change — a feature, refactor, or chore — as a controlled, audited loop in any repo. Not for a failing test (use loop-repair) or a numeric metric (use loop-autoresearch).
Use when a specific test, CI job, or regression is failing and must be fixed under a reproduce-first controlled loop with proven regression coverage. Not for delivering a change (use loop-delivery) or metrics (use loop-autoresearch).
Use when a loen loop stage — plan, act, check, or result — must be validated and gated before the next one. Mode-aware for delivery/repair/research; the execution-loop analog of check-chain.
Use when you need a cross-run dashboard over all docs/loen/ runs, or --triage to turn failing runs into proposed next actions (proposals only; never launches loops or edits runs).
Use when an active, human-approved loen run should keep going multi-turn on its own — wraps it in Claude's native /goal from loop.yaml. Optional; never bootstraps a run or submits /goal itself.
| name | iwiki-lint |
| description | Report documentation health over docs/wiki/: broken [[refs]], orphan pages, stale pages, and gaps (source with no wiki page). Report-only — makes no edits. |
Report docs/wiki/ health by calling the engine's deterministic lint check.
Makes NO edits. The engine ships with this plugin, so this works in any project.
The engine is a Python module, not a binary on PATH — do not treat it as a
shell command (probing with command -v or --help will fail). The launcher
exports IWIKI_ENGINE_DIR; resolve $ENG /
$UV once with the block below (it falls back to the in-repo / newest-cached
engine and exits loud if none is found), then reuse them in the steps:
ENG="${IWIKI_ENGINE_DIR:-}"
[ -f "$ENG/pyproject.toml" ] || ENG="plugin/iwiki/engine"
[ -f "$ENG/pyproject.toml" ] || ENG="$(ls -d "$CLAUDE_CONFIG_DIR"/plugins/cache/*/iwiki/*/engine 2>/dev/null | sort -V | tail -1)"
[ -f "$ENG/pyproject.toml" ] || { echo "iwiki: engine not found — run ./iclaude.sh --install-iwiki" >&2; exit 1; }
UV="${UV_BIN:-}"; [ -x "$UV" ] || UV="$(command -v uv)"; [ -x "$UV" ] || UV="$CLAUDE_CONFIG_DIR/../bin/uv"
# Run from the project root (relative --wiki-dir resolves against it):
"$UV" run --project "$ENG" python3 -m iwiki_engine --wiki-dir docs/wiki <cmd>
Run the engine lint from the current project root:
# $ENG / $UV from "Engine invocation" above:
"$UV" run --project "$ENG" python3 -m iwiki_engine --wiki-dir docs/wiki lint
This prints one JSON object. It always exits 0 (a real config/engine failure
prints HALT: — see the Stop rule).
If wiki_present is false: print one line —
"No docs/wiki/ here yet — run /iwiki-init to bootstrap one." — and stop.
Otherwise format a markdown report from the JSON, grouped by category, each
with its page / ref reference:
{page, ref} in broken.orphans.{page, source} in stale (source changed after ingest).
End with a one-line summary count per category.Gaps (advisory, only when wiki_present is true). Optionally note source
areas with no wiki page. Bound the scan to the set iwiki-init uses — immediate
subdirs of src/ / lib/ / app/ / packages/ / cmd/ / internal/ plus root entry-point
scripts (*.sh, main.*, index.*, app.*, cli.*) that exist. List
candidates only; do not treat them as errors.
If the engine prints HALT: (missing IWIKI_LLM_* is not needed for lint, but a
genuine engine error may still surface), report it and stop.