plantuml-manipulator
Structured manipulation of PlantUML sequence diagrams - insert blocks after groups, add participants, and validate diagram structures across multiple files simultaneously
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install skempken-plantuml-manipulator-skill
Repository
Skill path: docs/skill
Structured manipulation of PlantUML sequence diagrams - insert blocks after groups, add participants, and validate diagram structures across multiple files simultaneously
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: skempken.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install plantuml-manipulator into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/skempken/plantuml-manipulator before adding plantuml-manipulator to shared team environments
- Use plantuml-manipulator for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
--- name: plantuml-manipulator description: Structured manipulation of PlantUML sequence diagrams - insert blocks after groups, add participants, and validate diagram structures across multiple files simultaneously --- # PlantUML Manipulator Skill ## When to Use This Skill Use this skill for: - **Repetitive changes** to multiple PlantUML files (e.g., insert block into 10+ files) - **Structural validation** of diagrams (checking for missing groups/participants) - **Batch operations** like adding participants to multiple files - **Reporting** on existing structures (which groups/participants exist where) **Do not use for:** - Single, one-time changes to 1-2 files (use normal Edit tools) - Complex semantic changes requiring contextual understanding - Non-sequence PlantUML diagrams ## Tool Availability The tool is located at: `./tool/plantuml-manipulator/` First check if the tool is implemented: ```bash python -m plantuml_manipulator --help ``` If not available, inform the user that implementation is pending. ## Main Commands ### 1. Insert Block After Group Most common scenario: Insert a code block after a specific group in multiple files. **Workflow:** 1. Create a snippet file with the block to insert 2. Run with `--dry-run` to preview changes 3. If OK, run without `--dry-run` **Example:** ```bash # 1. Create snippet (you do this with Write tool) # snippets/validation.puml contains the block to insert # 2. Dry-run python -m plantuml_manipulator insert-after \ --pattern "diagrams/**/*.puml" \ --after-group "Process Request" \ --block-file snippets/validation.puml \ --dry-run \ --verbose # 3. Execute if OK python -m plantuml_manipulator insert-after \ --pattern "diagrams/**/*.puml" \ --after-group "Process Request" \ --block-file snippets/validation.puml \ --verbose ``` **Important flags:** - `--skip-if-exists "TEXT"`: Skip files already containing "TEXT" - `--only-if-has-participant "NAME"`: Only files with participant NAME - `--backup`: Create .bak files before changes ### 2. Add Participant Adds a participant to multiple files at the correct position. **Example:** ```bash python -m plantuml_manipulator add-participant \ --pattern "diagrams/**/*.puml" \ --participant 'participant "API" as API #orange' \ --after-participant "Frontend" \ --skip-if-exists "API" \ --verbose ``` ### 3. Validation Checks if all files contain required structures. **Example:** ```bash python -m plantuml_manipulator validate \ --pattern "diagrams/**/*.puml" \ --require-group "Perform Validation" \ --require-participant "API" \ --report-format table ``` ### 4. Reporting Creates overviews of existing structures. **Examples:** ```bash # List all groups python -m plantuml_manipulator report groups \ --pattern "diagrams/**/*.puml" \ --format table # List all participants python -m plantuml_manipulator report participants \ --pattern "diagrams/**/*.puml" \ --format json # Show structure of a single file python -m plantuml_manipulator report structure \ --file "diagrams/user_login.puml" ``` ## Best Practices ### 1. Always Dry-Run First **IMPORTANT:** Always run with `--dry-run` first to see what would happen. ```bash # ✓ Correct python -m plantuml_manipulator insert-after ... --dry-run # Review output python -m plantuml_manipulator insert-after ... # ✗ Wrong python -m plantuml_manipulator insert-after ... # Without prior dry-run ``` ### 2. Use --skip-if-exists Prevent duplicate insertions: ```bash python -m plantuml_manipulator insert-after \ --after-group "Process Request" \ --block-file snippets/validation.puml \ --skip-if-exists "Perform Validation" # ✓ Prevents duplicates ``` ### 3. Use Filters for Targeted Operations Instead of modifying all files, filter specifically: ```bash # Only files with specific participant --only-if-has-participant "PaymentService" # Only files with specific group --only-if-has-group "Process Data" ``` ### 4. Backup for Large Changes Always create backups when modifying many files: ```bash python -m plantuml_manipulator insert-after \ ... \ --backup # Creates .bak files ``` ### 5. Validate After Changes Check if changes were successful: ```bash # After block insertion python -m plantuml_manipulator validate \ --pattern "..." \ --require-group "New Group Name" ``` ## Integration with Normal Tools This tool is a **supplement**, not a replacement for normal Edit/Read tools: **Use PlantUML Manipulator:** - For 5+ similar changes - When exact structural patterns exist - For validation/reporting **Use Normal Edit Tools:** - For individual, context-dependent changes - For complex logic changes - For 1-3 files ## Communicating with the User When using this skill, inform the user: **Before execution:** ``` I'm now using the PlantUML Manipulator tool to insert the validation into 8 files. First, I'll run a dry-run to check what would happen... ``` **After dry-run:** ``` The dry-run shows that 8 files would be modified: - user_login.puml - payment_process.puml - ... Shall I proceed? ``` **After successful execution:** ``` ✓ Successfully completed: - 8 files modified - API participant added to 7 files - Validation group inserted into 8 files - Backup files created (.bak) ``` ## Further Information For detailed API reference see: ../../api-reference.md For full specification see: ../../specification.md