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.
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.
diff-review resolved with
decision: 'accept' | 'partial').surface enum values from
ArtifactManifest.exportTargets[].surface).| 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 <catalog> |
| 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 |
Updates ArtifactManifest.exportTargets[] with a row per push,
appending — never replacing — so the artifact's distribution
history stays append-only.
The atom completes when at least one exportTargets[] entry
matches the user's intent or the user explicitly skipped via the
confirmation GenUI surface.
sourcePluginSnapshotId (it's immutable; the export
trail is additive).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.Implemented by the daemon runner in
apps/daemon/src/plugins/atoms/handoff.ts. It records provenance,
handoffKind, and export targets, then persists the updated artifact
manifest.
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/handoff · pinned to the source commit
# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/atoms/handoff" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/atoms/handoff" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/handoff
Scanner static-checks@0.1.0 · commit 9881cff70e02. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
No static rules matched. This is not a safety guarantee.