Pact Viewer Plan (a655)

Date: 2026-08-19 | Author: fv-gallery-mavis (id 8) | Status: in_progress

Ref: operator directive 2026-08-14 23:19 BST (DocHub, renamed Pact Viewer 2026-08-19 11:32 BST)

Ref: operator clarification 2026-08-19 09:32 UTC: must be a real registered gallery module, installable by other apps, listed in the Pact.

---

Goal

Pact Viewer = a real gallery module that any consumer app can npm install @avidtech6/fv-pact-viewer and render a module's Pact view (mockups + tone variants + personality + examples + warnings) inline. Same canonical module in the gallery registry, same npm package, same Pact doctrine entry.

---

Plan (12 steps)

Handover

Provenance: Operator directive 2026-08-14 23:19 BST (DocHub). Operator rename 2026-08-19 11:32 (Pact Viewer). Operator clarification 2026-08-19 09:32 UTC: must be a real registered gallery module, installable by other apps, listed in the Pact.

Workspace state: /workspace/repos/fv-module-gallery/ (canonical), /workspace/repos/fv-gallery-ui/ (viewer UI), /workspace/repos/gallery-pact/ (doctrine)

Build hashes: fv-module-gallery @ 8a34d53 (pre-change), fv-gallery-ui @ e4e2497 (pre-change), fvw-v8 @ local working tree

Open questions (5)

Acceptance

Operator can: (a) visit gallery.freshvibeapps.com/pact-viewer/<id> and see a rendered viewer for any module; (b) npm install @avidtech6/fv-pact-viewer in any consumer app and import <PactViewer moduleId='button' />; (c) read fvw-v8 17.5 and see pact_viewer listed as a canonical affordance; (d) see the module in the gallery's modules[] with tier=tier-1.

Verification (4 checks)

---

Ref: a622 (proposal artifact, PATCHed in-place to rename to Pact Viewer)