AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
Not every decision deserves a matrix. The first move is always to classify the decision, because the right *process* depends far more on **reversibility** than on the topic. Spending a week of analysis on a choice you can undo in an hour is itself a failure mode (analysis
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Not every decision deserves a matrix. The first move is always to classify the decision, because the right *process* depends far more on **reversibility** than on the topic. Spending a week of analysis on a choice you can undo in an hour is itself a failure mode (analysis
Not every decision deserves a matrix. The first move is always to classify the decision, because the right *process* depends far more on **reversibility** than on the topic. Spending a week of analysis on a choice you can undo in an hour is itself a failure mode (analysis paralysis); waving through an irreversible choice on a hunch is the opposite one.
are these: a library choice inside one module, a config default, a naming convention, an experiment. **Process:** pick a sensible default fast, write down the assumption, move on. Optimize for *speed of learning*, not correctness on the first try. A full matrix here is ceremony.
contract, the data model, a persistence engine, a security boundary, a vendor you'll build deep dependencies on, a decision that sheds trust or people. **Process:** this is where the weighted matrix, the sensitivity check, and a written record earn their cost. Slow down on purpose.
The trap is misclassifying: teams routinely agonize over reversible choices and rush the irreversible ones. **Classify the door first**, then spend your reasoning budget accordingly.
Give the decision a time budget proportional to its reversibility and stakes, and hold to it. For a two-way door, "decide by end of day, revisit if it hurts" is usually right. For a one-way door, a longer box is warranted — but an open-ended one invites paralysis. When the box expires, decide with what you have and record the open question; a made decision with a flagged risk beats an unmade one.
Weighted matrices assume you already have the right options on the table. Often the real failure is upstream — a narrow or false choice. The WRAP process (Heath & Heath, *Decisive*) guards the inputs:
than two choices). Ask "what else could we do?"; consider the opportunity cost ("if we couldn't do any of these, what would we do?"); look for someone who has already solved this.
have to be true for each option to be the right one, then check it. Run a small, cheap test where you can (a spike, a prototype, a pilot) instead of arguing in the abstract.
prompts: "what would I tell my best friend to do?"; "what would a successor with no attachment to the current path do?"; "how will this look in 10 minutes / 10 months / 10 years?".
— a pre-committed condition that triggers a re-decision ("if error rate exceeds X for a week, we revisit"). Run a **premortem**: imagine it's a year later and this failed — why? Then mitigate the top causes now.
The matrix scores the options; WRAP makes sure you're scoring the *right* options and staying honest about the evidence.
Before committing, ask everyone to assume the decision has already failed spectacularly and write down why. It surfaces risks that optimism suppresses during normal planning, and it does so without anyone having to be the lone naysayer. Feed the top failure causes back into the criteria (as risks to weight) and into the tripwires (as conditions to monitor).
1. **Classify the door.** Two-way → fast default, record the assumption, done. One-way → continue. 2. **Widen** (WRAP-W) so you're not choosing from a false menu. 3. Build and score the **weighted matrix** (`weighted-decision-matrix.md`). 4. **Reality-test** the decisive scores/weights (WRAP-R) and run the **sensitivity check**. 5. **Attain distance**, run a **premortem**, and set a **tripwire** for revisiting. 6. Record the decision and its rationale so it isn't re-litigated from scratch next quarter.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity…
The contract is the deliverable. Express it as an **OpenAPI 3.1** document so it is human-readable *and* machine-checkable. This reference covers how to…
Run through this before declaring an API contract done. It is ordered the way you should *design*: resources first, cross-cutting rules last. Every box is a…
APIs are forever once published: a consumer you've never met may depend on any field you expose. Design so you can **add without breaking**, and version…
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.