ワンクリックで
airflow-workflow
Execution guide for Airflow scheduled jobs — troubleshooting, updating, conn_id conventions, and cron references
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Execution guide for Airflow scheduled jobs — troubleshooting, updating, conn_id conventions, and cron references
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Generate MetricFlow metrics from natural language business descriptions
Author MetricFlow semantic model YAML from database tables with validation and Knowledge Base publishing
Optional semantic-model profiling workflow that mines historical SQL and bounded column distributions before YAML authoring
Build the project's vector-indexed knowledge base from files plus database metadata — optionally scoped to specific files / tables / datasources / domains. Scan the in-scope material, classify it into business domains, explore each domain's tables and docs in parallel with explore subagents (the validated-query SQL corpus is enumerated directly, no explore needed), then (after the user confirms a generation manifest — or directly, in the same turn, when the user has waived confirmation) route every artifact to its store via storage-classify, generating semantic_models / metrics / reference_sql (and mining any extra knowledge), and refresh AGENTS.md's KB index. The lightweight /init handles the AGENTS.md inventory plus file-based knowledge/memory; this skill owns the heavy vector-store generation.
Create new Datus skills from scratch. Use when users want to build a new skill, scaffold a skill directory, or capture a workflow as a reusable skill. Trigger phrases include "create a skill", "make a skill for", "turn this into a skill", "new skill".
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.
| name | airflow-workflow |
| description | Execution guide for Airflow scheduled jobs — troubleshooting, updating, conn_id conventions, and cron references |
| tags | ["scheduler","airflow","workflow"] |
| version | 1.0.0 |
| user_invocable | false |
| allowed_agents | ["scheduler"] |
Execution guide for the scheduler subagent working with Airflow.
get_scheduler_job(job_id)list_job_runs(job_id, limit=5) to find the failed runget_run_log(job_id, run_id) for the failed run_idupdate_job()update_job(job_id, sql_file_path=..., job_name=..., conn_id=...)trigger_scheduler_job(job_id)list_job_runs(job_id, limit=1)get_scheduler_job(job_id) to see existing configpause_job(job_id) to prevent runs during updatewrite_file or edit_file to save the new SQL under
jobs/<job_name>.sqlupdate_job(job_id, sql_file_path=..., job_name=..., conn_id=...)resume_job(job_id) to re-enable schedulingdelete_job(job_id).delete_job returns success=0, report the
deletion as failed or incomplete. Do not claim completion or success.get_scheduler_job(job_id) if you
need a follow-up check. For Airflow, scheduling deletion is complete when
the job is not found or is inactive/deleted.list_scheduler_jobs may omit an Airflow DAG
after its file is removed even while Airflow metadata still exists and blocks
re-creation with the same job id.dag_id may not be immediately reusable via
submit; use update or retry cleanup if needed.delete_job owns Airflow DAG file
removal. For other files, use a dedicated delete-file tool if one is
available; otherwise report that file deletion is unavailable. Do not
overwrite or empty files as a substitute for deletion.conn_id)submit_sql_job and update_job require conn_id — the Airflow Connection ID for the target database.
The connection is managed entirely by Airflow (Admin > Connections) and resolved at runtime by the scheduler worker.
Available conn_id values are shown in the submit_sql_job and update_job tool descriptions (from scheduler.connections in agent.yml).
job_name: <frequency>_<domain>_<description>, e.g. daily_sales_summary, hourly_order_countjobs/<job_name>.sqlBefore calling submit_sql_job or update_job, create or update that SQL
file with write_file / edit_file. Do not ask the user to create the file
when filesystem tools are available.
| Schedule | Cron |
|---|---|
| Every day at 8am | 0 8 * * * |
| Every hour | 0 * * * * |
| Every 2 hours | 0 */2 * * * |
| Monday at 9am | 0 9 * * 1 |
| 1st of month at midnight | 0 0 1 * * |
| Goal | Tool |
|---|---|
| Create SQL file | write_file(path="jobs/<job_name>.sql", content=...) |
| Submit SQL job | submit_sql_job(job_name, sql_file_path, conn_id) |
| Submit SparkSQL job | submit_sparksql_job(job_name, sql_file_path) |
| Check job status | get_scheduler_job(job_id) |
| List all jobs | list_scheduler_jobs(limit=20) |
| Trigger manual run | trigger_scheduler_job(job_id) only when explicitly requested or troubleshooting |
| View run history | list_job_runs(job_id) |
| View run log | get_run_log(job_id, run_id) |
| Pause / Resume | pause_job(job_id) / resume_job(job_id) |
| Update job | update_job(job_id, sql_file_path, job_name, conn_id) |
| Delete job | delete_job(job_id) |