--- name: homerail-dag-ops description: Design, start, supervise, inspect, and continue HomeRail DAG workflows from any agent with CLI or HTTP access. Use for project work delegated to a DAG, workflow patterns, existing-run results, approval/Actor follow-ups, live panels, and background event callbacks. Handles the full run lifecycle with event-driven waiting instead of repeated model polling. --- # HomeRail DAG Use one workflow: **define outputs → choose/validate a DAG → start once → wait outside the model → handle decisions → verify evidence**. Running and supervising are stages of the same task. Load only the reference needed for the current stage; do not load every HomeRail skill before starting. ## Choose the next action | Request or current state | Action | | --- | --- | | New project work | Use the start path below; reuse a workflow/profile. | | New topology or a reusable pattern | Read [patterns.md](references/patterns.md); inspect the live schema/catalog. | | Active run requiring event-driven waiting | Read [supervision.md](references/supervision.md); use the current host’s blocking event tool or a verified optional adapter. | | `[homerail-dag-event ...]` callback, including the former supervision skill name | Follow event consumption in [supervision.md](references/supervision.md). | | Requested status, results, or diagnosis | Read [inspection.md](references/inspection.md); inspect only relevant evidence. | | Live Actor panels or a later per-Actor command | Read [multi-actor-surfaces.md](references/multi-actor-surfaces.md). | The old `homerail-dag-patterns` entry remains for compatibility. Its content lives in this skill's references; it is not a prerequisite skill to load. ## Start once 1. Establish the output, source revision/inputs, permitted changes, budget, and acceptance evidence. If unattended supervision is needed, confirm the host can await a tool/event or receive a callback before starting the run. If a run ID already exists, inspect that run first. 2. Resolve the existing CLI and Manager origin. Use `hr doctor` for readiness; use `hr runtime status` if diagnosis is needed. If `hr` is absent but `HOMERAIL_CLI_ENTRYPOINT` is set, use `node "$HOMERAIL_CLI_ENTRYPOINT"`. Do not rebuild or restart a ready installation for an ordinary DAG run. Use `homerail-install-ops` only for an actual installation/service task. 3. Use `hr --json templates list`, or inspect a known database workflow. Read its input contract. Resolve template files from the verified HomeRail source or Manager catalog; `assets/...` is not relative to an arbitrary project. 4. Give Workers reachable inputs. Container Workers do not automatically see host paths: supply a cloneable repository URL and pinned revision, or the workflow's supported workspace/input mechanism. Keep input identity shared across nodes and verify access from the executing environment. 5. For a new/changed workflow, inspect `hr dag schema`, validate with `hr --json dag validate `, then sync. Bind database LLM settings through a runtime profile; keep provider/model credentials out of workflow YAML. ```bash # Existing database workflow and runtime profile hr run --workflow --profile --prompt "" # Alternatively: a concrete template with its actual input contract hr run --prompt "" ``` Template-embedded profiles and database profiles differ: use `--workflow` for a DB profile or the documented sync flow. Check local help for unfamiliar flags. Record the returned run ID, workflow revision/hash, inputs and acceptance criteria in a private receipt. If submission has an unknown outcome, reconcile existing runs; do not blindly create a replacement. In the Manager Agent, available tools such as `list_orchestrations`, `create_and_run`, `invoke_run`, `get_run_status`, `get_dag_schema`, and `validate_dag_workflow` are shortcuts for covered operations. Use structured CLI output for the rest. Any agent may use these CLI/HTTP contracts; no particular supervisor model, SDK or harness is required. Do not launch another agent or model merely to subscribe to or consume events. ## Wait, decide, and finish The default bundled path is `register` → `wait` → handle the returned event → `ack`. Registration persists identity; `wait` blocks in ordinary code and returns one actionable JSON event. Let the host await that tool instead of repeatedly invoking the model. Registration alone does not start a background observer. If the host provides native event subscriptions, use its equivalent mechanism. An optional callback adapter can deliver the same JSON into a persistent host session. End the model turn after registration only when that continuing event path is verified. A plain skill cannot force a host to suspend, steer or resume an agent. If the host lacks event/tool continuation, explain that limitation; do not claim automatic wakeup or substitute a Codex executor. Routine progress stays quiet. `hr dag watch`/`supervise` remain optional foreground inspection tools, not a model polling loop. A requested snapshot needs no new watcher. On a callback, verify the single event and current run identity, handle the current condition, record the finding/action intent, and acknowledge consumption. An ACK does not approve a proposal or end a waiting DAG. Let the human decide approval nodes. Reconcile ambiguous mutation outcomes before retrying. Check terminal status and relevant artifacts/handoffs against the original acceptance criteria. A completed pipeline or passing advisory scorecard alone is not proof of useful output. See [inspection.md](references/inspection.md). End the turn when nothing actionable remains. Keep secrets in existing Manager configuration/encrypted storage, never in prompts, templates, receipts or commits. Keep deployment and disruptive runtime changes within the user's authorized scope. For HomeRail self-development read [architecture.md](references/architecture.md); for skill changes read [acceptance.md](references/acceptance.md).