marketplace/bundles/pm-documents/skills/recipe-verify-architecture-diagrams/SKILL.md
Recipe for verifying and updating PlantUML diagrams to reflect current codebase state and regenerating PNG images
npx skillsauth add cuioss/plan-marshall recipe-verify-architecture-diagramsInstall 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 PlantUML diagrams against the current codebase, updating outdated diagrams, and regenerating PNG images. Discovers diagrams, checks references, creates one deliverable per diagram or group.
| 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 |
| recipe_package_source | string | No | Not used |
Documentation skills provide formatting and content standards:
python3 .plan/execute-script.py plan-marshall:manage-config:manage-config \
resolve-domain-skills --domain documentation --profile core
Store all resolved skill names. Deliverables use profile implementation since .puml and .png files are modified.
Run the canonical manage-files discover resolver to enumerate all .puml files under the PlantUML directory (default: doc/plantuml). Capture the returned paths array as the diagram file list.
python3 .plan/execute-script.py plan-marshall:manage-files:manage-files discover \
--root {plantuml_dir} \
--glob "**/*.puml" \
--include-files
If paths is empty, report empty scope and return.
For each .puml file, check if its corresponding PNG is referenced in documentation:
**/*.adoc, **/*.md, and **/*.java for the PNG filenameShow the discovered diagrams with their reference status. For orphaned diagrams, ask the user whether to:
.puml and .png (creates a cleanup deliverable)Create deliverables based on discovery results:
One deliverable per referenced (or explicitly included) diagram:
Verify and update diagram: {diagram_name}change_type: tech_debtexecution_mode: automateddomain: documentationmodule: documentationdepends: noneimplementation{plantuml_dir}/{diagram}.puml{plantuml_dir}/{diagram}.png.puml if outdated, regenerate .pngplantuml {plantuml_dir}/{diagram}.puml (exit code 0 + visual check of PNG)One deliverable for all approved orphan removals:
Remove orphaned diagramschange_type: tech_debtexecution_mode: automateddomain: documentationmodule: documentationdepends: noneimplementation.puml and .png files approved for removal (explicit paths)manage-files discover over the orphan paths and confirm the returned paths array is emptyDuring discovery, if a diagram is overly complex, analyze splitting strategies:
If user approves a split:
Split diagram: {diagram_name}depends on the original diagram's deliverable number.puml files + updated documentation references4a. Read the deliverable template:
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. Resolve verification commands — PlantUML is invoked directly (not via architecture):
plantuml {plantuml_dir}/{diagram}.puml
Verify plantuml is available: which plantuml. If not installed, note in the outline that installation is required (brew install plantuml on macOS, apt-get install plantuml on Linux).
4d. Write the solution outline using the Write tool to {resolved_path}:
# Solution: Verify Architecture Diagrams header with plan_id, created, compatibility metadata## Summary — scope description ({N} diagrams, {M} orphaned, {K} splits)## Overview — resolved skills, PlantUML directory, diagram inventory## Deliverables — all deliverables from Step 3, using the template structure from 4a4e. 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 updates each diagram. Loaded skills provide documentation standards.
For each diagram:
.puml file — identify what it represents (architecture, sequence, class hierarchy).puml — reflect current architecture using Edit tool
!include plantuml.skin if present)plantuml {file}.pumlplantuml.skin).puml or skin file, regenerate, verify againBefore updating, evaluate if the diagram is becoming too large. If so:
pm-documents:ref-asciidoc — AsciiDoc formatting and cross-reference standardspm-documents:recipe-doc-verify — Documentation quality verification recipeplan-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 parameterstesting
A test skill for README generation
testing
A test skill with existing references
tools
Skill without references directory
development
Test skill with table-format references