sxsphinxstack

Skills / Working / Write an architecture decision record

Working Code skill

Write an architecture decision record

Record a consequential technical decision with context, constraints, considered options, trade-offs, consequences, and conditions for review.

Preserve why a choice was reasonable at the time. Make the record short enough to read and specific enough that a future maintainer can tell whether its assumptions still hold.

Inputs

  • Name the decision owner, reviewers, deadline, affected systems, and implementation stage.
  • Gather requirements, constraints, measurements, prior decisions, and rejected proposals.
  • Separate facts, estimates, preferences, and organizational constraints.

Procedure

  1. Give the decision a stable id and action-oriented title.
  2. Describe the context and problem without embedding the preferred answer.
  3. List decision drivers in priority order: correctness, compatibility, delivery, operability, security, cost, performance, or reversibility.
  4. Record the smallest serious option set, including keeping the current approach when viable.
  5. Evaluate each option against the same drivers using evidence and clearly labeled estimates.
  6. State the decision in one paragraph, including scope and what it does not decide.
  7. Record positive, negative, and uncertain consequences. Name new operational work and migration cost.
  8. Define validation: prototype, benchmark, compatibility check, failure walkthrough, or review evidence.
  9. Set reopening conditions tied to measurable changes rather than a calendar date alone.
  10. Link superseded and dependent records, implementation work, and reviewers.
  11. Obtain acknowledgement from accountable owners and store the record beside the system.

Boundaries

Do not rewrite an old record to make history look cleaner. Supersede it with a new decision. Never present an estimate as measured fact or hide a policy, staffing, cost, privacy, or security constraint behind technical language.