From 57ad99030392b11fa6df98e606d5499f9e812623 Mon Sep 17 00:00:00 2001 From: Omar Adalat <47933317+nightly@users.noreply.github.com> Date: Sun, 23 Aug 2026 21:07:19 -0400 Subject: [PATCH 1/2] Temporarily validate Accord Marimo notebook --- .github/workflows/validate-accord-marimo.yml | 21 ++++ validation/accord-marimo/data_explorer_mo.py | 114 +++++++++++++++++++ validation/accord-marimo/pyproject.toml | 10 ++ 3 files changed, 145 insertions(+) create mode 100644 .github/workflows/validate-accord-marimo.yml create mode 100644 validation/accord-marimo/data_explorer_mo.py create mode 100644 validation/accord-marimo/pyproject.toml diff --git a/.github/workflows/validate-accord-marimo.yml b/.github/workflows/validate-accord-marimo.yml new file mode 100644 index 0000000..ba70852 --- /dev/null +++ b/.github/workflows/validate-accord-marimo.yml @@ -0,0 +1,21 @@ +name: Validate Accord Marimo notebook + +on: + push: + branches: + - ci/accord-marimo-check-20260824 + +permissions: + contents: read + +jobs: + marimo-check: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v5 + - uses: astral-sh/setup-uv@v7 + - name: Run the real Marimo checker + run: >- + uv run --project validation/accord-marimo marimo check --strict + validation/accord-marimo/data_explorer_mo.py diff --git a/validation/accord-marimo/data_explorer_mo.py b/validation/accord-marimo/data_explorer_mo.py new file mode 100644 index 0000000..72ec4af --- /dev/null +++ b/validation/accord-marimo/data_explorer_mo.py @@ -0,0 +1,114 @@ +# /// script +# requires-python = ">=3.11" +# dependencies = [ +# "marimo>=0.24.0", +# ] +# /// + +import marimo + +__generated_with = "0.24.0" +app = marimo.App(width="full") + + +@app.cell +def _(dashboard): + dashboard + return + + +@app.cell +def _(): + import sys + from pathlib import Path + + repo_root = Path(__file__).resolve().parents[1] + if str(repo_root) not in sys.path: + sys.path.insert(0, str(repo_root)) + + from src.stage4_explorer_data import empty_record, load_records + from src.stage4_explorer_ui import ( + build_dashboard, + corpus_summary, + filter_records, + make_detail_controls, + make_global_controls, + make_task_picker, + ) + + task_records, illustrative_records = load_records(repo_root / "data" / "stage4") + domains = sorted({_record["domain"] for _record in task_records}) + families = sorted({_record["family"] for _record in task_records}) + return ( + build_dashboard, + corpus_summary, + domains, + empty_record, + families, + filter_records, + illustrative_records, + make_detail_controls, + make_global_controls, + make_task_picker, + task_records, + ) + + +@app.cell +def _(domains, families, make_global_controls): + global_controls = make_global_controls(domains, families) + return (global_controls,) + + +@app.cell +def _(filter_records, global_controls, task_records): + filtered_records = filter_records(task_records, global_controls) + return (filtered_records,) + + +@app.cell +def _(filtered_records, make_task_picker): + task_picker = make_task_picker(filtered_records) + return (task_picker,) + + +@app.cell +def _(empty_record, make_detail_controls, task_picker, task_records): + if task_picker.value is None: + selected_record = empty_record() + else: + selected_record = next( + record for record in task_records if record["key"] == task_picker.value + ) + detail_controls = make_detail_controls(selected_record) + return detail_controls, selected_record + + +@app.cell +def _( + build_dashboard, + corpus_summary, + detail_controls, + filtered_records, + global_controls, + illustrative_records, + selected_record, + task_picker, + task_records, +): + _summary = corpus_summary(task_records) + dashboard = build_dashboard( + task_records=task_records, + illustrative_records=illustrative_records, + filtered_records=filtered_records, + selected_record=selected_record, + global_controls=global_controls, + task_picker=task_picker, + detail_controls=detail_controls, + summary=_summary, + ) + return (dashboard,) + + +if __name__ == "__main__": + app.run() diff --git a/validation/accord-marimo/pyproject.toml b/validation/accord-marimo/pyproject.toml new file mode 100644 index 0000000..d17043e --- /dev/null +++ b/validation/accord-marimo/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "accord-marimo-validation" +version = "0.0.0" +requires-python = ">=3.11" +dependencies = [ + "marimo==0.24.0", +] + +[tool.uv] +package = false From 0f54e82d13e5898dcb9f814b147ce9d47c248a7c Mon Sep 17 00:00:00 2001 From: Omar Adalat <47933317+nightly@users.noreply.github.com> Date: Sun, 23 Aug 2026 21:08:28 -0400 Subject: [PATCH 2/2] Expose temporary Marimo validation as a PR check --- .github/workflows/validate-accord-marimo.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/validate-accord-marimo.yml b/.github/workflows/validate-accord-marimo.yml index ba70852..84625f7 100644 --- a/.github/workflows/validate-accord-marimo.yml +++ b/.github/workflows/validate-accord-marimo.yml @@ -4,6 +4,9 @@ on: push: branches: - ci/accord-marimo-check-20260824 + pull_request: + branches: + - master permissions: contents: read