Org validate
Validate a DWSD organization folder — frontmatter, wikilink, DSL-fence, locator, and ladder integrity. Use when asked to validate, check, or lint a DWSD org.From its SKILL.md
npx -y skills add worksystems-design/dwsd-markdown --skill org-validateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, as published. Nobody here has run it
org-validate
Validate the DWSD organization rooted at $ARGUMENTS (default: the current working
directory). You are the validator — use Glob, Grep, and Read; no parser needed. The
authoritative type list and contracts are bundled with this plugin
(${CLAUDE_PLUGIN_ROOT}/conventions.md, ${CLAUDE_PLUGIN_ROOT}/types/). This is
read-only — do not modify files; offer fixes only after reporting.
Report findings as file:line — issue, grouped, with a final PASS / FAIL summary:
- Frontmatter sanity — every
.mdentity has a validtype:and any required discriminator. Folder placement follows the conceptual type, not the baretype::type: unitwhoseunit-typeincludeswork-system→work-systems/; otherwise →units/.type: interaction(includinginteraction-type: meeting) →interactions/.- every other type → its plural folder (
signal→signals/, …). Flag avisualizationmissingvisualization-type, anagreementmissingagreement-type, or aninteractionmissinginteraction-type. - Work-system integrity: a unit whose
unit-typeincludeswork-systemmust have aflightlevel(flag if missing). Conversely, warn on a unit that has aflightlevelbut does not listwork-systeminunit-type—flightlevelno longer makes a unit a work system, so this is likely an authoring slip.
- Wikilink integrity — collect every
[[Target]](frontmatter and body) and confirm a fileTarget.mdexists somewhere in the org (labels are unique). Report danglers. - DSL fence & locator integrity — three checks:
- Route fences (
```dwsd.flightroute) — only the closed key settitle:/tags:/for:/bands:/triggers:/path:/bound-to:. Flag retired forms: aroute "…"header or a rootroute:key (→title:), aflow:section,@-handle references, adeliveredge (→..> ()), a bareflightroutefence tag. Confirmfor:resolves to a flight-item-type file. Every band named in apath:edge or a trigger'sgenerates:must be declared inbands:(fl∈ 1..3 or a numeric span). Edge sanity: one hop per line;()reached only via..>;->stays inside one band,-->crosses bands (warn otherwise). Flow ⊆ Path: everybound-to:bandis declared inbands:, and every pinned item type lives in that band perpath:; eachboard:wikilink resolves to a visualization file, and each pinned locator segment (lane:/col:/ …) names a unit present in that board's YAML. - Board fences (
```dwsd.board) — the name key istitle:(a rootboard:key is retired); flag a hyphenateddwsd-boardfence tag (it highlights but does not render). Inline inside-outagreements:/interactions:keys on a column/lane/group are valid board content, not references to resolve. - Locator —
interaction-of/agreement-ofcarry a locator[[Board]]#BoardName/col:Column::in(or[[Board]]#BoardName::infor the whole board, a bare[[Work System]]for a work-system anchor, or[[Route]]/stage:itemType @ Band::infor a route stage). Confirm the target file exists; anycol:/lane:/group:/split:segment names a unit present in that board's YAML; astage:segment names anitemType @ Bandpair the route'spath:(or a trigger'sgenerates:) actually places in that band. - Board-binding consistency: when an entity carries both
for-domain(a work system) and a board-positioninteraction-of/agreement-of, warn if the anchored board's work system (itsvisualization-of) differs fromfor-domain.
- Route fences (
- Ladder integrity — every
derived-fromresolves; trace signal → insight → driver → proposal → organizational-decision-record → agreement(s) chains and report breaks.derived-fromis the shared emergence key (any entity may carry it); reading it in reverse from an ODR yields that decision's bundle of agreements. - Type coverage (informational) — list which of the 16 types are present / absent
(remember: work systems are
unitwhoseunit-typeincludeswork-system; meetings areinteraction+interaction-type: meeting).