=== RESEARCH ===
{'issue': 281, 'kind': 'docs', 'defect_status': 'confirmed', 'category': 'prose-fix', 'target_files': ['docs/src/index.md'], 'summary': 'Fix the u_t dimension (n×n→n×1) in the canonical notation table, surface X-13ARIMA-SEATS in the feature list/Package Structure table/@contents, drop the stale "41 plot dispatches" and "209 refs entries" hard counts, and complete the @contents block so it lists every page in make.jl.', 'current_state': 'All five defects are still present in the working tree (release/v0.6.6 tip, index.md unchanged). (1) index.md:168 `| ``u_t`` | ``n \\times n`` reduced-form residuals |` — wrong; docrule.md:225 and the same table (line 161 `y_t` = n×1) establish reduced-form residuals are n×1. (2) X-13 is absent from Home: the "Univariate Models" feature list (index.md:11-16) has only Filters/ARIMA/Volatility/Spectral; the Package Structure table (index.md:127-153) has no x13/ row (nor io/ row); @contents (index.md:306-308) omits x13.md — yet make.jl:34 registers "X-13ARIMA-SEATS"=>"x13.md", the page exists (docs/src/x13.md, module src/x13/*.jl). (3) "41 plot dispatches" persists at index.md:92 and index.md:152; actual `function plot_result` method defs in src/plotting/ = 56 (audit said 53) — so 41 is stale AND a fresh hardcode would also rot. (4) @contents at index.md:307 lists 43 pages but make.jl registers 57 non-Home pages; missing 14: x13, spectral, ordered_multinomial, panel_reg, dsge_hd, dsge_ha, dsge_olg, dsge_continuous, io, io_classical, io_environmental, io_baqaee_farhi, io_download, structural_identification (issue said "10"; the 5-page Input-Output section is newer than the audit and undercounted). (5) "209 entries" at index.md:108; actual _REFERENCES dict in src/summary_refs.jl (lines 17-869) holds ~165-168 entries — 209 is stale.', 'proposed_change': 'Edit docs/src/index.md only:\n1. u_t dimension (line 168): change ``n \\times n`` to ``n \\times 1`` in the u_t notation row. Source of truth: docrule.md:225 (y_t is n×1) + index.md:161 y_t row; reduced-form residual u_t has the same dimension as y_t. Keep consistent with #299/[T200]\'s extracted notation.md.\n2. Surface X-13 (three spots):\n   (a) Feature list, in the "Univariate Models" group (after the Spectral bullet, index.md:16): add a bullet, e.g. "**X-13ARIMA-SEATS**: Pure-Julia seasonal adjustment porting the US Census Bureau pipeline — X-11 decomposition (Henderson trend filters), SEATS signal extraction (Gómez & Maravall 1996), TRAMO-style automatic ARIMA identification, outlier detection, and trading-day/Easter calendar effects; `trend()`/`cycle()`/`seasonal()`/`adjusted()` accessors." Facts sourced from docs/src/x13.md:1-14.\n   (b) Package Structure table (index.md:127-153): add a row `| `x13/` | X-13ARIMA-SEATS seasonal adjustment: X-11 decomposition, SEATS, automatic ARIMA identification, outlier detection, calendar effects |` (module dir confirmed at src/x13/). Place it near the `filters/` row.\n   (c) @contents: include x13.md (see step 4).\n3. Plot-dispatch count: at index.md:92 and index.md:152 remove the numeral — do NOT re-hardcode (actual is 56, not the audit\'s 53; docrule "no unverifiable counts"). Replace "with 41 plot dispatches" → "with interactive plot dispatches" (line 92) and "D3.js interactive visualization: 41 plot dispatches, Solarized…" → "D3.js interactive visualization: plot dispatches across model families, Solarized…" (line 152). Coordinate the single count expression with #278/[T179] and #285/[T186].\n4. @contents (index.md:307): replace the Pages array with the complete make.jl order (excluding Home/index.md): "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". Derive/re-diff against make.jl `pages=` at implementation time (nav may shift under #295/[T196]).\n5. Refs count (line 108): drop "(209 entries)" — change "…LaTeX, or HTML format (209 entries)" to "…LaTeX, or HTML format" (docrule: no unverifiable counts). Actual ~165 per src/summary_refs.jl if a derived value is ever wanted, but prefer omission.\nOut-of-scope note for the release owner: the io/ Input-Output section (5 pages, module src/io/) is likewise absent from the feature list and Package Structure table; #281\'s stated scope only covers X-13 for those two surfaces, but @contents completeness (step 4) does require the IO pages. Decide whether to also add an IO feature bullet/row here or defer to a separate issue.', 'verify': 'julia --project=docs docs/verify_examples.jl docs/src/index.md (page has no @example/@setup blocks, so this only sanity-checks parsing); full @contents resolution requires the site build: julia --project=docs docs/make.jl and confirm no "no doc found for reference" / missing-page warnings for the newly listed pages. Do not run in planning.', 'dependencies': [], 'collisions': ['docs/src/index.md — #299 [T200] extracts the notation table (u_t row) into notation.md and unifies the References section/citation style; the u_t=n×1 fix must be mirrored, and #299 may delete/relocate the notation table + References block this issue edits', 'docs/src/index.md / docs/make.jl — #295 [T196] restructures docs navigation (make.jl pages= ordering); the @contents page list here must be re-derived after/with #295 to stay complete', 'docs/src/plotting.md + count expression — #285 [T186] expands plotting.md to document all ~53 dispatches and #278 [T179] fixes count drift across docrule/CLAUDE.md; the plot-dispatch count must be expressed once — coordinate removal here with those two'], 'effort': 'S', 'risk': 'low'}

