docs: restructure RTD site around 5 top-level sections (IA overhaul)#703
Conversation
Overall Assessment✅ Looks good — no unmitigated P0 or P1 findings. Executive Summary
MethodologyNo findings. No causal methods are affected. Code QualityNo findings. PerformanceNo findings. MaintainabilityNo findings. Tech DebtNo findings. SecurityNo findings or exposed secrets detected. Documentation/TestsP2 — Legacy Quickstart fragment is no longer preserved
Local Sphinx and pytest execution was unavailable because those tools are not installed in the review environment. |
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0 or P1 findings. Executive Summary
MethodologyNo findings. The affected documentation descriptions align with Code QualityNo findings. PerformanceNo findings. MaintainabilityNo findings. The new dependency is synchronized across all four declared documentation environments. Tech DebtNo findings or relevant tracked limitations. SecurityNo findings or exposed secrets detected. Documentation/TestsP2 — Legacy Quickstart fragment remains broken
P2 — Refreshed estimator catalog omits
|
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0 or P1 findings. Executive Summary
MethodologyNo findings. The refreshed summaries, including RDD, CiC, HAD, LP-DiD, and Wooldridge ETWFE, agree with Code QualityNo findings. PerformanceNo findings. MaintainabilityNo findings. Tech DebtNo findings. SecurityNo findings. No exposed secrets or credentials detected. Documentation/TestsP2 — Legacy Quickstart fragment remains broken
P2 — Homepage estimator catalog still omits
|
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0 or P1 findings. Executive Summary
MethodologyNo findings. The refreshed estimator summaries and RDD taxonomy match the Methodology Registry and source APIs. Code QualityNo findings. PerformanceNo findings. MaintainabilityNo findings. Tech DebtNo findings. SecurityNo findings. No credentials or secrets detected. Documentation/TestsP2 — Legacy Quickstart fragment remains broken
P2 — Homepage catalog still omits
|
Replace the 40-entry flat root toctree (which pydata-sphinx-theme dumped into an unusable, viewport-overflowing "More" dropdown) with 5 sections: Getting Started / Practitioner Guide / Tutorials / User Guide / API Reference. Each section gets a sphinx-design card-grid landing page; the tutorials index groups all 28 notebooks into 4 tracks with short sidebar labels, giving tutorial pages sibling navigation for the first time. All existing page URLs are unchanged (landing pages are additive; no files move). Also: homepage card grid + full-width layout (html_sidebars), quickstart H1 "Getting Started" -> "Quickstart" to resolve the triple label collision, html_title shortened for SERP display, sphinx-design>=0.6.1 added to the four synced dependency surfaces (0.6.1 floor keeps the py3.9 smoke job resolvable), and the new-tutorial registration convention documented in CONTRIBUTING/CLAUDE. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
Drift fixes so the restructured docs accurately reflect the library: - Homepage "Supported Estimators" table: 15 stale rows -> all 23 current catalog entries (adds dCDH, SyntheticControl, StaggeredTripleDifference, HAD, LPDiD, WooldridgeDiD/ETWFE, ChangesInChanges, RegressionDiscontinuity); "13+ Estimators" claims updated to 20+. - api/index.rst autosummary: add RegressionDiscontinuity (Estimators), RegressionDiscontinuityResults + RDPlotResult (Results), RDPlot (Visualization). The RDD module page documents these only with :no-index:, so they previously had no canonical object pages and :class: xrefs to them rendered as plain text. - Refresh checked-in api/_autosummary stubs that had drifted from source (missing df_convention/inference_df/p_val_type attributes and the never-committed ChangesInChanges/QDiD/ChangesInChangesResults stubs). Verified: make -C docs html SPHINXOPTS="-W" clean; every homepage table row resolves to its _autosummary class page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
"Validate assumptions" / "Test the key identifying assumption" implied pre-trends tests can establish parallel trends; the assumption is untestable and pre-period evidence only assesses plausibility (REGISTRY convention, Roth 2022). Card renamed to "Parallel Trends Diagnostics" with assessment-framed wording. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
RegressionDiscontinuity sat under a "DiD analysis" section label and RDPlot (a plot-builder class) under "Plotting functions" - reworded both section descriptions to cover their actual contents. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
…iD row - quickstart.rst: explicit `.. _getting-started:` label before the renamed Quickstart H1 so the legacy quickstart.html#getting-started fragment keeps resolving for external links. - Homepage catalog: add QDiD (quantile-by-quantile DiD comparison estimator) - the table now has 1:1 parity with the api/index.rst Estimators autosummary (24 entries). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
…w P2) "DiD family plus regression discontinuity" omitted SyntheticControl and the BaconDecomposition diagnostic that the same autosummary lists. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tt9ZXdhHdGsBvRTkNWb39M
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0 or P1 findings. Executive Summary
MethodologyNo findings. Documentation claims for RD, QDiD, CiC, HAD, Continuous DiD, and other listed methods match Code QualityNo findings. PerformanceNo findings. MaintainabilityNo findings. Tech DebtNo findings. SecurityNo findings. No apparent secrets or credentials were introduced. Documentation/TestsNo findings.
|
Summary
Replace the 40-entry flat root toctree with 5 top-level sections (Getting Started / Practitioner Guide / Tutorials / User Guide / API Reference), each with a sphinx-design card-grid landing page. The old structure flattened into pydata-sphinx-theme's header as a 34-item "More" dropdown that was taller than a 900px viewport (bottom items, including API Reference, unclickable) and a 45-link unsectioned mobile menu.
New
docs/tutorials/index.rstgroups all 28 notebooks into 4 tracks (Business Applications / Fundamentals / Advanced Methods / Study Design) with short sidebar labels and per-notebook cards - tutorial pages get sibling navigation in the left sidebar for the first time, and prev/next now follows a coherent grouped order.Homepage: "Explore the Documentation" card grid, full-width layout (
html_sidebars = {"index": []}),html_titleshortened to "diff-diff documentation" for SERP/tab display.docs/quickstart.rstH1 "Getting Started" -> "Quickstart" (resolves a three-way "Getting Started" label collision).sphinx-design>=0.6.1added to the four synced dependency surfaces (pyproject docs extra, .readthedocs.yaml, both docs-tests.yml pip lines). Floor deliberately 0.6.1: sphinx-design 0.7.0 requires Python >=3.11 and would break thedocs-deps-py39-smokejob.New-tutorial registration convention (toctree entry + card in
docs/tutorials/index.rst, notdocs/index.rst) documented in CONTRIBUTING.md and CLAUDE.md; CHANGELOG bullet added.URL stability: no existing
.rst/.ipynbfile moves or renames - all deep links in README,diff_diff/guides/llms*.txt, and external consumers keep working. Landing pages are additive.Drift sync (second commit): homepage "Supported Estimators" table refreshed from 15 stale rows to the full 23-entry current catalog ("13+" claims -> "20+"); RDD classes (
RegressionDiscontinuity, results,RDPlot) added to theapi/index.rstautosummary - they were documented only with:no-index:on the module page, so:class:cross-references to them rendered as dead text; checked-inapi/_autosummarystubs refreshed to match current source (they had drifted - missing new result attributes and three never-committed CiC/QDiD stubs).Methodology references (required if estimator / math changes)
Validation
tests/test_doc_snippets.pypasses (119 passed, 5 skipped); the homepage code snippet is byte-identical.make -C docs html SPHINXOPTS="-W"builds with zero warnings on the CI dependency set. Browser-verified on the built HTML at 1440px and 390px: navbar shows exactly 5 links (no "More" dropdown), tutorial pages show the 4 grouped tracks in the left sidebar, mobile menu shows 5 sections instead of 45 flat links,choosing_estimator.html#survey-design-supportandapi/staggered.html#staggeredtripledifferenceanchors preserved, stable URLs (quickstart.html,tutorials/*.html) unchanged.Security / privacy
Generated with Claude Code