coldpass

radiusred/tradedesk

GitHub ↗ · How this check works

Per-setup public labels: Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/radiusred--tradedesk.svg).

data

Works

The recorded run passed on 1 setup.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Luna: yes · Oct 27, 2026 · 9911e1d90157 · codex / codex-cli 0.164.0
Recorded operation: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

Does what it says
1 of 1 claims checked out
  • The ingest CLI materializes ECB macro feeds into a Parquet lake.: Real input produced the expected result: "ecb": 9

    Source: README.md

    Input: --source ecb --lake <temporary lake> --from 2025-01-01

    Expected: Nine ECB series are written under macro/ecb as Parquet files.

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>

MCP
No
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 0 days ago; 40 commits and 20 merged PRs in 90 days; 5 open issues, 0 open PRs; 0 of 1 recent threads got a maintainer reply; latest release 2026-10-27

Last commit Oct 27, 2026

Setup time
3 min 10 s
3 min 10 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • Refresh ECB source data into a custom lake.: command completed successfully

    Source: README.md, External data sources; docs/data_sources_guide.md, Macro Parquet lake / Ingest

    Input: ECB feed starting 2025-01-01 in an isolated temporary lake

    Expected: Nine ECB series are materialized as Parquet.

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: ources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:19:00,856 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:19:01,262 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

Cycles
1 of 1 ran as expected
  • The documented macro ingestion refreshes its selected feeds when run on demand.: Triggered one cycle by hand (run-once; normal trigger: on demand): { "lake": "<guest-path>", "written": { "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>", "EUR_YLD_10Y": "<guest-path>", "EUR_EURIBOR_1M": "<guest-path>", "EUR_EURIBOR_3M": "<guest-path>" } } } 2026-10-27 19:18:46,959 INFO __main__ Ingesting source=ecb from=2025-01-01 into lake=<guest-path> 2026-10-27 19:18:46,960 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_ESTR from https://data-api.ecb.europa.eu/service/data/EST/B.EU000A2X2A25.WT?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:47,745 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_3M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_3M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:48,561 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_6M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_6M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:49,356 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_1Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_1Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,169 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_2Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_2Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,969 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_5Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_5Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:51,763 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:52,592 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:53,004 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

    Source: tradedesk/data_sources/ingest.py

    Input: ECB data from 2025-01-01 into isolated lake

    Expected: ECB series are written as Parquet

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: { "lake": "<guest-path>", "written": { "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>", "EUR_YLD_10Y": "<guest-path>", "EUR_EURIBOR_1M": "<guest-path>", "EUR_EURIBOR_3M": "<guest-path>" } } } 2026-10-27 19:18:46,959 INFO __main__ Ingesting source=ecb from=2025-01-01 into lake=<guest-path> 2026-10-27 19:18:46,960 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_ESTR from https://data-api.ecb.europa.eu/service/data/EST/B.EU000A2X2A25.WT?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:47,745 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_3M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_3M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:48,561 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_6M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_6M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:49,356 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_1Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_1Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,169 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_2Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_2Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,969 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_5Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_5Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:51,763 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:52,592 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:53,004 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

Evidence
README behavior checked
Agent interfaces
CLI
CLI

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Codex / Luna
  • Linux: Codex / Luna · agent codex-cli 0.164.0 · Checked operation passed · Oct 27, 2026 on 9911e1d90157

Each entry describes its recorded operation and source revision.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety. 400 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict.

OSV reports a known vulnerability in this dependency version. 16 distinct locations. 203 findings.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Full event, path and process lists for each observed setup:

Repair history and test corrections
Run details
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

Agent-reported scope: ECB macro data ingestion

Run details
run
radiusred--tradedesk-gpt-6-luna-1793128521395963278
date
Oct 27, 2026
time to working
190.1s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/radiusred/tradedesk
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "9911e1d9015700a78d757f5b1ab31f333c988933", "url": "https://github.com/radiusred/tradedesk"}
Test version
readme-38e6b13f3b13804effb95797e3466b1a1334da7a232d897cbc8965867f802605
revision
9911e1d9015700a78d757f5b1ab31f333c988933
Whose fault: not assigned · resolved

