Skip to content

ADR 0009 + 0010 — v3.1 design decisions (MCP write tools; fail-closed audit) - #27

Merged
cptfinch merged 1 commit into
mainfrom
docs/adr-0009-0010
Jun 14, 2026
Merged

cptfinch merged 1 commit into
mainfrom
docs/adr-0009-0010

Conversation

@cptfinch

Copy link
Copy Markdown
Contributor

Two pure-documentation ADRs resolving the v3.1 needs-adr issues. Bundled because neither carries code and both are the same decision batch.

ADR 0009 — No MCP write tools (Closes #18)

Decision: decline. set/delete are not exposed over MCP; secret mutation stays CLI-only (human-driven). MCP remains read/exec-only. High blast-radius (delete) for niche benefit, no concrete consumer. Documents the deny-by-default mcp.write gate as the future shape if needed.

ADR 0010 — Fail-closed audit (Closes #19)

Decision: fail-open default + opt-in strict. Today the access path already discards audit errors (fail-open) despite the doc comment. Keep that default (avoids the DoS surface where an unwritable audit path bricks all secret access); add LLM_SECRETS_AUDIT_STRICT=1 to fail closed, mirroring the strict-leases pattern. The decision is here; implementation is tracked in #26.

No behavioural change ships in this PR — docs only.

The two v3.1 'needs-adr' decisions:

- 0009: decline secret-mutating MCP tools — MCP stays read/exec-only,
  set/delete remain CLI-only. Specifies the deny-by-default mcp.write gate
  as the shape if a real consumer ever appears.
- 0010: keep best-effort (fail-open) audit as the default to avoid a DoS
  surface; add an opt-in strict (fail-closed) mode mirroring strict leases.
  Implementation tracked in #26.

Closes #18
Closes #19
@cptfinch
cptfinch merged commit 732b9f1 into main Jun 14, 2026
2 checks passed
@cptfinch
cptfinch deleted the docs/adr-0009-0010 branch June 14, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ADR 0010 — strict / fail-closed audit ADR 0009 — MCP write tools (set / delete) gated by mcp.write policy

1 participant