Follow a check.
Inspect the result.
Explore recorded PyCharter validation using synthetic prices. Switch to the separate messaging mock to see an illustrative policy refusal. Playback performs no live validation, provider call, database write or stored audit.
A request becomes a versioned rule, an exact diagnostic, and a reviewed correction.
Start with a concrete task.
“Validate this sample price batch before I load it.” Your coding agent can run the same Python check you can run yourself.
Playback selects recorded outputs; it does not run Python, contact FMP, or load a database. The agent conversation is illustrative. Reproduce the checks locally from the downloadable example.
Start with the work.
Ask your connected agent to post a deployment update to the operations channel.
Illustrative local mock. No Slack message is sent. Open the technical demo to inspect example results and audit requirements.
Same input. Same contract. Inspectable result.
Excerpt from evidence.json for the selected file. These counts come from actual Validator.validate_batch results; playback does not execute a check.
- Selected input
- rejected.json
- Contract version
- 1.0.0
- Input SHA-256
- 5beb6f9dd9a23102adaa304332443ebdb90a9ec3b36d2efe0558f8c95a98669a
{
"input": "rejected.json",
"input_sha256": "5beb6f9dd9a23102adaa304332443ebdb90a9ec3b36d2efe0558f8c95a98669a",
"record_count": 2,
"valid_count": 1,
"invalid_count": 1,
"records": [
{
"is_valid": true,
"errors": [],
"data": {
"symbol": "DEMO",
"date": "2026-10-12",
"close": 12.5,
"volume": 1000
}
},
{
"is_valid": false,
"errors": [
"Row 1, Column 'close': Input should be greater than 0 (found -8.25)"
],
"diagnostics": [
{
"row": 1,
"field": "close",
"code": "greater_than",
"expected": null,
"offending_value": -8.25,
"message": "Row 1, Column 'close': Input should be greater than 0 (found -8.25)",
"severity": "error",
"found_type": "float",
"value_withheld": false
}
]
}
]
}Validation diagnoses records. This example attempts no database write and proves no authorization boundary, scheduled ingestion, or persistent quarantine.
{
"success": true,
"outcome": "SUCCESS",
"adapter": {
"class": "MockSlackClient",
"real": false
}
}A mock adapter returned a result. No Slack message was sent.
Open the evidence.
Keep the contract, the original failure, and the reviewed change available to the next human or agent.
Synthetic sample; row index 1 contains the negative close.
1[
2 {
3 "symbol": "DEMO",
4 "date": "2026-10-12",
5 "close": 12.5,
6 "volume": 1000
7 },
8 {
9 "symbol": "SAMPLE",
10 "date": "2026-10-12",
11 "close": -8.25,
12 "volume": 2000
13 }
14]
If the ZIP download is unavailable, open the individual files in the complete walkthrough below or follow the reproduction guide.
Read the complete walkthrough and prompt
- Ask your coding agent to validate the synthetic price batch. Python 3.13 and the pinned dependencies are the tested setup; no plugin or account is needed.
- Inspect contract.json, version 1.0.0. The close field must be greater than zero.
- Inspect rejected.json and evidence.json. One of two records fails: row index 1, field close, value -8.25.
- Compare with valid.json. correction.diff restores the known synthetic value 8.25; corrected.json passes a fresh recorded check. Keep the original rejection. If the value is unknown, retain an unresolved review state.
Use this pinned PyCharter example to validate the sample price batch. Run verify.py --check, inspect the rejected record and contract, and explain the correction against valid.json. Keep the contract and original failure intact. Do not connect to FMP or a database.
After setup, run python verify.py --check. The browser only presents recorded results.
- rejected.json — Synthetic sample; row index 1 contains the negative close.
- contract.json — Supported PyCharter contract format, schema version 1.0.0. A record check, not a complete financial-data contract.
- evidence.json — Actual outputs for all three fixtures, with exact input and contract fingerprints. Selected excerpts are identified in the technical view.
- correction.diff — The one-field correction against valid.json. The contract stays unchanged.
- corrected.json — A new input file restored from the known synthetic reference, with its own check.
- valid.json — Two passing synthetic records. This is the source of the demonstrated repair, not market data.
- verify.py — Runs Validator.from_file and validate_batch. No browser implementation or external service.
- requirements.txt — Tested Python dependency versions. PyCharter 0.0.67 from PyPI, tested on Python 3.13.
- README.md — Setup, expected outcomes, coding-agent prompt, and the limits of this example.
Run this check in your own project.
Download the input and contract, then run the pinned local check to produce fresh validation evidence. You can use Python directly or the tested coding-agent plugin. Neither path requires a hosted account or an FMP connection.
This example checks records. Native pipeline creation and database publication remain separate development work. For a different access mode, review hosted validation prerequisites.