=== RESEARCH ===
{'issue': 297, 'kind': 'docs', 'defect_status': 'confirmed', 'category': 'new-page', 'target_files': ['docs/src/getting_started.md', 'docs/make.jl', 'docs/src/index.md'], 'summary': "Create docs/src/getting_started.md — a single continuous FRED→VAR→IRF→plot tutorial — and register it in docs/make.jl and index.md's @contents.", 'current_state': 'Page genuinely absent: `ls docs/src/getting_started.md` → No such file or directory; there is no `examples.md` either. docs/make.jl has NO "Getting Started" nav entry (grep for "Getting Started"/"getting_started" returns nothing; nav today starts "Home" => index.md, "Data Management" => data.md, then module sections at make.jl:24-107). index.md `@contents` at docs/src/index.md:306-307 lists 43 pages and does NOT include getting_started.md. The T008 precondition (draft mode off) is SATISFIED: docs/make.jl:10 reads `draft = get(ENV, "DOCS_DRAFT", "false") == "true"` (issue #107 CLOSED), so @example blocks execute and render real output. All functions the page needs are exported and current: `load_example` (MacroEconometricModels.jl:981; `:fred_md` valid per src/data/examples.jl:20,43,59), `estimate_var` (:605), `irf` (:660), `report` (:677), `plot_result`/`save_plot` (:1003). Defect is real and current.', 'proposed_change': 'Create docs/src/getting_started.md as a linear tutorial (NOT the full method skeleton). H1 with anchor, e.g. `# [Installation & First Model](@id getting_started_page)`.\n\nSections in order:\n1. Install: static ```julia block showing `] add MacroEconometricModels` then `using MacroEconometricModels`. State Julia 1.10+ requirement — confirm the floor against Project.toml `[compat] julia` before writing the number (do not trust "1.10+" blindly; re-derive from Project.toml).\n2. Hidden `@setup gettingstarted` block that mirrors the proven, fast pattern in docs/src/manual.md:20-25 EXACTLY (this is the canonical reduced-size recipe, it already verifies):\n   `using MacroEconometricModels, Random` / `Random.seed!(42)` / `fred = load_example(:fred_md)` / `Y = to_matrix(apply_tcode(fred[:, ["INDPRO", "CPIAUCSL", "FEDFUNDS"]]))` / `Y = Y[all.(isfinite, eachrow(Y)), :]` / `Y = Y[end-59:end, :]`. All example blocks share the one group name `gettingstarted` (docrule §Code Block Types rule 1).\n3. Load data (`@example`): show the visible-realistic version of the load — series named exactly INDPRO / CPIAUCSL / FEDFUNDS (the real FRED-MD mnemonics; docrule §Data & Output Integrity). Interpret the rendered output.\n4. Estimate (`@example`): `model = estimate_var(Y, 4)` then `report(model)` — cite the rendered table values in the prose (docrule anti-pattern #9).\n5. Analyze (`@example`): `result = irf(model, 20; method=:cholesky, ci_type=:bootstrap, reps=50)` (Cholesky identification, one scheme only). Interpret a named response.\n6. Visualize: STATIC ```julia block with `plot_result(result)` (never @example for plots — docrule rule 4), immediately followed by a blank-line-delimited fenced ```@raw html block:\n   `<iframe src="../assets/plots/quickstart_irf.html" width="100%" height="500" frameborder="0" style="border:1px solid #ddd;border-radius:4px;"></iframe>`\n   REUSE the existing committed asset docs/src/assets/plots/quickstart_irf.html (it is exactly a FRED→VAR(4)→bootstrap-IRF plot, generated by docs/generate_plots.jl:106-108, and is already referenced by manual.md). This satisfies "iframe target exists" WITHOUT adding a generate_plots.jl entry. Do NOT invent a new save_plot name whose asset does not exist — that would break the iframe. (If a distinct name is desired, add a matching `save("getting_started_irf.html", plot_result(...))` entry to docs/generate_plots.jl main() near line 108 AND commit the generated html; otherwise reuse quickstart_irf.html.)\n7. "Where to next": link ONLY landing pages that exist today to avoid broken Documenter links — data.md (Data Management), filters.md (Univariate), manual.md (VAR/Multivariate), regression.md (Cross-Sectional), pvar.md (Panel), dsge.md (DSGE), structural_identification.md + nongaussian.md (Structural/Statistical Identification), innovation_accounting.md (Innovation Accounting), nowcast.md (Nowcasting), tests.md (Hypothesis Tests), plotting.md (Visualization), and method_guide.md. NOTE: the issue\'s list names "GMM & SMM" and a merged "Structural Analysis" hub — neither exists yet (no gmm.md; audit §6.3 item 1), so DO NOT link gmm.md (broken link). method_guide.md does not exist yet either (created by #298/T199) — see dependencies.\n\nRegistration (same commit, docrule new-page rule):\n- docs/make.jl: add a "Getting Started" section. Cleanest: `"Getting Started" => ["Installation & First Model" => "getting_started.md"]` inserted right after `"Home" => "index.md"` (make.jl:25) and before/around "Data Management". Coordinate with #295 which restructures this exact region.\n- docs/src/index.md:307: prepend `"getting_started.md"` as the first entry of the `Pages = [...]` @contents array.', 'verify': 'julia --project=docs docs/verify_examples.jl docs/src/getting_started.md → expect OK (executes the @setup + @example blocks; the static plot_result block and @raw html iframe are skipped). Because the @setup/@example blocks are copied verbatim from the already-passing docs/src/manual.md VAR recipe, runtime cost is ~one VAR(4) on 60×3 data + a 20-step bootstrap IRF with reps=50 (seconds, not minutes). Optionally rerun docs/verify_examples.jl docs/src/manual.md to confirm the shared quickstart_irf.html asset is untouched.', 'dependencies': [295, 298], 'collisions': ['docs/make.jl — #295 (T196: restructures the entire nav / creates the Getting Started section). Both add nav entries in the pages= array; land #295 first so its Getting Started section exists, then this issue drops the getting_started.md entry into it — or hand-merge the pages= array.', 'docs/src/index.md — #295 (T196) also trims/reworks index.md and its @contents; the @contents Pages= array at index.md:307 is a shared edit region.', "method_guide.md — #298 (T199) creates docs/src/method_guide.md; this page's 'Where to next' links it. If #298 has not landed, either land #298 first or temporarily omit the method_guide.md link to avoid a broken Documenter reference."], 'effort': 'L', 'risk': 'med'}

