lark-plantuml-standardslisted
Install: claude install-skill witchwasin/Axiom-PMO
# PMO Skill: PlantUML Coding Standards for Lark (Strict Mode)
> **Related Skills:** Load this skill whenever writing/editing any `.puml` file.
> Often loaded alongside: `pmo-activity-diagram`, `pmo-use-case-diagram`
> **11 rules below are MANDATORY for every `.puml` file** (SystemFlow, UserFlow, UseCase).
> Rule 1-7: Lark Docs rendering compatibility (strict parser).
> Rule 8-11: Layout quality (ป้องกันเส้นทับกัน, กล่องล้น lane, diagram กว้างเกิน).
---
## Rule 1: FLAT CODE 100% (No Leading Whitespace)
Every line must start at column 0 - no space, tab, or NBSP prefix allowed.
```
' WRONG
:1. ทำงานแรก;
note right
**รายละเอียด**
end note
' CORRECT
:1. ทำงานแรก;
note right
**รายละเอียด**
end note
```
**Verify:** `grep -c '^[[:space:]]' FILE` must return 0
---
## Rule 2: NO AMPERSAND (`&` -> `and`)
Never use `&` anywhere in the file - PlantUML uses `&` as a parallel operator, causing Lark parser crash when found in text.
```
' WRONG
:2. ตรวจสอบ Session & Authorization;
' CORRECT
:2. ตรวจสอบ Session and Authorization;
```
**Verify:** `grep -c '&' FILE` must return 0
---
## Rule 3: START KEYWORD
Must have `start` after the first Swimlane declaration.
```
' WRONG
|#FCE4EC|Customer|
:1. เข้าหน้า Profile;
' CORRECT
|#FCE4EC|Customer|
start
:1. เข้าหน้า Profile;
```
**Verify:** `grep -c '^start$' FILE` must return >= 1
---
## Rule 4: SINGLE-LINE ACTION (No multi-line `:...;` blocks)
Action block (`:...;`) must not have newlines - use `\n` f