Files
palladium/studies/202607_CX_Discovery_Workshop/README.md
2026-07-23 12:04:37 -04:00

3.7 KiB

202607 — CX Exploration & Discovery Workshop

A live facilitation aid for a CX discovery session, built on the Mercury Notebook Deliverable Pattern. Unlike the TEI business-case studies, this deliverable computes no dollars — its "numbers" are topic status and progress. The Mercury stage is the visual you share on a call or in a workshop while you work through the questions; the question script and captured notes live backstage and export as LLM input for the survey write-up or a downstream business case.

What the client sees (the stage)

A calm topic board: each topic, its one-line scope, a status glyph, and — for the topic under discussion — a live sub-topic checklist, above a progress bar ("3/8 topics complete"). No wall of questions: you ask those.

board preview

You drive it from the sidebar — a status selector and a notes box per topic, plus a checkbox per sub-topic. As the conversation moves you set a topic In progress, tick sub-topics as you cover them, mark it Complete (or Skipped), and jot answers. Every change re-renders the board and progress bar (Mercury re-runs the cells below the widgets).

What you work from (backstage)

JupyterLab and the exports carry the facilitator question script (all 95 prompts, grouped by topic → sub-topic) and the captured-session appendix (status + notes as a markdown table and one JSON block). Neither shows on the Mercury stage. The 8 topics / 26 sub-topics / ~110-minute agenda are the structured form of the source survey.

Layout

discoverylib/           # the engine — all content & logic
  topics.py             #   the topic bank (verbatim anchor from the survey)
  session.py            #   status vocabulary, progress, checklist, export payload
  staging.py            #   stage/backstage detection (copied verbatim)
notebooks/cx_discovery.ipynb   # the deliverable (generated — see below)
scripts/
  build_notebook.py     #   regenerates the notebook from cell sources
  export_report.py      #   nbconvert → exports/*.html + *.md
tests/                  # engine pins + stage/backstage test
docs/cx_discovery_survey.md    # source survey (the original cxxm.md)
exports/                # generated report sources

The notebook is generated

The notebook wires ~42 Mercury widgets (a status selector + notes box per topic, a checkbox per sub-topic), all derived from the topic bank so they can't drift from discoverylib. Rather than hand-maintain that JSON, the notebook is built from readable cell sources in scripts/build_notebook.py:

python scripts/build_notebook.py      # regenerate after editing a cell

Edit facilitation content (topics, sub-topics, prompts, scope, minutes) in discoverylib/topics.py — not in the notebook.

Run

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

mercury --working-dir .                # serve the stage (share this screen)
jupyter lab                            # analyst / facilitator view
pytest                                 # engine pins + stage/backstage
jupyter nbconvert --to notebook --execute --inplace notebooks/cx_discovery.ipynb   # gate
python scripts/export_report.py        # exports/*.html + *.md for the LLM handoff

Extending

New or reshaped discovery content is a discoverylib/topics.py edit, a test pin (tests/test_topics.py recounts, tests/test_session.py for new logic), then python scripts/build_notebook.py. Add a topic and the sidebar controls, board, checklist, script, gate, and export all pick it up — because they're all generated from the bank.