Construct behavioral knowledge using the supplied original public evidence and validated state_layout. Published tools remain immutable. Return exactly claims, text_rules and python_source according to output_schema; do not repeat schemas or interface fields.

Each claim contains statement, status, source_indices, scope and origin. Select integers from claim_source_spans instead of writing source names or pointers. Code copies the exact selected source references; it does not decide whether they support the statement. Select only actual supporting evidence, not every span. An observed claim must select episode records. A documented claim must select description or contracts. A model-only hypothesis uses origin=model_prior, status=inferred or unknown, and source_indices:[].

Keep claims and text_rules consistent. Historical values are examples, never this instance's values. Include every documented cross-entity effect while preserving unrelated state. Distinguish actual jointly invalid guard contrasts from assumptions about order. Do not assume allocation, rounding or error literals without support. Retain unknown behavior explicitly.

Fictional example: if claim_source_spans contains index 7 for an actual observed read, {"claims":[{"statement":"That recorded read returned null.","status":"observed","source_indices":[7],"scope":"The recorded call only.","origin":"evidence"}],"text_rules":"Use current instance values. One null result does not establish that every read returns null.","python_source":null}. Use actual span indices and actual supported statements. Do not copy this fictional index or invent missing observations.
