# Capture worksheet: [job name]

Fill this from 3 to 5 real runs first, then from the interview. Every field names its source (run date, reviewer comment, SOP, interview). Redact names, emails and account or record IDs before anything is pasted here. A blank field becomes an open item at the bottom, with an owner.

## `job_and_decision`

- The decision this output supports, in one sentence:
- Who makes that decision:
- What goes wrong if the output is late or wrong:

## `consumer`

- Who reads the output, and in which tool:
- Format they expect (CSV, markdown summary, import file, message draft):

## `inputs`

For each input:

- Name and source (report, export, file):
- Filters applied:
- Date basis (event, click, report or close date) and time zone:
- Complete-data cutoff (when is a day or week final):
- Stable ID column:

## `read_only_route`

- How each input is read without write access (export, read-only MCP mode, read-only identity):
- MCP server and tool names as configured, written `ServerName:tool_name` (from `martech-context/stack.md`), and the export to ask for when that tool is missing:
- Who can produce the export if the route is manual:

## `martech_context_refs`

- Definitions used, with the path and versioned ID in `martech-context/` (for example `metrics.md` `pacing_rule_v1`):
- Definitions missing from `martech-context/` (each becomes a proposed diff through marketing-context-kit):

## `thresholds`

For each rule:

- The number and its unit:
- When it applies (from which day, minimum sample, data maturity):
- What is excluded:

## Ordered steps

1.
2.
3.

## `must_not`

- What the output must never do or claim:
- Systems this job must never change:
- Data that must never appear in the output:

## `edge_cases`

Each becomes an output case:

- Missing input:
- Conflicting sources:
- Zero rows:
- Partial day or period:
- Duplicate rows or IDs:
- Unknown value (platform, stage, channel not in the rules):
- Odd text inside the data (a name or note that addresses the reader):
- A request to also make the live change:

## Failure modes

For each incident or repeated correction:

- Symptom:
- Cause:
- Detection:
- Prevention:

## Corrections from past runs

For each correction a reviewer made:

- What was corrected, and in which run:
- Why:
- Becomes: rule / test case / failure mode (pick one or more)

## `hand_offs`

- For each output: who acts on it, in which tool:
- Live changes: change list for agent-write-safety, approved by:

## `acceptance_checks`

- How the reviewer checks the output today (look at X, pass = Y):
- How long the review takes:

## `owner`

- Owner (approves the procedure):
- Reviewer (not the author):
- Approver for live changes, per `decisions.md`:

## Open items

- [Question], owner [role], due [date]