=== VERIFY ===
{'issue': 281, 'verdict': 'CONFIRMED', 'assessment': 'Independently confirmed all five defects in the current working tree (release/v0.6.6 tip, index.md unchanged). (1) index.md:168 `u_t = n×n reduced-form residuals` is wrong; y_t is n×1 per index.md:161 and docrule.md:225 ("``y_t`` is the ``n \\times 1`` vector"), and ε_t structural shocks are n×1 at index.md:167 — reduced-form residuals share y_t\'s dimension, so n×1 is correct. (2) X-13 is absent from all three Home surfaces: Univariate feature list (11-16) has only Filters/ARIMA/Volatility/Spectral; Package Structure table (127-153) has no x13/ (nor io/) row; @contents (307) omits x13.md — yet make.jl:29 registers x13.md, docs/src/x13.md exists, src/x13/ module exists (20 files). Proposed bullet/row facts all verified against x13.md:3-11 (X-11/Henderson, SEATS/Gómez&Maravall 1996, TRAMO auto-ARIMA, outliers, trading-day/Easter, trend()/cycle()/seasonal()/adjusted()). (3) "41 plot dispatches" present at index.md:92 and 152; actual `function plot_result` defs in src/plotting/ = 56, so 41 is stale and re-hardcoding would rot again. (4) @contents currently lists exactly 43 pages; make.jl registers exactly 57 non-Home pages; missing exactly 14 (x13, spectral, ordered_multinomial, panel_reg, dsge_hd/ha/olg/continuous, io + 4 io pages, structural_identification); the spec\'s 57-page replacement matches make.jl order exactly. (5) "209 entries" at index.md:108 is stale; _REFERENCES dict holds 167 entries (grep \'=> (key=\' = 167; dict src/summary_refs.jl:17-866). All proposed edits are correct and complete; the spec correctly scopes IO out for feature list/table while including IO pages in @contents. Minor non-blocking nits: current_state mis-cites make.jl:34 (actual :29); and I could not find an explicit "no unverifiable counts" clause in docrule.md, though removal remains justified by demonstrated rot and the single-source-count collision.', 'corrections': '', 'collision_issues': [299, 295, 285, 278], 'discriminating_power': 'n/a (docs-only issue; no test assertions involved)', 'final_effort': 'S'}