=== RESEARCH ===
{'issue': 298, 'kind': 'docs', 'defect_status': 'confirmed', 'category': 'new-page', 'target_files': ['docs/src/method_guide.md', 'docs/make.jl', 'docs/src/index.md'], 'summary': "Create the missing docs/src/method_guide.md routing page (decision tables mapping question -> estimator -> owning page via @ref), and register it in make.jl's Getting Started nav and index.md @contents.", 'current_state': 'Gap is real, not yet fixed. (1) docs/src/method_guide.md does NOT exist (ls fails; not in docs/src listing of 55 pages). (2) docs/make.jl pages= (lines 24-102) has NO "Getting Started" section at all — it starts "Home" => "index.md" (L25) then "Data Management" => "data.md" (L26); neither method_guide.md nor getting_started.md is registered. (3) docs/src/index.md @contents Pages list (L306-307) does not include method_guide.md. (4) getting_started.md (T198/#297) also does not exist yet, so the required "linked from getting_started.md" cross-link has no target yet. (5) There is NO gmm.md page (ls fails; grep finds no gmm.md), so the issue-mandated GMM/SMM domain has no dedicated @ref target — that page is owned by T197/#296. (6) IO pages (io.md etc., L64-69 of make.jl) have plain H1 headers with NO (@id ...) anchors, unlike all model pages which do; IO is not in the issue\'s required-domain list, so this only matters if the author chooses to add IO rows. (7) make.jl L110 still has warnonly=[:missing_docs, :cross_references], so broken @ref currently only warn (T009 removal not landed) — links must still resolve for the page to be correct.', 'proposed_change': 'Create docs/src/method_guide.md as a routing/decision-table page (Markdown tables + @ref links, minimal or no @example; obey docrule Writing Voice — no unverifiable counts, present tense, no hedging). H1 must carry a page anchor: `# [Choosing a Method](@id method_guide_page)`. Organize by reader question grouped along sidebar domains; each table row = concrete data situation -> recommended estimator/function -> @ref to the OWNING page. Use the verified anchor-id link form `[Label](@ref <anchor>)`. Verified anchor ids (re-derived from each page H1): univariate: filters_page (trend/cycle HP/BK/Hamilton), x13_page (seasonal adjustment), spectral_page (frequency-domain/periodicity), arima_page, volatility_page (GARCH); multivariate: var_page (manual.md), bvar_page (bayesian.md), vecm_page (cointegration), lp_page (local-projection IRF), factor_page (factormodels.md, large-panel factors), favar_page (shock IRFs from 100+ series); cross-section & panel: regression_page (OLS/WLS/IV-2SLS), binary_choice_page (logit/probit), ordered_multinomial_page, panel_reg_page (FE/RE/panel IV), pvar_page (panel VAR), did_page (staggered treatment), event_study_page; DSGE: dsge_page (hub), dsge_linear, dsge_nonlinear, dsge_constraints, dsge_estimation, dsge_hd_page, dsge_ha, dsge_olg, dsge_continuous; structural analysis: structural_identification_page, nongaussian_page (statistical-id hub), id_nongaussian_page, id_heteroskedastic_page, id_testing_page, innovation_accounting_page (hub), ia_irf_page, ia_fevd_page, ia_hd_page; nowcasting: nowcast_page (hub), nowcast_dfm_page, nowcast_bvar_page, nowcast_bridge_page, nowcast_news_page; hypothesis tests: tests_page (hub), tests_unitroot_page, tests_unitroot_advanced_page, tests_breaks_page, tests_panel_page, tests_diagnostics_page; plus data_page (data.md) for a "get FRED/data first" pointer. GMM/SMM domain: there is no gmm.md yet — either (a) sequence after T197/#296 and link to its new anchor (confirm the id it defines, expected gmm_page), or (b) as interim, route panel GMM/IV rows to panel_reg_page and SMM rows to dsge_estimation; do NOT emit a dead @ref to a nonexistent gmm.md. Registration (same commit, docrule new-page checklist): (1) docs/make.jl — add `"Choosing a Method" => "method_guide.md"` inside the Getting Started section. That section is created by T198/#297 + T196/#295; if this lands after them, append the entry to the existing section; if it must land before, insert a new `"Getting Started" => ["Choosing a Method" => "method_guide.md"],` block immediately after `"Home" => "index.md",` (L25). (2) docs/src/index.md — add "method_guide.md" to the @contents Pages array at L307 (place near the front). End the page with a short References section only if any method is cited by name (per docrule); a pure routing page may omit it, but keep the H1 anchor. Do NOT add IO rows unless you first add (@id ...) anchors to the io*.md H1s (out of scope here).', 'verify': 'Routing page has no @example, so verify with a full build: `julia --project=docs docs/make.jl` and confirm no "unable to find target"/broken @ref warnings referencing method_guide.md (cross_references is still in warnonly at make.jl:110, so grep the build log for the new page\'s links rather than relying on a nonzero exit). If any @example block is added, also run `julia --project=docs docs/verify_examples.jl docs/src/method_guide.md`.', 'dependencies': [297, 296, 295], 'collisions': ['docs/make.jl — #297 (T198, registers getting_started.md + creates/uses Getting Started section)', 'docs/make.jl — #295 (T196, restructures nav / creates Getting Started section)', 'docs/make.jl — #296 (T197, registers gmm.md in pages=)', 'docs/make.jl — #299 (T200, adds notation.md/bibliography.md to pages=)', 'docs/src/index.md — #297 (T198, edits @contents Pages)', 'docs/src/index.md — #296 (T197, edits @contents Pages)', 'docs/src/index.md — #299 (T200, edits @contents Pages)', 'docs/src/index.md — #281 (T182, refreshes @contents Pages at L307)', "docs/src/getting_started.md — #297 (T198 owns this file; this issue only adds an inbound 'where to next' link to it)"], 'effort': 'M', 'risk': 'low'}

