Commit e97670ea authored by Vacaliuc, Bogdan's avatar Vacaliuc, Bogdan
Browse files

slides/archive: pull slides 6, 7, 8 from the live deck



Per scientist feedback 2026-04-20:

- slide-6-reduce-contract — pseudocode for an ideal reduce() signature.
  This is a hack-a-thon discussion topic, not a pre-meeting conclusion.
  Shipping it up-front risks appearing to pre-decide the architecture.
- slide-7-debt-triage — effort/payoff scatter plot.  Excellent slide,
  but too much detail for the opening and assumes Tier-2+ stretch-goal
  work is in scope.  Content migrated to ../13-debt-triage.md.
- slide-8-equivalence-harness — A/B harness proposal.  Presumes the
  stretch-goal path; introduce on Day 3+ if the team heads there.

Archive in slides/archive/ preserves the SVGs/PNGs and the slide-7
generator so they can be retrieved verbatim later in the week.
archive/README.md records why each was pulled.

slides/README updated to list only the live deck.

Co-Authored-By: default avatarClaude Opus 4.7 (1M context) <noreply@anthropic.com>
parent 19ec5dfb
Loading
Loading
Loading
Loading
+82 −85
Original line number Diff line number Diff line
# Pre-hack-a-thon slides — Day PRE-2 (2026-04-21)

Scientist-facing slides for the pre-hack-a-thon meeting on
2026-04-21.  Authored in SVG (hand-written) or generated via small
Python scripts using matplotlib; rendered to PNG for drop-in use in
PowerPoint / Google Slides.

## Files

| # | Title | SVG | PNG | Source |
|---:|---|---|---|---|
| 1 | Current vs. ideal coupling | [slide-1-current-vs-ideal.svg](slide-1-current-vs-ideal.svg) | [slide-1-current-vs-ideal.png](slide-1-current-vs-ideal.png) | hand-authored |
| 2 | Functional API mapping — mr_reduction ↔ lr_reduction | [slide-2-api-mapping.svg](slide-2-api-mapping.svg) | [slide-2-api-mapping.png](slide-2-api-mapping.png) | hand-authored |
| 3 | Five silent MRR default disagreements | [slide-3-silent-defaults.svg](slide-3-silent-defaults.svg) | [slide-3-silent-defaults.png](slide-3-silent-defaults.png) | hand-authored |
| 4 | What scientists see today — GUI vs autoreduce curves | [slide-4-curves-disagree.svg](slide-4-curves-disagree.svg) | [slide-4-curves-disagree.png](slide-4-curves-disagree.png) | [gen_slide_4.py](gen_slide_4.py) |
| 5 | A peak drag traced from click to plot | [slide-5-peak-drag-sequence.svg](slide-5-peak-drag-sequence.svg) | [slide-5-peak-drag-sequence.png](slide-5-peak-drag-sequence.png) | hand-authored |
| 6 | The ideal reduce() contract | [slide-6-reduce-contract.svg](slide-6-reduce-contract.svg) | [slide-6-reduce-contract.png](slide-6-reduce-contract.png) | hand-authored |
| 7 | Technical-debt triage (effort vs payoff) | [slide-7-debt-triage.svg](slide-7-debt-triage.svg) | [slide-7-debt-triage.png](slide-7-debt-triage.png) | [gen_slide_7.py](gen_slide_7.py) |
| 8 | A/B equivalence harness proposal | [slide-8-equivalence-harness.svg](slide-8-equivalence-harness.svg) | [slide-8-equivalence-harness.png](slide-8-equivalence-harness.png) | hand-authored |

## What each slide is for

- **Slide 1 (`current-vs-ideal`)** — the high-level argument for
  modularization.  Left = today's tangled state, right = the target.
  Lead slide for the pre-hack-a-thon pitch.
- **Slide 2 (`api-mapping`)** — same reduction phases on both
  REF_M and REF_L; the public-API shape converges even where the
  implementations differ (Mantid vs h5py/numpy).  Supports the
  "ref_core" case by showing a peer that already fits.
