Editing content
For non-technical editors. How to log in, edit a page, publish via the editorial workflow, and what NOT to change.
Before the CMS goes live
Until Phase 5's GitHub OAuth setup lands, the CMS at /admin will load but the Login with GitHub button won't actually authenticate. To edit content in the meantime:
- Open the file you want to edit in the docs/ tree on GitHub.
- Click the pencil icon (top right of the file view) to edit in the browser.
- Make your change. Scroll down. Write a short commit message. Choose "Create a new branch and start a pull request".
- A Ne-Lo maintainer reviews + merges.
Same outcome as the CMS, slightly more clicks. The CMS just makes step 1–3 prettier.
Once the CMS goes live
1. Log in
Go to https://wiki.anatomyofmarketing.dev/admin. Click Login with GitHub.
You'll be redirected to GitHub to authorise. The first time, GitHub asks "Authorise Anatomy of Marketing CMS?" — click Authorise.
You must have write access to the-kizz/anatomy-of-marketing for the CMS to let you save. Ne-Lo grants this; talk to Ross or Kieran.
2. Pick what to edit
The sidebar shows the same hierarchy as the wiki:
- Foundations — context pages (Three Layers, Mission, Vision, etc.)
- Hats — the 6 top-level marketing categories (Investment, Company Strategy, Brand Strategy, Brand Expression, Execution, Data & Insights)
- Concepts — the 60 individual concept pages, grouped by hat
- Methodology — Diagnose, Prioritise, Build, Innovate, plus the overview and quarterly-rhythm pages
- Mindset — the 8 principle scaffolds (most are placeholders awaiting your input)
- References → Intellectual Lineage — the 7 thinker pages
Click any page to open the editor.
3. Edit
Each page has a left-hand form (front-matter fields) and a right-hand body (Markdown content with a preview pane).
For a concept page, the most useful sections to fill in are:
- Definition — already filled from the source glossary. Don't change unless the glossary itself is wrong.
- Why it matters — same.
- How it connects — currently a 🚧 placeholder. Replace with prose explaining how this concept relates to others. The Mermaid diagram block (if you add one) auto-renders.
- The framework — currently a 🚧 placeholder. Add the operational framework or template that practitioners use.
- Inputs & outputs — currently empty arrays. Add concept slugs (e.g.,
target-audience-profiles) that feed into / out of this concept. - Examples — currently a 🚧 placeholder. Add 2–3 worked examples.
- Common pitfalls — currently a 🚧 placeholder. List 3–5 things to watch for.
- Further reading — currently a 🚧 placeholder. Link to canonical external sources.
For a mindset principle, replace the placeholder title (Mindset Principle 1) with the actual principle, then fill the body.
For an intellectual-lineage thinker, add the attribution prose: who, when, what they contributed, how AoM draws from their work.
4. Save
Click Save (top right). The CMS:
- Creates a new branch in GitHub
- Commits your change with a message like
Update concept "Purpose" via CMS - Opens a pull request against
main
You don't see any of this directly — the CMS just shows "Saved!"
5. Wait for review
A Ne-Lo maintainer (Kieran or Ross, currently) reviews the PR. They may:
- Merge it immediately (small fixes)
- Comment with questions or revisions
- Request changes (you can edit the same page again — the CMS will append commits to the existing PR)
Once merged, the change goes live on wiki.anatomyofmarketing.dev within ~30 seconds (GitHub Actions auto-deploys to Cloudflare).
What NOT to change without discussion
These break things in subtle and expensive ways:
| Field | Why it's locked |
|---|---|
| slug | URL stability — citations break if a slug changes. The CMS marks the field immutable; the build also rejects mismatches. |
| hat assignment on a concept | Reorders the entire information architecture. The 6-hat taxonomy is canonical (CLAUDE.md guardrail). |
| content_type | Tells the validator which schema to apply. Wrong = build fails. |
status from stable to draft | Removes the page from search and AI indexes. Only flip if you're actively rewriting and want the page out of indexes during the rewrite. |
| license / trademark / spec_version fields in front-matter | Project-wide; flip via codebase change, not CMS edit. |
| The 6 hats count or names | Same — taxonomy is canonical. |
| The 60 concepts count or any concept's canonical name | Same. Adding a new concept is a deliberate roadmap item, not a CMS edit. |
If you find yourself wanting to change one of these, open a GitHub issue tagged discuss-before-pr — it's almost always a sign that something deeper needs aligning first.
Uploading courseware
To add a slide deck, hat reference poster, or assignment template:
- Go to
/admin→ in the left sidebar, the Courseware collection (Phase 5+ — collection wired into config.yml from Zod). - Drag-drop your file (PDF, ZIP, etc.).
- Add a title + 1-line description.
- Save → PR → merge → live at
https://wiki.anatomyofmarketing.dev/courseware/<file>.
For now (pre-CMS-courseware-collection), drop files directly into static/courseware/ via a PR.
Open content vs gated bonus downloads (the split)
This split is load-bearing for the project's strategy. Don't blur it.
| Surface | Where it lives | Auth required? |
|---|---|---|
| 60 concept pages, 6 hat overviews, methodology, mindset, foundations, references | docs/**/*.md | No. Open methodology under CC BY 4.0. |
.md mirrors (e.g., /concepts/.../purpose.md) | Auto-generated at build time | No. Asserted by CI on every PR (GATE-04). |
/aom.json, /llms.txt, /llms-full.txt | Auto-generated at build time | No. AI agents read these directly. |
MCP server queries via the-kizz/aom-mcp | Local install | No. |
| Bonus downloads — slide decks, expandable hat-map images, courseware bundles, workshop kits | static/downloads/gated/** (Phase 6+) | Lead-capture form (email + company name + role; no account, no password) |
Bonus downloads are the only thing behind a registration form. Concept pages and the methodology itself are open by spec. The CI test in validate.yml walks every spec URL unauthenticated and asserts 200; a PR that puts a signup gate on a concept page fails the build.
If a contributor proposes gating spec content (e.g., paywalling a hat overview), the answer is no. Open discuss-before-pr issue if there's a real strategic reason — it would require milestone-level approval.
Common problems
| Problem | Fix |
|---|---|
| "Login with GitHub" does nothing | OAuth Worker isn't deployed yet. See Why for status; talk to Ross. |
| "Field is required" red error | A required field is empty. Hover the field for the description. |
| "Save" is greyed out | Validation is failing on one of the front-matter fields. Check for red errors at the top of the form. |
| The preview pane looks wrong | Sveltia's preview is approximate. Trust the actual built site (after merge) over the preview. |
| Your PR shows extra files you didn't change | The CMS sometimes batches related codegen changes. Mention to a maintainer if anything looks suspicious. |
Asking for help
If you're stuck, comment on the PR (anyone can see it) or open a GitHub issue. Both go to the Ne-Lo maintainer queue.