v1.3.0 to v2.0.0

26 added, 85 removed. Audit A to A.

---
name: synthesis-meeting-prep
- description: "Prepare a principal for any meeting the way a wise chief of staff would: weigh 60+ factors across the meeting, participants, principal's position, knowledge, and risk; model the readers before drafting; deliver a dense, scannable pack with a capture half; then debrief the transcript into decisions, commitments, and reader-profile updates. Use for 1:1s, reviews, forums, external meetings, interviews, and post-meeting follow-through."
+ description: "Prepare a principal for a meeting as a chief of staff would: model the readers, weigh 60+ factors, deliver a scannable pack with a capture half, then debrief transcripts into decisions, commitments and profile updates. Use for 1:1s, reviews, forums, external meetings, interviews and follow-through."
license: "CC0-1.0"
depends_on: ["synthesis-context-lifecycle"]
metadata:
author: "Rajiv Pant"
- version: "1.3.0"
+ version: "2.0.0"
+ format: v5
source_repo: "github.com/synthesisengineering/synthesis-skills"
source_type: "public"
---
# Meeting Prep
- **Version 1.0.0** (2026-09-20): first release — the content contract
- for meeting preparation (requirements R1–R12), the 64-factor
- inventory, six structure variants, reader profiles, the debrief half,
- and a mechanical prep linter (`scripts/prep_lint.py`).
-
An agent preparing a principal for a meeting is not a summarizer. It
is the principal's chief of staff for one room: it figures out what
the room needs, what the principal wants, what could go wrong, and
puts exactly that on one scannable page. The content contract lives
in [references/requirements.md](references/requirements.md) — R1–R12
are normative. This file is the operating protocol.
- ## 1. Configuration contract
-
- Select the meeting's owning workspace before loading a profile. Resolve its
- approved private context repository through the workspace's existing registry
- and routing policy. Relationship-bound profiles belong in that workspace's
- deletion unit. Personal records that must survive the relationship follow the
- principal's retention policy separately; never migrate a mixed profile until
- its ownership is resolved.
-
- Every profile operation requires the explicit absolute repository root and a
- stable workspace id. The tool verifies the exact Git checkout root and binds
- the profile directory to that id. These arguments assert an already approved
- private destination; a Git remote or repository name cannot establish privacy.
- The tool does not discover a repository from the current directory, search
- other workspaces, or fall back to the user's home directory.
+ ## Binding rules
- ```text
- <context-repo>/profiles/meeting-prep/.owner.json
- <context-repo>/profiles/meeting-prep/principal.json
- <context-repo>/profiles/meeting-prep/readers/<id>.md
- ```
+ Rules 1 to 5 are section 5, "What the skill refuses"; the rest come from the prep and debrief loops and the configuration contract. New rules are appended.
- Use `scripts/prep_init.py resolve --context-repo /absolute/private-context
- --workspace example` to resolve this directory without creating it. Pass the
- same two owner arguments to `init` or `add-reader`. Creation refuses an
- existing file; edit existing content through the context repository's normal
- record workflow. New files are mode 0600 and new directories are mode 0700.
+ 1. **No model, no draft.** Model each key reader (relationship, technical depth, cares), the power map and the disclosure boundary before writing (R2).
+ 2. **Re-verify every number.** Stale figures kill credibility.
+ 3. **Mark confidence: fact, inference, guess.** Never fill a material gap with a guess presented as fact (factor 62); cut the line instead.
+ 4. **Never contradict the principal's recorded positions.**
+ 5. **Never cross the disclosure boundary for the room's least-trusted attendee.**
+ 6. **Ground the register in 2–3 samples** of the principal's own writing to a comparable reader (R13); if none exists, say so in the pack.
+ 7. **State the basis (R10) and the drivers** (the 3–5 factors that set the pack's shape) on the pack.
+ 8. **Run `scripts/prep_lint.py` on every draft;** fix each finding or record why it is wrong. The linter is a backstop, not the author.
+ 9. **Deliver assembled packages, never assembly kits:** no brackets for the principal to fill in.
+ 10. **Debrief transcript-primary.** Never derive who said or decided what from a summary; no commitment without an owner and a date.
+ 11. **Profiles belong to one workspace.** Pass the explicit `--context-repo` and `--workspace`; missing or ambiguous ownership blocks profile reads and writes and never triggers a search of other workspaces.
+ 12. **Contribute to another seat's pack only through a `share-pack` grant and `write-pack`.** A grant covers one artifact and nothing else.
- `principal.json` holds the principal's role, goals, authority, positions, and
- pressure responses within this workspace. Reader profiles hold relationship,
- technical depth, current concerns, prior context, and what landed last time.
- Scaffold with `init` and `add-reader`, then complete the interview using this
- workspace's evidence. Missing profiles permit the three essential questions
- (reader relationship, technical depth, meeting purpose) and a draft using only
- current context. Missing or ambiguous ownership prevents profile reads and
- writes; it never triggers a search of global or other-workspace profiles.
+ ## Contents
- Legacy global profiles need an explicit per-file ownership and hash map. The
- existing prep owner provides read-only preflight and bounded apply/resume;
- see [workspace-profiles.md](references/workspace-profiles.md). Migrating one
- workspace leaves unresolved and other-owner entries untouched.
+ - [references/requirements.md](references/requirements.md): R1 to R13, the normative content contract. Read it before drafting.
+ - [references/factor-inventory.md](references/factor-inventory.md): the 64 factors in six groups, marked for sizing, tone, content and risk. Read it in the Model step.
+ - [references/structures.md](references/structures.md): the structure variants by meeting type, and the capture half. Read it in the Draft step.
+ - [references/profiles-and-sharing.md](references/profiles-and-sharing.md): section 1, the configuration contract (`prep_init.py resolve`, `init`, `add-reader`), and shared prep contributions (`share-pack`, `write-pack`). Read it before any profile operation or shared write.
+ - [references/workspace-profiles.md](references/workspace-profiles.md): exact selection, preflight, apply and resume for migrating legacy global profiles. Read it when migrating.
+ - [references/background.md](references/background.md): the 1.0.0 release note and section 4, integration seams with daily rituals, meeting transcripts, OKF and the console. Read it when deciding which skill owns a step.
+ - [references/coverage-map.md](references/coverage-map.md): where each part of the 1.3.0 text now lives.
+ - 2. The prep loop, 3. The debrief loop, 5. What the skill refuses: below.
## 2. The prep loop
For every meeting, in order:
1. **Gather.** Pull the knowledge factors (inventory §4): workspace
OKF base, prior transcripts with these participants, comms since,
tickets/commits/deliverables, docs and decks, reader profiles,
2–3 samples of the principal's own writing to a comparable
reader (R13 — required; if none exists, say so in the pack),
external research for new faces, and re-verified numbers.
Record the basis (R10) as you go — source, date, what it
contributed.
2. **Model.** Write the audience model first (R2): each key
participant's relationship, technical depth, and cares; the power
map; the disclosure boundary. Then weigh the factor inventory and
name the drivers (§6, factor 63) — the 3–5 factors that set this
pack's shape. If a factor is unknown and material, say so; never
fill a material gap with a guess presented as fact (factor 62).
3. **Size.** Duration, format, prep budget, and energy set the length
(factors 4, 31, 32, 57). State the sizing in one line on the pack.
4. **Draft.** Pick the structure variant
([structures.md](references/structures.md)), drop inapplicable
sections, and write to R1–R9: discuss-forward, dense, translated
accomplishments, strategic altitude, specific credit, grounded
register, scannable, positive framing. Mark confidence inline —
fact, inference, guess.
5. **Lint.** Run `scripts/prep_lint.py` on the draft. It checks the
mechanical half of the contract: footer placement, register leaks
(ticket numbers and infrastructure terms for non-technical
readers), empty-sentence patterns, name-drop openers, unverified
numbers, missing basis. Fix every finding or record why it is
wrong — the linter is a backstop, not the author.
6. **Deliver.** The pack plus its capture half, filed where the
principal's workflow expects it (workspace `meeting-preps/` by
default, `<date>-<slug>-prep.md`), and the two-line drivers note
in chat. Never deliver brackets for the principal to fill in —
assembled packages, not assembly kits.
- ## Shared prep contributions
-
- A broad `meeting-preps/` claim remains exclusive for ordinary edits. To accept a
- contribution, its authenticated active recipient uses `prep_init.py share-pack`
- with the exact contributor seat, private context repository, workspace, literal
- Markdown artifact, create/append operation and (for append) reviewed SHA256.
- `--private` asserts the already approved private destination; names and Git
- remotes are not privacy evidence. Both seats register the same physical checkout
- and branch; the profile owner marker and any team registry must agree. A team
- shared/public repository cannot receive these private prep contributions.
-
- The grant is recorded in the recipient's own coordination row, expires within
- one hour (15 minutes by default), and binds its current ordinary claim scope.
- Do not paste grant markers into `coordination claim`, narrow or release another
- seat's claim, or claim the overlapping artifact as exclusive. Missing or ambiguous
- authority refuses before an artifact effect. The recipient can invalidate grants
- by changing its held scope or releasing its own seat through existing owners.
-
- The contributor uses `prep_init.py write-pack` with that grant ID, native event
- payload and bounded text file. Creation requires absence; append preserves the
- complete reviewed prefix. The existing record transaction serializes competing
- writers, rejects changed preimages and retains interruption custody. Restore
- valid current authority and use the existing transaction recovery owner with the
- same `meeting_prep_share` selection to recover; never remove its journal by hand.
- A grant covers one artifact and transaction custody only. It grants no generic
- edit, profile migration, publication, deployment or recipient impersonation right.
- The recipient retains publication custody under its existing claim.
-
## 3. The debrief loop
After the meeting, when a transcript or notes exist:
1. **Verify the record.** Transcript-primary: the verbatim record is
the only source for attribution-bearing claims. Never derive who
said or decided what from a summary.
2. **Extract.** Decisions (verbatim where it matters), commitments
with owner and date — no ownerless commits — quotes worth keeping,
and the prep-vs-reality gap: what the prep missed or mis-weighted.
3. **Draft the follow-ups.** Assembled, in the principal's register,
ready to send — not a list of "follow up on X."
4. **Update the profiles.** Reconfirm the workspace owner, then fold the gap
into its reader profiles:
what landed, what didn't, what they were told. This is how prep
compounds.
5. **Capture durable facts.** Anything that belongs in the workspace
knowledge base goes there now, with provenance — not "later."
-
- ## 4. Integration seams
-
- - **Daily rituals** (`synthesis-daily-rituals` lead-time prep packs)
- own the scheduling machinery — which meetings need packs by when.
- This skill is the content contract that machinery drafts against.
- - **Meeting transcripts** (`synthesis-meeting-transcripts`) own
- transcript fetch, naming, and the transcript-primary rule the
- debrief depends on.
- - **OKF** (`synthesis-okf`) is the workspace knowledge interface
- for factor 37.
- - **Console** renders packs filed under `meeting-preps/`; the basis
- statement is what makes them trustworthy there.
## 5. What the skill refuses
- Prep for a reader it has not modeled — no model, no draft.
- Numbers it has not re-verified — stale figures kill credibility.
- Guesses presented as facts — mark confidence or cut the line.
- Prep that contradicts the principal's recorded positions.
- Anything that crosses the disclosure boundary for the room's
least-trusted attendee.