plugins/axiom-procedural-architecture/skills/using-procedural-architecture/SKILL.md
Use when designing or critiquing the structure of a staged procedure — a wizard, configuration flow, troubleshooting tree, training curriculum, multi-stage approval pipeline, decision pipeline, or any decomposition of expert work into composable stages. Use for both producer work (build the decomposition) and critic work (audit a proposed decomposition). Use when reasoning about capacity, bottlenecks, or soundness of a procedural flow. Do not use for implementation-plan critique of code changes (use `/axiom-planning` instead), for execution-time dynamics (use `/simulation-foundations`), or for rendering an already-designed procedure as docs or UI (use `/technical-writer` or `/ux-designer`).
npx skillsauth add tachyon-beep/skillpacks using-procedural-architectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A procedure is a directed structure of stages with state, flow, decision points, and capacity — treat it as one, or it calcifies into ad-hoc steps that nobody can audit, change, or scale.
This pack treats a procedure as an abstract object: a graph of stages, each with declared inputs, an exit artifact, and a defined relationship to decision points that select among successors. The shape of that graph — its dependencies, its branching, its grain, its capacity — is the artifact this pack designs and audits. A wizard is a procedure. A troubleshooting tree is a procedure. A training curriculum is a procedure. A multi-stage approval pipeline is a procedure. A decision pipeline is a procedure. The same structural discipline applies whether the procedure is run by a human, by an LLM, by a team, or by a queue of jobs.
In smell-name vocabulary, "step" is the colloquial alias for "stage" — the catalog uses god-step, mystery-step, and ladder-of-trivials because the smells are recognized under those names. Outside the smell catalog, prefer "stage."
Three roles over one shared corpus: a producer ("thinker") that constructs decompositions forward — goal in, stages out, dependencies declared, decision points enumerated, exit artifacts named, audience parameters stated; a critic ("checker") that adversarially audits a proposed decomposition backward — defects in, findings out, with severity and evidence on every finding; and an analyst that characterizes flow properties (capacity, soundness, stochastic behavior) when structural review alone is insufficient. The roles read the same 13 reference sheets with different epistemics. If the producer and critic always agree, the critic is rubber-stamping — that is a bug in the pipeline, not a feature.
/axiom-planning. That pack is the code-implementation-plan instance of this discipline; it has code-specific heuristics this pack does not./system-architect. Components and their boundaries are not the same object as stages and their flow./simulation-foundations. This pack reasons about staged-discrete structure; execution-time dynamics under continuous models are someone else's job./simulation-tactics. Game systems have stakeholder dynamics this pack does not model./technical-writer. Once the structure is fixed, prose rendering is a separate discipline./ux-designer. Visual / interaction design begins where structural design ends./site-designer. IA inherits structure; it does not define it.axiom-planning axiom-procedural-architecture
CODE implementation plans ←-cross-ref-→ GENERAL procedural discipline
task ordering, branch stages, decision points,
hygiene, plan-review exit artifacts, audience
for code changes parameters; producer + critic
───────────────────────────────────────────────────────────────────
↓
axiom-planning is the code-implementation-plan instance
of this pack's general discipline. Cross-link both ways:
plan-review may cite this pack for structural smells;
this pack defers to axiom-planning when the procedure
being decomposed is a code-change plan specifically.
axiom-procedural-architecture (structure) downstream rendering packs
the SHAPE of a procedure ←-feeds-→ HOW the procedure looks
(stages, dependencies, decision to a human or an agent
points, exit artifacts, audience ─────────────────────
parameters) muna-technical-writer
lyra-ux-designer
lyra-site-designer
───────────────────────────────────────────────────────────────────
Structural decomposition is upstream of rendering. This
pack produces the structure; rendering packs produce the
prose, the wizard UI, or the site IA. A decomposition is
not "finished" by being rendered; it is rendered after
it is finished.
axiom-procedural-architecture (structural) yzmir-simulation-foundations (dynamics)
discrete stages, queueing, ←-handoff-→ continuous-time models,
workflow nets, DES applied ODEs, control theory,
to procedural flow stability analysis
───────────────────────────────────────────────────────────────────
This pack stops at staged-discrete reasoning with capacity.
If the question is "what happens under continuous dynamics
/ control inputs / nonlinear feedback," that is the
simulation-foundations pack. The boundary is testable: if
you can draw the procedure as a directed graph of stages,
you are in this pack; if you need a vector field, you
are not.
This pack is a sibling of axiom-planning (which is its code-implementation-plan specialisation), a sibling of axiom-system-architect (which handles system shape rather than procedure shape), and strictly upstream of the rendering packs (muna-technical-writer, lyra-ux-designer, lyra-site-designer). It hands off to yzmir-simulation-foundations when the question moves from staged-discrete to continuous dynamics, and to bravos-simulation-tactics when the question moves to emergent player-driven flow. It receives input from axiom-system-archaeologist when an existing procedure is recovered from a codebase and needs structural critique.
The producer, the critic, and the analyst share the corpus of 13 sheets. They do not share epistemics.
Producer epistemics — constructive, forward. Given a goal and an audience, the producer asks: what is the smallest set of stages, in what order, with what dependencies, that gets this audience to that goal with an audit-able artifact at each exit? The producer builds. The producer's failure mode is over-confidence in the first decomposition that "feels right": grain too coarse where the audience needs scaffolding, decision points placed before their inputs exist, fake branches that converge identically, audience parameters left implicit.
Critic epistemics — adversarial, backward. Given a proposed decomposition, the critic asks: what is structurally wrong with this? Where are the smells from decomposition-smells.md? Where do dependencies cross stages without being declared? Which decision points lack the information needed to decide? Which stages have no defined exit artifact? Which paths terminate, and which loop or dangle? The critic finds. The critic's failure mode is rubber-stamping — producing a clean bill of health on a structure that the producer's first instinct should have caught.
Analyst epistemics — descriptive, forensic. The analyst is neither building nor adversarial. Given a structurally-sound procedure that misbehaves at scale or under stochastic conditions, the analyst asks why — bottleneck identification, soundness verification, sensitivity characterization. Analyst output is a verdict bound to a specific question: "stage 3 is the bottleneck because utilisation is 0.92 and Little's Law projects a 14-minute wait queue at peak," not "stage 3 is wrong." The analyst's failure mode is modeling theatre — reaching for queueing formulas or DES when the real defect is structural and a critic pass would have caught it cheaper.
If producer and critic always agree, the pipeline is broken. A typical run produces at least one substantive disagreement: the producer staged decision D at point P; the critic finds D's inputs are not yet available at P and demands D move later or P move earlier. Resolving that disagreement is the work the pipeline exists to do. A run that produces no disagreement is evidence the critic is reading the same way the producer wrote — same bias, same blind spots — and the audit is theatre. Treat zero-disagreement runs as a defect of the critic, not as a virtue of the producer.
The producer's slash command is /decompose-procedure. The critic's slash command is /review-decomposition. The analyst's slash command is /analyze-procedure. The two SME agents are decomposition-architect (producer) and decomposition-critic (critic); both follow the SME Agent Protocol and emit finding / severity / evidence triples where they make claims.
If this is your first time and your input is "I need to decompose X" (producer):
If your input is "audit this proposed decomposition" (critic):
If your input is "this flow is backing up / deadlocking / wrong shape" (analyst):
For anything not covered by these three entry tracks, use the Routing table below.
Symptom phrased in the user's own words on the left; sheet to read on the right. At least one row exists per reference sheet.
| Symptom | Sheet |
| --- | --- |
| "the decomposition has the wrong grain — either trivial beats or one giant step" | granularity-calibration.md |
| "we have a wildly different audience this time (a junior, an LLM, a senior)" | audience-modeling-for-procedures.md and granularity-calibration.md |
| "the wizard asks too many questions before it knows what to do with the answers" | decision-flow-design.md |
| "the options at this decision point don't actually cover the space" | branching-and-mece-review.md |
| "I can't tell whether this decomposition is good — give me the core properties" | decomposition-fundamentals.md |
| "stage B silently depends on stage A's exhaust and nobody declared it" | dependency-and-ordering-audit.md |
| "this proposed flow has a smell I can't name" | decomposition-smells.md |
| "before I sign this off, what's the minimal soundness checklist I can run?" | procedural-invariants-and-correctness.md |
| "stage 3 is the bottleneck" | queueing-theory-for-procedures.md |
| "service times are not exponential, routing is state-dependent, closed-form won't work" | discrete-event-simulation-for-procedures.md |
| "someone is going to ask 'can this deadlock?' and 'it probably won't' is not an answer" | process-algebra-and-workflow-nets.md |
| "the team drew a state machine for a procedure with no persistent state" | flow-vs-state-vs-decision-modeling.md |
| "is this question really for this pack, or is it /axiom-planning / /technical-writer / /ux-designer?" | procedural-boundary-and-handoffs.md |
| "the user backs up and retries; the decomposition doesn't handle re-entry" | decomposition-smells.md (re-entrancy-blindness) and procedural-invariants-and-correctness.md |
| "every option in this decision point ends up at the same next stage" | branching-and-mece-review.md (fake-branch) |
| "the wait time at this stage doubled when arrival rate went up 10%" | queueing-theory-for-procedures.md (utilisation-knee) |
All reference sheets are in the same directory as this SKILL.md. When you see a link like [decomposition-fundamentals.md](decomposition-fundamentals.md), read the file from the same directory. Sheets are designed to be loadable independently — the router selects which sheet to read; the sheet does the work.
The 13 sheets:
Producer cluster (build the decomposition):
Critic cluster (audit the decomposition):
Analyst cluster (flow / capacity / soundness):
Boundary sheet:
Run this checklist before declaring any producer or critic deliverable done. Failures are blocking, not advisory. Silent passes are the failure mode this pack exists to prevent.
decision-without-information); the decision moves later or the input moves earlier. Per decision-flow-design.md.For critic deliverables specifically, also:
For analyst deliverables specifically, also:
tools
Use when designing, implementing, or auditing an MCP (Model Context Protocol) server — tool API design, idempotency under agent retry, structured error envelopes agents can recover from, schema versioning across model drift, transport reliability (stdio / HTTP), output-shape and pagination discipline, and choosing between tools / resources / prompts / sampling. Also use when an MCP server's tools confuse agents, return unstructured errors, deadlock under concurrent calls, double-execute under retry, or lose state across reconnects. Do not use for general REST/GraphQL API design (use `/web-backend`), for client-side prompt engineering or tool-loop design (use `/llm-specialist`), for general in-process plugin architecture (use `/system-architect`), or for cryptographic-provenance audit trails (use `/audit-pipelines`).
development
Use when running **SQLite or DuckDB inside an application process** as the durable store — not as a development convenience but as the production database. Use when scaling an SQLite layer that worked at low concurrency and is now hitting SQLITE_BUSY, WAL bloat, lock contention, schema-migration ceremony, or correctness gaps under multi-process writers. Use when introducing DuckDB as an OLAP complement to an OLTP SQLite store, or when picking between the two for a new component. Pairs with `/web-backend` (the API surface above the DB) and `/audit-pipelines` (when the DB is also the audit trail). Do not load for server databases (Postgres, MySQL), key-value stores, or ORM choice in isolation.
testing
Use when the user wants to draft fiction or creative nonfiction prose, get craft critique on prose they have written, or plan story structure, outline, or premise. Workshop-voiced. Three explicit modes (draft, critique, plan) and the router will refuse to begin work without a declared mode.
tools
Use when encountering training problems (loss not decreasing, instability, NaN, overfitting, slow training) or selecting training dynamics (optimizer / LR / schedule / batch / precision / clipping / regularization) — routes to specialist sheets for the 2026-era landscape (Lion, Sophia, Muon, AdEMAMix, Schedule-Free, Prodigy, AdamW8bit, paged optimizers, WSD schedules, FP8 / BF16 precision, muP / mu-Transfer, ZeRO/FSDP strategy).