Goal
Turn an existing WordPress site into the editorial control plane for a static documentation site served from docs.example.com.
Product contract
- Register an admin-visible, REST-enabled, hierarchical documentation CPT that is not publicly queryable and has no WordPress frontend rewrite or archive.
- Use WordPress taxonomies and ordering for collections, topics, navigation, and static information architecture.
- Replace WordPress view/preview URLs with canonical or preview URLs on the configured docs hostname.
- Add a deterministic Markdown synchronization boundary suitable for PushMD: stable document identity, frontmatter, taxonomy relationships, hierarchy, ordering, status, and content hashes.
- Produce a provider-neutral publication manifest consumed by Blume or another static builder. Hosting remains an adapter; no Spacefast, Hetzner, Pressable, or WordPress.com semantics belong in the core plugin.
- Provide explicit preview/approve semantics for import/pull operations. Git acceptance and deployment remain reviewable operations rather than direct pushes from a content edit.
- Reuse this repository’s existing Blume frontend as the first consumer and preserve Git Markdown as the accepted publication record.
Initial vertical slice
Ship a distributable plugin package in this repository with deterministic automated coverage for registration, frontend escape behavior, taxonomy serialization, Markdown export/import round trips, conflict detection, and publication manifests. Document installation and the docs.example.com workflow.
The implementation builds on #14 and PR #18.
Goal
Turn an existing WordPress site into the editorial control plane for a static documentation site served from
docs.example.com.Product contract
Initial vertical slice
Ship a distributable plugin package in this repository with deterministic automated coverage for registration, frontend escape behavior, taxonomy serialization, Markdown export/import round trips, conflict detection, and publication manifests. Document installation and the
docs.example.comworkflow.The implementation builds on #14 and PR #18.