You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spec section 3.5 formalizes diagnostics as a third object kind alongside
estimators and results, with exactly one load-bearing bit: estimator
results carry the canonical inference quintet, diagnostic results do not.
Membership is the library's EXISTING Diagnostics-and-Sensitivity docs
family made checkable (parallel-trends testing, placebo suite, HonestDiD,
pre-trends power, power analysis), with BaconDecomposition and RDPlot
re-homed into it at 4.0 [M-090] and the upcoming CJM 2020 density test
born into it. One Diagnostic marker base ships additively in Phase 2 on
the class-shaped members (input shape deliberately unconstrained: data-in
and results-in both belong); function members stay functions; import
paths do not move; zero new classes beyond the base. (A narrower
classes-only tier with HonestDiD/PowerAnalysis carve-outs was drafted and
rejected: the docs family already draws the right line.) RDPlot.fit()'s
post-freeze outcome_col/running_col params get standard rename rows
[M-088]/[M-089] under the spec's missed-rename clause - the ledger's
first live maintenance event. 74-row ledger; snapshot/floor updated in
the same diff. Docs + ledger + test counts only; no public API or
numerical behavior change.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eVKbBqzenDKa5idwtexQa
Copy file name to clipboardExpand all lines: docs/v4-deprecations.yaml
+50Lines changed: 50 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -869,6 +869,56 @@ rows:
869
869
code_refs: [diff_diff/wooldridge_results.py]
870
870
notes: "summary() unifies to the library-wide summary(alpha=None) signature (spec section 5); aggregation selection lives on aggregate(). The alpha param arrives additively in the same PR."
871
871
872
+
- id: M-088
873
+
kind: param
874
+
group: renames-col-suffix
875
+
old: "diff_diff:RDPlot.fit[outcome_col]"
876
+
new: "diff_diff:RDPlot.fit[outcome]"
877
+
introduced_in: "3.9"
878
+
deprecated_in: "3.9"
879
+
removed_in: "4.0"
880
+
status: planned
881
+
phase: 2
882
+
warning: FutureWarning
883
+
code_refs: [diff_diff/rdplot.py]
884
+
notes: "RDPlot shipped post-ledger-freeze with _col suffixes; the spec section 8 missed-rename clause applies (matches RegressionDiscontinuity [M-040])."
notes: "4.0 diagnostic-family docs/roster reorganization (spec section 3.5): Bacon re-homed OUT of the API estimator roster (misfiled today); RDPlot (already documented as a diagnostic) consolidated under the unified family grouping; README/llms.txt/API/alias groupings and estimator-count claims split into estimators + diagnostics. The Phase 2 marker introduction is gated separately by [M-091]."
notes: "Phase 2 Diagnostic marker base on the RESULT roster (spec section 3.5): BaconDecompositionResults, RDPlotResult, HonestDiDResults + SensitivityResults, PreTrendsPowerResults + PreTrendsPowerCurve, PowerResults + Simulation*Results, PlaceboTestResults, and the HAD pretest containers (QUGTestResults, StuteTestResults, YatchewTestResults, StuteJointResult, HADPretestReport), and DiagnosticReportResults (serialization pair moves/delegates from the builder onto the container). Flip to done requires the dedicated roster test (isinstance + summary/to_dataframe on every member; estimator results NOT marked). Raw-dict functions and TWFEWeightsResult are docs-family only (narrowed, spec section 3.5). introduced_in gates the 3.9 cut: the marker cannot be silently skipped."
921
+
872
922
# ---- Behavior policies (schema-tracked, spec-governed; no reality probe) -
| 6: front door | 4.1 |`event_study(data, outcome, unit, time, first_treat, estimator=...)` comparison entry point over the staggered family (sketch only; specified in its own plan) |
417
485
418
486
**4.0-cut checklist (final item):** the due-row sweep is AUTOMATED -
@@ -505,8 +573,9 @@ forever - a removed symbol resurrecting is a test failure.
505
573
`removed_in` (symbol/alias rows), flip version (`deprecated_in` on
506
574
default-flip/warning-retirement/behavior rows), or `decision_due`
507
575
(env-default rows), the status must be terminal; a due `introduced_in`
508
-
means the row may no longer be `planned` (the new surface must have
509
-
shipped - this is what gates introduce-only aliases); symbol rows with a
576
+
means the row may no longer be `planned` OR `evaluate` (the new surface
577
+
must have shipped; evaluate cannot satisfy an introduction - this is what
578
+
gates introduce-only aliases and the Phase 2 marker); symbol rows with a
510
579
due `deprecated_in` and a declared `warning` may no longer be `planned`.
511
580
The gate is two-sided: an EARLY-removal guard fails any row that goes
512
581
terminal while its scheduled version is still in the future (the shim
@@ -527,7 +596,7 @@ forever - a removed symbol resurrecting is a test failure.
527
596
the same object as its target, so the deprecation warning rides the parent
528
597
class row (schema-enforced). Top-level `diff_diff:Name` class/function rows
529
598
and alias rows also assert `__all__` membership consistent with their
530
-
status (stale `import *` entries fail). The initial 71 row ids are a
599
+
status (stale `import *` entries fail). The initial 75 row ids are a
531
600
committed snapshot in the enforcement test: ids are never deleted or
532
601
reused, and the test fails if any snapshot id disappears.
0 commit comments