# Handoff

> Push the run's accepted artifact to a downstream collaboration surface (cli, other code agents, cloud, desktop) and stamp the artifact manifest with the export target.

- **Type:** Skill
- **Install:** `agentstack add skill-nexu-io-open-design-handoff`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [nexu-io](https://agentstack.voostack.com/s/nexu-io)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [nexu-io](https://github.com/nexu-io)
- **Source:** https://github.com/nexu-io/open-design/tree/main/plugins/_official/atoms/handoff
- **Website:** https://open-design.ai

## Install

```sh
agentstack add skill-nexu-io-open-design-handoff
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Handoff

Spec §11.5.1 / §21.5: an OD run isn't done when the artifact
exists — it's done when the artifact reaches the surface the user
will keep iterating on. This atom is the "push it somewhere"
stage. It's the natural counterpart to `diff-review`.

## Inputs

- The accepted artifact set (after `diff-review` resolved with
  `decision: 'accept' | 'partial'`).
- The export target (one of the `surface` enum values from
  `ArtifactManifest.exportTargets[].surface`).

## Surfaces

| surface | typical follow-on |
| --- | --- |
| `cli` | the user runs `od files read` against the project; no extra push |
| `desktop` | open the project in the OD desktop app |
| `web` | publish to the public marketplace via spec §13's `od://` deep link |
| `docker` | wrap the artifact into a self-contained container (calls the §15.4 image) |
| `github` | open a PR via `od plugin publish --to ` |
| `figma` | round-trip back into the figma-migration source file |
| `code-agent` | hand off to Cursor / Claude Code / Codex sitting on top of the project cwd |

## Output

Updates `ArtifactManifest.exportTargets[]` with a row per push,
appending — never replacing — so the artifact's distribution
history stays append-only.

## Convergence

The atom completes when at least one `exportTargets[]` entry
matches the user's intent or the user explicitly skipped via the
`confirmation` GenUI surface.

## Anti-patterns the prompt fragment forbids

- Pushing the artifact to a surface that wasn't on the user's
  intent list.
- Mutating `sourcePluginSnapshotId` (it's immutable; the export
  trail is additive).
- Treating `figma` as a no-op when the user's source was a Figma
  file — round-trip is the whole point of the figma-migration
  scenario.

## Status

Reserved id, prompt-only fragment in v1.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nexu-io](https://github.com/nexu-io)
- **Source:** [nexu-io/open-design](https://github.com/nexu-io/open-design)
- **License:** Apache-2.0
- **Homepage:** https://open-design.ai

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-nexu-io-open-design-handoff
- Seller: https://agentstack.voostack.com/s/nexu-io
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
