decision-record-governance
Installation
SKILL.md
Decision Record Governance (ADR/PDR × queue × rubric × consistency check × Slack consultation)
The core job is to create, update, and supersede decision records (DR = ADR ∪ PDR). Slack is the place for consultation: approval requests, confirmation, and reminders when needed, and — mandatory — consulting the people involved whenever the consistency check finds a problem.
- Create = file the record as
Proposedand register it in the queue - Update = settle the decision (
Accepted/Rejected/Deferred), fill in the pending fields, update the README index - Supersede = replace or reverse. Never edit the existing record; replace it with a new one
Absolute rules (stop and ask the user on any violation)
- The decision queue is mandatory: every ADR/PDR you file must be registered in
docs/decision-queue.md. If the file does not exist, create it from templates/decision-queue.md. The queue is the single source of truth for undecided decisions. - A Slack mention ID is mandatory when the record has an author: any record with an author (the person who filed it) must carry a Slack mention ID in the
<@UXXXXXXXX>form, both on the queue row and in the record header. If you cannot find it, do not proceed with registration — ask. Never fabricate one (how to obtain it: REFERENCE.md §6). - Immutability: the body of an
AcceptedorRejectedrecord is never edited. Changes and reversals are new records that supersede the old one. Do not delete queue rows; move them to the "decided" log. - One decision = one record. Numbering is append-only (four digits, zero-padded; never reuse a number or fill a gap). File name:
NNNN-kebab-title.md. - Rubric gate: score the record with RUBRIC.md before filing is complete and again before it is settled. The filing gate requires no criterion at 0; the settling gate requires every gate criterion (R3/R4/R8/R10) at 2. Report the scores to the user.
- Cross-DR consistency check, consultation with the people involved, and a human ruling: before creating, updating, or superseding, compare the record against every other DR for contradiction, duplication, misreading, false relation, and mistaken relationship (the five categories in REFERENCE.md §10). If even one is found, stop, report it, and consult the people behind the conflicting DR (its decision-maker and author) — Slack is the venue, involving them is the point. A human decides how to resolve it after that consultation. The AI resolving, patching, or ignoring the finding is not an option, and neither is "proceed knowing there is a contradiction".
- Slack posts are outward-facing (visible beyond this conversation): use them for approval requests, confirmation, and reminders when needed, and — mandatory — for consulting the people involved when the consistency check finds something. Before the first post, confirm the channel and the wording with the user.