=== VERIFY ===
{'issue': 297, 'verdict': 'CORRECTED', 'assessment': 'Defect is REAL and CURRENT. I independently confirmed: docs/src/getting_started.md does not exist (ls: No such file or directory); no examples.md; docs/make.jl has zero "Getting Started"/"getting_started" hits and its pages= array (make.jl:24-105) has no such entry; docs/src/index.md:307 @contents lists 43 .md pages, none is getting_started.md; draft-mode precondition satisfied (make.jl:10). Every function the page needs is exported (load_example, apply_tcode, to_matrix, estimate_var, irf, report, plot_result, save_plot, select_lag_order — one export line each). The fix is largely correct: the @setup recipe the spec copies is verbatim at manual.md:14-21 and docrule.md:109-116 (research\'s "manual.md:20-25" is a loose line range but content is exact); estimate_var(Y,4) and irf(model,20;method=:cholesky,ci_type=:bootstrap,reps=50) match manual.md recipes 1/3; the static plot_result + fenced @raw html iframe reusing quickstart_irf.html matches docrule rule 4 and §Embedding Plot Iframes, and the asset exists (docs/src/assets/plots/quickstart_irf.html, 60996 bytes, generated by generate_plots.jl:108); Julia floor "1.10+" matches Project.toml:73 (julia = "1.10"); make.jl:25 registration target and index.md:307 @contents target are both correct. Not a clean CONFIRMED because proposed_change section 7 is internally contradictory about method_guide.md and there are minor docrule-conformance gaps.', 'corrections': '1) Where-to-next links: OMIT method_guide.md (and gmm.md) — both confirmed MISSING from docs/src. proposed_change section 7 lists method_guide.md inside a list it labels "link ONLY landing pages that exist today," which is a contradiction; method_guide.md is created by #298 (not landed). Do not add the method_guide.md link unless #298 lands first. (Impact is limited: make.jl:110 has warnonly=[:cross_references], so a broken markdown link warns rather than fails the build — but still avoid it.) gmm.md correctly excluded already.\n2) Installation duplication: index.md already has an ## Installation section (index.md:110-121) with `] add MacroEconometricModels`. Keep the tutorial\'s install snippet minimal (one line) to limit docrule anti-pattern #10 duplication, and coordinate with #295 which reworks index.md (it may relocate installation).\n3) docrule.md:60 requires every page to end with a References section. The linear-tutorial design omits it; either add a short References section (e.g. Sims 1980 for VAR) or explicitly accept this as a getting-started deviation. Low severity.\n4) Sequence collisions before implementing: land #295 (make.jl nav + index.md @contents) first or hand-merge the pages= array (make.jl:24) and the Pages= array (index.md:307); land #298 before including any method_guide.md link.', 'collision_issues': [295, 298], 'discriminating_power': 'n/a (docs page, not a test)', 'final_effort': 'M'}