unpublish · git:20261021.2a75491 · 2026-10-21 · sha256 348e8844d5f1dd70

unpublish git:20261021.2a75491A

Immutable. This exact content never changes and is served at /api/v1/blob/348e8844d5f1dd70.

---
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
python3 "$(git rev-parse --show-toplevel 2>/dev/null || pwd)/plugins/evolve-lite/skills/evolve-lite/unpublish/scripts/unpublish.py" --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.