Meeting Sync Workflow
Pull Circleback transcripts into
raw/meetings/with attendee propagation for person-page updates.
The meeting-sync automation connects meeting notes to the wiki graph. Source: automations/meeting-sync.md, 2026-05-31
Command
npx tsx scripts/sync-meetings.ts
Requires CIRCLEBACK_TOKEN in the environment. Pagination cursors stored in PGlite integration state. Source: AGENTS.md Integration Recipes
Trigger And Inputs
Run daily through the scheduler, after a Circleback credential repair, or manually when meeting context needs to be compiled. Required inputs are CIRCLEBACK_TOKEN, scripts/sync-meetings.ts, automations/meeting-sync.md, and existing person/project/company pages for entity matching.
Runbook
- Read
automations/meeting-sync.md. - Run
npx tsx scripts/sync-meetings.ts. - Inspect the newest files in
raw/meetings/. - Extract attendees, companies, project decisions, action items, and recurring topics.
- Cross-reference same-day
raw/calendar/events when available. - Promote only high-signal meeting facts into person, project, company, or decision pages.
- Write
outputs/<YYYY-MM-DD>/meeting-sync/codex.mdwhen run as an automation. - Update
state.jsonautomations.meeting-syncafter scheduled completion; the sync script updatessyncs.meetingsafter successful collection. - Append
wiki/log.md. - If wiki pages changed, run
npx tsx scripts/build-index.tsandqmd update && qmd embed.
Outputs
- One file per meeting under
raw/meetings/ - Attendee list for back-link updates on people pages
- Timeline entries citing
[Source: Meeting "{title}", YYYY-MM-DD]
Compilation
Agents compile high-signal meetings into project and person pages. Never edit raw transcripts. Follow Capture Ingest Protocol for multi-page touch.
Promotion Matrix
| Meeting signal | Durable action |
|---|---|
| Decision, blocker, launch plan, or ownership assignment | Update project, decision, or workflow page. |
| Attendee with repeated interaction or durable relationship | Update existing person page or create one after resolver/alias search. |
| Company, partner, customer, or recruiter context | Update company/career/project page when the fact changes future context. |
| Routine sync with no durable change | Output-only with No durable wiki update needed. |
| Sensitive private transcript detail | Summarize only the durable work fact; do not quote raw transcript text. |
Failure Handling
| Failure | Response |
|---|---|
Missing CIRCLEBACK_TOKEN |
Record blocker and leave syncs.meetings stale. |
| API returns no new meetings | Write no-op output and update automation timestamp after successful check. |
| Calendar overlap is missing | Continue with Circleback source, but note that cross-reference was unavailable. |
| Entity identity ambiguous | Leave follow-up in output instead of creating duplicate person/company page. |
Validation
npx tsx scripts/check-freshness.ts
Freshness should show Circleback current only after the script successfully collected or confirmed the meeting window.
The workflow is incomplete if transcript files were collected but no output artifact names which meetings were reviewed, promoted, deferred, or skipped as low-signal.
Run Contract
This workflow follows Workflow Run Contract: name the sources, write output or no-op proof, promote only durable facts, update state only when the run really completed, refresh generated surfaces when durable pages or skills change, and log user-visible work.
Timeline
- 2026-07-01 | Added trigger/input boundaries and validation rules for collected transcripts, output proof, and promotion/defer decisions. Source: User request, 2026-07-01
- 2026-06-30 | Expanded from command stub into runbook with promotion matrix, state writes, and failure handling. Source: User request, 2026-06-30
- 2026-05-31 | Workflow page created from meeting-sync automation. Source: automations/meeting-sync.md, 2026-05-31