swarm repositories / source
aboutsummaryrefslogtreecommitdiff
path: root/docs/spec.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/spec.md')
-rw-r--r--docs/spec.md12
1 files changed, 12 insertions, 0 deletions
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.