Concepts¶
Page status: scaffold Source state: scaffold Applies to: Shepherd v1.0-dev Owner: @docs-system-owner (TBD) Validation: not yet validated
This is a concept page; it builds the mental model. Steps live in the tutorial, signatures in the reference.
Scaffold — not yet runnable
This page is a draft against a surface that has not shipped. Treat commands and code as illustrative until the page is promoted.
This section is the mental-model layer of the Shepherd docs. Four ideas carry the whole framework; each gets one page, and the pages keep linking to each other because the ideas genuinely interlock. Steps live in the tutorial, exact signatures live in the reference — why the framework is shaped this way lives here.
The four ideas¶
| Page | The idea in one line |
|---|---|
| Tasks | A task is a typed function whose body the model fills in; the signature is the contract. |
| Effects | Everything a task does to the world crosses one explicit, typed, interceptable channel. |
| Runs | Every execution leaves a durable record; debugging is reading that record, not guessing. |
| Workspaces | Context — model, root, shared objects — is ambient but explicit: a scope, not a global. |
How they interlock: a task declares what should happen; a workspace supplies the situation it happens in; calling the task produces a run; and the run's trace is populated by the effects that crossed the boundary along the way. Pull any one of the four out and the other three stop making sense — which is why the reading order below matters less than it looks.
If you came here to build¶
You do not need this section to ship your first feature — the first Shepherd app tutorial gets you to working code without it. Come back when something surprises you, and enter through the question that brought you:
- "Why did editing a docstring change behavior?" → Tasks
- "Who answered that request — and who else saw it?" → Effects
- "What did that call actually do?" → Runs
- "Where did the model and that binding come from?" → Workspaces
Each page is written to stand alone; cross-links fill whatever gaps remain.
If you came here to evaluate¶
Read the four pages in order — tasks, effects, runs, workspaces. They build outward from the unit of work to its channel, its record, and its context, and each ends with a "Going deeper" footer citing the formal spec and the design rationale. The concept pages are honest summaries of those documents, not replacements for them; the citations are where the precision lives.
Two honesty conventions to know before you judge anything here:
- Where a page touches surface that has not shipped (permissions, placements, supervision), a "Design vocabulary — not shipped yet" note names the gating product work. The vocabulary is stable; the runnable surface is not.
- The source-state inventory is the hand-maintained ledger of what these docs may claim today and where each fact comes from. When a concept page and the inventory disagree, the inventory wins.
Going deeper¶
- Rationale:
docs/paradigm.md(design rationale — repository reference) - Formal semantics:
docs/spec/04-constructs.md(formal spec — repository reference) - Data model:
docs/spec/01-data-model.md(formal spec — repository reference)