一键导入
scheduler-validation
// Scheduler validator driven by ValidationHook — read-only static verification of scheduled jobs (schedule correctness, configuration, runtime context already collected by deterministic hook). Does not trigger test runs.
// Scheduler validator driven by ValidationHook — read-only static verification of scheduled jobs (schedule correctness, configuration, runtime context already collected by deterministic hook). Does not trigger test runs.
| name | scheduler-validation |
| description | Scheduler validator driven by ValidationHook — read-only static verification of scheduled jobs (schedule correctness, configuration, runtime context already collected by deterministic hook). Does not trigger test runs. |
| tags | ["scheduler","orchestration","validation","data-engineering"] |
| version | 2.0.0 |
| user_invocable | false |
| disable_model_invocation | false |
| allowed_agents | ["scheduler"] |
| kind | validator |
| severity | blocking |
| mode | llm |
| targets | [{"type":"scheduler_job"}] |
Driven by ValidationHook.on_end for scheduler runs. The hook passes a
SessionTarget containing every SchedulerJobTarget the run delivered.
Iterate each target and run the checks below.
You receive SessionTarget.targets — loop over SchedulerJobTarget entries.
Each carries platform + job_id + optional job_name.
Layer A (the builtin hook) has already confirmed each job exists and
is not in a failed status. When the scheduler profile exposes runtime
tools, ValidationHook has also deterministically triggered the job once,
polled list_job_runs, and attached a scheduler_job_trigger_run precheck
before this skill runs. Your job is to verify schedule correctness,
configuration, and any runtime context already present.
Read-only static verification. Never trigger a test run from this LLM validator. Runtime triggering is deterministic ValidationHook code, not a model decision.
For every SchedulerJobTarget in the session:
get_scheduler_job(job_id) and confirm the
schedule expression matches the intended cron (e.g. user asked for
"daily" but job submitted 0 * * * *).get_scheduler_job (description, SQL path, job_type, connection id) match
the intended setup.list_job_runs(job_id, limit=1).
success → report the success.failed → call get_run_log(job_id, run_id), surface the
error as a blocking finding so the user can fix before the next schedule
window hits.running → advisory (in-progress; can't judge yet).| Check | Tool | What to verify |
|---|---|---|
| Job exists | get_scheduler_job | Status is active, schedule is correct |
| Latest run inspected | list_job_runs | Latest run status is success, or no run history is advisory |
| Run log clean | get_run_log | No errors in output (only check on failure) |
Report a table with these columns:
| Column | Description |
|---|---|
| Job ID | The scheduler job identifier |
| Schedule | Cron expression |
| Latest Run | PASS if latest run succeeded, FAIL + error summary if it failed, ADVISORY if absent/running |
| Overall | PASS or FAIL |
If the latest run failed, include the error message from get_run_log so the user can diagnose the issue. Never call trigger_scheduler_job.
Create database tables from SQL (CTAS) or natural language descriptions
Generate MetricFlow metrics from natural language business descriptions
Generate MetricFlow semantic models from database tables with validation and Knowledge Base publishing
Activate when the gen_job agent detects that the source and target databases differ. Covers cross-database transfer lifecycle - type mapping via adapter Mixin hints, DDL generation, data transfer via transfer_query_result, and lightweight reconciliation.
Execution guide for Airflow scheduled jobs — troubleshooting, updating, conn_id conventions, and cron references
Create, view, and manage Grafana dashboards with panels and datasources