discovery
Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to open or preview a single markdown…
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
Claude Code
$ npx -y skills add inkeep/open-knowledge --skill record-a-decision --agent claude-code
Codex
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a codex -y
Cursor
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a cursor -y
Gemini CLI
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a gemini-cli -y
GitHub Copilot
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a github-copilot -y
OpenCode
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a opencode -y
Windsurf
$ npx skills add inkeep/open-knowledge --skill record-a-decision -a windsurf -y
name: record-a-decision description: "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 proposal or explore an idea not yet decided (frame-a-proposal), to write a spec or implementation plan (write-a-spec), to write an incident postmortem (write-a-postmortem), or to judge whether a design is sound (review-a-design). This skill records a decision already made; it does not make one." compatibility: "Any agent host with the OpenKnowledge MCP server configured. Installed project-local by `ok seed --pack software-lifecycle` (`ok-beta` for Beta)." metadata: pack: "software-lifecycle" author: "Inkeep" repository: "https://github.com/inkeep/open-knowledge-skills"
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.
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.
1. `search({ query: "<subsystem or topic of the decision>" })` — semantic sweep for related decisions, proposals, and specs. 2. `exec("ls -A decisions/")` — see the existing sequence and titles. 3. `exec("grep -rln <subsystem-keyword> decisions/")` — find records touching the same subsystem, interface, or constraint. 4. For each promising hit, `exec("cat decisions/NNNN-x.md")` — read its Decision and Status.
Then classify and surface to the user **before writing**:
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.
---
**Never guess the sequence number.** List the folder and take the next integer.
1. `exec("ls -A decisions/")` — read the highest existing `NNNN`. 2. Next number = highest + 1, zero-padded to 4 digits. First-ever decision is `0001`. 3. Pick a short kebab title naming the decision, not the topic: `0012-adopt-event-sourcing-for-orders`, not `0012-orders`. 4. Create it from the template:
write({ document: { path: "decisions/0012-adopt-event-sourcing-for-orders.md", template: "decision" } })The template lays down the frontmatter scaffold and the three H2 sections. Fill the frontmatter now:
type: decision description: "One line: the decision, active voice." status: proposed # proposed until the deciders accept; then accepted date: YYYY-MM-DD # today deciders: [<user>] # who owns this decision supersedes: [] # fill in Step 7 if this replaces an earlier record tags: [decision]
Leave `status: proposed` while drafting. It becomes `accepted` only when the deciders sign off (Step 8) — an ADR that ships `accepted` before anyone agreed is backdating.
---
`## Context` is the section that ages best. Write it so a reader three years from now understands why this w
Highlights: Full true WYSIWYG so that editing markdown files feels like editing a Google Doc or Notion page. Desktop app (macOS, Windows, Linux) and web UI with file navigator, search, tabs, graph wiki link viewer, and more.
Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to open or preview a single markdown…
How to work in a Codebase Wiki project (the `codebase-wiki` starter pack): an agent-authored, source-grounded wiki of the…
How to work in a Personal CRM project (the `entity-vault` starter pack, GBrain-compatible): a typed-entity vault of people,…
How to work in a Knowledge Base project (the `knowledge-base` starter pack). Read when the project has the three-layer…
Promote existing research into a stable-status canonical article under `articles/` in a Knowledge Base project (the…
Simulates academic peer review, evaluating papers across Originality, Methodology, Results, and Writing to provide Major/Minor…
Push architecture docs to oh-my-mermaid cloud. Handles login, link, and push workflow with error guidance. Use when the user says…