docHub build โ Phase 5 in progress
Date: 2026-06-23 00:30 UTC Status: ๐ in-progress (active plan)
TL;DR
- docHub's substrate contract (
module.json) was about to be invented as a custom JSON schema, until the operator asked "Does it use the FreshCards module? Does it follow the FreshVibe Way?" - A direct GitHub API check revealed the actual FreshCards
module.jsonistier: platform-supremewith a 5-file constitutional basis. - docHub's
module.jsonnow mirrors the FreshCards shape with two extensions:type: doc-substrateandfaces: { dev, user }. D-060 captures this. - The dev face is built (scaffolding, decisions, doctrine, plans, reports, lanes, dangerous, _meta). The user face is in progress. The web component is in progress. The build script is in progress. The deploy is pending operator trigger.
What was built (in this session)
| Section | Files | Status |
|---|---|---|
| Templates | _template.md ร 5 (plan, report, decision, dangerous, prompt) | โ |
| State check | reports/2026-06-23-freshcards-state-check.md | โ |
| Decisions | D-056, D-057, D-058, D-059, D-060, D-061, D-062 | โ |
| Substrate | docshub/module.json (FreshCards shape + faces extension) | โ |
| Bootstrap | README.md, mavis-protocols.md, lane-map.md, open-questions.md | โ |
_meta/ | substrate.json, bootstrap.json, manifest.json, changelog.md | โ |
dangerous/ | 4 lessons (PAT leak, case-variant, destructive-ops, memory-drift) | โ |
doctrine/ | pact-lookup, chip-system, anti-patterns, governance, fvw-v8 | โ |
lanes/ | helper, cards, chrome, fvre, doctrine | โ |
plans/ | phase 1-5 | โ |
reports/ | state-check, pat-rotation, dup-cleanup | โ |
prompts/ | (empty, awaiting first cross-Mavis entry) | โณ |
projects/ | (empty, awaiting per-project pages) | โณ |
| User face | user/index.md, user/projects/, user/concepts/, user/reference/, user/getting-started/, user/_meta/substrate.json, user/assets/embed.js | โณ |
| Build script | build.mjs (regenerates manifest + bootstrap) | โณ |
| Operator handoff | overview.md update, memory update, deploy to docshub.pages.dev, Cloudflare Access | โณ |
What changed because of the state check
The state check on 2026-06-23 00:28 UTC found three pieces of stale memory:
- Phase 4 (FWV v8 contamination cleanup) is shipped at
8c093ef, not "in progress" โ D-062 captures this. - Region Schema rename is committed at
081e2f3, not uncommitted โ pending confirmation from cards Mavis (ping sent 2026-06-23 00:30 UTC). - FreshCards standalone repo is gone (both casings 404) โ D-061 captures the new canonical location.
These three changes shaped the rest of the build:
- Phase 4 plan is marked complete, not in-progress.
- docHub's FreshCards project page will link to
studio/modules/freshcards/, not a standalone repo. - The FreshCards canonical state in the overview reflects the new reality.
What's pending (in order)
- Write the user face โ index, projects, concepts, reference, web component.
- Build script โ
build.mjsthat walks the dev face, parses frontmatter, regeneratesmanifest.json+bootstrap.json. - Memory + overview update โ record the new canonical state in long-term memory and the operator-facing overview.
- Operator handoff โ deploy to
docshub.pages.dev, configure Cloudflare Access, write the per-project pages in the user face. - FVS module wrapper (post-deploy) โ
studio/modules/docshub/that re-exports the web component as a FVS-style component.
Decisions made or referenced
- D-060 โ docHub substrate mirrors FreshCards shape, extends with
type: doc-substrateandfaces - D-061 โ FreshCards canonical location is
studio/modules/freshcards/, not a standalone repo - D-062 โ Phase 4 shipped at
8c093ef - D-056 โ FreshCards = 4th sovereign workspace AND substrate (the pattern D-060 extends)
- D-057 โ Case-variant trap (the lesson that shaped D-061)
- D-058 โ PAT rotation (the credential that enabled the dup cleanup)
- D-059 โ Inspect-before-delete protocol (the lesson from the dup cleanup)
Risks (open)
| Risk | Status |
|---|---|
| Operator rejects the two-face split | low โ operator-mandated |
| Web component breaks FVS apps | med โ mitigate with iframe fallback |
| Cloudflare Access setup is wrong | low โ documented |
| Memory drift (already happened) | high โ dangerous/memory-drift.md formalizes the lesson |
| FreshCards repo gone โ plans reference dead URL | med โ D-061 updates the canonical |
Cross-references
- Plan:
phase-5-dochub.mdโ the full plan bootstrap/open-questions.mdโ what the operator is waiting onbootstrap/lane-map.mdโ who owns whatdecisions/D-060โ substrate shapereports/2026-06-23-freshcards-state-checkโ the state check that shaped this build