From bb92a05eb5446e07c6288e266bd06d7b5899eee5 Mon Sep 17 00:00:00 2001 From: main Date: Fri, 20 Mar 2026 20:14:50 -0400 Subject: Add projection traits and doctrine testkit --- docs/spec.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'docs/spec.md') diff --git a/docs/spec.md b/docs/spec.md index 80e464b..6d1f3c6 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -180,6 +180,8 @@ The library should therefore provide reusable primitives for: - render mode selection - detail selection +- explicit projection traits separating domain records from model-facing output +- derive-macro happy paths for concise/full projection structs - bounded/truncated text shaping - stable note emission - path rendering @@ -187,6 +189,16 @@ The library should therefore provide reusable primitives for: - generic JSON-to-porcelain projection for consumers that have not yet earned bespoke renderers +The intended happy path is not “serialize whatever domain object you already +have.” The intended happy path is: + +1. define a model-facing projection +2. declare its surface policy +3. render porcelain from that projection + +Consumers may still use generic JSON fallbacks, but they should feel like an +explicit escape hatch rather than the primary design path. + `libmcp` standardizes only the minimal shared detail axis `concise|full`. Consumers may add richer local taxonomies when their tool surface actually needs them. -- cgit v1.2.3