adapto-content-uploadlisted
Install: claude install-skill adaptocms/adapto-cms-agent-skills
# adapto:content-upload
The pipeline's **gated writer** ([content-pipeline.md](../../shared/content-pipeline.md)). It takes the
Markdown drafts you've approved and pushes them to Adapto: body **md→HTML**, **create-or-update** via the
ledger's local↔CMS id-map (one-way push — local is the source of truth), the SEO metadata mirrored into the
reserved **`_adapto_seo`** collection, everything landing as **draft**. It is **schema-gated** (every target
type must exist first) and **drift-guarded** (it won't silently overwrite backoffice edits).
## When to use
- "Upload the drafts", "push the approved content to Adapto", "update the content in Adapto".
- After you've reviewed `.adapto/drafts/` and want the approved pieces in the CMS.
## When not to use
- Writing/revising the drafts → `adapto:content-create`.
- Taking CMS drafts **live** → `adapto:publish` (upload lands drafts; publish flips them to published).
- Rendering metadata on the site → `adapto:seo-wire`.
## Inputs
- The **approved drafts** in `.adapto/drafts/` (frontmatter per content-pipeline.md §2). The user names which
to upload, or "all reviewed".
- **The ledger** (`.adapto/ledger.json`) — the local↔CMS id-map (create vs update) + drift fingerprints.
- **`.adapto/schema.json`** — collection + `_adapto_seo` ids (the schema gate).
- **`inventory.md`** — to resolve `internal_links` / `category_slugs`.
- The working **tenant** + language (confirm the tenant).
## Outputs
- Created/updated **Articles / Pages / collectio