prepare_change
Constraints, risks, evidence and authority before the edit.
READYDecision context for coding agents / local-first
Rationale saves the decisions behind your code so a new conversation can retrieve them before it changes anything important.
Git + Codebase Memory · No account · Human-approved
prepare_change
Constraints, risks, evidence and authority before the edit.
READYChange
The agent changes code with the why still visible.
OBSERVEDfinalize_change
Observed facts are captured. No decision is approved here.
WAITINGHuman approval
A person approves, corrects, disputes, revokes or supersedes.
HUMANThe failure mode
“Do not send while the upload is still running.”
It works in Monday’s conversation. Three days later, a fresh agent sees only the code, removes the guard, and confidently calls the change an improvement.
Rationale keeps the rule next to the code it governs.
Three systems / one clearer boundary
Install Codebase Memory first for structural coverage. Rationale is optional, local, and honest when that provider is unavailable.
01 / GIT
What changed, when, and in which revision?
02 / STRUCTURE
Where is it, and how is it connected?
03 / CAUSAL
Why does it exist, what must survive, and who approved it?
The dispatch rail
Locate with Codebase Memory, preflight with Rationale, make the change, capture what happened, and leave approval with a person.
01
Capture the why before code moves.
02
Make the edit with constraints in view.
03
Bundle the diff and observed facts.
04
Confirm the decision with explicit authority.
The artifact
A compact packet gives the agent the decision, the trade-offs and the evidence before it reaches for a simplification.
.rationale/subjects/retry-policy.yaml
observed · bound to src/retry/policy.ts · reviewed 2024-05-17
src/retry/policy.ts
The change is legible beside the reason it exists.
+ export const MAX_ATTEMPTS = 5
+ export const BASE_DELAY_MS = 250
− export const RETRY_DELAY_MS = 500
Where context pays for itself
01 / ONBOARDING
The rules your team already settled survive the chat you opened today.
02 / REFACTOR
A strange branch gets an explanation before an agent turns it into a regression.
03 / REVIEW
See the constraint, evidence, authority and revision instead of reconstructing the story from memory.
04 / TEAM
The reason remains versioned, reviewable and available after the person who explained it changes teams.
Quick start / by agent
Claude Code gets commands installed by Rationale. In Codex, ask for the same intent in writing: MCP tools do the work and approval remains human.
Open agents and MCP docs →Claude Code
/rationale-preflight <target> <intent>/rationale-explain <target>/rationale-capture [statement]/rationale-health/rationale-protocol/rationale-review`/rationale-review` is intentionally human-only: the agent cannot self-approve.
Codex
“Prepare this change with Rationale for `<target>` with intent `<intent>`.”
“Explain `<target>` before changing it.”
“Capture and finalize this change with Rationale.”
“Check Rationale health.”
No fictional slash commands: Codex reads `AGENTS.md` and calls the available MCP tools.
Documentation / start with the work
Use the landing to orient yourself; use the repository docs to inspect the real behavior, limits and evidence.
Trust is a product behavior
CANON / LOCAL
The `.rationale/` canon is versioned with the project. Logs stay local. Derived SQLite/FTS can be rebuilt and is never the only copy.
BOUNDARY / HUMAN
MCP can prepare and capture. It cannot approve, revoke, supersede or change authority. Those actions require `rationale review`.
Release truth
public beta / latest
Rationale is in public beta. The core and full capture/review cycle are functional; platform coverage, pilot gates and human review remain visible work.
✓ Current public release: latest
! Open: platform matrix, provider coverage and pilot gates.
Install / then initialize
The installer places the binary locally. `rationale init` creates the project canon and detects the agent configuration.
Companion / structural coverage
Codebase Memory maps where and how the code connects; Rationale carries why. The full path uses both. Rationale can still run alone with degraded coverage.
macOS + Linux
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash01 / Install Rationale · macOS + Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Ragosorio/Rationale/releases/latest/download/rationale-installer.sh | shThen, inside the repository:
rationale initCheck the project health:
rationale health04 / Restart the agent. In Claude Code run `/rationale-health`; in Codex ask “Check Rationale health.”