unpublish · git:20261021.2a75491 · 2026-10-21 · sha256 afd782cb99c8193f
unpublish git:20261021.2a75491A
Immutable. This exact content never changes and is served at /api/v1/blob/afd782cb99c8193f.
---
name: unpublish
description: Remove your published entity from a write-scope repository and restore a private copy.
---
# Unpublish an Entity
Read `evolve.config.yaml`. Select a write-scope repo and a published
`{type}/{filename}` owned by `identity.user`. Ask which repo if ambiguous.
Explain that unpublishing removes the current shared copy after pushing; it
does not erase git history or copies already downloaded by subscribers.
Run:
```bash
sh -lc 'real_home="$(python3 -c "import os,pwd; print(pwd.getpwuid(os.getuid()).pw_dir)")"; config_home="${CLAW_CONFIG_HOME:-$real_home/.claw}"; script=".claw/skills/evolve-lite:unpublish/scripts/unpublish.py"; [ -f "$script" ] || script="$config_home/skills/evolve-lite:unpublish/scripts/unpublish.py"; python3 "$script" --entity "{filename}" --type "{type}" --repo "{repo}" --user "{identity.user}"'
```
The script restores a private entity before removing the shared file. It refuses
unknown or different owners, and refuses to overwrite an existing private
mirror. If a mirror exists, compare the two and reconcile them with the user
before retrying; do not delete either copy blindly.
Stage only the selected deletion and publish it:
```bash
git -C ".evolve/entities/subscribed/{repo}" add -- "{type}/{filename}"
git -C ".evolve/entities/subscribed/{repo}" commit -m "[evolve] unpublish: {filename}"
git -C ".evolve/entities/subscribed/{repo}" push origin "{branch}"
```
Use the configured branch (default `main`). For a rejected push follow the
non-fast-forward recovery workflow in `/evolve-lite:publish`. Report
success only after pushing. Retain the restored private copy on push failure.