=== RESEARCH ===
{'issue': 292, 'kind': 'docs', 'defect_status': 'partially_confirmed', 'category': 'docs-polish-batch', 'target_files': ['docs/src/x13.md', 'docs/src/spectral.md', 'docs/src/arima.md', 'docs/src/filters.md', 'docs/src/manual.md', 'docs/src/bayesian.md', 'docs/src/favar.md', 'docs/src/lp.md', 'docs/src/vecm.md', 'docs/src/regression.md', 'docs/src/binary_choice.md', 'docs/src/panel_reg.md', 'docs/src/pvar.md', 'docs/src/event_study.md'], 'summary': 'Batch LOW-severity docrule/citation/hygiene polish across 14 univariate/multivariate/panel doc pages; most items still valid, but the "uncited textbooks" sub-item is already fixed on nearly every page and the issue\'s "anti-pattern no.16/17" references are stale (current docrule has only 12 anti-patterns).', 'current_state': 'Verified each sub-item against the working tree (release/v0.6.6 tip). CONFIRMED still-present defects: (1) x13.md:300 Box & Jenkins (1976) entry has no ISBN. (2) spectral.md book entries lack ISBNs — Bartlett 1955 (:578), Brockwell&Davis 1991 (:582), Brillinger 1981 (:584), Hamilton 1994 (:592), Priestley 1981 (:596). (3) arima.md page ranges use single hyphen: :611 "716-723", :629 "139-162", :632 "461-464" while spectral.md uses en-dash "--" throughout (e.g. :580 "1509--1526"). (4) filters.md (anchor `@id filters_page` at :1) and spectral.md (anchor `@id spectral_page` at :1) never `@ref` each other despite shared transfer_function content (filters.md ~:430, spectral.md :433-450). (5) manual.md lambda arg named `irf` shadows the `irf` function at :68, :324, :348 (e.g. `check = irf -> irf[1,3,3] > 0`, and :69 calls `irf(model,...)`). (6) bayesian.md:60 `bhd = historical_decomposition(post; method=:cholesky)` computed in Recipe 4 but only `report(bfevd)` shown at :61 — bhd never rendered. (7) favar.md @setup :23-24 `Y_slow`/`Y_fast` defined, never used. (8) lp.md bijection breaks: listed-but-uncited Hirano-Imbens-Ridder 2003 (:960), Robins-Rotnitzky-Zhao 1994 (:981), Ramey&Zubairy 2018 (:978); cited-but-unlisted Hyvärinen 1999 (inline :616, no ref entry). (9) favar.md Doan-Litterman-Sims 1984 listed (:373) but never cited inline (Bernanke/Stock-Watson/Bai-Ng/Carter-Kohn all cited). (10) vecm.md:450 pitfall text contains in-doc TODO "the Bartlett correction (not yet implemented)". (11) Lütkepohl 2005 non-canonical: manual.md:712 "Lütkepohl, H. (2005)... [DOI](https://doi.org/10.1007/978-3-540-27752-1)" vs vecm.md:472 "Lutkepohl, H. (2005)... ISBN 978-3-540-40172-8" (no umlaut). (12) vecm.md refs :460-472 not alphabetical (Johansen, Engle&Granger, Toda&Phillips, Stock, Lutkepohl); favar.md refs not alphabetical (Bernanke, Stock&Watson, Bai&Ng, Doan, Carter&Kohn). (13) save_plot vs iframe mismatch: regression.md:547 "reg_diagnostics.html" vs iframe:551 "reg_ols_diagnostics.html"; binary_choice.md:505 "logit_diagnostics.html" vs :509 "reg_logit.html", :523 "probit_diagnostics.html" vs :527 "reg_probit.html", :543 "marginal_effects.html" vs :547 "reg_marginal_effects.html"; event_study.md:438 "event_study.html" vs iframe:442 "eslp_event_study.html". (14) binary_choice.md Recipe 2 DGP `prob = 1.0 ./ (1.0 .+ exp.(-eta .* 1.7))` (scaled logistic) then `estimate_probit` — comment already says "approximate probit with scaled logistic". (15) panel_reg.md:3 "xtiverg" typo. (17) pvar.md @example blocks end on raw H+1×m×m arrays: :315 `irfs = pvar_oirf(model, 20)`, :329 `girfs = pvar_girf(...)`, :347 `decomp = pvar_fevd(...)`. (18) event_study.md embeds `eslp_event_study.html` 4× at :65, :146, :442, :473. FALSE POSITIVE / already-fixed: (16) uncited textbooks — regression refs now list Cameron&Miller 2015, Greene 2018, Hansen 1982, Wooldridge 2010; binary_choice lists Cameron&Trivedi 2005, Wooldridge 2010; ordered_multinomial lists Cameron&Trivedi, Greene 2012, Train 2009, Wooldridge 2010; pvar lists Hansen 1982; event_study prose cites Cameron-Gelbach-Miller 2011 which IS listed; did has no textbook prose. Only marginal remnant: panel_reg.md:228 mentions "Hansen J" with no Hansen (1982) entry in its ref list (a test-name, not a textbook). STALE issue metadata: docrule.md has only 12 anti-patterns (lines up to :382), so the issue\'s "anti-pattern no.16" (bhd) and "no.17" (TODO) numbers do not exist; the underlying fixes remain valid.', 'proposed_change': 'Do one pass per page; re-locate every anchor by grep (lines drift). ITEM-BY-ITEM: [x13.md:300] Add ISBN to Box & Jenkins (1976); reuse the same edition ISBN already used in arima.md:614 (978-0-816-21104-3) after reconciling the edition wording (x13 says "Revised Edition. Holden-Day.", arima says "San Francisco: Holden-Day." — pick one). [spectral.md:578,582,584,592,596] Add publisher+ISBN to the five book entries; Brockwell&Davis ISBN is 978-1-4419-0319-8 (see arima.md:617), Hamilton 1994 is 978-0-691-04289-3 (see arima.md:623); look up Bartlett 1955, Brillinger 1981, Priestley 1981 ISBNs (docrule:330 requires publisher+ISBN; docrule:331 forbids fabricating — verify each). [arima.md:611,629,632] Replace the page-range hyphen with en-dash `--`: 716-723→716--723, 139-162→139--162, 461-464→461--464. Do NOT touch volume(issue) numbers like 19(6). [filters.md ↔ spectral.md] Add reciprocal cross-refs using existing anchors: in filters.md near the transfer_function paragraph add `[Spectral Analysis](@ref spectral_page)`; in spectral.md near its transfer_function section (:433-450) add `[Time Series Filters](@ref filters_page)`. [manual.md:68,324,348] Rename the shadowing lambda parameter `irf` to a non-colliding name (e.g. `ir`) and update its body indexing (`irf[1,3,3]`→`ir[1,3,3]`, etc.); the outer `irf(model,...)` calls (:69,:325) are unaffected. [bayesian.md:60] Either render bhd (add `report(bhd)` after :61, mirroring the pattern at :467-468) or delete the dead line :60. [favar.md:23-24] Delete the `Y_slow`/`Y_fast` assignments from @setup. [lp.md] Resolve bijection: for the three listed-but-uncited entries (Hirano-Imbens-Ridder 2003 :960, Robins-Rotnitzky-Zhao 1994 :981, Ramey&Zubairy 2018 :978) either add an inline Author(Year) cite where relevant or remove the entry; AND add a References entry for Hyvärinen 1999 (cited inline at :616) or remove that inline cite. [favar.md:373] Doan, Litterman & Sims (1984): add an inline cite (it is the Minnesota-prior reference for the BVAR step) or remove the entry. [vecm.md:450] Delete the "(not yet implemented)" TODO; rephrase so the pitfall reads as published guidance (e.g. drop the parenthetical, keep "or use a more conservative significance level"). If tracking the gap matters, open a separate issue. [Lütkepohl canonical] Make both entries identical to the site-majority canonical form (ia_fevd.md:303, ia_hd.md:285, id_testing.md:293, tests_diagnostics.md:584, index.md:202): "Lütkepohl, H. (2005). *New Introduction to Multiple Time Series Analysis*. Berlin: Springer. ISBN 978-3-540-40172-8." — fix vecm.md:472 to add the umlaut, and switch manual.md:712 from the DOI locator to the ISBN. COORDINATE with #299 (T200) which owns the canonical bibliography; if #299 lands first, match whatever locator it standardizes on. [vecm.md:460-472] Alphabetize by first-author surname: Engle&Granger, Johansen, Lütkepohl, Stock, Toda&Phillips. [favar.md refs] Alphabetize: Bai&Ng, Bernanke, Carter&Kohn, Doan-Litterman-Sims, Stock&Watson. [save_plot fixes — change the shown filename to match the iframe src] regression.md:547 →"reg_ols_diagnostics.html"; binary_choice.md:505→"reg_logit.html", :523→"reg_probit.html", :543→"reg_marginal_effects.html"; event_study.md:438→"eslp_event_study.html". [binary_choice.md Recipe 2] Preferred: switch DGP to a genuine probit — `prob = cdf.(Normal(), eta)` (confirm `Normal`/`cdf` are in scope from the @setup, add `using Distributions` if not) and drop the "approximate probit" comment; alternative: keep the code and make the comment explicitly state the mismatch is deliberate. [panel_reg.md:3] "xtiverg"→"xtivreg". [uncited textbooks — MOSTLY NO-OP] Do NOT re-add textbook refs to regression/binary_choice/ordered_multinomial/pvar/event_study/did — already present; the only optional edit is adding a Hansen (1982) entry to panel_reg.md if "Hansen J" at :228 is deemed to need a citation. [pvar.md:315,329,347] After each raw-array @example, add a one-line interpretation of the returned array (or suppress the dump). NOTE this overlaps the §4.3 MED last-expression item owned by #288 (T189) — coordinate to avoid double-editing. [event_study.md:65,146,442,473] Deduplicate the four `eslp_event_study.html` embeds — keep a single canonical embed tied to its producing code block, or generate distinct assets so each embed matches its own code.', 'verify': "Reference-only edits (x13, spectral/arima refs, vecm/favar ref reordering, panel_reg intro, event_study iframes, save_plot filenames, filters/spectral @ref) do not run code but must still compile — run a full `julia --project=docs docs/make.jl` (or the repo's makedocs entry) to catch broken `@ref` targets. For pages with @setup/@example edits run per-page: `julia --project=docs docs/verify_examples.jl docs/src/favar.md` (setup change), `... docs/src/bayesian.md` (Recipe 4), `... docs/src/manual.md` (lambda rename), `... docs/src/binary_choice.md` (probit DGP), `... docs/src/pvar.md` (interpretation lines). Each must print OK.", 'dependencies': [286, 287, 288], 'collisions': ['docs/src/arima.md — #286', 'docs/src/spectral.md — #286', 'docs/src/x13.md — #286', 'docs/src/filters.md — #286', 'docs/src/manual.md — #287', 'docs/src/bayesian.md — #287', 'docs/src/favar.md — #287', 'docs/src/lp.md — #287', 'docs/src/vecm.md — #287', 'docs/src/regression.md — #288', 'docs/src/binary_choice.md — #288', 'docs/src/panel_reg.md — #288', 'docs/src/pvar.md — #288', 'docs/src/event_study.md — #288', 'docs/src/vecm.md (Lütkepohl canonical + ref lists) — #299', 'docs/src/manual.md (Lütkepohl canonical) — #299', 'docs/src/lp.md/favar.md (citation bijection feeds bibliography) — #299'], 'effort': 'L', 'risk': 'low'}

