# Content structure — executionspace.com

How site content is organized, and the rules for it. **This is documentation, not a build
input** — the live site does not read any of these files. Copy flows one way:

```
canon docs (here)  →  hand-built into the page HTML  →  deployed static site
```

You edit copy here first; it becomes real only when it's carried into a `/web/*.html` page
by hand. Nothing here is fetched, compiled, or bundled at deploy time.

## What lives where

```
content/
├── CONTENT-STRUCTURE.md   ← you are here — the map + conventions
├── SITEMAP.md             ← information architecture: every page, its place in the nav, its status
├── CONTENT-GUIDE.md       ← brand facts, voice, design tokens, real-vs-placeholder rules
├── COPY-DECK.md           ← the approved master copy (V2), transcribed from the Google Doc
└── pages/                 ← one Markdown file per page: the working canon for that page
    ├── homepage.md        ← fully-populated exemplar
    ├── services.md
    ├── about.md
    └── … (one per /web/ page)
```

**Roles, kept distinct so there's a single source of truth:**

| Doc | Answers | Edit when |
|---|---|---|
| `SITEMAP.md` | *What pages exist and how they're linked?* | IA changes (add/remove/re-nest a page) |
| `CONTENT-GUIDE.md` | *What are the brand rules?* (voice, tokens, what's real vs placeholder) | brand/positioning facts change |
| `COPY-DECK.md` | *What's the approved master copy?* (provenance: Asana + Google Doc) | new approved copy lands — then sync back to the Doc |
| `pages/<page>.md` | *What copy goes on THIS page, and what's still open?* | building/updating a specific page |

`pages/*.md` are the **working canon** — the thing referenced when a page is built. They draw
from `COPY-DECK.md` (approved wording) and `CONTENT-GUIDE.md` (rules), and each cites its deck
section so the master and the page stay reconcilable.

## Conventions for a page file (`pages/<page>.md`)

Every page file follows the same shape (see `pages/homepage.md` for the filled-in example):

1. **Title** + a metadata table: `Page` (the `/web/*.html` path), `Nav group`, `Canon copy`
   (which `COPY-DECK.md` section owns it), `Status`.
2. **Purpose** — one or two lines on what the page is for.
3. **Section outline (as built)** — the page's real h1/h2 structure, so the doc and the page
   stay aligned.
4. **Copy** — section-by-section. While the copy-canon is unresolved, a section may carry both
   **Canon (V2 deck)** and **Deployed (current)** clearly labeled; once resolved, collapse to
   the chosen copy.
5. **Open items** — decisions/assets still needed.

## Rules (non-negotiable)

- **Don't invent copy.** Pull from `COPY-DECK.md` or the master Google Doc, or mark `[TBD — Erik]`.
  No fabricated stats, clients, testimonials, logos, or awards on any page (see `CONTENT-GUIDE.md`).
- **Copy-canon is unresolved.** The V2 deck ("digital commerce consultancy", 4 buckets,
  Trust/Approach/Results) and the deployed `/web/` ("Systems Integrator", 3 pillars) disagree.
  Do **not** pick between them unilaterally — flag the conflict; Erik decides. When he does,
  update the affected `pages/*.md` and only then carry it into the HTML.
- **Single source of truth.** IA changes go in `SITEMAP.md`; copy goes in `pages/*.md`; don't
  duplicate the same fact in two docs — link instead.

## Status at a glance

Per-page build/copy status lives in `SITEMAP.md` (the ✅/⚠️/🔜/🔗 column) and in each page
file's Status row. Brand-level open decisions are in `CONTENT-GUIDE.md` → "Open content
decisions for Erik". Branch/IA cleanup is in `../WEB-AUDIT-AND-PLAN.md`.

## Working loop

1. Pick a page → open `pages/<page>.md`.
2. Resolve its Open items (or confirm the canon copy).
3. Carry the copy into `web/<page>.html` by hand, following `CONTENT-GUIDE.md` (tokens, voice).
4. Update the page file's Status and `SITEMAP.md`.
