/synthex:write-adr/synthex:write-adr records a technical decision as an Architecture Decision Record
through an interactive session with the Architect agent. You make the call; the Architect
advises.
Loads config for the decisions directory (architecture.decisions_path).
Picks the next ADR number by scanning that directory for NNNN-kebab-case-title.md
files. Numbers are sequential and never reused, even for deprecated ADRs. The directory is
created if it doesn't exist.
Runs the Architect in ADR authoring mode, giving it your title, the existing ADRs (so it
can cite related decisions), and your CLAUDE.md and specs. The session walks through:
Context — what problem, what constraints, what triggered the decision.
Alternatives — at least two genuine options besides the chosen one, with pros, cons,
and trade-offs. "Do nothing" counts when the status quo is viable.
Decision — the Architect summarizes trade-offs; you decide.
Consequences — what gets easier, what gets harder, what risks it creates.
Writes the ADR and prints a confirmation.
Parameters
Parameter
Description
Default
Required
title
Short title describing the decision
None
Yes
config_path
Path to synthex project config
.synthex/config.yaml
No
Configuration
Key
Default
Purpose
architecture.decisions_path
docs/specs/decisions
Where ADRs are written
Output
A file at {decisions_path}/NNNN-{kebab-case-title}.md with these sections: Status
(Proposed, Accepted, Deprecated, or Superseded by ADR-XXXX), Date, Context,
Decision, Alternatives Considered (each with description, pros, cons, and why it wasn't
chosen), Consequences (Positive, Negative, Risks), and Related Decisions.
Every ADR is meant to stand on its own — a reader shouldn't need other documents to follow it.
Consequences always include both positive and negative outcomes.
Then a summary:
ADR-0007 written to docs/specs/decisions/0007-use-postgresql.md.Status: AcceptedDecision: Use PostgreSQL as the primary datastoreAlternatives considered: 3To reference this decision, link to: ADR-0007To supersede this decision later, create a new ADR and update the Status field.
Examples
/synthex:write-adr "Use PostgreSQL for the primary datastore"/synthex:write-adr "Adopt event sourcing for orders"/synthex:write-adr "Replace REST polling with WebSockets" config/synthex.yaml
When to use an RFC instead
An ADR records one decision. For a significant proposal that needs product context, a detailed
design, and multi-reviewer sign-off, use /synthex:write-rfc/synthex:write-rfc.