# AI Workflow Constraint Worksheet

Use this worksheet for one recurring workflow. An AI assistant can maintain it with you: collect the facts it can verify, mark what remains unknown, ask for the highest-value missing evidence, and update the record after every run. Complete and lock the Baseline column before changing anything. Change one variable, then repeat the same workload and acceptance test.

The companion [AI workflow performance discovery prompts](AI-WORKFLOW-DISCOVERY-PROMPTS.md) can help define the baseline, design a bounded Performance Monitor log, interpret evidence, choose one experiment, and write the final decision record. Use only an approved service/account and follow data-classification, contract, retention, residency, and access rules. Minimize and redact the evidence; if it still cannot be shared safely, use an approved local/offline assistant or keep it out of the assistant.

## AI recorder contract

When an AI assistant maintains this worksheet:

1. Preserve every section and update a working copy rather than the blank template.
2. Prefix populated values with **Observed**, **Owner-reported**, or **Inferred**. Use **Unknown** when the field applies but evidence is missing. Use **Not applicable** only with a reason and evidence ID showing why the field does not apply. Never turn an unknown value into zero.
3. Cite one or more evidence IDs from the ledger in every Observed, Owner-reported, Inferred, or Not-applicable field. Preserve timestamps, units, and exact version/configuration strings.
4. Keep raw evidence unchanged. Record a correction as a new entry instead of silently rewriting the earlier evidence.
5. Ask no more than three highest-value questions or collection requests at a time.
6. Recommend read-only collection first. Explain what each request can and cannot prove.
7. Predeclare the acceptance test, instrumentation, and baseline repetition count. Register every baseline run, derive the Baseline summaries from those run IDs, then lock the completed baseline as a revisioned snapshot before any changed run. After lock, never edit that snapshot in place. A correction creates a new baseline revision, records the delta, and invalidates any affected after-change comparison.
8. After every update, report: fields changed, contradictions, remaining unknowns, and the next smallest evidence request.

Suggested cell notation: `Observed [E-003, 2026-10-18T15:30-04:00]: 100% aggregate CPU during extraction step.` For an irrelevant field: `Not applicable [E-001]: hosted-provider queue does not apply because this run used only the named local model.`

## Investigation control

| Field | Record |
|---|---|
| Investigation ID |  |
| Investigation owner |  |
| AI assistant/service and account class |  |
| Worksheet status: discovery / baseline locked / experiment / decision |  |
| Current baseline revision ID |  |
| Locked snapshot location/message reference |  |
| Locked snapshot SHA-256 when file-capable, stored outside the snapshot |  |
| Approved single variable to change |  |
| Working-copy location |  |

## Evidence ledger

| Evidence ID | Timestamp/time zone | Source | Classification | What it directly shows | What it cannot prove | Location or attachment |
|---|---|---|---|---|---|---|
| E-001 |  |  | Observed / Owner-reported |  |  |  |

## Baseline lock registry

| Baseline revision | Locked by and timestamp | Immutable snapshot or message reference | SHA-256 stored in this registry/sidecar | Supersedes | Delta/reason | Status |
|---|---|---|---|---|---|---|
| B-001 |  |  |  |  | Initial baseline | Candidate / locked / superseded |

## Workload definition

| Field | Record |
|---|---|
| Workflow name |  |
| Input files/data and size |  |
| Exact task or prompt |  |
| Required output |  |
| Acceptance test |  |
| Failure/rejection reasons |  |

## Environment

