=== RESEARCH ===
{'issue': 278, 'kind': 'docs', 'defect_status': 'partially_confirmed', 'category': 'prose-count-purge', 'target_files': ['docs/src/index.md', 'docs/src/plotting.md', 'CLAUDE.md'], 'summary': 'Purge the stale hard-coded "41" plot-dispatch counts from index.md and plotting.md, expand index.md\'s @contents to list all 57 nav pages, and correct the stale counts/claims (700KB size_threshold, "36 files", examples.md nav entry, 55/52 dispatch counts) in local CLAUDE.md.', 'current_state': 'Confirmed live drifts against current release/v0.6.6 tree: (1) plotting.md:3 still says the unified `plot_result()` "dispatches on 41 result types"; (2) index.md:92 "with 41 plot dispatches" and index.md:152 "41 plot dispatches" both stale. REALITY: 56 `plot_result` methods defined across src/plotting/*.jl (forecast 7, filters 6, fevd 3, did 5, irf 4, hd 2, nowcast 2, models 16, io 3, spectral 4, reg 4 = 56; grep `^function plot_result(` also returns 56). Note the issue/audit "53" is itself now stale — the runtime truth is `length(methods(plot_result))`. (3) index.md:307 `@contents` Pages= lists only 43 pages; make.jl:24-105 nav registers 57 non-index pages (58 .md files incl index). MISSING 14: x13.md, spectral.md, ordered_multinomial.md, panel_reg.md, dsge_hd.md, dsge_ha.md, dsge_olg.md, dsge_continuous.md, io.md, io_classical.md, io_environmental.md, io_baqaee_farhi.md, io_download.md, structural_identification.md (issue said "10" — actually 14). (4) CLAUDE.md:303 still `size_threshold=700*1024` (make.jl:20 is `900 * 1024`). (5) CLAUDE.md:271 "36 files"; :287 lists deleted "Examples → examples.md" (docs/src/examples.md does not exist); nav block 274-288 also missing spectral/ordered_multinomial/panel_reg/dsge_olg/dsge_continuous/structural_identification/id_* pages. (6) CLAUDE.md dispatch counts inconsistent+stale: :23 "(55 dispatches)", :195 "(55 dispatches)", :253 "52 dispatches". FALSE-POSITIVE sub-item: the audit\'s "Documentation.yml runs generate_plots.jl" claim is ALREADY corrected — CLAUDE.md:10-11,204,262,315 now correctly state plots are committed and regenerated locally, not CI-generated.', 'proposed_change': 'Prefer omission over any new hard number (docrule "no unverifiable counts in prose"); leave the single authoritative @eval count to T186\'s plotting rewrite. Edits: (A) plotting.md:3 — remove "on 41 result types": rewrite to "The unified `plot_result()` function dispatches on the library\'s result types, producing self-contained HTML documents with interactive tooltips." (B) index.md:92 — drop the number: "**D3.js Plotting**: Zero-dependency interactive visualization via D3.js v7 with plot dispatches for IRF, FEVD, ...". (C) index.md:152 — table cell: "D3.js interactive visualization: plot dispatches, Solarized Light/Dark themes" (no number). (D) index.md:307 `@contents` Pages= — replace the 43-entry list with the full 57-page list in make.jl nav order: ["data.md","filters.md","x13.md","spectral.md","arima.md","volatility.md","manual.md","bayesian.md","vecm.md","lp.md","factormodels.md","favar.md","regression.md","binary_choice.md","ordered_multinomial.md","pvar.md","panel_reg.md","did.md","event_study.md","dsge.md","dsge_linear.md","dsge_nonlinear.md","dsge_constraints.md","dsge_estimation.md","dsge_hd.md","dsge_ha.md","dsge_olg.md","dsge_continuous.md","io.md","io_classical.md","io_environmental.md","io_baqaee_farhi.md","io_download.md","innovation_accounting.md","ia_irf.md","ia_fevd.md","ia_hd.md","structural_identification.md","nongaussian.md","id_nongaussian.md","id_heteroskedastic.md","id_testing.md","nowcast.md","nowcast_dfm.md","nowcast_bvar.md","nowcast_bridge.md","nowcast_news.md","tests.md","tests_unitroot.md","tests_unitroot_advanced.md","tests_breaks.md","tests_panel.md","tests_diagnostics.md","plotting.md","api.md","api_types.md","api_functions.md"] (keep Depth = 2). If a build-time count is desired instead of omission in (A)-(C), coordinate with T186 to write it ONCE as an @eval block rendering `length(methods(plot_result))` — do not re-introduce a literal. (E) CLAUDE.md (LOCAL-ONLY, not part of the release artifact but fix in same pass): :303 change `size_threshold=700*1024` → `size_threshold=900*1024` (source make.jl:20); :271 drop the "36 files" number → "### Navigation (`docs/src/`)"; :287 delete the "Examples → examples.md" line (page deleted; its successor Getting-Started/method_guide pages from T198/T199 do not yet exist, so reference nothing); update nav block 274-288 to add the missing pages (spectral, ordered_multinomial, panel_reg, dsge_olg, dsge_continuous, structural_identification, id_nongaussian/heteroskedastic/testing) so it mirrors make.jl; :23, :195, :253 remove the "(55 dispatches)"/"(52 dispatches)" numbers or set to 56 (prefer removing the parenthetical count). Do NOT touch make.jl. The generate_plots-in-CI claim needs NO change (already correct).', 'verify': 'julia --project=docs docs/verify_examples.jl docs/src/index.md ; julia --project=docs docs/verify_examples.jl docs/src/plotting.md (both are pure prose/@contents edits with no @example changes, so they must still build; if a full-build check of the @contents cross-links is wanted, makedocs runs via docs/make.jl). CLAUDE.md is not built.', 'dependencies': [], 'collisions': ['docs/src/index.md — #282 (T182 edits the same index.md:307 @contents block; if T182 lands first the @contents-expansion part (D) is already satisfied and should be dropped here)', 'docs/src/plotting.md — #286 (T186 is the definitive plotting.md rewrite and owns plotting.md:3; sequence so the dispatch count is written once — this issue only purges the literal)', 'docs/src/index.md — #285 (T185 identification-method count also edits prose counts; distinct lines but same file)', "CLAUDE.md — #299/#296 (T199/T196 examples.md replacement; the CLAUDE.md nav 'Examples' line removed here should point at their new Getting-Started/method_guide pages once those exist)"], 'effort': 'S', 'risk': 'low'}

