Package the user's whole AI Personal OS ("Robin") into a portable, shareable plugin — a `.claude-plugin/plugin.json` manifest plus their identity files, best skills, and one scheduled loop, bundled into a folder and a `.zip` that installs on any machine with `claude --plugin-dir` (or the Codex equivalent). Turns "a pile of dotfiles" into "infrastructure you can hand to a teammate." Inventories what Robin is made of, lets the user pick what ships, runs a hard secrets scan so no token/.env/key ever gets bundled, writes a clean manifest, zips it, and test-loads it. Auto-detects Claude Code vs Codex. Use for "/ship-robin", "ship my OS", "package Robin", "export my Chief of Staff", "make my setup a plugin", "share my Robin", "bundle my skills as a plugin". Always shows the file list and asks before zipping. Never bundles secrets.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Package the user's whole AI Personal OS ("Robin") into a portable, shareable plugin — a `.claude-plugin/plugin.json` manifest plus their identity files, best skills, and one scheduled loop, bundled into a folder and a `.zip` that installs on any machine with `claude --plugin-dir` (or the Codex equivalent). Turns "a pile of dotfiles" into "infrastructure you can hand to a teammate." Inventories what Robin is made of, lets the user pick what ships, runs a hard secrets scan so no token/.env/key ever gets bundled, writes a clean manifest, zips it, and test-loads it. Auto-detects Claude Code vs Codex. Use for "/ship-robin", "ship my OS", "package Robin", "export my Chief of Staff", "make my setup a plugin", "share my Robin", "bundle my skills as a plugin". Always shows the file list and asks before zipping. Never bundles secrets.
license
MIT
ship-robin
You are packaging the user's Robin into a portable plugin — the Workshop-5
proof that "your OS is infrastructure, not folder cruft." Outcome: a
my-cos-v0.1/ folder + my-cos-v0.1.zip that a teammate can install with one
command and run one task through.
Do the work; they only pick what ships and paste a name. Two hard rules, stated
up front and never broken: (1) show the exact file list and get a yes before you
zip; (2) never — under any circumstance — bundle a secret. The manifest format,
the zip recipe, and the secrets exclude-list live in reference.md.
<ROOT> = CLAUDE.md (Claude Code) or AGENTS.md (Codex). Match the user's
language in conversation; the manifest + filenames stay English.
Say this first (the mental model):
"Everything that makes Robin yours — how he talks, what he knows, what he can
do, what he runs on a schedule — is just files. We're going to wrap those files
in a manifest so they become one installable thing. Then you (or a teammate) can
drop it on any machine and Robin shows up already knowing the job. We will NOT
pack any password, token, or key — those stay on your machine."
Step 0 — Detect platform (don't ask)
You know if you're Claude Code or Codex. CC → manifest at .claude-plugin/ plugin.json, install via claude --plugin-dir. Codex → also write
.codex-plugin/plugin.json, install via the Codex plugin flow. Write both
manifests so the bundle installs on either — it's two tiny files.
Step 1 — Inventory Robin (show them what he's made of)
Scan and present a checklist of what exists, grouped by layer. Look in ~/.claude/
(or ~/.codex/) and the current project:
Skills — every dir under ~/.claude/skills/ and project skills. Mark which
are self-built vs course-bundle.
A loop — a Routine / Codex Automation / the /give-robin-a-voice listener /
a LaunchAgent / cron entry.
Present it as a list with sizes. This inventory is itself a lightweight /cos-review
— if there's almost nothing to ship, say so gently and point at /cos-review to
plan what to build first.
Step 2 — Who is this for? (ASK — it decides what's in the box)
Two shapes, and you MUST ask which before assembling:
For yourself (full) — the whole OS: identity (<ROOT> + SOUL + user-profile)
3 best skills + 1 loop. A backup / a new-laptop restore.
For a partner (share-safe) — skills + loop + a README stub, NO context/.
Your identity files (SOUL.md, user-profile.md, <ROOT>) were built by
extracting your private AI history — they carry your goals, employer, voice, and
sometimes personal detail. They are NOT for a classmate's disk. The Workshop-5
pair-swap uses the share-safe shape.
Say it plainly: "секреты (токены) не уезжают никогда. Личные identity-файлы — по
умолчанию тоже: для обмена с партнёром берём share-safe вариант — только навыки и
луп, без вашей 'души'."
Never bundle MEMORY.md in either shape unless the user explicitly asks — it's
the deepest personal store.
Then pick the payload. The Workshop-5 target is deliberately small: 3 best skills +
1 loop (+ identity only in the full shape). Ask which 3 skills they're proudest of
(or use daily) and which loop defines their mornings. Power-users can ship more — but
push for a coherent bundle, not a dump. A tight plugin someone can read beats a
40-skill archive.
Step 3 — 🔒 SECRETS SCAN (do this before assembling — non-negotiable)
Before copying a single file into the bundle, scan every candidate for secrets and
exclude anything matching the list in reference.md (.env, *.conf,
~/.robin/, *token*, *secret*, *.pem/*.key, id_*, Railway/Anthropic/
OpenAI/Slack key patterns, anything git-ignored). Then grep the files you WILL
ship for inline key patterns (sk-…, xoxb-…, AAH… bot tokens, long base64).
If you find a secret inside a file that would ship (e.g. a token hard-coded in
a skill), STOP, show the user the file + line, and offer to ship a redacted copy or
skip that file. Never zip a live secret. State the rule out loud — this is the
InfoSec trust contract; a shared plugin is auditable and must be clean.
Step 4 — Assemble the bundle
Build the staging folder (recipe in reference.md):
my-cos-v0.1/
├── .claude-plugin/plugin.json # + .codex-plugin/plugin.json
├── skills/ # the chosen skills, copied in
├── context/ # FULL shape ONLY — <ROOT>, SOUL, user-profile. OMIT for share-safe.
├── loop/ # the chosen loop (Routine def / bridge.py / cron line) + how to arm it
└── README.md # what this is, how to install, how to arm the loop
Share-safe shape omits context/ entirely and the README says "bring your own
identity (/init-robin)." Never copy MEMORY.md into either shape by default.
Fill the manifest fields from reference.md (name, description, version 0.1.0,
author, MIT). The skills are what CC/Codex load automatically from a plugin;
the identity + loop travel as bundled files that the README explains how to
place/arm (be honest that installing the plugin makes the skills live, and the
identity/loop are a copy-in step) — don't overclaim that a plugin auto-installs a
CLAUDE.md.
Step 5 — Confirm the file list, THEN zip
Show the full tree + a one-line size. Ask: "Ship these?" On yes, zip it
(reference.md → "Zip it"). On any hesitation, adjust the selection — never zip
past a maybe.
Step 6 — Test-load it (prove it installs)
Load the bundle back to prove it's real:
Claude Code:claude --plugin-dir ./my-cos-v0.1 → confirm the shipped skills
appear (e.g. /personal-os:<skill> or the plain name).
Codex: the equivalent plugin-add flow from reference.md.
If a skill doesn't show, fix the manifest/paths and re-load before declaring done.
Never end on an untested zip.
Step 7 — Pair-swap (make "I have an OS" real)
Walk the Workshop-5 pair exercise:
Send your .zip to your partner (and get theirs).
Unzip + claude --plugin-dir ./their-cos (isolate it — a fresh folder, so their
identity doesn't clobber yours).
Run one task through their Robin.
File one issue — the smallest thing that broke or confused you — back to them.
Fallback if a partner isn't ready: install the instructor's sample plugin
(demos/sample-cos-plugin.zip) and run a task through that. Same lesson: your OS
is portable, and installing someone else's is one command.
Notes for you (the assistant running this)
Secrets rule is absolute. When in doubt, exclude and tell the user. A leaked
token in a shared plugin is the one unforgivable failure of this skill.
Small + coherent > big + dumped. 3 skills someone can read.
Co-equal: write both manifests; test-load on whichever platform you're on.
--plugin-dir is the CC install; use the Codex plugin flow on Codex.
Don't overclaim. Plugins auto-load skills; identity + loop are a documented
copy-in. Be precise so the student trusts the artifact.
Versioning: default 0.1.0. On re-run, bump patch and re-zip; keep the old
zip so they can roll back. This is their OS's first release — name it like one.
Power-user variant (Vitaly): publish the plugin to a public GitHub repo +
--plugin-url / the marketplace manifest, so others install with one line. Keep
the secrets scan even stricter for a public repo.