- **Slide 3 (`silent-defaults`)** — the five concrete MRR parameter
  tensions.  Shows scientists the specific physics/observable
  decisions they own.  Use when the conversation turns to "do I trust
  the numbers?"
- **Slide 4 (`curves-disagree`)** — visceral visual: two R(Q)
  curves for the same data, annotated with each mechanism from
  slide 3.  Companion to slide 3 when the audience wants to *see* the
  disagreement.
- **Slide 5 (`peak-drag-sequence`)** — a four-lane sequence diagram
  answering "why does the UI freeze when I move a peak line?"
  Supports the Day-1 discussion of Qt/reduction coupling and the
  Day-2 discussion of the computational pipeline.
- **Slide 6 (`reduce-contract`)** — the target signature: one
  function, called by both GUI and autoreduce, with a typed
  `ReductionConfig` and `ReducedRun`.  Directly supports the Day-3
  requirements document.
- **Slide 7 (`debt-triage`)** — 18 debt items on a cost/payoff
  scatter, quadrant-shaded.  Use during Day-1 assessment and Day-4
  ticket-generation to agree on priorities.
- **Slide 8 (`equivalence-harness`)** — the A/B test harness that
  catches every debt item in slide 3 *before* and *after* the
  refactor.  The structural investment that makes the other work
  safe; Tier-2 (item 10 on slide 7).

## Regenerating

Requires `cairosvg` plus `matplotlib + numpy` for the two
Python-generated slides.  Install once:
# Pre-hack-a-thon slides — Day 1 Scientist Assessment

