Local Meeting-Summary Script Runbook (Reference Answer)

Teaching scenario

This document demonstrates a runbook structure. The current knowledge base has no summarize_meeting.py, the commands below were not run, and every output is labeled as expected. Do not treat this page as a runnable software delivery.

Goal and non-goals

This runbook explains how to run a fictional local script on Windows 11 and PowerShell 7. It reads UTF-8 meeting text and a local JSON configuration and produces a Markdown summary draft.

Boundaries:

  • It does not connect to a meeting platform or external API.
  • It does not send email, messages, or calendar invitations.
  • It does not read recordings.
  • It does not process real customer, patient, student, or account data.
  • Output requires human confirmation and cannot become an execution instruction directly.

Prerequisites

The reader needs a teaching-project directory that is assumed to contain summarize_meeting.py. Replace the string below with your own safe practice path:

$ProjectRoot = 'C:\path\to\meeting-summary-demo'
Set-Location -LiteralPath $ProjectRoot
python --version
Test-Path -LiteralPath '.\summarize_meeting.py' -PathType Leaf

Expected:

  • python --version displays the local Python 3 version.
  • Test-Path returns True.
  • Stop if either condition fails; do not download a same-named script from the network at random.

This document did not run these commands and did not confirm a fixed Python patch version.

Input/output contract

FileFormat and required contentSensitivityRetention policy
meeting.txtUTF-8 text with at least one line of fictional meeting contentfictional data onlymay be deleted after practice
config.jsonJSON object with language and max_bulletsnon-sensitive teaching configurationretain with the practice
summary.mdMarkdown draft with a heading and action-items listdetermined by input; this exercise is fictional onlydecide after human review

Minimal meeting.txt:

Example meeting: Alex will prepare a fully fictional demonstration checklist by 2026-07-20.

Minimal config.json:

{
  "language": "en-US",
  "max_bullets": 5
}

Expected summary.md:

# Meeting Summary Draft
 
## Action items
 
- Owner: Alex; task: prepare the demonstration checklist; due date: 2026-07-20.

The name and task above are fully fictional.

Procedure

1. Confirm the current directory and input files

Get-Location
Get-Item -LiteralPath '.\meeting.txt', '.\config.json' | Select-Object Name, Length

Expected: both files exist and have a size greater than 0. Stop if a file is missing or the path is outside the teaching directory.

2. Validate JSON syntax only

python -m json.tool '.\config.json' > $null
if ($LASTEXITCODE -ne 0) { throw 'config.json is invalid JSON' }

Expected: exit code 0. This proves only that JSON syntax can be parsed; it does not prove field values meet a business contract.

3. Run the fictional script

python '.\summarize_meeting.py' --input '.\meeting.txt' --config '.\config.json' --output '.\summary.md'

Expected: exit code 0 and a nonempty summary.md. This course has no such script, so there is no actual run result.

4. Local human confirmation

Get-Item -LiteralPath '.\summary.md' | Select-Object Name, Length
Get-Content -LiteralPath '.\summary.md' -Encoding utf8

Review the owner, task, and date manually. If hallucinated, omitted, or sensitive content appears, delete the draft and record the issue. There is no automatic sending step.

Control flow

flowchart TD
    Read["Read local text and configuration"] --> Validate{"Files, encoding, and JSON valid?"}
    Validate -->|no| Stop["Stop and report a local error"]
    Validate -->|yes| Draft["Generate a local Markdown draft"]
    Draft --> Review{"Human confirmation?"}
    Review -->|no| Remove["Delete the draft and record the issue"]
    Review -->|yes| End["Keep the local draft and end"]

The diagram has no network, sending, or external-write branch.

Troubleshooting

Observable symptomLikely causeDiagnosisSafe recovery
meeting.txt is missingwrong directory or input not createdTest-Path, Get-Locationstop; return to the teaching directory
decoding errorfile is not UTF-8check editor save encoding; do not print real full textsave fictional data again as UTF-8
json.tool errorscomma, quote, or bracket errorread the line/column error; do not output sensitive configurationcorrect a copy and validate again
summary.md is missing or emptyscript failed, input empty, or output path wrongcheck exit code and file sizestop; do not treat an empty file as success

Do not mask a deterministic input error through unlimited retries, and do not use administrator privileges to “solve” an ordinary path problem.

Acceptance record

CheckCurrent stateEvidence
Document structure completecheckedthis page contains boundaries, contract, procedure, failures, and acceptance
Internal links existstatically checkedtargets back to the course and index exist
Example data is fictionalcheckedthis page explicitly labels teaching content
Commands can actually rununverifiedthe repository lacks the fictional script
Obsidian Reading Viewneeds human reviewstatic text inspection cannot replace the UI

Changes and sources

Return to Knowledge-base runbook project and self-test or Markdown index.