# Context assembly manifest evidence run

Run date: 27 August 2026  
Fixture commit: `b788207`  
Environment: macOS 26.6.2, arm64, Deno 2.8.0, TypeScript 6.0.3

## What ran

The dependency-free fixture assembled a support-policy context from nine synthetic
candidates. No network, model, provider tokenizer, or production customer data was used.

```bash
deno check context_assembler.ts fixture.ts run_fixture.ts render_manifest.ts \
  context_assembler_test.ts evidence_artifact_test.ts
deno run --allow-write run_fixture.ts context-manifest-2026-08-27.json
deno run --allow-read --allow-write render_manifest.ts \
  context-manifest-2026-08-27.json context-assembly-manifest-2026-08-27.svg
deno test --allow-read context_assembler_test.ts evidence_artifact_test.ts
```

Result: **16 passed, 0 failed**. The core thirteen policy tests require no Deno
permissions. Three artifact-integrity tests receive read access only.

## Happy-path manifest

| Measurement | Fixture result |
| --- | ---: |
| Candidates retrieved | 9 |
| Sources included | 4 |
| Sources excluded | 5 |
| Source budget | 430 fixture tokens |
| Source tokens selected | 424 |
| Source tokens remaining | 6 |
| Required evidence | 150 |
| Optional trusted evidence | 196 |
| Untrusted data | 78 |
| Instructions | 54 |

The selected order was current policy, account state, relevant resolved case, and the
customer note. The note contains a synthetic prompt-injection sentence. Its manifest and
model-payload section both remain `untrusted_data`; the sentence does not appear in the
application-instruction section.

The five exclusion decisions are recorded as `cross_tenant`, `budget_exceeded`,
`source_type_not_allowed`, `forbidden_data_class`, and `stale`. Every included source
retains its ID, version, timestamp, data class, trust label, and supplied token count.

## Failure and determinism checks

- missing required evidence failed before payload construction;
- an obsolete required policy failed the freshness gate;
- a source budget below the required policy size failed instead of truncating policy;
- a cross-tenant candidate and forbidden data class were filtered before ranking;
- fifty plausible distractors did not displace the higher-relevance sources;
- an oversized optional source was skipped without blocking smaller evidence;
- missing caller scope removed all affected support sources;
- duplicate IDs and invalid provenance timestamps failed input validation;
- two serialized runs were byte-identical.

The saved JSON byte-matches a fresh fixture run. The saved SVG byte-matches a fresh
render from that JSON. Credential, email, and payment-card pattern checks passed.

Artifact SHA-256 values:

```text
53904c336feb08be5991e0868f709f46d82b0ddb25cb2dee79a110a04e07098d  context-manifest-2026-08-27.json
5d4860483016d91405f39f007062205a2baaa3fc2725d8073f180a8b63ec6b83  context-assembly-manifest-2026-08-27.svg
```

## Visual check

The 1280×720 SVG was rendered locally at its native dimensions and inspected. All four
included sections, five exclusion reasons, budget values, arrows, labels, and the
FutureCraft attribution were visible without clipping. The SVG includes an accessible
`title`, `desc`, and image role.

## Evidence limits

This run proves the fixture's filtering, selection, serialization, and section-boundary
behavior. It does not prove that the ranking tuple is appropriate for every product,
that supplied token counts match a provider tokenizer, or that a model will produce a
correct answer from the resulting payload. Those require task-specific retrieval evals,
tokenization, and end-to-end model evaluation.
