Install any skill in seconds. Free to start, no credit card required.
Get Started Free →inkeep/open-knowledge-pack-software-lifecycle-record-a-decision
Records an architecture decision as a Nygard/MADR-shaped ADR under decisions/ — capturing the context that forced the choice, the options weighed, the decision itself, and its consequences in both directions, plus the supersedes chain that keeps a decision log honest. Read when asked to record an architecture decision, write an ADR, log the decision we made, document why we chose X over Y, capture this decision for the record, or supersede an old decision with a new one. Do NOT read to frame a p
2 of 24 test cases passed with the skill.
Tokens, turns and time describe resource use, not a dollar price.
Lift withheld: 5 comparable cases; this report requires 8.
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are trying to figure out if we should use RabbitMQ or Kafka for our message broker. Can you write an architecture decision record for this?
| Checked | Without skill | With skill |
|---|---|---|
| redirects the user to frame a proposal instead of drafting an architecture record | Missed | Passed |
The instructions your model reads when the skill loads.
decisions/The platform /open-knowledge skill still governs every markdown operation here (grounding, linking, the rule that OK's MCP tools own in-scope markdown); this skill layers ADR craft on top.
An Architecture Decision Record is a small, dated, frozen document that captures one decision, the forces that made it necessary, and what the team now has to live with. The value compounds over years: a reader who joins in three years should understand not just what was decided but why it was even a question. ADRs are frozen once accepted — you never rewrite one to change your mind, you supersede it with a new record and leave the old one standing as history. That supersedes chain is what separates an honest decision log from a pile of stale opinions.
Filenames are NNNN-title.md (zero-padded 4-digit sequence + kebab title). Status vocabulary: proposed / accepted / deprecated / superseded. Template id decision, body sections exactly ## Context, ## Decision, ## Consequences in that order.
An ADR records a decision; it does not make one. Before anything else, establish that a choice has been settled.
/frame-a-proposal skill. A proposal is where options get explored and argued; an ADR is where the settled outcome gets recorded. Recording a decision the user has not made produces a fake record that misleads every future reader./review-a-design. This skill assumes the decision is sound; it captures it.Do not proceed past this gate until the user has confirmed a specific decision. State it back to them in one sentence and get a nod.
A new ADR that silently contradicts an accepted one is how a decision log rots. Before allocating a number, find what already exists.
search({ query: "<subsystem or topic of the decision>" }) — semantic sweep for related decisions, proposals, and specs.exec("ls -A decisions/") — see the existing sequence and titles.exec("grep -rln <subsystem-keyword> decisions/") — find records touching the same subsystem, interface, or constraint.exec("cat decisions/NNNN-x.md") — read its Decision and Status.Then classify and surface to the user before writing:
supersedes: candidate: "This looks like it supersedes 0007-use-rest-api, which is currently accepted. Confirm and I'll wire the chain in Step 7." Do not silently write a contradicting record.If the decision graduated from an accepted proposal in proposals/, locate that proposal now (exec("grep -rln <topic> proposals/")) — you'll link it as the parent in Step 4.
test cases passed with the skill
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.