← Vault Index
Source: frameworks/plugin-engagement-manager/advisory-sessions/reference/engagement-record.md

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

FieldWhat it changes
typeWhether deliverable production is in scope at all. A facilitation engagement builds artifacts; an advisory-only engagement routes a build need to a flag
principals + recapRecipientsWho the recap addresses, and whether a one-principal session gets flagged
recapShape / goldenExampleA 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
timezoneThe client's zone. Every time in anything they read is stated in it — never in Kathryn's, never unlabelled
documentStoreCanMoveFalse means destinations resolve before the write, because a misplaced file cannot be corrected
scopeFencesWhat the agent names as a scope event instead of absorbing
relatedEngagementsNames 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.