=== VERIFY ===
{'issue': 298, 'verdict': 'CONFIRMED', 'assessment': 'Gap is real at current tip (release/v0.6.6, HEAD 9ad4818) and the spec\'s load-bearing facts hold up.\n\n(1) docs/src/method_guide.md does NOT exist (ls fails; not among the 58 .md pages in docs/src). grep "method_guide" across docs/ finds only the two audit-report plan references, no page and no dead @ref. The proposed anchor `method_guide_page` is unused (grep for `@id method_guide_page` / `@ref method_guide` returns nothing), so no collision.\n\n(2) docs/make.jl pages= (lines 24-105; spec said 24-102, immaterial) begins `"Home" => "index.md"` (L25) then `"Data Management" => "data.md"` (L26). There is NO "Getting Started" section — confirmed. warnonly=[:missing_docs, :cross_references] is at L110 — confirmed, so broken @ref only warn.\n\n(3) docs/src/index.md @contents is at L306 (```@contents) / L307 (Pages = [...]); the array does NOT contain method_guide.md — confirmed.\n\n(4) Dependencies confirmed absent: getting_started.md (#297), gmm.md (#296), notation.md/bibliography.md (#299) all fail ls. So the Getting Started nav section and the gmm_page anchor genuinely do not exist yet; the spec\'s conditional handling (append if #295/#297 landed, else insert a new `"Getting Started" => [...]` block after L25) and the GMM guidance (link gmm_page only after #296, else interim-route to panel_reg_page/dsge_estimation, never emit a dead @ref) are both sound.\n\n(5) MOST IMPORTANT — every one of the ~48 anchor ids the spec pre-derives is EXACTLY correct against each page\'s actual H1: filters_page, x13_page, spectral_page, arima_page (H1 "ARIMA Models"), volatility_page, var_page (manual.md), bvar_page (bayesian.md), vecm_page, lp_page, factor_page (factormodels.md), favar_page, regression_page, binary_choice_page, ordered_multinomial_page, panel_reg_page, pvar_page, did_page, event_study_page, dsge_page, dsge_linear, dsge_nonlinear, dsge_constraints, dsge_estimation, dsge_hd_page, dsge_ha, dsge_olg, dsge_continuous, structural_identification_page, nongaussian_page (H1 "Statistical Identification"), id_nongaussian_page, id_heteroskedastic_page, id_testing_page, innovation_accounting_page, ia_irf_page, ia_fevd_page, ia_hd_page, nowcast_page, nowcast_dfm_page, nowcast_bvar_page, nowcast_bridge_page, nowcast_news_page, tests_page, tests_unitroot_page, tests_unitroot_advanced_page, tests_breaks_page, tests_panel_page, tests_diagnostics_page, data_page. Note the DSGE detail pages correctly use bare ids without the _page suffix (dsge_linear, dsge_nonlinear, dsge_constraints, dsge_estimation, dsge_ha, dsge_olg, dsge_continuous) while dsge_hd.md uses dsge_hd_page — the spec captures this exactly. Since cross_references is in warnonly, wrong ids would silently rot, so this correctness matters.\n\n(6) IO scoping confirmed: io.md/io_classical.md/io_environmental.md/io_baqaee_farhi.md/io_download.md all have plain `# ...` H1s with NO (@id) anchors — the spec\'s directive to omit IO rows unless anchors are added first is correct and appropriately out-of-scope.\n\ndocrule compliance: the proposed link form `[Label](@ref anchor)` with `(@id ...)` on the H1 matches docrule L342. Writing-Voice constraints (present tense, no hedging, no unverifiable counts) are correctly invoked.\n\nMinor non-blocking nits (do not change the fix): spec\'s narrative says "55 pages" (actual 58) and a couple of line ranges are off by a few lines; both are immaterial. The References-section latitude ("omit for a pure routing page") is a defensible reading of docrule L60/anti-pattern #8 since a nav page cites no Author(Year) works — acceptable as flagged.', 'corrections': '', 'collision_issues': [281, 295, 296, 297, 299], 'discriminating_power': 'n/a (docs page; no test assertions)', 'final_effort': 'M'}