=== RESEARCH ===
{'issue': 295, 'kind': 'docs', 'defect_status': 'confirmed', 'category': 'nav-arch', 'target_files': ['docs/make.jl', 'docs/src/index.md', 'CLAUDE.md'], 'summary': 'Regroup docs/make.jl pages= into the §6.2 target IA (add Getting Started, GMM & SMM, merged Cross-Section & Panel, merged Structural Analysis, Project groups), trim index.md + refresh its @contents to match, and update the CLAUDE.md nav map — using existing filenames with corrected sidebar labels (no renames).', 'current_state': 'Defect still present at working-tree tip (release/v0.6.6, cb4f048). docs/make.jl:24-113 `pages=` is the old flat ~13-section IA: "Data Management" is top-level (line 25) not under a Getting Started group; there is NO "Getting Started", NO "GMM & SMM", NO "Project" group; "Cross-Sectional Models" (regression/binary_choice/ordered_multinomial) and "Panel Models" (pvar/panel_reg/did/event_study) are two separate sections; and the identify/decompose material is split across THREE separate sections — "Innovation Accounting" (innovation_accounting.md + ia_irf/ia_fevd/ia_hd), top-level single-page "Structural Identification" => "structural_identification.md", and "Statistical Identification" (nongaussian.md + id_nongaussian/id_heteroskedastic/id_testing). index.md:306-307 `@contents` Pages list is stale/incomplete (omits x13.md, spectral.md, ordered_multinomial.md, panel_reg.md, structural_identification.md, dsge_hd/ha/olg/continuous.md, io*.md, id_*.md). All NEW pages this task lists are ABSENT (ls confirms getting_started.md, method_guide.md, gmm.md, notation.md, bibliography.md, changelog.md, cite.md do not exist). docs/docrule.md has no "Page Types"/"Hub"/"Landing" section yet (grep empty). CLAUDE.md:271-289 nav map is itself stale ("36 files", still lists deleted examples.md, missing spectral/ordered_multinomial/panel_reg/dsge_olg/dsge_continuous/structural_identification/id_* pages). NOTE (staleness correction to the issue): the issue/audit says Input-Output is "reserved for the v0.6.0 io merge" and to leave a comment "if the io pages are not yet on dev" — but io.md + io_classical/io_environmental/io_baqaee_farhi/io_download already EXIST and are already registered (make.jl:67-73), so that section is populated, not reserved.', 'proposed_change': 'Rewrite docs/make.jl `pages=` (make.jl:24-113) to the §6.2 tree using EXISTING filenames with corrected labels only (renames are out of scope — that is #303/T204). Target tree (labels => existing files):\nHome => index.md.\n"Getting Started" => ["Installation & First Model" => "getting_started.md" (NEW, #297), "Choosing a Method" => "method_guide.md" (NEW, #298), "Data Management" => "data.md" (moved from top-level)].\n"Univariate Models" => filters.md, x13.md, spectral.md, arima.md, volatility.md (unchanged).\n"Multivariate Models" => "VAR"=>manual.md, "Bayesian VAR"=>bayesian.md, "VECM"=>vecm.md, "Local Projections"=>lp.md, "Factor Models"=>factormodels.md, "FAVAR"=>favar.md (unchanged).\n"Cross-Section & Panel" => regression.md, binary_choice.md, ordered_multinomial.md, panel_reg.md, pvar.md, did.md, event_study.md (merge the two old sections; 7 flat children, no hub so the ≤6-per-hub rule does not apply, but flag the count in review).\n"GMM & SMM" => gmm.md (NEW, #296).\n"DSGE Models" => dsge.md + dsge_linear/nonlinear/constraints/estimation/hd/ha/olg/continuous.md (unchanged; hub+8 children exceeds 6 — leave the existing note or split per acceptance criterion #4).\n"Structural Analysis" => merge the 3 old sections: structural_identification.md, plus the Statistical Identification hub (nongaussian.md + id_nongaussian.md + id_heteroskedastic.md + id_testing.md) and the Innovation Accounting hub (innovation_accounting.md + ia_irf.md + ia_fevd.md + ia_hd.md); preserve the two sub-hubs as nested groups since flat this is 9 pages (>6).\n"Nowcasting" => nowcast.md + nowcast_dfm/bvar/bridge/news.md (unchanged).\n"Input-Output Analysis" => io.md + io_classical/io_environmental/io_baqaee_farhi/io_download.md (already present — keep as-is; do NOT leave a \'reserved/if not yet on dev\' comment, the issue text is stale here).\n"Hypothesis Tests" => tests.md + tests_unitroot/tests_unitroot_advanced/tests_breaks/tests_panel/tests_diagnostics.md (unchanged).\n"Visualization" => plotting.md.\n"API Reference" => per §6.4 — this subtree is owned by #301/T202 (per-domain api pages); either land after #301 or keep the current 3-page api.md/api_types.md/api_functions.md subtree until #301 lands.\n"Project" => ["Notation"=>notation.md (NEW, #299), "Bibliography"=>bibliography.md (NEW, #299), "Changelog / What\'s New"=>changelog.md (NEW, #300), "How to Cite"=>cite.md (NEW, #300)].\nEvery NEW/moved page must physically exist before it is registered or makedocs errors nav-to-missing-file. Then update index.md:306-307 `@contents` Pages= to list EVERY registered page in the final tree (coordinate the u_t/X-13/count fixes with #281/T182 which edits the same index.md; per criterion #8 trim index.md to ~120 lines). Update CLAUDE.md:271-289 nav map block to mirror the new tree and drop the deleted examples.md line and the \'36 files\' count. Source-of-truth for label/file mapping: docs/make.jl current pages= (lines 24-113); filename inventory from docs/src/ (60 .md files present). Do NOT rename manual.md/bayesian.md/nongaussian.md (that is #303/T204).', 'verify': 'Primary gate (a pages= change): `julia --project=docs docs/make.jl` must build with 0 nav-to-missing-file errors and no new warnings (warnonly is only [:missing_docs,:cross_references]). Per-page example verification for the moved/new narrative pages once they exist: `julia --project=docs docs/verify_examples.jl docs/src/getting_started.md` (and method_guide.md, gmm.md, notation.md, bibliography.md, data.md). Do not run in planning (slow).', 'dependencies': [294, 296, 297, 298, 299, 300, 301, 281], 'collisions': ["docs/make.jl — #301 (T202 restructures the 'API Reference' pages= subtree into per-domain pages; T196 must consume its final API subtree)", 'docs/make.jl — #303 (T204 renames manual/bayesian/nongaussian files; if it lands first, the labels-with-old-filenames mapping must switch to new filenames)', 'docs/make.jl — #296/#297/#298/#299/#300 each add their new page(s) to pages=; T196 owns the final tree so it must land after them or absorb their registrations', 'docs/src/index.md — #281 (T182 fixes u_t dim, surfaces X-13, refreshes @contents at index.md:306-307, fixes stale counts); T196 trims index to ~120 lines and rewrites the same @contents block — direct region overlap', 'CLAUDE.md — nav-map block lines 271-289 rewritten by T196'], 'effort': 'L', 'risk': 'high'}

