{
  "ui-checks.json": {
    "fictional": true,
    "dash": {
      "all_assets": 66,
      "tutorial_assets": 18,
      "tutorial_seconds": 110
    },
    "panel": {
      "all_assets": 66,
      "tutorial_assets": 18,
      "tutorial_seconds": 110,
      "filtered_rows": 4
    },
    "marimo": {
      "all_assets": 66,
      "tutorial_assets": 18,
      "tutorial_seconds": 110
    },
    "jupyterlab": {
      "run_all_cells": true,
      "fresh_execution_counts": [
        3,
        4
      ],
      "assets": 66,
      "planned_seconds": 450,
      "optional_extension_build": "declined, not tested"
    },
    "folium": {
      "markers": 3,
      "tutorial_popup": "18 invented assets"
    },
    "pydeck": {
      "points": 3,
      "review_tooltip": "22 invented assets",
      "basemap": false
    },
    "moviepy_browser": {
      "duration": 1,
      "width": 640,
      "height": 360,
      "readyState": 4,
      "error": null
    },
    "boundary": "Local apps and static exports only; not hosted deployments or production capacity tests."
  },
  "holoviz-checks.json": {
    "holoviews_bar_count": 3,
    "hvplot_series": 3,
    "boundary": "Static exported interactive Bokeh documents. No server-side callback or scale benchmark is implied."
  },
  "media-checks.json": {
    "fictional": true,
    "opencv_output_dimensions": [
      480,
      270
    ],
    "opencv_edge_pixels": 3867,
    "skimage_noisy_ssim": 0.1694538087771433,
    "skimage_denoised_ssim": 0.44407067333457484,
    "skimage_boundary": "Synthetic blocks plus seeded noise, not a real-photo quality benchmark.",
    "soundfile_sample_rate": 22050,
    "soundfile_samples": 44100,
    "pydub_milliseconds": 1000,
    "mutagen_title": "Fictional studio tone",
    "librosa_peak_hz": 441.4306640625,
    "moviepy_seconds": 1.0,
    "moviepy_streams": [
      "video",
      "audio"
    ],
    "moviepy_dimensions": [
      640,
      360
    ]
  },
  "notebook-checks.json": {
    "nbformat_valid_v4": true,
    "cells": 3,
    "nbclient_executed_code_cells": 2,
    "nbclient_errors": 0,
    "nbclient_output": "{'rows': 12, 'assets': 66, 'planned_seconds': 450}\nCreator notebook check: 66 fictional assets\n",
    "nbconvert_html_contains_output": true,
    "jupyterlab_boundary": "JupyterLab UI review recorded separately. No shared server or extension compatibility test."
  },
  "spatial-checks.json": {
    "trimesh_faces": 12,
    "trimesh_volume": 1.0,
    "trimesh_roundtrip_watertight": true,
    "shapely_area": 12.0,
    "shapely_inside": true,
    "shapely_buffer_area": 15.696034280659125,
    "geopandas_points": 3,
    "geopandas_reprojection_roundtrip": true,
    "folium_markers": 3,
    "pydeck_points": 3,
    "pyvis_nodes": 5,
    "pyvis_edges": 5,
    "boundary": "Stops and asset counts are invented; positions illustrate a Vancouver-area map, not real studio recommendations. Folium loads third-party tiles; pydeck has no basemap or map-service key."
  },
  "report-checks.json": {
    "xlsxwriter_rows": 12,
    "xlsxwriter_formula": "SUM(C2:C13)",
    "xlsxwriter_cached_total": 66,
    "office_recalculation": false,
    "pymupdf_pages": 1,
    "pymupdf_text_verified": true,
    "pymupdf_render_dimensions": [
      1050,
      750
    ],
    "pymupdf_producer_preserved": "PyMuPDF 2.0",
    "plotnine_export": "1350\u00d7750 PNG",
    "wordcloud_top_word": "Story",
    "frontmatter_status": "reviewed-demo",
    "frontmatter_body_preserved": true,
    "markdown_it_raw_html_escaped": true,
    "pygal_series": 3,
    "dask_partitions": 3,
    "dask_matches_pandas": true,
    "dask_boundary": "Small local threaded computation, not a distributed scalability test."
  }
}