wm-atlas-need-traces

star 0

Generate one focused map per user need, tracing the full supply chain from need down to infrastructure. Reveals chain depth, complexity concentration, and infrastructure dependencies for each need.

monkeypants By monkeypants schedule Updated 2/20/2026

name: wm-atlas-need-traces description: > Generate one focused map per user need, tracing the full supply chain from need down to infrastructure. Reveals chain depth, complexity concentration, and infrastructure dependencies for each need. compatibility: Requires Node.js (npx) for OWM rendering via cli-owm metadata: author: monkeypants version: "0.1" skillset: wardley-mapping stage: "atlas" freedom: medium

Atlas: Need Traces

You are generating per-need supply chain maps from a comprehensive Wardley Map. Each user need gets its own map tracing the full dependency chain from the need through capabilities down to infrastructure. This reveals how deep and complex the delivery of each need actually is.

Prerequisites

Check that the project directory contains:

  • strategy/map.agreed.owm
  • chain/supply-chain.agreed.md

If strategy/map.agreed.owm is missing, tell the user to complete wm-strategy first.

The project path is clients/{org}/projects/{project-slug}/.

Staleness check

For each need, compare modification times:

  • Sources: strategy/map.agreed.owm, chain/supply-chain.agreed.md
  • Outputs: atlas/need-{slug}/map.owm, atlas/need-{slug}/analysis.md

If all outputs for a need exist and are newer than all sources, skip that need. Only regenerate needs whose outputs are missing or stale. Report which needs were skipped and which were regenerated.

Step 1: Enumerate needs

Read strategy/map.agreed.owm and identify user needs. Needs are components at the top of the dependency chain, directly depended on by anchors. Cross-reference with chain/supply-chain.agreed.md to confirm the need list.

For each need, derive a slug (lowercase, hyphens, no special chars).

Step 2: Trace dependency chains

For each need, walk the dependency graph downward (need -> capabilities -> sub-capabilities -> infrastructure) collecting every component reachable from that need. This is the forward transitive closure starting from the need.

Also record the reverse: which anchors depend on this need.

Step 3: Analyse chain structure

For each need's chain, compute:

  • Depth: longest path from need to a leaf component
  • Width: maximum number of components at any single depth level
  • Complexity hotspot: the depth level with the most components
  • Shared tail: components in this chain that also appear in other needs' chains (infrastructure sharing)

Read chain/supply-chain.agreed.md for the narrative context of each chain — why components exist, what role they play, what alternatives were considered.

Step 4: Generate per-need maps

Read owm-dsl-reference.md for full OWM syntax.

For each need, write atlas/need-{slug}/map.owm:

title {Organisation} — {Need Name} Trace
// Derived from strategy/map.agreed.owm — do not edit directly

// Anchors that depend on this need
anchor {Anchor} [{vis}, {mat}]

// The need itself
component {Need} [{vis}, {mat}]

// Full chain below this need
component {Capability} [{vis}, {mat}]
component {Infrastructure} [{vis}, {mat}]

// Dependencies (only within this trace)
{Anchor}->{Need}
{Need}->{Capability}
{Capability}->{Infrastructure}

style wardley

Guidelines:

  • Include the anchors that depend on this need, for context.
  • Preserve original positions from the source map.
  • Carry forward relevant annotations — evolve arrows, inertia markers, strategic notes that touch components in this trace.
  • Mark shared infrastructure with notes so the reader sees where this chain connects to other needs' chains.

Step 5: Write per-need analysis

For each need, write atlas/need-{slug}/analysis.md:

# {Need Name} — Supply Chain Trace

## Chain summary

- **Serving anchors**: {which user classes depend on this need}
- **Chain depth**: {longest path length}
- **Total components**: {count}
- **Shared with other needs**: {count and names of shared components}

## Chain structure

{Describe the shape. Is it a narrow deep chain or a wide shallow one?
Where does branching occur? Where does it converge on shared
infrastructure?}

## Complexity concentration

{Which layer has the most components? What does that mean — is the
complexity in capabilities (hard to build) or infrastructure (hard to
operate)?}

## Infrastructure dependencies

{What does this need ultimately rest on? Are those foundations stable
(commodity) or risky (custom/genesis)? What happens if a foundation
component fails or changes?}

## Evolution profile

{How do components in this chain distribute across the evolution axis?
Is the chain mostly commodity, mostly custom, or mixed? What does that
imply about delivery cost and risk?}

Step 6: Render

For each need:

bin/ensure-owm.sh clients/{org}/projects/{slug}/atlas/need-{slug}/map.owm

Output

For each need {slug}:

File Purpose
atlas/need-{slug}/map.owm Need's supply chain trace
atlas/need-{slug}/map.svg Rendered SVG
atlas/need-{slug}/analysis.md Per-need chain analysis

Present a comparison table (need, depth, component count, shared component count) followed by each need's SVG. This is a derived view — no client agreement gate is needed.

After completion, regenerate the deliverable site:

bin/render-site.sh clients/{org}/projects/{slug}/
Install via CLI
npx skills add https://github.com/monkeypants/public-skillsets --skill wm-atlas-need-traces
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator