Skip to main content

Docs Guide Structure Policy

Defines what belongs in docs-guide/, how it is organised, the authority tiers that govern conflict resolution, and the rules that apply to each content type.

Scope

Authority Tiers

docs-guide/ files are governed by a six-tier precedence model declared in the mandatory authority: frontmatter field. When two governance docs conflict, the higher tier wins. Adapter files (AGENTS.md, .claude/CLAUDE.md, .github/AGENTS.md, IDE rules) point UP into docs-guide/. They surface canonical truth for specific consumers but hold no authority. Any rule stated only in an adapter file is invalid and must be canonicalised into a T0–T3 source. Locked by D-DG-01.

Canonical Structure

No other top-level subdirectories are permitted without an explicit superseding decision in decisions/docs-guide-structure.md. Locked by D-DG-02. Migration paths from the previous structure are recorded in D-DG-03 (features/tooling/repo-ops/docs-library merge into reference/), D-DG-04 (canonical/ retired), and D-DG-05 (config/ moved to operations/).

Rules

  1. Top-level structure is locked. New top-level subdirectories under docs-guide/ require a superseding decision (D-DG-NN) in decisions/docs-guide-structure.md before they can be created.
  2. No 0-byte stubs. Placeholder files with no content are not permitted. A file at a nav path must contain real content or must not exist.
  3. One canonical file per subject. When a framework and a policy address the same subject, the framework holds the model and the policy holds the enforcement. Subject-level duplicates are prohibited; the contract validator flags them.
  4. Generated files must not be manually edited. All files in docs-guide/catalog/ and any file with maintenance: generated frontmatter are auto-generated. They carry a generated-file-banner:v1 comment block identifying their generator script. Manual edits are overwritten on the next run.
  5. Generated files must stay current. If a generator’s source input changes (workflows, templates, docs.json, registries, surfaces JSON), the corresponding output must be regenerated before the PR merges. The catalog freshness CI workflow enforces this.
  6. Naming suffix discipline. Follow the suffix pattern for each section:
    • catalog/ files: <subject>-catalog.mdx
    • policies/ files: <subject>-policy.mdx
    • frameworks/ files: <subject>-framework.mdx
    • standards/ files: <subject>-standard.mdx or descriptive (e.g. voice-and-copy.mdx)
    • decisions/ files: <subject>.md (decision logs are MD, not MDX); index.mdx is the master index
    • contributing/ files: <subject>.mdx (descriptive)
    • reference/ files: <subject>-map.mdx, <subject>.mdx, or descriptive
    • The -governance.mdx suffix is retired in favour of -policy.mdx or -framework.mdx per authority tier (D-DG-09).
  7. No -index.mdx naming for hand-maintained content. Use -catalog.mdx for generated inventories; descriptive names for hand-maintained pages; index.mdx is reserved for folder-level entry points (e.g. decisions/index.mdx).
  8. Archive before delete. Files being removed from navigation move to _workspace/archive/ with a 90-day TTL before permanent deletion, unless they are 0-byte stubs (which may be deleted immediately). High-cite files (>5 incoming references) require /propagate skill execution before move or delete.
  9. _workspace/ is not a nav path. docs-guide/_workspace/ must never appear in docs.json. It is covered by .mintignore and every page under it carries noindex: true frontmatter.
  10. Frontmatter contract is mandatory. Every file in docs-guide/ (excluding _workspace/ and catalog/) must declare title, description, authority, consumer, maintenance, status, lastVerified, owner. Conditional fields apply per authority tier. Enforced by check-docs-guide-contract.js (D-DG-07).
  11. Adapter files cannot hold authority. Rules stated only in AGENTS.md, .claude/CLAUDE.md, .github/AGENTS.md, .cursor/rules/, .windsurf/rules/, or .augment/rules/ must canonicalise into a T0–T3 source. Adapter files are pointer-only delegates with length caps enforced by check-adapter-parity.js (D-DG-11).

Enforcement

Status legend: Live = wired today. Planned (Phase N) = scheduled in the docs-guide redesign plan and not yet enforcing.

Exceptions

  • docs-guide/_workspace/ – exempt from frontmatter contract and naming rules; governed by workspace-lifecycle-policy.mdx.
  • docs-guide/catalog/ – files are generated and exempt from consumers: blocks; their generator: frontmatter is mandatory instead.
  • Legacy files in _workspace/archive/ during their 90-day TTL window are exempt from naming enforcement.
Last modified on May 22, 2026