# Redeploy

> Full post-release runtime redeploy — dispatches to node_redeploy_orchestrator (canonical ORCHESTRATOR; prod-gate COMPUTE + deploy publish-monitor EFFECT + FSM REDUCER over the bus)

- Skill: `omninode-ai/redeploy` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add omninode-ai/redeploy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/omninode-ai/redeploy/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: OmniNode-ai (https://skillmd.com/u/omninode-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/omninode-ai/redeploy

---


# Redeploy

**Announce at start:** "I'm using the redeploy skill."

## Usage

```
/redeploy
/redeploy --scope runtime
/redeploy --verify-only
/redeploy --dry-run
```

## Execution

Dispatch to `node_redeploy_orchestrator` — the canonical ORCHESTRATOR that owns phase sequencing and dispatches the prod-promotion gate (COMPUTE), the deploy-agent publish-monitor + rollback (EFFECT), and the FSM (REDUCER) over the bus. The shim performs a single dispatch and surfaces the node's terminal `ModelRedeployCompletedEvent` receipt.

```bash
onex run-node node_redeploy_orchestrator \
  --input '{"correlation_id": null, "scope": "full", "git_ref": "origin/main", "skip_sync": false, "verify_only": false, "dry_run": false}' \
  --timeout 660
```

On non-zero exit, a `SkillRoutingError` JSON envelope is returned — surface it directly; do not produce prose. All phase orchestration, retry logic, and circuit-breaker behavior live in the canonical node handlers, not in this shim.

## Architecture

```
SKILL.md     -> thin dispatch shim (this file)
orchestrator -> omnimarket/src/omnimarket/nodes/node_redeploy_orchestrator/   (ORCHESTRATOR; dispatches over the bus)
prod-gate    -> omnimarket/src/omnimarket/nodes/node_prod_promotion_gate_compute/  (COMPUTE; pure gate decision)
deploy       -> omnimarket/src/omnimarket/nodes/node_redeploy_deploy_effect/  (EFFECT; deploy-agent publish-monitor + rollback)
fsm          -> omnimarket/src/omnimarket/nodes/node_redeploy_fsm_reducer/    (REDUCER; phase transitions + circuit breaker)
handlers     -> each implements ProtocolMessageHandler.handle(envelope) -> ModelHandlerOutput
```

## Anti-Patterns

Two friction surfaces caused this skill to be misused — both produce
high-severity events in `.onex_state/friction/friction.ndjson`:

1. **`redeploy:tooling/manual-deploy-execution`** — never run `deploy-runtime.sh`,
   `docker compose up`, or any direct Docker / SSH command from the operator
   session. Dispatch to `node_redeploy` via the canonical invocation above.
   The node owns SSH-to-`INFRA_HOST`, Infisical seeding, and health verification;
   manual execution skips all three.
2. **`redeploy:tooling/deploy-targets-local-not-201`** — runtime containers live
   on `${INFRA_HOST}` (the default host runs on the LAN; see `~/.omnibase/.env`).
   The redeploy node SSHes to `INFRA_HOST` and runs Docker there. Never target
   `localhost` or local Docker from the redeploy skill or its callers — local
   Docker has no runtime containers and the deploy will silently no-op.

If the dispatched node is unavailable (e.g. omnimarket runtime offline), surface
the `SkillRoutingError` and stop. Do NOT fall through to inline `deploy-runtime.sh`
execution; that recreates the original friction.

