spiral
Skill0 starsChanged 3 months agoMITView on GitHub
Use when a coding task has real unknowns - an unproven integration, an unvalidated performance target, a vendor API that may not behave as its docs claim - and you want to de-risk before committing. Runs risk-driven spiral-model development: register and score the unknowns, spike the largest risk each cycle in a fresh subagent, gate on a commitment review, repeat until the exposure is drained. For clear, well-specified requirements, use ratchet instead.
- Pipes a download into a shell
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Use this when the work has real unknowns: an unproven integration, a performance target nobody has measured, a vendor API that may not do …
- Distinctive: line 81
When the spike returns, verify the evidence yourself - read what it built, run its checks - before touching the gate.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
murex - Spiral-Model Conductor
Description
You are the conductor of a Boehm spiral. Three parts, three jobs:
murex(this plugin's binary) - the deterministic bookkeeping: risk register, top-risk selection, the commitment gate. It never executes work.- An executor - a fresh subagent of your host: clean context in, evidence out.
- You - interview the human into a scored risk register, hand each cycle's brief to the executor, verify the evidence it brings back, close the gate, repeat.
Use this when the work has real unknowns: an unproven integration, a performance target nobody has measured, a vendor API that may not do what the docs claim. If the requirements are already clear, just build it - a spiral with no risks is a slower waterfall.
Where a quality loop iterates until an evaluation gate passes, this loop iterates until the risks are retired - and a commitment review between cycles decides whether the next one is worth its cost.
Prerequisites
murex on PATH, new enough to have --adopt. Feature-detect and (re)install
if missing or stale (falls back to a cargo build when no release asset fits):
murex commit --help 2>/dev/null | grep -q -- --adopt || curl -fsSL https://raw.githubusercontent.com/janek-moon/murex/main/install.sh | shThe loop
start -> risk add (interview) -> [ cycle -> spike -> commit ]* -> drained1. Open the spiral
murex --root . start "ship realtime collaborative editing" \
--constraint "must stay on the existing Postgres box" \
--alternative "CRDT" --alternative "OT with a central server"2. Register what is not known
Interview the human for the unknowns, then score each: probability (0..1)
that it bites, impact (0..1) of the damage if it does. Exposure is the
product; only the ranking matters, so score consistently rather than precisely.
murex --root . risk add "CRDT memory footprint may exceed the 2GB box limit" \
--probability 0.6 --impact 0.9 \
--mitigation "prototype with a 10k-op document, measure RSS"
murex --root . risk add "Vendor websocket SDK may not support our auth scheme" \
--probability 0.4 --impact 0.73. Open a cycle
murex --root . cycleReturns the spike brief for the highest-exposure open risk: an instruction
that names exactly one risk and forbids broadening scope.
4. Execute the spike
Dispatch a fresh subagent with the brief's instruction and nothing else - a
clean context that builds the smallest prototype and reports its evidence
back, while your own context stays on the register.
When the spike returns, verify the evidence yourself - read what it built, run its checks - before touching the gate. The gate records what you verified, not what the executor claims.
5. Commitment review
murex --root . commit --decision continue --cost 1.5 \
--resolve R1 --evidence "10k-op doc held at 380MB RSS; headroom is fine" \
--outcome "CRDT approach viable"--decision is the gate:
| Decision | Meaning |
continue | Risk retired or reduced; the next cycle is worth its cost. |
pivot | Evidence killed the current approach; switch to an alternative. |
stop | The objective is not worth the remaining exposure. Spiral ends. |
Pass --resolve only when the evidence genuinely retires the risk. An
inconclusive spike leaves the risk open, and it will be picked again - which
is the correct signal that it needs another cycle.
On pivot, name the alternative you are switching to with --adopt
"<alternative>"; it becomes the spiral's current approach and is added to
the alternatives list if new. murex commit --decision pivot --adopt "OT
with a central server" --cost 1.0 --outcome "CRDT memory too high".
6. Repeat until drained
Go back to step 3. Check convergence with:
murex --root . statusReports radius (cycles completed, cumulative cost) and remaining_exposure.
Falling exposure against rising cost is convergence; the spiral is done when
remaining_exposure reaches 0 or a commit decides stop. Flat exposure
across two cycles means the spikes are not producing evidence - reframe the
risk with the human before spending another cycle.
When the exposure drains
A drained spiral (remaining_exposure 0) means the unknowns are retired and
the requirements are now clear. status prints a handoff line: switch to
/murex:ratchet to build the de-risked feature bottom-up, verifying each layer.
Notes
- State lives in
.murex/spiral.jsonin the target repo; commit it to share the register. Risks are never deleted, onlyresolvedoraccepted(murex risk close <id> --status acceptedfor risks the human decides to live with), so what you knowingly shipped past stays auditable.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