=== VERIFY ===
{'issue': 295, 'verdict': 'CORRECTED', 'assessment': 'Defect is REAL and still present at working-tree tip (release/v0.6.6, cb4f048). Independently verified: docs/make.jl:24-105 pages= is the old flat ~13-section IA (Data Management top-level at :26; no Getting Started/GMM & SMM/Project groups; Cross-Sectional :42-46 and Panel :47-52 are separate; identify/decompose split across three sections — Innovation Accounting :71-76, single-page top-level Structural Identification :77, Statistical Identification :78-83). index.md:306-307 @contents is stale/incomplete; CLAUDE.md:271-289 nav map is stale (36 files, lists deleted examples.md, missing spectral/ordered_multinomial/panel_reg/dsge_olg/dsge_continuous/structural_identification/id_*/ia_* pages); all seven NEW pages are absent; docrule.md has no Page Types/Hub/Landing sections. The proposed target tree matches issue #295 §6.2 exactly and the io staleness correction is right (io pages exist+registered at make.jl:64-70). BUT the spec\'s diagnosis has factual errors the implementer must not propagate. Verdict CORRECTED (not CONFIRMED) because the spec\'s source-of-truth text carries wrong facts (id_*.md wrongly listed as omitted from @contents; wrong file count "60") and omits a hard sequencing constraint.', 'corrections': '1. @contents omission list is WRONG: index.md:307 ALREADY contains id_nongaussian.md, id_heteroskedastic.md, id_testing.md and nongaussian.md — do NOT treat id_*.md as missing. The pages actually absent from @contents are: x13, spectral, ordered_multinomial, panel_reg, structural_identification, dsge_hd, dsge_ha, dsge_olg, dsge_continuous, and all five io pages (io, io_classical, io_environmental, io_baqaee_farhi, io_download). The directive "list EVERY registered page" is still correct and self-corrects, but derive the list mechanically from make.jl pages= (issue #281 also undercounts these).\n2. File count is WRONG: docs/src/ currently holds 58 .md files, not 60. When updating CLAUDE.md, drop the stale "36 files" and compute the final count from the actual tree at merge time (58 existing minus examples.md-already-gone, plus however many of the 7 new pages have landed); do not hardcode "60".\n3. Minor anchor drift: pages= spans make.jl:24-105 (106-117 are checkdocs/warnonly/deploy comment, not pages=); the Input-Output block is make.jl:64-70 (spec said 67-73).\n4. Hard sequencing/blocking constraints (all cited issues are OPEN): every NEW/moved page must physically exist before registration or makedocs errors nav-to-missing-file — getting_started/method_guide/gmm/notation/bibliography/changelog/cite are ALL absent now, so T196 must land after #297/#298/#296/#299/#300. Acceptance criterion #7 ("Follow docrule Page Types/Hub skeleton/Landing rules") and #3 ("hubs link every child") CANNOT be satisfied until #294/T195 delivers those docrule sections and hub skeletons — do not merge T196 as satisfying those criteria before #294. index.md is a direct region collision with #281/T182 (which rewrites the same @contents at :307 and fixes u_t/X-13/counts, and explicitly "Blocks [T196]"): land #281 first, then T196 trims index to ~120 lines carrying #281\'s corrections. Keep the current 3-page api.md/api_types.md/api_functions.md API subtree until #301/T202 lands. Renames (#303) are deferred/"decide" — keep existing filenames as the spec says.', 'collision_issues': [281, 294, 296, 297, 298, 299, 300, 301, 303], 'discriminating_power': 'n/a (docs/navigation change, no test assertions)', 'final_effort': 'L'}