Context Admissibility¶
Context Admissibility extends the Provenance Loop beyond citations. It covers the messy material that shapes AI-assisted work but should not automatically appear in final prose: feedback, prior drafts, tool traces, style directions, operator notes, and private reasoning.
The principle is simple:
Context may influence an artefact only through an allowed transformation. Context may appear in final prose only when its class permits that use.
This protects the reader-facing artefact from process leakage such as "based on your feedback", "this version is now stronger", or "as discussed". Those phrases may be true about the workflow, but they are usually inadmissible in a final brief, paper, or client-ready document.
Admissibility Questions¶
Each context item is classified against four questions:
- What kind of context is this?
- May it influence the output?
- May it appear in final prose?
- If it can influence the output, what transformation is allowed?
The current implementation is rule-based and conservative. It is designed to make decisions inspectable, not to infer every nuance.
Current Context Types¶
The eleven canonical SPEC ยง2.2 context classes implemented in
provenance/context_admissibility.py:
| Context type | Ledger bucket | Can influence output | Can appear in final prose | Allowed transformation |
|---|---|---|---|---|
empirical_evidence |
empirical |
yes | yes | claim_or_citation |
instruction |
process |
yes | no | derived_requirement |
style_signal |
synthesised |
yes | no | style_rule |
user_feedback |
synthesised |
yes | no | derived_requirement |
prior_artefact |
process |
yes | no | derived_requirement |
process_history |
process |
yes | no | derived_requirement |
operational_trace |
process |
no | no | audit_record |
review_finding |
synthesised |
yes | no | applied_recommendation |
validation_rule |
process |
yes | no | boundary_rule |
synthesised_judgement |
synthesised |
yes | no | derived_requirement |
private_reasoning |
excluded |
no | no | none |
The table is a policy surface. SPEC-L1-S005 review-role gating threads
the source_agent keyword through classify_context() so a
policy-red-team review item stays a review_finding rather than
being demoted into user_feedback. Future versions may refine these
types; the eleven-class set is the v0.9 canonical surface.
Allowed Transformations¶
claim_or_citation means the material can appear as a final claim only when
it is cited or otherwise bound to a source.
derived_requirement means the underlying instruction may be applied, but
the drafting process must not be narrated. For example, "not commercial
enough" may become "strengthen commercial positioning"; it should not become
"based on your feedback, this is more commercial".
style_rule means the style instruction should affect wording, structure,
and tone without being announced to the reader.
audit_record means the material can be retained for traceability but should
not shape or appear in final prose.
applied_recommendation means a review finding may be applied as a revision
instruction by a revision planner; the recommendation itself does not appear
in final prose.
boundary_rule means a validation rule informs the prose-boundary gate (for
example, by extending the banned-residue list) but the rule text never
appears in final prose.
none means the material is excluded from generation.
Prose Boundary Gate¶
The Prose Boundary Gate scans reader-facing text for process-to-prose leakage. In the current implementation, the gate flags patterns such as:
- "based on your feedback";
- "as discussed";
- "this version";
- "previous draft";
- "more commercial";
- "I have incorporated";
- "operator notes".
The gate is not a style checker. It is a boundary check: did process context cross into final prose when it should have been transformed first?
Audit and methodology artefacts may intentionally discuss process context.
The current implementation allows explicit roles such as audit,
methodology, and consultation_report to pass the boundary scanner.
CBOM¶
The Context Bill of Materials records how context was handled. The current CBOM report includes:
- total context item counts;
- counts for influence, final-prose admissibility, audit-only, and excluded material;
- admissibility summaries for each context item;
- derived transformations;
- prose-boundary verdict and violations.
Example CLI use:
python cli/provenance_cli.py --cbom --context context.json final.md
python cli/provenance_cli.py --cbom --context context.json --json final.md
python cli/provenance_cli.py --cbom --context context.txt --ci final.md
JSON context accepts a list of items:
[
{"id": "feedback_017", "text": "This is not commercial enough."},
{"id": "source_001", "text": "Source: official report, 2026."}
]
Plain-text context is also accepted, one item per non-empty line.
Limits¶
Context Admissibility does not prove that the final artefact is correct. It does not replace human review. It does not detect every possible process leak. It makes a specific class of leakage visible and gateable, and it gives reviewers a compact record of how non-source context was transformed.