| Field | Baseline | After change |
|---|---|---|
| Date, time, and time zone |  |  |
| CPU/accelerator model and assigned logical processors |  |  |
| RAM, VRAM or unified memory; storage and free capacity |  |  |
| Operating system and build |  |  |
| Power/performance mode |  |  |
| Application, orchestrator, runner, extensions/tools, and versions |  |  |
| Hosted provider and exact model/version, or local model/quantization |  |  |
| Reasoning effort/thinking budget and maximum output |  |  |
| Context setting, input size, retrieval/index revision, and cache state |  |  |
| Sampling, tool-use, batching, parallelism, and device-placement settings |  |  |
| System/developer instruction or configuration revision/hash |  |  |
| Configured simultaneous-agent/worker maximum |  |  |
| Actual peak active, peak queued, and idle-resident workers |  |  |
| Model/task assignment and admission/backpressure policy |  |  |
| VMs/containers and CPU/memory limits |  |  |
| Concurrent builds, local models, scanners, sync, backup, indexing, and user work |  |  |
| Timeouts, retries/backoff, and polling configuration |  |  |
| Monitoring configuration and measured collector overhead |  |  |
| RAM-drive last-known-good generation, staging/verification/promotion, sync interval, unsynchronized window, final flush, and conflict/deletion rules |  |  |
| Cold or warm state |  |  |

## Timing and acceptance

The Baseline and After-change columns summarize the run registry. Derive medians, ranges, and pass rates from individual rows; do not replace raw run records with the summary.

| Field | Baseline | After change |
|---|---|---|
| Submitted |  |  |
| Execution started |  |  |
| First useful output |  |  |
| Execution finished |  |  |
| Review finished |  |  |
| Accepted result: pass/fail |  |  |
| Human correction time |  |  |
| Total accepted-result time |  |  |

## Run registry

Create one row for every baseline and after-change run before calculating summaries.

| Run ID | Phase | Baseline revision | Timestamp/time zone | Intended variable and setting | Deviations/confounders | Collector configuration and overhead | Acceptance result | Queue / first-output / finish / accepted-result times | Resources, tokens, cost, correction | Evidence IDs |
|---|---|---|---|---|---|---|---|---|---|---|
| R-001 | Baseline / After change | B-001 |  |  |  |  | Pass / Fail |  |  |  |

## Resource and boundary evidence

| Field | Baseline | After change |
|---|---|---|
| CPU during the delayed step |  |  |
| Memory/pressure/commit/working-set observation |  |  |
| Compression, swap/page file, and hard-fault evidence |  |  |
| Disk latency, queue, and transfer evidence |  |  |
| RAM-drive copy/sync/verification overhead, retained recovery generation, simulated failure, and interruption recovery result |  |  |
| Network/request timing |  |  |
| Local model loaded state and queue |  |  |
| Hosted-provider request ID, queue, quota, or retry evidence |  |  |
| Agent/worker active and queued peaks, retained memory, polling interval, and wakes |  |  |
| Input, output, and cached tokens |  |  |
| Requests, retries, and provider cost |  |  |
| Missing telemetry recorded as unknown |  |  |

## Experiment

| Field | Record |
|---|---|
| Delayed step |  |
| Hypothesis written before the change |  |
| Evidence supporting the hypothesis |  |
| One reversible change |  |
| Expected result |  |
| Rollback trigger |  |
| Number of baseline runs |  |
| Number of after-change runs |  |
| Environmental differences |  |
| Run IDs included in the comparison |  |

## Decision record

| Field | Record |
|---|---|
| Result |  |
| Alternative explanation |  |
| Adopt, reject, or test again |  |
| Where this decision applies |  |
| What remains unknown |  |
| Evidence links |  |
| Retest trigger |  |
| Index/location where the decision was saved |  |

## Leadership decision brief

| Field | Record |
|---|---|
| Accepted outcome and accountable owner |  |
| Baseline revision and run IDs used |  |
| Delayed step and time-aligned evidence IDs |  |
| Single variable changed |  |
| Material deviations or confounders |  |
| Evidence-supported finding |  |
| Quality, security, resilience, and data-handling effects |  |
| Cost/capacity per accepted result |  |
| Work or cost transferred to another team, system, or resource |  |
| Recommended decision and implementation owner |  |
| Decision boundary: where the finding applies |  |
| Rollback owner and trigger |  |
| Material unknowns and retest trigger |  |
| Post-rollout measurement date and owner |  |

## AI checkpoint

| Field | Record |
|---|---|
| Fields updated in the latest turn |  |
| Contradictions or inconsistent evidence |  |
| Highest-value remaining unknowns |  |
| Not-applicable fields and supporting evidence |  |
| Next read-only evidence request |  |
| Why that request is the smallest useful next step |  |
