Episode2 fictional practice files

Run offline with Python3; no additional packages or accounts are needed:
python3 build_demo.py --input demo-input.json --out result --verify-fixture

The extractions are a prepared, checked example, not a live assistant response. The script validates quoted evidence and applies supplied internal rules. It is not a general language parser and sends nothing.

CSV import
Use Excel Data > From Text/CSV or an equivalent import. Set event_id and lead_id to Text to preserve leading zeros. Set human-provided labels, channels and messages to Text. CSV quotation alone does not establish a data type. Keep unknown dates empty. Convert only intended date columns to dates when calculating.

Display escaping
Text beginning with = + - @, including after leading whitespace, receives an apostrophe prefix in the safe CSV. The original string is unchanged in demo-input.json/raw-inquiries.json. escape-manifest.json records the precise source and display value for each changed cell. Do not strip apostrophes indiscriminately; use the manifest if reconstructing source text. Never execute customer-provided text as a spreadsheet formula.

Date formula
Use fixed as-of2026-10-09 in a typed date cell B1. If using formula-spec.json, put headers at row4 and tracker values at row5 onward. The formula checks reference calculations; native Excel formula execution has not been verified here. A zero can mean a genuine same-day task, while an unknown date remains blank.

Contact and status rules
These are the supplied rules for the fictional business. STOP persists until an explicit current restart statement and separate documented owner approval are supplied. Replies, follow-ups and marketing are different fields. Requested estimates and painting dates remain requests. Actual customer data and contact policies need owner review before use.

Source history is retained. An unlinked or name-only event stays in exception-queue.csv. lead-tracker.csv retains the stopped lead; action-queue.csv excludes it and keeps undated reviews visible.

Extraction validation limit
Exact quote presence and bounded explicit-negation guards are checked; these checks do not establish complete semantic meaning. A person must review new proposed values, negation, scope and linkage against the source before using them. This is a checked fixture, not a general language parser.