Safety: Review signals: 200 known vulnerability.

Review signals: 200 known vulnerability.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

OSV reports a known vulnerability in this dependency version. 16 distinct locations. 200 findings.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Only 200 of 284 findings are stored; the summary counts all of them.

Full safety evidence →

Answers recorded for this run
  • The ingest CLI materializes ECB macro feeds into a Parquet lake.: Real input produced the expected result: "ecb": 9

    Source: README.md

    Input: --source ecb --lake <temporary lake> --from 2025-01-01

    Expected: Nine ECB series are written under macro/ecb as Parquet files.

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>

Examples

  • Refresh ECB source data into a custom lake.: command completed successfully

    Source: README.md, External data sources; docs/data_sources_guide.md, Macro Parquet lake / Ingest

    Input: ECB feed starting 2025-01-01 in an isolated temporary lake

    Expected: Nine ECB series are materialized as Parquet.

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: ources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:19:00,856 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:19:01,262 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

Cycles

  • The documented macro ingestion refreshes its selected feeds when run on demand.: Triggered one cycle by hand (run-once; normal trigger: on demand): { "lake": "<guest-path>", "written": { "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>", "EUR_YLD_10Y": "<guest-path>", "EUR_EURIBOR_1M": "<guest-path>", "EUR_EURIBOR_3M": "<guest-path>" } } } 2026-10-27 19:18:46,959 INFO __main__ Ingesting source=ecb from=2025-01-01 into lake=<guest-path> 2026-10-27 19:18:46,960 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_ESTR from https://data-api.ecb.europa.eu/service/data/EST/B.EU000A2X2A25.WT?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:47,745 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_3M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_3M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:48,561 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_6M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_6M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:49,356 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_1Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_1Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,169 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_2Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_2Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,969 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_5Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_5Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:51,763 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:52,592 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:53,004 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

    Source: tradedesk/data_sources/ingest.py

    Input: ECB data from 2025-01-01 into isolated lake

    Expected: ECB series are written as Parquet

    Command: /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake <guest-path> --from 2025-01-01

    Observed: { "lake": "<guest-path>", "written": { "ecb": 9 }, "paths": { "ecb": { "EUR_ESTR": "<guest-path>", "EUR_YLD_3M": "<guest-path>", "EUR_YLD_6M": "<guest-path>", "EUR_YLD_1Y": "<guest-path>", "EUR_YLD_2Y": "<guest-path>", "EUR_YLD_5Y": "<guest-path>", "EUR_YLD_10Y": "<guest-path>", "EUR_EURIBOR_1M": "<guest-path>", "EUR_EURIBOR_3M": "<guest-path>" } } } 2026-10-27 19:18:46,959 INFO __main__ Ingesting source=ecb from=2025-01-01 into lake=<guest-path> 2026-10-27 19:18:46,960 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_ESTR from https://data-api.ecb.europa.eu/service/data/EST/B.EU000A2X2A25.WT?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:47,745 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_3M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_3M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:48,561 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_6M from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_6M?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:49,356 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_1Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_1Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,169 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_2Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_2Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:50,969 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_5Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_5Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:51,763 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_YLD_10Y from https://data-api.ecb.europa.eu/service/data/YC/B.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Y?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:52,592 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_1M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA?format=csvdata&startPeriod=2025-01-01 2026-10-27 19:18:53,004 INFO tradedesk.data_sources.ecb Downloading ECB series EUR_EURIBOR_3M from https://data-api.ecb.europa.eu/service/data/FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA?format=csvdata&startPeriod=2025-01-01

Local or hosted: local

What the agent did

ECB macro data ingestion

