The engagement record
Nothing in this plugin runs without one. It is the fact that engagement type is, so that no skill has to guess it from a folder path.
This is the precondition, and it is worth being blunt about why. A cohort member on a separate paid engagement is a separate engagement. If type is inferred from where a person's files sit, a succession facilitation gets processed as a cohort call and three outputs have to be suppressed by hand, silently, in the moment. The record removes the inference.
Where it lives
engagements/
<slug>/
engagement.json the record
state.md rolling state, overwritten in place
reference-data.md proper nouns, team, tools — the authority
sessions/
2026-08-12/
transcript.txt chat.txt
ledger.json run-plan.json
digest.md record.md
recap-draft.md next-agenda.md run-report.md
A person may appear in more than one engagement. Their engagements do not merge.
engagement.json
{
"slug": "saunders",
"name": "Saunders Tax — succession",
"type": "paid-facilitation",
"billing": "firm-paid, month-to-month",
"principals": ["Bev Stitely", "Steven Stitely"],
"recapRecipients": ["bevstitely@example.com", "stevenstitely@example.com"],
"recapShape": "engagement-default",
"goldenExample": "reference/golden-recap.md",
"timezone": "America/New_York",
"cadence": "every other week, joint, plus separate 1:1s as needed",
"doneLooksLike": "every decision documented and handed to their attorney and banker",
"documentStore": "G:/Shared drives/SAUNDERS",
"documentStoreCanMove": false,
"livingDocuments": [
"Vision & Decisions", "Guardrail Document", "Transition Roadmap"
],
"scopeFences": [
{ "fence": "operational rebuild",
"boundary": "the decisions are in scope; rebuilding their operations is a separate engagement" },
{ "fence": "legal drafting", "boundary": "their attorney drafts and executes" },
{ "fence": "financing", "boundary": "arranged with their banker" },
{ "fence": "valuation", "boundary": "a valuation professional" }
],
"referenceData": "engagements/saunders/reference-data.md",
"relatedEngagements": [
{ "person": "Bev Stitely", "engagement": "TPC membership",
"note": "separate. Nothing from this engagement routes to it." }
]
}
Fields that change behaviour
| Field | What it changes |
|---|---|
type | Whether deliverable production is in scope at all. A facilitation engagement builds artifacts; an advisory-only engagement routes a build need to a flag |
principals + recapRecipients | Who the recap addresses, and whether a one-principal session gets flagged |
recapShape / goldenExample | A starting hint only. The email's structure comes from the actual correspondence with this client — most recent sent mail wins. There is no global shape and no frozen golden |
timezone | The client's zone. Every time in anything they read is stated in it — never in Kathryn's, never unlabelled |
documentStoreCanMove | False means destinations resolve before the write, because a misplaced file cannot be corrected |
scopeFences | What the agent names as a scope event instead of absorbing |
relatedEngagements | Names the separation explicitly so nothing cross-routes |
Starting one
Copy the block above, change the values, save it, and run. If a field does not apply, leave it out rather than guessing at it — a wrong record is worse than a thin one.