docHub

docHub bootstrap

A Mavis (or operator) waking up in a new session and needing to get up to speed fast.


TL;DR

  1. Fetch _meta/bootstrap.json — single call, full state snapshot.
  2. Read this README — orientation (5 minutes).
  3. Read the doctrine section — only the parts relevant to your lane.
  4. Read the recent reports — what happened in the last 48 hours.
  5. Look at dangerous/ — what's known to be unsafe.
  6. Check open-questions.md — what the operator is waiting on.

If you only have 60 seconds, just fetch _meta/bootstrap.json. That alone tells you where things are.


Read order (full bootstrap, ~15 minutes)

StepWhatWhy
1bootstrap/_meta/bootstrap.jsonMachine-readable state snapshot
2bootstrap/README.md (this file)Orientation
3bootstrap/lane-map.mdWho owns what, how to reach them
4bootstrap/mavis-protocols.mdHow Mavises coordinate
5bootstrap/open-questions.mdOperator's waiting list
6decisions/D-056..D-062Constitutional decisions (skim)
7dangerous/Known-bad patterns (must read before destructive ops)
8doctrine/fvw-v8.md + relevant doctrinePer-lane doctrine
9Recent reports/ (last 3-5)What's been happening
10plans/phase-N-current.mdWhat's being built

After step 1, you can skip steps 2-5 if your task is bounded. For destructive work, step 7 is mandatory. For cross-session coordination, step 3 + 4 are mandatory.


The substrate contract

docHub is a doc-substrate (D-060). It mirrors FreshCards' workspace-substrate shape with two extensions:

  1. type: "doc-substrate" (vs FreshCards' "workspace-substrate")
  2. faces: { user, dev, mavis } — the three-audience split (per user/concepts/three-faces.md)

If you know how to consume a FreshCards substrate, you know how to consume docHub. Read the canonical module.json at the repo root.


The three faces

FacePathAudienceAuth
useruser/End-users of FVS appsPublic (no auth)
devdev/Operator, AI agentsCloudflare Access (email allowlist)
mavismavis/Operator, Helper Mavis, lane MavisesCloudflare Access (email allowlist)

Dev face is where you work (doctrine). Reports, decisions, plans, doctrine, dangerous lessons, lane maps — all in dev/. Auth-gated so it doesn't leak.

Mavis face is where we coordinate. Lanes, prompts, plans, internal reports, Mavis-specific dangerous lessons, the operator's waiting-on list — all in mavis/. Same Cloudflare Access as dev, but the content is Mavis-team-only.

User face is what FVS apps embed. The web component, the JSON manifest, the project pages — all in user/. Public so any FVS app can pull it without a key.


Memory vs docHub

Memory is cross-session recall. docHub is the long-term work surface. Differences:

AspectMemorydocHub
ScopeOne agent, all projectsProject-scoped, deep
LifetimeUntil evictionPermanent (until archived)
Use"What did I do last session?""What was decided and why?"
FormatFree-formFrontmatter + structured body
Cross-MavisNoYes (lane attribution in every doc)

Memory is for fast recall. docHub is for work product. If a Mavis discovers something in a session, the durable home is docHub, not memory.


Open questions for a new Mavis

Before starting any task, ask:

  1. What lane am I? (helper / cards / chrome / fvre / doctrine / operator)
  2. Is the relevant plan still active? Check plans/.
  3. Are there recent reports that change the plan? Check reports/.
  4. Is this destructive work? If yes, read dangerous/ first.
  5. Am I about to violate a known decision? Skim decisions/D-056..D-062.

If any of these is "I don't know" — stop, fetch bootstrap.json, find out.


The single most important rule

Before you do anything destructive, read dangerous/. Every Mavis that has caused damage in the past did so by skipping this step. The case-variant-dup incident on 2026-06-22 is the canonical example. The fix is the protocol in dangerous/destructive-ops-checklist.md.

Read it. Every session. Every time. Non-negotiable.


← back to Dev docs