brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
automation-schedules-sensorsDefine, debug, and test Dagster schedules, sensors, asset sensors, run status sensors, declarative automation conditions, freshness automation, and backfill policies.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the task is about time-based or event-based automation in Dagster code:
ScheduleDefinition, @schedule, cron schedules, time zones, schedule run config/tags, and schedule unit tests.@sensor, RunRequest, SkipReason, SensorResult, cursor handling, run keys, resource-backed sensors, and sensor unit tests.@asset_sensor, run status sensors, failure sensors, and tests using built Dagster context objects.AutomationCondition, AutomationConditionSensorDefinition, freshness-driven automation, and BackfillPolicy for partitioned assets.Route elsewhere when the task is primarily about core asset modeling, deployment/daemon operations, or starting/stopping local CLI processes.
python skills/dagster/sub-skills/automation-schedules-sensors/scripts/preview_sensor_schedule.py --help.@schedule or ScheduleDefinition; test with build_schedule_context() and .evaluate_tick().@sensor, stable RunRequest(run_key=...), and context.update_cursor(...) or SensorResult(cursor=...).@asset_sensor; prefer declarative automation for asset dependency propagation when custom per-event run config is not required.@run_status_sensor or @run_failure_sensor; avoid triggering an infinite loop when the requested job can produce the same monitored status.AutomationCondition.on_cron(), AutomationCondition.eager(), AutomationCondition.on_missing(), freshness policies/checks, and BackfillPolicy.Definitions(schedules=[...], sensors=[...]) that loads with the target jobs/assets.job, job_name, jobs, asset_selection, or target as accepted by that definition.run_key on each RunRequest; use stable sensor run keys only when duplicate suppression should survive cursor resets.build_*_context.