Skip to content
Back to skills

Wiki Lint

ASecurity

Run a full LINT check on the wiki. Use when the user says 'lint the wiki', 'run lint', or '/lint'. Runs the mechanical checker, drains the review queue, adds the judgement checks on top, and writes a dated report. Report-only for wiki content — never edits page bodies or frontmatter. Offers opt-in archival for stale raw files and log overflow, and never moves anything without confirmation.

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 5, 2026
ai-agentspythonbash

Security analysis

A100/100

Scanned September 21, 2026

npx -y skills add Ulef1005/benchbook --skill wiki-lint --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wiki Lint?

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

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

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-lint
description: "Run a full LINT check on the wiki. Use when the user says 'lint the wiki', 'run lint', or '/lint'. Runs the mechanical checker, drains the review queue, adds the judgement checks on top, and writes a dated report. Report-only for wiki content — never edits page bodies or frontmatter. Offers opt-in archival for stale raw files and log overflow, and never moves anything without confirmation."
maturity: tested
outputs: wiki/log/lint-*.md
license: MIT
metadata:
  version: 1.0.0
---

# Wiki Lint

## Purpose

Thin orchestrator for the LINT operation in `agents-core.md § 3`. Runs the deterministic
checker for mechanical checks, adds the judgement checks, writes a report, and handles the two
write operations with explicit opt-in.

> **Report-only.** LINT never edits page bodies or frontmatter. Its only write permissions are
> two file-*moving* operations that never delete. An auto-fixing linter over natural-language
> content is a machine for introducing unreviewed changes across hundreds of files at once.

---

## Step 1 — Mechanical checks

```bash
python3 scripts/lint.py
```

Implements the mechanical half of `agents-lint-checks.md` — read that file before running LINT.
**Exit code 1 means "findings exist", not "the script failed."** Capture the output; it becomes
the body of the report.

**When the schema changes, update `scripts/lint.py` in the same session.** A checker that
mirrors an older schema produces confident wrong answers.

---

## Step 2 — Judgement checks

The checks a script can't do. **Surface findings; change nothing.**

1. **Entity placement audit** — `people/` humans only; owned instances in a domain's
   `entities/`; general things in `knowledge/entities/`. Flag suspected misplacements. Never
   auto-move.
2. **Contradictions** — spot-check recently touched pages against what they supersede. *Two
   pages that quietly stopped agreeing is the single most valuable thing LINT finds.*
3. **Staleness** — does a page describe a state of the world that later pages have overtaken?
4. **Orphan / thin triage** — of the script's warnings, which are genuine problems versus pages
   that are simply short and fine? Report only the real ones.
5. **Inline-artifact triage** — fenced code blocks that are standalone artifacts (full configs
   or scripts) rather than illustrative snippets. Flag as `scripts/` migration candidates.

---

## Step 3 — Drain the review queue *first*

Read `wiki/log/review.md` before hunting for anything new. It holds contradictions already
found and waiting on a human decision.

For each open entry: present it, ask for the call, then **write the decision onto the page it
belongs to and delete the entry.** An entry is removed when it's decided, not archived here —
the page it was about is the record.

**This comes before Step 2's new findings on purpose.** A queue that only grows is a queue people
stop reading, and the point of finding a contradiction is resolving it, not collecting it. If the
file is empty, say so in one line and move on.

---

## Step 4 — Write the report

Write `wiki/log/lint-YYYY-MM-DD.md` (overwrite on a same-day re-run): script output, then
`## Judgement Checks`. New contradictions that need a human decision are appended to
`wiki/log/review.md` — the dated report is a snapshot, the queue is what survives until someone
acts on it.

**There is no todo file to sync.** Open work lives on the page that owns it — see
`agents-core.md` § 6.

Print an inline summary to chat: error count, warning count, top three issues.

---

## Step 5 — Raw-file archival (opt-in)

Candidates are pages whose `raw_file:` exists in `raw/` with mtime older than 14 days.

Show the list. Ask: *"Archive these? (`raw/` → `raw/_archived/<domain>/`)"* **Only proceed on
confirmation.** Never delete — archival is reversible.

---

## Step 6 — Log archival (opt-in)

If `wiki/log/log.md` exceeds 500 lines, identify the oldest entries needed to bring it back to
≤350. Show them. Ask before moving them to `wiki/log/log-archive/YYYY-MM.md`.

**Before writing any archive file, check you're appending and not replacing.** Overwriting an
archive destroys history that exists nowhere else.

---

## Step 7 — Log the run

```
## [YYYY-MM-DD] lint | LINT run — <N> errors, <N> warnings. Report: wiki/log/lint-YYYY-MM-DD.md
```

---

## A note on thresholds

If a check fires on more than a few percent of pages, **the check is usually wrong, not the
content.** In the original wiki the page-length rule flagged 27% of pages — a rule that flags a
quarter of your content steers nothing, because you stop reading its output within two runs.

When you notice that happening, propose fixing the threshold rather than the pages.

## Error handling

- **Script crashes** (traceback, not exit 1): report it, fall back to manual checks.
- **Exit code 1:** findings exist. Proceed normally.
- **File read error:** note the path in the report; don't stop the run.

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.

Comments

Loading comments…

Newsletter

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