=== VERIFY ===
{'issue': 292, 'verdict': 'CORRECTED', 'assessment': "I independently read every cited file:line at the release/v0.6.6 tip. The batch is largely accurate. CONFIRMED exactly as described: (1) x13.md:300 Box&Jenkins 1976 has publisher but no ISBN; (2) spectral.md book entries lack ISBNs — Bartlett:578, Brockwell&Davis:582, Brillinger:584, Hamilton:592, Priestley:596; (5) manual.md lambda param `irf` shadows the `irf` function at :68/:324/:348 (cosmetic only — Julia scopes the lambda arg locally so no runtime bug); (6) bayesian.md:60 bhd computed in `@example bvar` but never reported (:61 only reports bfevd; the report(bhd_sec) pattern exists at :467-468); (7) favar.md:23-24 Y_slow/Y_fast defined in `@setup favar`, unused everywhere (grep confirms only :23/:24); (8) lp.md bijection: Hirano-Imbens-Ridder:960, Ramey&Zubairy:978, Robins-Rotnitzky-Zhao:981 listed-but-uncited, Hyvärinen 1999 cited inline :616 with no ref entry; (9) favar.md Doan-Litterman-Sims:373 never cited inline; (10) vecm.md:450 in-doc TODO 'Bartlett correction (not yet implemented)'; (12) vecm.md refs (Johansen,Engle&Granger,Toda&Phillips,Stock,Lutkepohl) and favar.md refs (Bernanke,Stock&Watson,Bai&Ng,Doan,Carter&Kohn) not alphabetized; (13) save_plot/iframe mismatches — I confirmed against docs/src/assets/plots/ that the ACTUAL assets are reg_ols_diagnostics.html, reg_logit.html, reg_probit.html, reg_marginal_effects.html, eslp_event_study.html, so the iframe srcs are correct and the shown save_plot names (reg_diagnostics/logit_diagnostics/probit_diagnostics/marginal_effects/event_study) reference non-existent files — fix direction (align save_plot→iframe) verified; (15) panel_reg.md:3 'xtiverg' is a typo for Stata's xtivreg; (18) event_study.md embeds eslp_event_study.html 4× (:65,:146,:442,:473), and :65 sits under a 'Democracy->GDP (DDCG)' plot_result block — genuine duplication/mismatch. docrule has exactly 12 anti-patterns (confirmed), so the issue's 'no.16/17' numbers are stale metadata (harmless). Item 16 (uncited textbooks) correctly a false-positive — favar/lp/etc. ref lists exist. HOWEVER four sub-items are inaccurate as written, so the spec is not complete-as-is (see corrections): item 4 mislocates content, item 11 proposes a wrong canonical string, item 3's canonicality premise is inverted, item 14 is a borderline non-defect.", 'corrections': "ITEM 4 (filters↔spectral cross-ref): The premise is wrong. `transfer_function` content exists ONLY in spectral.md (§Frequency-Domain Filtering, :410-451); filters.md has ZERO occurrences of 'transfer' and no @ref to spectral. The proposed instruction 'in filters.md near the transfer_function paragraph add [Spectral Analysis](@ref spectral_page)' is un-followable — there is no such paragraph. If this cross-ref is done at all (it is optional; the pages are RELATED, not duplicated — filters.md = time-domain HP/Hamilton/Baxter-King, spectral.md = frequency response of those same filters), place the filters.md link in the intro bullet list / a 'see also' note, and the spectral.md link near :410. Low priority.\nITEM 11 (Lütkepohl canonical): Defect is real (manual.md:712 = 'Lütkepohl, H. (2005)... Springer. [DOI](.../10.1007/978-3-540-27752-1)' vs vecm.md:472 = 'Lutkepohl, H. (2005)... Springer. ISBN 978-3-540-40172-8'). BUT the proposed canonical string is inaccurate: (a) the files cited as canonical (ia_fevd.md:303, ia_hd.md:285, id_testing.md:293, index.md:202) actually read 'Lutkepohl, Helmut. 2005.' — full first name, no parens, NO umlaut — not 'Lütkepohl, H. (2005).'; only tests_diagnostics.md:584 uses the 'H. (2005)' format, still without umlaut. (b) Site-wide 8 of 11 entries use NO umlaut ('Lutkepohl'); adding an umlaut is the MINORITY, not the majority. (c) manual.md's DOI 10.1007/978-3-540-27752-1 is the genuine Springer eBook DOI (online ISBN differs from the print ISBN 978-3-540-40172-8) — it is NOT wrong. Do not fabricate an 'Lütkepohl, H. (2005)... ISBN' form and label it 'site-majority.' Defer the canonical form to #299 (owns the bibliography); if fixing locally, match the actual majority spelling or leave manual.md's valid DOI intact.\nITEM 3 (arima page-range en-dash): The 'arima single-hyphen vs spectral en-dash' framing is selective. arima.md:611/629/632 single-hyphens are CONSISTENT with the majority cohort — lp.md, vecm.md, favar.md, regression.md, manual.md all use single-hyphen page ranges; only spectral.md and binary_choice.md use en-dash. Converting arima's 3 lines to en-dash does NOT achieve site consistency (it makes arima diverge from its siblings). En-dash is typographically correct, but this is a site-wide normalization decision — coordinate with #299 or skip; do not treat 3 arima lines as an isolated defect.\nITEM 14 (binary_choice Recipe 2 probit DGP): Borderline non-defect. binary_choice.md:40 already carries the honest comment '# approximate probit with scaled logistic'; the 1.7 scale is the standard logistic→normal approximation. In a b-bump docs-polish, prefer leaving it (or a one-word comment clarification) over switching to `cdf.(Normal(), eta)`, which is a runtime DGP change requiring `using Distributions` in the @setup and full re-verification.\nITEM 17 (pvar raw-array dumps at :315/:329/:347): Real (anti-pattern #9, `@example pvar` last expression is an assignment that dumps the H+1×m×m array) but this is the SAME last-expression/interpretation item owned by #288's pvar.md sweep — coordinate/sequence to avoid double-editing.\nEverything else in the spec is verified correct; proceed with items 1,2,5,6,7,8,9,10,12,13,15,18 as written.", 'collision_issues': [286, 287, 288, 299], 'discriminating_power': 'n/a (docs-only issue — no test assertions involved)', 'final_effort': 'L'}