promo-clip
Use when asked for a promo clip, ролик, announcement video, teaser or launch video for a product or plugin, or when a task involves Remotion.
Use when Compound V's dispatcher needs to run one file-scoped job on a chosen backend (Claude subagent, headless Codex worker, headless Antigravity worker, headless Cursor worker, or headless opencode worker) and get back a canonical job_result. The single job_spec → job_result
$ npx -y skills add procoders/superpowers-v --skill backend-launcher --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/backend-launcherContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when Compound V's dispatcher needs to run one file-scoped job on a chosen backend (Claude subagent, headless Codex worker, headless Antigravity worker, headless Cursor worker, or headless opencode worker) and get back a canonical job_result. The single job_spec → job_result
name: backend-launcher description: Use when Compound V's dispatcher needs to run one file-scoped job on a chosen backend (Claude subagent, headless Codex worker, headless Antigravity worker, headless Cursor worker, or headless opencode worker) and get back a canonical job_result. The single job_spec → job_result contract every adapter implements; the orchestrator speaks only this contract and never sees backend-specific flags.
> *"Same syringe, different supes. The dispatcher doesn't care who's holding it — it cares what comes back."*
A reusable sub-skill (a sibling directory under `skills/`, pulled in by prose "read this file and apply"). It exposes **one contract**. The orchestrator hands a `job_spec` to whichever adapter the manifest's `backend` names, and gets back a canonical `job_result` — identical shape across every backend. Enforcement is uniform because it lives in the *caller's* scope gate, not in the backend.
There is no skill-import API: an adapter is a sibling doc (`adapter-codex.md`, `adapter-claude.md`, `adapter-antigravity.md`) that says "read the contract in this file, then do the backend-specific steps." Adapters are built by downstream tasks; this file is the contract they implement.
**Resolving the plugin root.** The `scripts/` invoked below ship with the plugin, not with the caller's repository. Resolve the plugin root once per session before calling any of them:
CV="${CLAUDE_PLUGIN_ROOT:-$(ls -d "$HOME"/.claude/plugins/cache/*/superpowers-v/*/ 2>/dev/null | sort -V | tail -1)}"
CV="${CV:-$PWD}"; CV="${CV%/}"`CLAUDE_PLUGIN_ROOT` is set for hooks but is not set in this Bash environment, so treat it as a hint, never the whole answer — the fallback line covers an installed plugin cache or a checkout of this repo.
---
{
"backend": "codex", // claude | codex | antigravity | cursor | opencode
"prompt": "…", // the worker prompt (opens with the planner/executor lock, below)
"tier": "standard", // frontier | deep | standard | light — the routing INTENT (stable across model churn)
"effort": "medium", // low | medium | high | xhigh — orthogonal reasoning-effort hint (optional; xhigh is codex-only)
"model": "gpt-5.6-sol", // OPTIONAL explicit override; when present it skips resolution.
// execution-layer data — NEVER appears in any frontmatter
"cwd": "/repo", // absolute repo root
"write_allowed": ["src/features/sequences/components/**"],
"read_only": false, // true ⇒ sandbox read-only, no merge
"timeout_sec": 900,
"network": false, // maps to sandbox_workspace_write.network_access
"output_schema": "/abs/schemas/job_result.schema.json", // optional
"test_contract": { // optional (v3.0 Feature B3) — the RESOLVED test contract
"scope": "impacted", // full | impacted | floor_only | impacted+referencing (the job's test_scope; the last is 3.4.1's SCOPED/DIRECT unmapped-path resolution)
"floor_command": "bash tests/run-floor.sh",
"full_command": "bash tests/run-all.sh",
"resolved_commands": [ // caller-resolved, ordered, deduped; the floor is first
"bash tests/run-floor.sh",
"npm run test:unit"
]
}
}**`tier` + `effort` + `model` — intent over hardcoded strings.** A `job_spec` carries the routing **intent** (`tier`, and optional `effort`), not a hardcoded model. The concrete `model` is **resolved before dispatch** by [`scripts/compound-v-resolve-model.py`](../../scripts/compound-v-resolve-model.py) from `(backend, tier, effort, config)` — so the plugin survives model churn (refresh the config `models` map via `/v:models`, never the call sites). A job MUST carry `model` OR `tier`; an explicit `model` override skips resolution and always wins. `effort` is passed through to the worker: for `codex` it becomes `-c model_reasoning_effort=<effort>`; for `claude` it is advisory (the `Task` path has no separate effort flag). `xhigh` is valid **iff** `backend: codex`; every other backend rejects it with a clear error naming the rule (use `high` instead) — the resolver and the manifest validator both enforce this. `tier`/`effort`/`model` are execution-layer values and never appear in any frontmatter. See [`skills/compound-v/execution-manifest.md`](../compound-v/execution-manifest.md) for the tier vocabulary, the config `models` map shape, and the reviewer ⇒ deep rule.
Defined and validated by [`schemas/job_result.schema.json`](../../schemas/job_result.schema.json). Worked instance: [`examples/job_result.example.json`](../../examples/job_result.example.json).
{
"status": "success", // success | blocked | timeout | error
"blocked": false, // true if any file outside write_allowed changed
"files_changed": ["src/features/sequences/components/Editor.tsx"],
"violations": [], // files written but NOT allowed ⇒ blocked
"summary": "Added step editor with create/edit/delete.",
"failure_class": null, // null on success/blocked; else the classified backend failure
"session_id": "uuid", // codex exec resume <uuid>
"worktree": "/tmp/compound-v/<run-id>/task-1-editor-ui",
"exit_code": 0,
"tests": { // optional, MEASURED-ONLY (v3.0 B3) — absent when no tests ran
"command": "bash tests/run-floor.sh\nnpm run test:unit",
"exit_code": 0,
"scope": "impacted",
"selected_count": 2,
"duration_ms": 8412, // measured-only: ABSENT rather than estimated
"failures": [] // measured-only: the identifiers that failed
},
"gate_receipt": { … } // optionCompound V — a multi-model coding sidekick for Superpowers, running on Claude Code. You describe a feature. Claude sizes the request, plans it, splits it into non-overlapping pieces, and hands each piece to a worker in its own isolated worktree.
Use when asked for a promo clip, ролик, announcement video, teaser or launch video for a product or plugin, or when a task involves Remotion.
Use when superpowers:brainstorming is about to begin (pre-brainstorm recon), OR has produced a spec, OR when superpowers:writing-plans has produced a plan, OR…
Use when the user wants to deeply review a pull/merge request or a local diff — "review this PR", "grill the MR", "stress-test this diff", "deep-dive code…