```bash
# SVG → PNG renderer
uv tool install cairosvg
Slides for the "Overview of Scientist Assessment" session,
2026-04-22 10:00.  Authored in SVG (hand-written) or generated via
Python scripts; rendered to PNG; packaged into a single `.pptx` via
`gen_pptx.py`.

## The live deck

Presented in this order:

| # | Title | SVG | PNG | Content spec | Source |
|---:|---|---|---|---|---|
| 0 | Opening — Battle of the Robots | [slide-0-opening.svg](slide-0-opening.svg) | [slide-0-opening.png](slide-0-opening.png) | [slide-0-opening.md](slide-0-opening.md) | hand-authored + Giphy frame embed |
| 1 | Current vs. ideal coupling | [slide-1-current-vs-ideal.svg](slide-1-current-vs-ideal.svg) | [slide-1-current-vs-ideal.png](slide-1-current-vs-ideal.png) | [slide-1-current-vs-ideal.md](slide-1-current-vs-ideal.md) | hand-authored |
| 2 | API mapping — mr_reduction ↔ lr_reduction | [slide-2-api-mapping.svg](slide-2-api-mapping.svg) | [slide-2-api-mapping.png](slide-2-api-mapping.png) | [slide-2-api-mapping.md](slide-2-api-mapping.md) | hand-authored |
| 3 | Five silent MRR default disagreements | [slide-3-silent-defaults.svg](slide-3-silent-defaults.svg) | [slide-3-silent-defaults.png](slide-3-silent-defaults.png) | [slide-3-silent-defaults.md](slide-3-silent-defaults.md) | hand-authored |
| 3a | ErrorWeightedBackground — detail | [slide-3a-errorweighted-background.svg](slide-3a-errorweighted-background.svg) | [slide-3a-errorweighted-background.png](slide-3a-errorweighted-background.png) | [slide-3a-errorweighted-background.md](slide-3a-errorweighted-background.md) | hand-authored |
| 3b | CropFirstAndLastPoints — detail | [slide-3b-crop-first-and-last-points.svg](slide-3b-crop-first-and-last-points.svg) | [slide-3b-crop-first-and-last-points.png](slide-3b-crop-first-and-last-points.png) | [slide-3b-crop-first-and-last-points.md](slide-3b-crop-first-and-last-points.md) | hand-authored |
| 3c | RoundUpPixel — detail | [slide-3c-round-up-pixel.svg](slide-3c-round-up-pixel.svg) | [slide-3c-round-up-pixel.png](slide-3c-round-up-pixel.png) | [slide-3c-round-up-pixel.md](slide-3c-round-up-pixel.md) | hand-authored |
| 3d | AcceptNullReflectivity — detail | [slide-3d-accept-null-reflectivity.svg](slide-3d-accept-null-reflectivity.svg) | [slide-3d-accept-null-reflectivity.png](slide-3d-accept-null-reflectivity.png) | [slide-3d-accept-null-reflectivity.md](slide-3d-accept-null-reflectivity.md) | hand-authored |
| 3e | UseSANGLE — detail | [slide-3e-use-sangle.svg](slide-3e-use-sangle.svg) | [slide-3e-use-sangle.png](slide-3e-use-sangle.png) | [slide-3e-use-sangle.md](slide-3e-use-sangle.md) | hand-authored |
| 4 | Same data, different R(Q) — real reductions | [slide-4-curves-disagree.svg](slide-4-curves-disagree.svg) | [slide-4-curves-disagree.png](slide-4-curves-disagree.png) | [slide-4-curves-disagree.md](slide-4-curves-disagree.md) | [reduce_both_paths.py](reduce_both_paths.py) + [gen_slide_4.py](gen_slide_4.py) |
| 5 | Peak drag traced from click to plot | [slide-5-peak-drag-sequence.svg](slide-5-peak-drag-sequence.svg) | [slide-5-peak-drag-sequence.png](slide-5-peak-drag-sequence.png) | [slide-5-peak-drag-sequence.md](slide-5-peak-drag-sequence.md) | hand-authored |
| 5a | Where the debt accumulates | [slide-5a-debt-accumulation.svg](slide-5a-debt-accumulation.svg) | [slide-5a-debt-accumulation.png](slide-5a-debt-accumulation.png) | [slide-5a-debt-accumulation.md](slide-5a-debt-accumulation.md) | hand-authored |
| End | Closing — end of round one | [slide-end-closing.svg](slide-end-closing.svg) | [slide-end-closing.png](slide-end-closing.png) | [slide-end-closing.md](slide-end-closing.md) | hand-authored + Giphy frame embed |

## Archived (not in the live deck)

Three slides from the 2026-04-20 round were pulled per scientist
feedback.  They remain in `archive/` — good slides, just not right
for the pre-meeting.  See [archive/README.md](archive/README.md).

- `archive/slide-6-reduce-contract``reduce()` pseudocode; hack-a-thon discussion topic, not pre-decided
- `archive/slide-7-debt-triage` — effort/payoff scatter; content migrated to `../13-debt-triage.md`
- `archive/slide-8-equivalence-harness` — A/B harness; Day 3+ material

## How to edit content without SVG surgery

Every slide has a `.md` companion capturing its title, body, speaker
notes, and editing pointers.  For text-only changes, read the
`.md` to understand the slide, then edit the `<text>` block in the
corresponding `.svg`.  For complex visual changes, edit the `.md`
with desired intent and ask the author to re-draw.

For slide 4, the scientific content is driven by two generator
scripts: edit `reduce_both_paths.py` to pick a different run;
re-run stage 1; then run `gen_slide_4.py`.

# venv for generator scripts
## Regenerating from scratch

Prerequisites installed once:

```bash
uv tool install cairosvg             # SVG → PNG
uv venv /tmp/slides-venv --python python3
/tmp/slides-venv/bin/python -m ensurepip --upgrade
/tmp/slides-venv/bin/python -m pip install matplotlib numpy
/tmp/slides-venv/bin/python -m pip install matplotlib numpy pillow python-pptx h5py
```

Then:
### SVG → PNG

```bash
./render.sh        # re-emits every *.png from its *.svg
./render.sh
```

For the Python-generated slides (4 and 7), run the generator first to
update the SVG, then `./render.sh`:
### Slide 4 — real reductions (needs Mantid)

```bash
# Stage 1 (once per data change; needs the quicknxsv2 pixi env)
cd /media/ssd2/Projects/Claude/3/quicknxsv2
pixi run -- python /media/ssd2/Projects/Claude/1/tasking/plan/quicknxsv2-modularization/slides/reduce_both_paths.py

