V2 Folder Governance
This document is the canonical governance policy forv2/ folder structure.
It defines which v2/ paths are publishable docs, where maintainer-only working material must live, and how legacy workspace buckets are reviewed and retired.
Canonical Target Model
Section-Root Contract
Allowed publishable section-root files are:index.mdxportal.mdxnavigator.mdx
_workspace/, x-deprecated/, or v2/x-archived/.
_workspace/ Contract
_workspace/ is the only approved active non-publishable working folder under v2/<section>/.
Approved subfolders:
Naming rules inside
_workspace/:
- Use plain kebab-case directory names (e.g.
context-data/, not_contextData_/) - Legacy names (
_archive/,_contextData/,_contextData_/,_move_me/,x-archived/,x-deprecated/) must not be introduced again; existing instances are migrated through approved rename waves - Loose files directly inside
_workspace/(not in a subfolder) are acceptable only as temporary scratch; they should be moved into the appropriate subfolder within 30 days
File-Type Rules
- Publishable pages are
.mdx. - Workspace notes, reports, and review artifacts are
.mdby default. _workspace/drafts/may contain.mdxwhen a page-shaped prototype is intentionally non-routable during development.
Routing and Linking Rules
The canonical publishability contract is:docs.jsonmust never point to_workspace/**,x-deprecated/**, orv2/x-archived/**.- Publishable pages must not import from or link to non-publishable lanes except explicit maintainer-only references that are excluded from Mint/runtime.
portal.mdxandnavigator.mdxare publishable section entry points, not workspace files..mintignore, file-selection helpers, and audits enforce this contract, but they are not the canonical source of truth by themselves.
Legacy Naming Retirement Rules
The following legacy workspace patterns are inventory-only and must not be introduced again after this policy lands:_contextData_contextData__context_data__plans-and-research- section-level
review.md x-resourcesTO-ADD_archive- any other ad hoc planning or research bucket inside publishable trees
Transition and Cleanup Workflow
This policy starts with documentation plus a recommendation-only cleanup matrix. Nov2/ files move until a human reviews the recommendations.
Generator:
workspace/reports/repo-ops/v2-folder-governance-cleanup-matrix.mdworkspace/reports/repo-ops/v2-folder-governance-cleanup-matrix.json
v2/ legacy workspace buckets, stray .md files, deprecated/archive folders, and similar non-publishable material. Locale trees are governed now but default to later move-wave review unless a human explicitly promotes them.
i18n Trees
v2/cn/, v2/es/, v2/fr/ are translation mirror trees governed separately from the standard content section rules.
- i18n trees do not have
_workspace/directories. Do not create them. - i18n content is not subject to standard
_workspace/normalisation passes. - Stale or incomplete translations follow the same deprecation path as their English counterparts, governed by the English page lifecycle.
- These trees are not touched by standard workspace governance unless a specific i18n migration is explicitly approved.
Follow-on Workstreams
Workstream A: Enforcement and Selection Updates
- Update
.mintignoreto exclude the canonical non-publishable lanes. - Add transitional ignore coverage for current legacy names such as
_contextData. - Update shared file-selection helpers and generators that still treat workspace artifacts as normal
v2docs content. - Ensure docs navigation checks fail when a routed page resolves into an ignored or non-publishable lane.
- Ensure scoped Mint generation inherits the same ignore contract.
Workstream B: Approved Moves
- Execute only the file moves approved in the cleanup matrix.
- Normalize section trees to the
_workspace,x-deprecated, andv2/x-archivedcontract. - Retire legacy workspace folder names after their contents have been moved.
- Regenerate affected indexes or catalogs and rerun validators after each approved move wave.