pwd && ls -la && sed -n '1,240p' README.md && python3 --version && id -u
cat AGENTS.md && cat rust-toolchain.toml && sed -n '1,200p' pyproject.toml && rg -n "quick|example|pytest|cargo|load_macro|ingest|command" README.md CONTRIBUTING.md .github/workflows
cat .codecrew/AGENTS.md; grep -nE 'Example|example|python|pip|cargo run|quick|Backtest|load_macro|ingest' README.md; ls -la .coldpass; find tradedesk -maxdepth 2 -type f | head -40
sed -n '1,260p' tradedesk/data_sources/ingest.py && sed -n '1,240p' docs/data_sources_guide.md && sed -n '1,220p' .github/workflows/ci.yml
python3 -m venv /tmp/tradedesk-venv && /tmp/tradedesk-venv/bin/python -m pip install -e . && mkdir -p .coldpass/out && /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --help
 /tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake /tmp/tradedesk-manual-lake --from 2025-01-01
mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'
{
  "kind": "cli",
  "argv": ["/tmp/tradedesk-venv/bin/python", "-m", "tradedesk.data_sources.ingest", "--source", "ecb", "--lake", "<guest-path>", "--from", "2025-01-01"],
  "cwd": "<guest-path>",
  "expected_text": "\"ecb\": 9"
}
EOF
cat > .coldpass/claims.json <<'EOF'
[
  {
    "kind": "claim",
    "claim": "The ingest CLI materializes ECB macro feeds into a Parquet lake.",
    "source": "README.md",
    "input": "--source ecb --lake <temporary lake> --from 2025-01-01",
    "expected": "Nine ECB series are written under macro/ecb as Parquet files.",
    "probe_kind": "cli",
    "argv": ["/tmp/tradedesk-venv/bin/python", "-m", "tradedesk.data_sources.ingest", "--source", "ecb", "--lake", "<guest-path>", "--from", "2025-01-01"],
    "expected_text": "\"ecb\": 9",
    "cwd": "<guest-path>"
  }
]
EOF
cat > .coldpass/examples.json <<'EOF'
[
  {
    "kind": "example",
    "claim": "Refresh ECB source data into a custom lake.",
    "source": "README.md, External data sources; docs/data_sources_guide.md, Macro Parquet lake / Ingest",
    "input": "ECB feed starting 2025-01-01 in an isolated temporary lake",
    "expected": "Nine ECB series are materialized as Parquet.",
    "argv": ["/tmp/tradedesk-venv/bin/python", "-m", "tradedesk.data_sources.ingest", "--source", "ecb", "--lake", "<guest-path>", "--from", "2025-01-01"],
    "cwd": "<guest-path>",
    "expected_text": "\"ecb\": 9"
  }
]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected": true, "checks": [{"claim": "The documented macro ingestion refreshes its selected feeds when run on demand.", "source": "tradedesk/data_sources/ingest.py", "quote": "result = {args.source: materialize_ecb(date_from=args.date_from, lake=lake)}", "schedule": "on demand", "method": "run-once", "input": "ECB data from 2025-01-01 into isolated lake", "expected": "ECB series are written as Parquet", "kind": "cli", "argv": ["/tmp/tradedesk-venv/bin/python", "-m", "tradedesk.data_sources.ingest", "--source", "ecb", "--lake", "<guest-path>", "--from", "2025-01-01"], "cwd": "<guest-path>", "expected_text": "\"ecb\": 9"}]}
EOF
cat > .coldpass/report.json <<'EOF'
{
  "outcome": "working",
  "fault_owner": null,
  "operation": "ECB macro data ingestion",
  "operation_scope": "Install the editable Python package on Python 3.12.3 and refresh ECB series into a custom Parquet lake.",
  "steps": ["python3 -m venv /tmp/tradedesk-venv", "/tmp/tradedesk-venv/bin/python -m pip install -e .", "/tmp/tradedesk-venv/bin/python -m tradedesk.data_sources.ingest --source ecb --lake /tmp/tradedesk-manual-lake --from 2025-01-01"],
  "deviations": [],
  "stuck_step": null,
  "main_blocker": null,
  "plain_failure": null,
  "suggested_fix": null
}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay

No product verdict. Run record.

No product verdict. Run record.