# Stage 2 (plot only)
cd -
/tmp/slides-venv/bin/python gen_slide_4.py
/tmp/slides-venv/bin/python gen_slide_7.py
./render.sh
```

### PPTX

```bash
/tmp/slides-venv/bin/python gen_pptx.py
# writes Hack-A-Thon-Scientist-Assessment.pptx
```

## Design choices

- **Dimensions:** 1920×1080 (16:9 HD).  Fits modern projectors and
  meeting-room displays without scaling.
- **Font:** `Helvetica, Arial, sans-serif` for hand-authored SVGs;
  `DejaVu Sans` for matplotlib-generated slides (bundled with
  matplotlib so no font-missing warnings at render).
- **Colour semantics:**
  - Current state / warm palette: warm orange `#E87722`, red `#C8102E`,
    background `#FFF3E6`.
  - Ideal state / cool palette: navy `#002E5D`, green `#53A548`,
    blue `#4A90C2`.
  - Accent: amber `#F5C13A`.
- **No emoji, no Mermaid, no LaTeX dependencies.**  SVGs render in any
  browser and in PowerPoint (Insert → Picture).  PNGs are a backup.
- **Every slide's footer** carries source citations (file:line or
  document § reference) so scientists can trace each claim.
- 1920×1080 (16:9 HD) throughout.
- `Helvetica, Arial, sans-serif` for hand-authored SVG;
  `DejaVu Sans` for matplotlib-generated (bundled with matplotlib).
- ORNL-ish colour palette: navy `#002E5D`, amber `#F5C13A`,
  warm orange `#E87722`, green `#53A548`, red `#C8102E`.
- No emoji.  No Mermaid.  No LaTeX.  No external fonts.
- Every slide footer cites provenance.

## Cross-references

- `../README.md` — knowledge-base reading map
- `../00-executive-summary.md` — the 10-minute orient
- `../10-mantid-algorithms-deep-dive.md` — the physics behind slides 3 & 4
- `../11-technical-debt.md` — the item list in slide 7
- `../12-parameter-propagation-and-qt-leakage.md` — the pipeline in slide 5
- `../10-mantid-algorithms-deep-dive.md` — physics behind slides 3, 3a–3e, 4
- `../11-technical-debt.md` — the full debt inventory
- `../12-parameter-propagation-and-qt-leakage.md` — the pipeline in slides 5, 5a
- `../13-debt-triage.md` — tabular view (replaces hidden slide 7)
- `../14-mr-lr-cross-reference.md` — mantid-centric MR↔LR mapping (slide 2 authoritative source)
+20 −0
Original line number Diff line number Diff line
# Slides archived from the pre-meeting deck

These three slides were in the 8-slide deck reviewed by the
scientists on 2026-04-20 but were pulled from the pre-hack-a-thon
presentation per their feedback:

| Slide | Reason it was pulled | What replaces it for now |
|---|---|---|
| `slide-6-reduce-contract` | Pseudocode of an ideal `reduce()` signature.  This is a discussion topic for inside the hack-a-thon, not a pre-meeting conclusion.  Shipping it up-front risks appearing to pre-decide the architecture. | none; the back-end API is an open discussion |
| `slide-7-debt-triage` | Scatter plot of debt items on an effort / payoff grid.  Excellent slide, but too much detail for the opening.  Plus it assumes Tier-2+ work is in scope, which is a stretch-goal commitment. | `../../13-debt-triage.md` — tabular form of the same data |
| `slide-8-equivalence-harness` | A/B test-harness proposal.  Presumes the stretch-goal path.  If the team ends up heading that way, introduce it on Day 3 or later. | none yet; revisit during the week |

These assets are kept rather than deleted — they are good slides
and may be retrieved verbatim during later days of the hack-a-thon
if the team's direction makes them relevant again.

## Files here

- SVG source + rendered PNG for each slide
- `gen_slide_7.py` — the matplotlib generator for slide 7
Loading