# App build record

- Artifact: Cascade Simulation Results Explorer
- Build date: 2026-08-18
- Study: Verified primary manuscript study, Watts–Strogatz \(\beta=.10\)
- Runtime validated with: R 4.4.2, Shiny 1.9.1, bslib 0.8.0, plotly 4.10.4
- Archived source manifest: 26/26 files present and MD5-matched
- Prepared summaries: 288 full condition cells; 96 paired \(\Delta_F\) cells; 192 manuscript Table 3 cells
- Replication-level cascade records: 288,000
- Verified descriptive flags: 32 Table 2 maxima; 32 Table 3 conditional minima
- Undefined complete-failure timing cells: 96/192, represented as not estimable rather than zero

## Included views

The application uses seven top-level tabs:

1. **Start** — study orientation, representative graph realizations, and links to the five research questions.
2. **Graph family** — high–low target differentiation across the three graph-generating models.
3. **Density** — sparse-versus-denser comparisons for the high–low difference or absolute final extent.
4. **Centrality metric** — high–low differentiation across degree, strength, harmonic closeness, and betweenness.
5. **Thresholds** — sensitive-through-resilient comparisons across all three graph families for the high–low difference or final extent.
6. **Total failure** — completion percentages or conditional synchronous updates across graph families and endpoint targets.
7. **Study & downloads** — data provenance, study-design summary, verification record, and research-package downloads.

## Guided interaction contract

- Each research-question page exposes one comparison dimension and uses single-choice controls only for the remaining density, centrality metric, and threshold conditions that are relevant to that page.
- Graph family is not a selector. All three graph-generating models are simultaneously visible wherever family comparison is relevant.
- The Thresholds presentation requires only density and centrality metric controls.
- The default context is denser, strength, and moderate threshold conditions.
- Graph families retain the same color and marker across guided views. When endpoint targets are shown separately, the most-central target is solid and the least-central target is dashed.
- Ordinary displays contain no more than six family-by-target series.
- Plot titles and explanations are rendered in responsive HTML outside the Plotly canvas.
- Plot navigation controls are disabled; axes use responsive automatic margins and fixed ranges.
- Hover cards contain no more than three short lines: the condition label, focal estimate, and one interpretively necessary quantity.
- Every research-question page includes a plain-language snapshot finding and a CSV download of the rows underlying the current plot.
- Versioned query links restore the active research-question page, the three single-choice study conditions, and all page-level display toggles.

## Download structure

- **Download this snapshot** exports the current guided comparison as CSV.
- **Download reproduction script** returns the complete simulation R script.
- **Download verified outputs** returns the archived source results, figures, code, manifest, and reproducibility record as a ZIP archive.
- **Download data dictionary** returns the compact field dictionary as CSV.
- The hosted app is read-only and displays archived summaries rather than rerunning the simulation.

## Verification contract

- Startup checks enforce the expected 288 cascade-summary, 96 paired-contrast, and 192 total-failure rows.
- Automated tests retain the verified scientific row counts, keys, descriptive flags, completion percentages, and undefined timing cells.
- Plot tests bound trace counts, require finite displayed values, limit public hover length, and preserve explicit not-estimable behavior for zero-completion selections.
- Query-state tests require one value per current selector, safely collapse legacy multivalue parameters, fall back from invalid values, and round-trip guided snapshots through versioned URLs.
- Complete-failure percentages use all 1,000 replications per displayed condition; update means condition only on replications reaching 20/20 active vertices.

## Deployment status

The application is packaged for deployment but has not been published to an external host. External deployment requires the author’s hosting account or server endpoint. Deploy only this app directory, not the surrounding manuscript workspace.