=== VERIFY ===
{'issue': 278, 'verdict': 'CONFIRMED', 'assessment': 'Independently re-read all cited files at current tree (release/v0.6.6, tip cb4f048). Every claimed defect is live: plotting.md:3 "dispatches on 41 result types"; index.md:92 "with 41 plot dispatches"; index.md:152 "41 plot dispatches" (grep confirms no other 41/dispatch occurrences in those two files). Source-of-truth count: grep -c "^function plot_result(" over src/plotting/*.jl = 56 (fevd 3, filters 6, did 5, forecast 7, io 3, hd 2, irf 4, nowcast 2, reg 4, models 16, spectral 4); the broad-grep 114 is docstring signature lines, and there are no assignment-form one-liner methods, so 56 is the correct verifiable count and the spec\'s "56" is right. index.md:307 @contents has exactly 43 entries; make.jl:24-105 registers 57 non-index pages (ls confirms 58 .md incl index); the 14 missing pages listed by the spec are accurate and the proposed 57-entry replacement list matches make.jl nav order EXACTLY with all files confirmed to exist. CLAUDE.md:303 size_threshold=700*1024 vs make.jl:20 900*1024 (stale); :271 "36 files" (58 actual); :287 "Examples -> examples.md" (file confirmed absent); nav 274-288 missing spectral/ordered_multinomial/panel_reg/dsge_olg/dsge_continuous/structural_identification/id_* (confirmed); dispatch counts :23/:195 "(55 dispatches)" and :253 "52 dispatches" inconsistent+stale. The spec\'s own FALSE-POSITIVE sub-item is correct: CLAUDE.md:10-11,204,262,315 already state plots committed/regenerated-locally and docs not CI-built, so the "Documentation.yml runs generate_plots.jl" audit claim needs no change. The fix (omit the literal counts, expand @contents to the 57-page list, correct CLAUDE.md defaults/nav) is correct and complete. One non-actionable nit: the spec cites a docrule rule "no unverifiable counts in prose" that does not literally exist in docs/docrule.md (grep found nothing) — but the omission approach is still valid and consistent with docrule\'s concision spirit, so no edit needs to change.', 'corrections': '', 'collision_issues': [282, 285, 286, 299, 296], 'discriminating_power': 'n/a (docs)', 'final_effort': 'S'}