§1 — Problem landed 2026-07-29

The repetitive default payload was replaced for typed callers by one compact resource identity, human state, blockers or open decisions, and the next action. Existing untyped callers retain the exact legacy envelope.

Measured plan summaries are 86.7% smaller. Full implementation record.

A concise MCP summary response expands to detailed and raw representations only when requested.
Default reads answer the common question; detail and raw state remain explicit opt-ins.

§2 — Response model landed 2026-07-29

Summary, detail, history, raw, and schema views now have stable shapes. Resolved workflow and full prompts are opt-in; history and large collections use bounded cursor pagination.

Representative sprint, discovery, and audit summaries are 84.3%, 91.6%, and 97.3% smaller respectively.

§3 — Tool surface landed 2026-07-29

read_plan accepts an optional typed resource selector and view; audit accepts the same progressive view vocabulary where applicable. FastMCP exposes every addition as optional.

Selectors, cursors, pagination limits, and errors are validated and bounded. Write workflows request raw state explicitly; success and conflict responses now pair a human sentence with typed resource identity and version evidence.

§4 — Verification pass

The complete repository suite passes 1,373 tests in 28.53 seconds; Ruff lint and formatting are clean. Compatibility, all typed storage/response schemas, legacy projections, typed/archive identity, prompt opt-in, pagination, bounded errors, write translations, and response budgets have dedicated tests.

Verified evidence and measurements · implementation commits 8cc940f and c9e14f2.

§ Decisions

How should the read tool expose typed resources?

Evolving the existing read entrypoint preserves the three-tool contract while adding typed resource references and explicit summary, detail, raw, schema, and history views.

What should a default read include?

The default read should answer the common human question with identity, state, blockers or decisions, and next action; lossless storage and history remain opt-in.

§ Followups

Design and implement progressive MCP responses

Measure representative payloads, lock the resource and detail contract, then ship compatibility-tested concise reads and errors.

Project: reckon
Plan:    mcp-readable-responses (http://localhost:8765/reckon/mcp-readable-responses.html)
Section: full plan
Tier:    opus

Context
  Current MCP reads expose repetitive raw storage shapes and monolithic state.
  Make the default response concise while retaining lossless opt-in views.

State to read
  reckon/mcp.py, reckon/_mcp_tools.py, reckon/_schema.py, tests/test_mcp_tools.py
  representative read_plan and audit payload fixtures

Scope locks / constraints
  Preserve stable identity and optimistic concurrency; maintain a bounded compatibility path.

Done-when
  1. concise layered responses and compatibility aliases land with size fixtures
  2. tests still green
  3. followup written into plan + this followup marked resolved

Progressive typed read, audit, and write-response contracts landed in 8cc940f and c9e14f2. Legacy response shapes remain exact; all typed storage/response schemas, bounded pagination/errors, legacy projections, and human edit/conflict responses are tested. 1,373 tests pass. Final reductions: plan 86.7%, sprint 84.3%, discovery 91.6%, audit 97.3%. done — no followup