kendex.ai

Marketplaces / vanillagreencom/kendex / decider

decider

Architecture Decision Record (ADR) and architectural decision document management: templates, creation, search, supersession tracking, and INDEX maintenance.

skill · planning · safety 100/100 (clean) · @ a7ca9af

Install in kendex: kendex add --skill decider after subscribing to vanillagreencom/kendex.

Decider

Problem with this skill? Run kendex report — it files to the owning repo automatically. Do not hand-file.

Architectural decision records: numbered decision documents indexed in one INDEX.md (by default under docs/decisions/), with a search CLI, a canonical format, and creation/supersession workflows.

.agents/skills/decider/scripts/decisions <command> [options]
CommandPurposeOutput
search --issue [ID]Decisions linked to an issue — exact match on the INDEX Research columnJSON [{id, decision, path}]
search "[KEYWORDS]"Ranked keyword search (AND, scored)JSON [{id, decision, path, score}]
search "a|b"Regex mode — a query containing |, (), or \JSON [{id, decision, path}]
listDecisions whose status starts with ActiveJSON [{id, decision, path}]
next-idNext ID, scheme inferred from the INDEX ID columnOne ID line
get [DECISION_ID]Decision detailsJSON {id, decision, status, date, path}

--limit N (default 5) caps search results. Issue lookup is exactly search --issue — there is no bare issue action.

Keyword and regex search cover the INDEX.md summary columns (decision, rationale, id) and the prose of each linked decision document, so a keyword that never reached a one-line summary still finds the decision governing it. Summary matches outrank body-only matches. search --issue is an explicit linkage lookup and does not scan bodies.

Read the full decision file before acting on a hit — index summaries omit scope and rejected alternatives. A suggestion contradicting an active decision is invalid unless the decision itself is flawed.

Configuration

VariablePurposeDefault
DECISIONS_DIRDecision documents directoryNearest ancestor holding docs/decisions/, decisions/, doc/decisions/, or adr/ with an INDEX.md
DECISION_ID_PREFIXID prefix for next-idInferred from the last populated ID-column value, else D
DECISION_ID_WIDTHZero-padding width for next-idInferred from that same value, else 3

Set these in committed kendex.settings.toml under [env] when they are shared project policy; .env.local overrides locally.

Where no decisions directory exists, search and list emit [] with a stderr note and exit 0 — nothing recorded is not an error. next-id and get require an initialized directory. A configured path that exists but is not a directory is always a hard error.

Workflows

WorkflowTrigger
workflows/create-decision.mdA significant path choice is settled
workflows/update-decision.mdA new decision supersedes, partially supersedes, or revisits an existing one

Format: schemas/decision-format.md (constraints), templates/decision-entry.md (document skeleton), templates/index-row.md (INDEX row).

Approval

Never create a decision document without explicit user approval. When work settles an architectural choice, technology selection, or trade-off worth recording, say so on completion — "this introduced a decision worth recording: [summary]. Want me to create a decision entry?" — and let the user confirm.

Record technology selections with alternatives considered, performance trade-offs, and path choices whose conditions may change. Do not record variable names, small refactors, bug fixes, obvious choices with no realistic alternative, or standard pattern applications.