Files
ai-for-dummies/submitted-skills/Marcos Silva/skills/page-reviewer/references/checks.md
T
2026-09-04 09:07:54 -03:00

4.1 KiB

Page Reviewer — Checks

The full rule list the page-reviewer skill runs. Each check has a severity (BLOCKER / MAJOR / MINOR), the pattern it looks for, and the verdict it returns.

BLOCKER

ID Rule How to detect
B-SECRET Body contains a token, key, password, or PII pattern from confluence-page/references/secrets.md grep -nE "<patterns>" <draft>
B-MIRROR-PATH Body references a local mirror path (~/Netcracker/Projects/NDO/knowledge/...) grep for the root path
B-COLLISION A page with the same title exists under the same parent confluence_search for the title
B-WRONG-SPACE Draft targets a space that doesn't match content kind (see confluence-page/references/space-keys.md) manual check by reviewer
B-WRONG-FORMAT Body is wiki markup or Markdown, not storage XHTML header doesn't start with <p, <h, <ac:, or <table; presence of --- front-matter fences
B-LOCAL-FS-LINK Body contains file://, ~/, or /home/masi1023/ paths grep
B-CUSTOMER-PII Customer name, hostname, or payment info in body grep + manual review
B-PARENT-LOOP Parent resolves to a descendant of itself confluence_get_page ancestry walk

MAJOR

ID Rule How to detect
M-UNRENDERED-MACRO {plantuml}, {code}, {info}, {note}, etc. not in proper storage form grep for unclosed or naked {...} macros
M-BROKEN-LINK Internal link points to a page id that doesn't exist or a URL that 404s confluence_search for the target title; HEAD on the URL
M-MISSING-ALT Image element without ac:alt grep for <ac:image without ac:alt
M-DIAGRAM-IN-PANEL PlantUML block inside an info / note / warning panel grep + structure check
M-DIAGRAM-IN-CODE PlantUML block inside a {code} block grep + structure check
M-CODE-NO-LANG {code} block without language parameter grep + structure check
M-EMPTY-SECTION Section heading followed by nothing or a single sentence structure walk
M-STALE-SECTION Section in draft was deleted from upstream since the last pull (update flow) diff against confluence_get_page_content
M-SLOP-CLUSTER unslop skill returns >5 fixes for a 30-line block unslop report count
M-NO-SUMMARY First paragraph is missing for a how-to or runbook structure check
M-OVER-300 Page body is over 300 lines and no justification header exists wc -l

MINOR (PASS with note)

ID Rule How to detect
m-HEADING-LEVEL Skipped heading level (h1 → h3 with no h2) structure walk
m-MISSING-ANCHOR Cross-page reference without an explicit anchor text structure walk
m-LOOSE-LINK "click here", "this link" grep
m-EMOJI-IN-HEADING Emoji in headings that (h1 / h2) grep
m-CAPITALIZED-LINE Long uppercase run (more than 5 words) grep
m-MULTI-COLON Multiple consecutive : in a sentence grep
m-RUN-ON-LINE A single line over 200 chars awk '{ print length, NR }'

Severity → verdict

BLOCKER > 0  → BLOCK
MAJOR   > 0  → REVISE
MINOR   > 0  → PASS (with note)

A single BLOCKER short-circuits. The reviewer still lists MAJOR / MINOR findings so the author can fix them in the same pass.

Diff mode (updates)

When the reviewer is called for an update, also run:

ID Rule
D-UNINTENDED-DROP A section in the upstream body that the draft does not have (and was not intentionally removed by versionMessage)
D-UNINTENDED-RENAME A heading in the upstream body that the draft has under a different name
D-STALE-VERSION The versionMessage does not match the change set

D- rules are MAJOR by default; BLOCKER only if the dropped content was flagged as load-bearing by the previous reviewer.

What the reviewer does NOT check

  • Correctness of the technical content — that's an SME responsibility
  • Style / voice — that's unslop
  • Compliance with team conventions outside this list — escalate to the page owner