docHub three-flag model (2026-06-23 01:00 UTC)
Date: 2026-06-23 01:00 UTC Lane: helper Session: 412100071272671 Status: complete
TL;DR
- Operator clarified: the mavis face is NOT shipped elsewhere, but IS deployed on the docHub site (behind Cloudflare Access) so the operator + Helper can browse it.
- Replaced the simple
deployable: boolflag with three flags:deployable,embeddable,redistributable. - Updated
module.jsonandbuild.mjsto use the three-flag model. - Updated
user/concepts/three-faces.mdto reflect the new model.
The three flags
Each face in module.json now has three boolean flags:
| Flag | Question | Default |
|---|---|---|
deployable | Does it ship to Cloudflare Pages? | true |
embeddable | Can FVS apps pull from it via web component? | true |
redistributable | Can it be exported to other systems? | true |
What each face looks like now
| Face | deployable | embeddable | redistributable | Auth |
|---|---|---|---|---|
| user | ✅ true | ✅ true | ✅ true | public |
| dev | ✅ true | ❌ false | ❌ false | Cloudflare Access |
| mavis | ✅ true | ❌ false | ❌ false | Cloudflare Access |
The previous model had mavis as deployable: false — meaning it didn't ship at all. That was wrong. The operator needs a place to see the Mavis workings, reports, prompts, etc. So mavis is now deployed on the docHub site (same Cloudflare Pages project as user/ and dev/), behind the same auth wall as dev/.
What mavis can never do:
- Be embedded in an FVS app (
embeddable: false) - Be exported to a different system (
redistributable: false)
What mavis CAN do:
- Ship to docHub pages so you and Helper can browse it
- Be served from
https://docshub.pages.dev/mavis/... - Be read by the build script to update the manifest
What changed
module.jsonv0.3.0 (was 0.2.0):faces.{user,dev,mavis}now have explicitdeployable,embeddable,redistributableflagsbuild.mjs: emits the three flags in the per-facebootstrap.jsonand the top-level_meta.json_meta.json: shows all three flags per face, so the deploy pipeline (and any reader) can see what's alloweduser/concepts/three-faces.md: updated table to show the three flags; updated the mavis section to say "deployed behind Cloudflare Access" instead of "never deployed"- Memory:
docHub Phase 5 buildentry now reflects the three-flag model
The boundary is now well-defined
- user/: ships to Pages, embeddable as web component, redistributable. Public.
- dev/: ships to Pages, NOT embeddable, NOT redistributable. Behind Cloudflare Access.
- mavis/: ships to Pages, NOT embeddable, NOT redistributable. Behind Cloudflare Access. The Mavis team workshop.
The Mavis workshop is the operator's reading room. It exists so you and Helper can see what the Mavis team has been doing, what plans are in motion, what decisions have been made, what dangerous lessons have been learned. It's on the same site, same auth, same login. But it's never the source of an FVS-app pull, never an export target, never a module.
Files
module.json— v0.3.0build.mjs— updated to emit three flags_meta.json— top-level index with three flags per faceuser/_meta/bootstrap.json— user face bootstrapdev/_meta/bootstrap.json— dev face bootstrapmavis/_meta/bootstrap.json— mavis face bootstrapuser/concepts/three-faces.md— updated to reflect three-flag model- Memory:
docHub Phase 5 buildentry
Cross-references
- D-060 — docHub substrate shape
user/concepts/three-faces.md— the architecture docmodule.json— the contract_meta.json— the top-level index