# Documenter — F-026 CMS module

## Summary
CMS module exposes admin-managed pages with slug routing and draft/publish states. Public endpoints only return published pages.

## Public API notes

| Route | Access | Result |
|---|---|---|
| POST /cms/pages | admin | Creates draft page |
| PATCH /cms/pages/:id | admin | Updates fields |
| POST /cms/pages/:id/publish | admin | Sets status to published |
| POST /cms/pages/:id/unpublish | admin | Sets status to draft |
| GET /cms/pages/:slug | public | Returns page only when published |

## Errors
- `CMS_DUPLICATE_SLUG` — HTTP 409
- `CMS_NOT_FOUND` — HTTP 404 (covers missing or draft pages)

## Evidence
- `work/artifacts/F-026/architect.md`
- `work/artifacts/F-026/implementer.md`
- `work/artifacts/F-026/reviewer.json`
- `work/artifacts/F-026/security.json`
- `work/artifacts/F-026/qa.json`