Design proposal for a thin MCP server adapter over the existing
service layer so Claude Code and other MCP clients can consume
Quartermaster state and execute mutations without opening the
browser.
Document only. Covers:
- Goal and non-goals (no staging queue, no auth, no bank-feed
ingestion).
- Architecture: in-process Python module (quartermaster-mcp
script) sharing QUARTERMASTER_DB_URL with the web app; stdio
transport; QUARTERMASTER_MCP_MODE env var gates read/write.
- Tool surface aligned with the current model: get_budget,
list_months, get_month, get_month_entry, list_postings,
get_zero_amount (read); add/update/remove entry, create /
activate / close / reopen month, add / update / delete
transaction, set debt target (write).
- Resources: quartermaster://budget, quartermaster://month/YYYY-MM.
- Prompts: monthly_review, quick_log, close_prep.
- Typed errors with stable codes.
- Three-phase rollout: read-only -> transaction writes -> entry
and lifecycle writes.
- Four open questions parked at the bottom.
Refs #23
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Ten-task TDD plan: service.update_entry, three new routes, template
rewrite, CSS, test migration for the removed notes route, end-to-end
isolation test, manual UI verification, and PR opening.
Adds the brainstorm-phase design for inline name/amount/notes edit on
the budget template page. Layout variant A (swap in place), notes folded
into edit mode, no schema change, forward-facing only.
Also adds .superpowers/ to .gitignore so the brainstorm companion's
working dir does not end up tracked.
Three iterations captured under docs/mockups/ with shared logo
assets:
* month-editorial-ledger.html — first pass, loose spacing, Fraunces
serif throughout, no logo.
* month-editorial-ledger-dense.html — tightened spacing, logo
integrated as masthead and behind the zero widget.
* month-condensed-sans.html — the shipped direction. Logo in the
zero hero, Barlow Condensed everywhere, masthead dropped.
These give a paper trail for why the app looks the way it does and
a sandbox for future typographic experiments without touching the
live CSS.
Refs #17
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>