marketplace/bundles/pm-documents/skills/recipe-doc-verify/SKILL.md
Recipe for verifying documentation quality across project — validates AsciiDoc format, links, and documentation drift
npx skillsauth add cuioss/plan-marshall recipe-doc-verifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Recipe for verifying documentation quality across the project. Discovers documentation modules, creates one deliverable per verification area. The task executor loads documentation standards and runs validation scripts.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| plan_id | string | Yes | Plan identifier |
| recipe_domain | string | Yes | Domain key (auto-assigned: documentation) |
| recipe_profile | string | No | Not used — verification is read-only |
| recipe_package_source | string | No | Not used — scope is module-level |
The verification requires documentation formatting and content quality skills:
python3 .plan/execute-script.py plan-marshall:manage-config:manage-config \
resolve-domain-skills --domain documentation --profile core
Store all resolved skill names. The deliverables use profile verification since no files are modified.
Query the project architecture for documentation modules:
python3 .plan/execute-script.py plan-marshall:manage-architecture:architecture modules
Also discover documentation files directly. Run the canonical manage-files discover resolver against the project root for both standard documentation roots (doc/ and docs/). Capture the returned paths array as the documentation file list — pass each subdirectory as a separate --glob flag so the resolver deduplicates and sorts results in one call.
python3 .plan/execute-script.py plan-marshall:manage-files:manage-files discover \
--root {project_root} \
--glob "doc/**/*.adoc" \
--glob "docs/**/*.adoc" \
--include-files
Then check for README.adoc and the project's agent-instructions file at project root (drift checking) using the Read tool — these are well-known top-level paths that do not need a discovery resolver. The agent-instructions filename is target-aware: CLAUDE.md on Claude, AGENTS.md on OpenCode (read whichever is present).
Present discovered documentation scope to user for confirmation. Skip if paths is empty.
Create deliverables for each verification area:
One deliverable per documentation directory discovered:
Verify AsciiDoc format: {directory}change_type: verificationexecution_mode: automateddomain: documentationmodule: documentationdepends: noneverification.adoc files in the directory (explicit paths)python3 .plan/execute-script.py pm-documents:ref-asciidoc:asciidoc validate --path {directory}One deliverable covering all documentation:
Verify documentation links and cross-referenceschange_type: verificationexecution_mode: automateddomain: documentationmodule: documentationdepends: noneverification.adoc files discovered in Step 2python3 .plan/execute-script.py pm-documents:ref-asciidoc:asciidoc verify-links --directory {doc_directory}python3 .plan/execute-script.py pm-documents:ref-asciidoc:asciidoc verify-links --file README.adoc<<>> syntax usedOne deliverable for project-wide drift detection:
Check documentation drift against project structurechange_type: verificationexecution_mode: automateddomain: documentationmodule: documentationdepends: noneverificationREADME.adoc, the agent-instructions file (CLAUDE.md on Claude / AGENTS.md on OpenCode), or equivalent project docsmanage-files discover (see Drift Detection workflow below)4a. Read the deliverable template to understand the required structure:
Read: marketplace/bundles/plan-marshall/skills/manage-solution-outline/templates/deliverable-template.md
4b. Resolve the target path:
python3 .plan/execute-script.py plan-marshall:manage-solution-outline:manage-solution-outline \
resolve-path --plan-id {plan_id}
4c. Write the solution outline using the Write tool to {resolved_path}. The document MUST include these sections in order:
# Solution: Verify Documentation Quality header with plan_id, created, compatibility metadata## Summary — scope description ({N} documentation files across {M} directories)## Overview — resolved skills list and documentation scope## Deliverables — all deliverables from Step 3, using the template structure from 4a4d. Validate the written outline:
python3 .plan/execute-script.py plan-marshall:manage-solution-outline:manage-solution-outline \
write --plan-id {plan_id}
This section defines how the task executor verifies documentation within each deliverable. The ref-asciidoc and ref-documentation skills provide the underlying standards.
Read-only execution:
This recipe declares verification_profile: quality (see the frontmatter metadata: block above). Every finding the format / link / drift checks below map to passes through the verify stage adversarial-refute pass FIRST — before triage: the quality verify skill (persona-code-reviewer adversarial-refute) refutes each finding, so a doc-drift claim that turns out to be a false positive on an already-correct reference closes rejected and never reaches triage, while confirmed findings flow on to triage unchanged. Do NOT restate the rejected resolution semantics — the ext-point-verify contract owns them.
Run the AsciiDoc validator and parse output:
python3 .plan/execute-script.py pm-documents:ref-asciidoc:asciidoc validate --path {target}
Map each violation to a finding with severity: warning.
Run link verification with manual confirmation:
python3 .plan/execute-script.py pm-documents:ref-asciidoc:asciidoc verify-links --directory {directory}
For each reported broken link:
severity: errorCompare documentation against actual project structure:
Discover actual bundles/modules by running the canonical manage-files discover resolver with --include-dirs. Capture the returned paths array as the bundle directory list:
python3 .plan/execute-script.py plan-marshall:manage-files:manage-files discover \
--root marketplace/bundles \
--glob "*/" \
--include-dirs
Read README.adoc and extract documented bundle names
Read the agent-instructions file (CLAUDE.md on Claude / AGENTS.md on OpenCode) and extract documented bundle names
Report any discrepancies as findings with severity: warning
pm-documents:ref-asciidoc — AsciiDoc formatting, validation, and link verificationpm-documents:ref-documentation — Content quality, tone analysis, and review orchestrationplan-marshall:recipe-refactor-to-profile-standards — Built-in recipe (same 4-step pattern)plan-marshall:phase-3-outline Step 3 — Loads this skill with input parametersplan-marshall:extension-api standards/ext-point-verify.md — the verify stage this recipe opts into via metadata.verification_profile: quality; its documentation findings pass the persona-code-reviewer adversarial-refute pass before triage.development
Domain-owned OpenRewrite log-line finding parser for the java-cui domain — parses the
development
Domain-owned OpenRewrite marker detection for the java-cui domain — scans Java/Kotlin sources for cui-rewrite TODO markers, categorizes them by recipe, and fails the gate on any detected marker
development
Operator control surface for the marshalld build server — enrol/drop a project in the machine-global registry (the opt-in enable signal and anti-laundering wall), manage the daemon lifecycle (start, stop, drain, status, install, upgrade) version-pinned to the verified bundle copy, and inspect the daemon's per-project interaction-audit log (read-only)
tools
The tiny build-consumption client for the marshalld build server — submit a build job, bounded long-poll for its result, ping the daemon identity, and preflight registry-plus-liveness in one call; consumption only, never provisioning or enrolment