docs(spec): add consumer context guidance to purpose, surface descriptions, and output contracts#11
docs(spec): add consumer context guidance to purpose, surface descriptions, and output contracts#11hadleychristoffels wants to merge 1 commit into
Conversation
…e.surface, and contracts.outputs The spec currently describes what a skill does (scope) but not who its outputs are calibrated for (consumer context). These are distinct concerns: two skills may share identical type signatures while producing outputs meaningful only within specific professional or domain contexts. Three non-normative prose additions: - domain.purpose: a well-stated purpose names not just scope but the consumer, professional context, or use case the outputs are calibrated to serve. - interface.surface[n].description: where outputs are calibrated to a specific consumer context, the description should name who they are calibrated for, not just what the operation does. - contracts.outputs: output description fields should state what the value means to the consumer, not just its structural type. Context that is left implicit becomes a hidden assumption the consumer has to discover at runtime. No schema changes. No normative requirements added or altered. Co-Authored-By: Hadley Christoffels <hadley@datadecisions.ai>
📝 WalkthroughWalkthroughThis pull request updates the COVENANT specification document to clarify guidance for three key fields: ChangesOutput and Domain Context Specification Guidance
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/COVENANT.md (1)
243-246: ⚡ Quick winConsider aligning examples with the new consumer-context guidance.
The three guidance additions at lines 264, 324, and 472 emphasize naming consumer or domain context. The examples currently focus on operations and structural descriptions rather than demonstrating this guidance:
domain.purposeexample (lines 243-246) describes operations but doesn't name the consumerinterface.surfacedescriptions (lines 285-305) don't indicate who outputs servecontracts.outputsdescriptions (lines 436-447) focus on structural type rather than consumer meaningUpdating one or more examples to demonstrate the guidance would help authors understand what "naming the consumer context" looks like in practice.
Also applies to: 285-305, 436-447
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/COVENANT.md` around lines 243 - 246, The examples in COVENANT.md do not demonstrate the new consumer-context guidance; update the example content for domain.purpose, interface.surface, and contracts.outputs to explicitly name the consumer or domain context they serve (e.g., "for content editors", "for automated publishing pipeline", "for integration with CRM X") so readers see practical usage; locate and edit the example blocks referenced by the symbols domain.purpose, interface.surface, and contracts.outputs and replace or augment their descriptive sentences with a short example that ties the output/intent to a specific consumer persona or system.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@docs/COVENANT.md`:
- Around line 243-246: The examples in COVENANT.md do not demonstrate the new
consumer-context guidance; update the example content for domain.purpose,
interface.surface, and contracts.outputs to explicitly name the consumer or
domain context they serve (e.g., "for content editors", "for automated
publishing pipeline", "for integration with CRM X") so readers see practical
usage; locate and edit the example blocks referenced by the symbols
domain.purpose, interface.surface, and contracts.outputs and replace or augment
their descriptive sentences with a short example that ties the output/intent to
a specific consumer persona or system.
Summary
Three targeted additions to
docs/COVENANT.mdthat make consumer context a first-class concern in covenant authoring: purpose declarations should name who outputs serve, surface operation descriptions should identify the consumer when outputs are consumer-specific, and output contract descriptions should name what a value means to the consumer rather than just its structural type.Linked issue
N/A
Spec impact
docs/COVENANT.mdchangedspec/schema.jsonchangedChanges
domain.purpose- adds one sentence: "Name the consumer or domain context, not just the operation." Updates the closing declaration from "this scope and nothing outside it" to "this scope, this consumer, and nothing outside it."interface.surface[n].description- extends the existing bullet to: "what the operation does in one to two sentences; name who the outputs serve when they are consumer-specific." Preserves the length constraint; appends the consumer guidance conditionally.contracts.outputs- adds two sentences: "Outputdescriptionfields should name what the value means to the consumer, not just its structural type. Two outputs with the same type signature may serve entirely different professional or domain contexts; that distinction belongs in the description."None of the additions alter a capitalised MUST or SHOULD. All three changes use lowercase prose guidance only.
Checklist
npm testpassesnpm run test:fixturespassesnpm run lintpassescovenant_versionsemantics are called out aboveSummary by cubic
Adds consumer-context guidance to
docs/COVENANT.mdso contracts state who outputs are for, not just what they do or their type. Updatesdomain.purpose,interface.surface[n].description, andcontracts.outputsdescriptions to include consumer context; no schema or normative changes.Written for commit 19fdbf6. Summary will update on new commits.
Summary by CodeRabbit