FVS governance — two layers, two doctrine streams
The governance structure that FVS uses. docHub lives inside this and follows the rules.
TL;DR
There are two doctrine streams:
- FVS Pact (
pact/) — the FVS-specific constitutional layer. Lives inavidtech6/freshvibestudio. GOLD files here are protected by GZ-1. - FWV v8 (
pact/freshvibe-way-v8/) — the FreshVibe Way doctrine. Lives in FVS Studio but is app-agnostic. Helps any app look like it could have been built by FVS.
A new feature typically:
- Has a FVS Pact fragment if it's FVS-specific
- Has a FWV v8 section if the pattern is app-agnostic
FVS Pact (the FVS-specific layer)
Path: pact/ in avidtech6/freshvibestudio
Sub-trees:
pact/platform/— FVS-specific doctrine (cards, chip-system, workspaces, etc.)pact/governance/dna/— constitutional index, fragment-registry, question-indexpact/pipeline/— codex overlays, trace-atlaspact/decisions/— formal decision records (D-NNN source)pact/blueprint/— workspace model, launch modespact/freshvibe-way-v7/— FWV v7 doctrine (predecessor)pact/freshvibe-way-v8/— FWV v8 doctrine (current)
GOLD files (GZ-1 protected):
pact/platform/INDEX.mdpact/governance/dna/*pact/platform/INDEX.md §O(anti-patterns)
Modifying these requires the GZ-1 protocol. Skip the protocol = violation.
FWV v8 (the app-agnostic layer)
Path: pact/freshvibe-way-v8/ in avidtech6/freshvibestudio
Acronym note: "FreshVibe Way" — first letter of each word = FVW. The /FWV-v8/ directory in the local workspace is a typo; canonical path is pact/freshvibe-way-v8/.
Sections (29+ as of 2026-06-22):
00-philosophy.md,01-app-constitution.md,02-folder-layout.md03-dna-format.md,04-trace-atlas-schema.md,05-recipe.md06-refactor-procedure.md,07-execution-model.md,08-anti-drift.md10-modules-as-clusters.md,11-recipe-book.md,12-mirrors-and-forks.md13-shadows.md,14-tweaks.md,15-micro-models.md16-smart-app-product.md,17-modules-and-tiers.md,18-revibe-pattern.md19-recipe-extraction.md,20-semantic-visual-intent.md,21-mit-boundary-doctrine.md22-behaviour-first-codex.md,23-two-view-substrate.md,24-vibe-chat-doctrine.md25-document-composition-materialisation.md,26-revibe-lifecycle.md27-drift-discovery-protocol.md,28-side-protocol-pattern.md,29-test-case-scaffolding.md3-file-model-doctrine.md
App-agnostic invariant (post-contamination-fix at 8c093ef):
- FWV v8 helps ANY app look like it could have been built by FVS.
- It does NOT turn an app into FVS.
- A non-FVS app has zero business knowing about FVS workspaces (VibeCoder, VibeScope, Origin, FreshCards) as part of an FVW v8 alignment.
- FVS-specific names are scrubbed from generic examples (24 files, 169 swaps in the contamination fix).
How docHub fits
docHub is a sovereign workspace (per D-060 substrate shape) + an embeddable user-doc substrate for FVS apps. It:
- Lives in FVS-Pact land (its
module.jsoncites FVS-Pact files intier_meta.constitutional_basis) - Is consumable by ANY FVS app via the user-face web component
- Does NOT impose FVS workspace partitioning on consumers (per the FWV v8 contamination-fix lesson)
- Has its own doctrine (
docshub/dev/doctrine/) that supplements FVS-Pact
Two-layer rule of thumb
When writing a doc:
- If the rule is FVS-specific (e.g., "Origin is a sovereign workspace") → goes in FVS-Pact
- If the rule is app-agnostic (e.g., "every app has a substrate contract") → goes in FWV v8 or in the app's own doctrine
- If the rule is docHub-specific (e.g., "docHub has two faces") → goes in docHub's own doctrine, with a pact_ref citing the FVS-Pact or FWV v8 fragment it extends
Cross-references
doctrine/fvw-v8.md— FWV v8 specifically, with the contamination fix contextdoctrine/pact-lookup.md— how to look up rulesdecisions/D-060— docHub substrate shape, including the constitutional_basis listdecisions/D-062— the contamination fix that shipped FWV v8 cleanup