# Plan: one-page faculty-conversation brief as a selectable assurance deliverable

## Why
The assurance audit produces the same course understanding three audiences can use three
ways. Today it renders two documents (verdict-first report, generic playbook). Add a third:
a one-page, ID-facing quick-start brief for the first few minutes of a faculty conversation
(plain language, no jargon, 60-second skim). Let the user pick any combination of the three.

Prototyped and tuned by hand on COM 100 / 151110; this generalizes it to any course.

## A. Generator (`scripts/assurance_brief_html.py`)
Deterministic renderer, same architecture as `assurance_report_html.py`: scripts render,
Claude authors the plain-language fields. `render(scorecard, narrative)` reads
`narrative["brief"]` and emits self-contained, print-perfect (US Letter) HTML.

`brief` fields (all optional; a section is skipped when absent):
- `subject_matter` (str) — one line, from syllabus modules
- `learning_outcomes` (str) — plain summary of the stated CLOs, from the syllabus
- `graded_items` ([{label, count, weight_pct}]) — from the deterministic inventory → Graded Items band
- `assessment_strategy` (str) — stakes, format, weighting
- `working` / `exposed` ([str]) — What's Working / Where It's Exposed
- `constraints` (str) — what shapes any change
- `directions` ([{lead, text}]) — back-pocket options, numbered, under "Directions to Explore"

Every interpolation escaped via `_e`. CLI mirrors the report/playbook:
`--scorecard --narrative --output [--pdf]`, PDF via `report_pdf_exporter`.

Acceptance: on 151110 the generator reproduces the hand-tuned COM 100 brief (all sections,
one Letter page, no em-dashes); missing fields skip their sections; XSS payloads escape.

## B. Skill (`skills/assurance-audit/SKILL.md`)
Step 5 now leads with a deliverable-selection step: ask which of brief / report / playbook to
generate, any combination. Document the brief generator, the `brief` narrative fields, and the
authoring house style (plain language, no jargon, back-pocket Directions, diagnose before
prescribe). Record ASU-Online-async as the standing context: never frame take-home as a finding.

## Out of scope
- No change to the audit engine, tier, coverage, or the report/playbook renderers.
- No syllabus regex in the script; Claude reads the syllabus and authors the brief fields.

## Verify
- Full `pytest tests/ -q` green on a clean checkout.
- 151110 brief renders one Letter page; sections in order; escaping holds.
- Read the diff by hand before merge. Coder != reviewer.
