live-verify
Skill0 starsChanged 7 days agoMITView on GitHub
RETIRED — the harness this skill drives was torn down 2026-10-03; live verification waits on a new cloud test instance (#2224). Historically: open an ad-hoc harness test window on Azure and verify a change against REAL datasources — wake the harness, run the flows, exercise the app (live-smoke Playwright lane / e2e_smoke.py bearer mode / MCP), record the readings, put the harness back to sleep. Use when a change touches a driver boundary (a value read from a DB connector, pyiceberg, pandas/pyarrow or a cloud SDK), before ticking any docs/site/reference/feature-matrix.md cell, or when the user says "verify this live" / "run a harness window".
2 other projects use a version of this.
Adopted by
Most recently taken up by
- jrittelmeyer/ai-dev-kittheir own version, first seen Oct 15, 2026
- ffroliva/gflow-clitheir own version, first seen Sep 14, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- ffroliva/gflow-cli★ 396same name
- jrittelmeyer/ai-dev-kit★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- adr-createSkill
- gh-issue-from-findingSkill
- new-monitor-kindSkill
- security-scanSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 30
If the user has not clearly asked for a live run, ask before waking.
- Distinctive: line 62
Write down, explicitly, the reading you expect to observe and what would falsify it.
- Very specific: line 77
Run these in the background — a full window is ~11.5 min and macOS has no timeout.
- Distinctive: line 100
Do the case variants agree?: Run the identifier lower-case and UPPER-case.
- Distinctive: line 120
If the run found a defect a test could not, say so explicitly and name the boundary.
- Distinctive: line 125
Never leave the window open: Stop before reporting.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
live-verify
Retired. The harness and its test accounts were torn down 2026-10-03, so there is nothing to wake. Live verification against Snowflake, Unity Catalog, Azure or AWS waits on a cloud test instance (#2224); until then, say a change is unverified live rather than run this. The steps below are kept for when an instance exists.
Purpose
Some claims cannot be settled by a unit test, because the thing that decides them is on the other side of a driver. CLAUDE.md §13 states it as a rule:
For anything whose type or value crosses a driver boundary, only a live run is evidence.
The cost of ignoring it is recorded: Unity Catalog freshness had never worked once (#953) while three suites ran green, because the Databricks connector returns a TIMESTAMP's MAX as a str. Parquet freshness was broken on every Parquet file (#520) because Arrow-backed dtypes fail is_datetime64_any_dtype. Both survived a full CI suite. Both died in the first minute of a live run.
This skill is the repeatable procedure for getting that evidence.
Cost gate — read before waking anything
- The harness compute has been stopped by default since 2026-07-04 (#590). Awake it burns ~CAD 17/day (~0.70/hour); stopped it costs ~0.
- Azure runs as PayAsYouGo — awake resources bill real money. There IS a monthly account spend limit, and it fails in the worst way: on 2026-08-08 it killed the window agent mid-poll while the harness stayed Running unattended for ~6h (ops-log; extra burn ≈ CAD 4–5). Treat the limit as an agent-killer, not a cost ceiling.
- Therefore: never leave a window open.
stopruns in every exit path, including when the verification fails. If you are interrupted, stop the harness first and report second. A window driven by an agent dies with the agent — the stop is not guaranteed (the 2026-08-08 incident): after any window, verify the stop against Azure (az containerapp list -g dataq-rg --query "[].{n:name,s:properties.runningStatus}" -o table), never against the script's own log alone. - Before choosing a Snowflake-touching leg (
--adf,--dbt, the Snowflake DAG): check the rotation register indocs/ops-log.mdfirst. Short-lived Snowflake PATs (~15–25 days in practice) and ADF's stale inlinels_snowflakecredential (2026-08-08 entry) can kill a leg before it starts — a dead credential then masquerades as the defect you came to verify. - If the user has not clearly asked for a live run, ask before waking. A window is an outward-facing, billable action.
The harness script
~/Coding/Python/DataQ-harness/scripts/harness_window.sh — harness-side, not git-tracked (ADR 0021). Read its header before the first use in a session; the leg semantics below are summarised from it and the script is the authority.
harness_window.sh status # read-only: app/trigger/job states
harness_window.sh start # wake: redis → Airflow → workers → trigger, ADF triggers on
harness_window.sh run [--adf] [--dags] [--dbt] [--iceberg] # kick the flows as MANUAL executions, re-suspend after
harness_window.sh stop # sleep: reverse order, crons disarmed
harness_window.sh window [...] # start → run → stop, one shotPick the legs by what you need to exercise — each one costs time and money:
| Leg | Exercises | Needs live Snowflake? |
| (none) | the 5 mockdata jobs — files land in ADLS/S3 | no |
--dags | the 3 cron Airflow DAGs, REST-triggered (unpauses first) | flow_a_snowflake_load does |
--adf | the Flow-A ADF pipelines (pl_flow_a_customers, pl_flow_a_orders) | yes |
--iceberg | the iceberg-writer job → appends to retail.purchase_orders (Flow D) | no |
--dbt | the dbt-lineage job → staging views + mart dynamic tables, artifacts to ADLS | yes; runs last so a same-window load is what the marts refresh from |
Full-cycle window takes ~11.5 min. run works standalone (the mockdata jobs do not depend on the Airflow apps).
Suspended-job semantics: an ACA job refuses manual starts, so run resumes each job, starts it, and re-suspends — nothing is left armed on a cron.
Procedure
1. Decide what evidence you need — before waking anything
Write down, explicitly, the reading you expect to observe and what would falsify it. Vague intent produces vague evidence, and a green suite is the thing that already fooled us.
Good: "UC freshness on retail.orders should return a float age in hours; a lower-case and an UPPER-case column name must return identical values."
Bad: "check that UC works."
Choose the minimum legs that produce that reading.
2. Wake and run
~/Coding/Python/DataQ-harness/scripts/harness_window.sh status # confirm the starting state
~/Coding/Python/DataQ-harness/scripts/harness_window.sh start
~/Coding/Python/DataQ-harness/scripts/harness_window.sh run [legs]Run these in the background — a full window is ~11.5 min and macOS has no timeout.
3. Exercise the app against the live data
Pick what matches the change:
- Browser (deployed stack):
E2E_LIVE_BASE_URL=https://<frontend-host> pnpm e2einfrontend/— the opt-infrontend/e2e-live/lane (#531). Never runs in CI. - API (deployed stack):
The frontend nginx proxiesDATAQ_API=https://<frontend-host> DATAQ_BEARER=$(az account get-access-token \ --resource api://<api-app-id> --query accessToken -o tsv) \ python -m backend.scripts.e2e_smoke/apito the internal api. Notee2e_smoke.pyproves the app layer, not the datasources — it is a precondition, not the evidence. - MCP: the 4-query protocol smoke against live
/mcp/(trailing slash matters —docs/site/guides/mcp-setup.md). - The actual reading: trigger the suite whose check you are verifying and read the result row —
metric_value,observed_value, the run status. This is the evidence; everything above is scaffolding.
4. Judge the reading — the part that matters
For each expected reading:
- Is there a value at all? A check that reports "no reading" and stays green is the #953 failure mode. Absence is a red result, not a neutral one.
- Is the value plausible? #520's real signal was
531.8h— the harness genuinely had stopped producing. A number you cannot explain is not a pass. - Do the case variants agree? Run the identifier lower-case and UPPER-case. Identical values prove the dialect quoting is right (#937); differing values prove it is not.
- Did it work for the right reason? If a run turned green after a fix, confirm the fix is why. A dead credential also produces a suspiciously quiet failure — and a datasource connection with a dead credential has no visible state until a run fails (#954), so check worker logs before concluding.
5. Sleep — always
~/Coding/Python/DataQ-harness/scripts/harness_window.sh stop
~/Coding/Python/DataQ-harness/scripts/harness_window.sh status # confirm everything is downstop also disarms the mockdata crons and the dbt-lineage nightly cron. Verify with status AND against Azure directly (az containerapp list …runningStatus…); do not assume — the script's own log is not evidence the stop happened.
6. Record the evidence
A live run whose result is not written down has to be paid for twice.
docs/site/reference/feature-matrix.md— tick a cell only for a datasource you just observed working. A ✅ with no live run is a claim, not a fact.- CLAUDE.md §13 — the reading and the date, with the actual numbers (
"UC freshness 239.06h, lower/UPPER identical"beats"UC verified"). - A GitHub issue for anything the run found — working-agreement #3, never a silent fix.
docs/ops-log.md— every harness start/stop gets an append-only entry with absolute UTC timestamps (CLAUDE.md §12; the settings.json hook will remind you, but write it as part of the window, not as an afterthought).- If the run found a defect a test could not, say so explicitly and name the boundary. That sentence is what turns one incident into a rule.
Rules
- Never print or write a secret. Key Vault values go straight from command substitution into the consuming command — no masked echo, no scratch file. This is a standing constraint, not a preference.
- Never leave the window open. Stop before reporting.
- Never tick a docs cell you did not observe.
- The harness is demo-scoped. Credentials expire and self-signal via #419 alerting; recovery is re-mint + Key Vault update.
See also
/agents driver-boundary-guard— finds the boundaries before the live run does, and tells you which claims a unit test genuinely cannot settledeploy/README.md— pre-deploy and post-deploy smoke checklistsdocs/site/operate/runbook-faq.md— the live-smoke runbook entry- ADR 0021 — why the harness lives outside this repo
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

