Structure¶
What runs where¶
Everything runs on your machine. There are three runtime pieces and two stores.
| Element | Responsibility |
|---|---|
| Agent process | Reads SKILL.md and the references, decides what to write, runs the CLI and writes the documents |
| Node.js process | One short-lived run per CLI command: structure, index, render, check, instructions |
| Skill folder | Rules, references, templates, the catalogue and the CLI itself; read-only at run time |
| Project folder | rup.config.json and the documentation directory; the only place the tool writes |
| PlantUML container | Turns diagram sources into SVG; published on 127.0.0.1 only and run with the SANDBOX security profile |
The CLI is started fresh for every command and keeps no state between runs, except one small file in the documentation directory that records the last render so unchanged diagrams are skipped.
What is inside the skill folder¶
| Path | Role |
|---|---|
SKILL.md |
The operating rules and the map from a request to the reference to read |
references/ |
Methodology, loaded on demand |
templates/ |
Starting content of each artifact, with {{placeholders}} |
scripts/rup.mjs |
The CLI |
scripts/lib/ |
Small modules used by the CLI |
editions.json |
The catalogue of artifacts and capabilities, free or Pro |
runtime/compose.yaml |
The definition of the PlantUML container |
Inside the CLI¶
| Component | Responsibility | Reason it is separate |
|---|---|---|
| Argument parser | Splits a command line into the command, its arguments and flags | The only place that knows the shape of the command line |
| Configuration loader | Merges defaults, rup.config.json and flags, in that order of precedence, and rejects values the edition does not support |
Every command sees one resolved configuration |
| Commands | One function per command | A command can change without touching the others |
edition.mjs |
Detects the edition, loads the extension, prints Pro notices | The single point where the two editions differ |
usecases.mjs |
Reads the use-case cards and builds the index and the navigation | Shared by new use-case, index and check |
plantuml.mjs |
Sends a source to the server and checks that an SVG came back | The only code that speaks HTTP |
instructions.mjs |
Writes the block that agents without skills read | Isolates the list of agent targets |
scripts/pro |
Themes, Mermaid, explorer, use-case diagrams and code scan | Exists only in the Pro package |
Dependencies¶
The CLI has no runtime dependencies. It uses the Node.js standard library, the global
fetch for the PlantUML server and, only when asked, the docker command. Keeping the
dependency list empty is a requirement, not an accident: it is what lets the skill be
unzipped into any folder and run.