D-063 — Prompt archive migrated from AvidCreation into docHub mavis face
Status: accepted · Date: 2026-06-23 · Decided by: Helper Mavis · Operator: confirms
Context
avidtech6/AvidCreation (the operator's prompt archive, nicknamed "Vibe Hub" until 2026-06-23) hosts 237 operator prompts across 7 projects (freshvibe / freshcards / freshvibestudio / freshvibeui / home-studio / smartpantry / vibehub). The viewer SPA at avidcreation.pages.dev is gated by a forgotten-password wall (functions/_middleware.js) and the underlying repo + viewer are not discoverable from the rest of the FVS ecosystem.
The operator asked (2026-06-23) to:
- Include the prompt archive into docHub (a single home for everything operator+Mavis related)
- Reuse the name "Vibe Hub" for a new Module Gallery site instead
The prompt archive therefore needs a new home. docHub is the natural target: it's already a Cloudflare Pages site, already behind Cloudflare Access (the mavis face), and the docHub SPA shell can host the prompt viewer as a self-contained sub-app.
Decision
Migrate the prompt archive from avidtech6/AvidCreation into docHub's mavis/prompts/ face.
- Source of truth stays at
avidtech6/AvidCreation— the repo is not deleted or renamed. docHub is the deployment target. - Build pipeline lives in docHub —
pact/scripts/build-hub-index.py(the AvidCreation script) is ported into docHub asbuild-prompt-archive.py, adapted to read from the docHub repo and emit intomavis/prompts/. - Viewer SPA is ported as-is — the existing
avidcreation.js(97KB) +chat-viewer.css(39KB) +index.html(4KB) +ui-threads.js+ui-topics.js+extract-decisions.jsmove intodocshub/mavis/prompts/_viewer/. Paths are adjusted so it loads from/mavis/prompts/instead of/. - No password wall — the
_middleware.jspassword gate is dropped. docHub's existing Cloudflare Access (email allowlist on/mavis/*) is the auth model. - Manifest is rebuilt on deploy —
build-prompt-archive.pyruns as part ofdeploy.shand emitsmavis/prompts/_viewer/avidcreation-manifest.jsonfrom the.prompts/*/*.mdsource files. - URL:
https://docshub-1pi.pages.dev/mavis/prompts/
What stays in AvidCreation
- The
.prompts/<project>/<timestamp>-<slug>.mdfiles (the actual archive) pact/scripts/build-hub-index.py(kept as the canonical build script — docHub'sbuild-prompt-archive.pyis a wrapper or renamed copy)- The
pact/scripts/derive-threads-and-topics.pyhelper - The GitHub
avidtech6/AvidCreationrepo stays live and operator-visible
What moves to docHub
- The viewer SPA files (
avidcreation.js,chat-viewer.css,index.html,ui-threads.js,ui-topics.js,extract-decisions.js,sparkle-icon.svg) - The 237 prompt markdown files (or a symlink-equivalent via build pipeline — they're the same files in both places)
- The
avidcreation-manifest.json(built fresh on each deploy)
What is dropped
- The password wall (
functions/_middleware.js) — replaced by Cloudflare Access - The Cloudflare Pages project named
avidcreation— kept alive but no longer the deployment target. Theavidcreation.pages.devURL may still serve an old build until the project is paused/removed.
Naming convention going forward
- Project internal name (in scripts, decision docs, repo paths):
freshvibe-dochub(temporary, per operator 2026-06-23) - Brand / UI label:
docHub - Cloudflare Pages project name:
docshub(cannot rename; creates confusion with the project internal name) - Cloudflare subdomain:
docshub-1pi.pages.dev(auto-suffixed; cannot change without recreating) - Path inside docHub:
/mavis/prompts/
When the operator migrates to a stable FVS-canonical naming, all of these can be unified. Until then, the discrepancies are documented here so lane Mavises understand the layout.
Build pipeline
The existing build script in avidtech6/AvidCreation/pact/scripts/build-hub-index.py reads from .prompts/<project>/ and emits into docs/. For docHub:
- A copy or wrapper script lives at
docshub/build-prompt-archive.py(ordocshub/pact/scripts/build-prompt-archive.py) - It reads from
.prompts/*/in the docHub repo (the prompts are committed to the docHub repo) - It emits into
dist/mavis/prompts/_viewer/(the docHub build pipeline picks this up viabuild.mjs+build-site.mjs)
The 237 prompts are committed to the docHub repo as part of the migration. Future prompts can be added directly to the docHub repo (any Mavis session can write to mavis/prompts/).
First-batch contents
7 projects × 237 prompts:
| Project | Prompts | Bytes |
|---|---|---|
| freshvibe | 153 | 411.6 KB |
| home-studio | 46 | 139.8 KB |
| freshvibeui | 17 | 41.2 KB |
| vibehub | 10 | 26.0 KB |
| freshcards | 5 | 10.5 KB |
| freshvibestudio | 3 | 14.3 KB |
| smartpantry | 1 | 0.9 KB |
| Total | 237 | 665 KB |
Migration steps (in order)
- ✅ Inspect
avidtech6/AvidCreationrepo structure and confirm file counts (DONE 2026-06-23 15:38 UTC) - ⬜ Create
docshub/mavis/prompts/_viewer/directory - ⬜ Copy viewer SPA files (js, css, html, svg, attachments) into
_viewer/ - ⬜ Adapt paths in viewer JS so it loads from
/mavis/prompts/_viewer/ - ⬜ Copy
.prompts/<project>/*.mdintodocshub/mavis/prompts/<project>/ - ⬜ Copy attachments folder to
docshub/mavis/prompts/_viewer/attachments/ - ⬜ Port
build-hub-index.py→build-prompt-archive.pywith docHub paths - ⬜ Update
build.mjsto invokebuild-prompt-archive.pyand includemavis/prompts/in the manifest - ⬜ Update
mavis/_meta/manifest.jsonto includemavis/prompts/as a sub-entry - ⬜ Build + deploy
- ⬜ Verify at
https://docshub-1pi.pages.dev/mavis/prompts/ - ⬜ Pause for Cloudflare Access setup (operator task — path scope
/mavis/*covers it)
Consequences
- ✅ Single home for all operator + Mavis + lane content (docHub = single source of truth for the operator's workspace)
- ✅ Prompt viewer inherits docHub's auth model (Cloudflare Access, no forgotten-password problem)
- ✅ docHub's existing build pipeline handles deploy (no separate Cloudflare Pages project to manage)
- ⚠️ The viewer SPA is 97KB of legacy JS — works but isn't pretty. Future polish possible (post-Q1+Q2).
- ⚠️ The
avidcreation.pages.devURL continues to serve the old build (with the password wall). Operators should bookmarkdocshub-1pi.pages.dev/mavis/prompts/going forward. - ⚠️ The 665KB of prompts + 3.2MB manifest + 39KB CSS + 97KB JS adds ~4MB to the docHub deployment. Manageable but worth tracking.
Open follow-ups
avidcreation.pages.devURL still serves the old build. Recommend: pause the Cloudflare Pages projectavidcreation(or remove it entirely after confirming nothing else points to it).- The
functions/_middleware.jspassword gate becomes dead code inavidtech6/AvidCreation. Either delete it or leave it as a relic. - Q2 (Vibe Hub = Module Gallery) starts after Q1 ships. The two deliverables share the same build/deploy model.
Cross-references
mavis/decisions/D-060-dochub-substrate-shape.md— docHub's three-flag model (this migration uses thedeployable: true+redistributable: falseflag for the prompt archive)mavis/decisions/D-061-freshcards-canonical-location.md— FreshCards canonical location (relevant if we later mirror the prompt archive into FVS as a module)mavis/dangerous/memory-drift.md— verifying external state with API before acting (used in inspecting AvidCreation)pact/platform/chip-system/chip-system.md— chip-system rules (Vibe Hub's project chip row pattern used in the viewer)pact/freshvibe-way-v7/23-two-view-substrate.md— two-view substrate pattern (docHub = substrate, FVS app = consumer)