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
Copy file name to clipboardExpand all lines: .claude/commands/dev-checklists.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -152,8 +152,11 @@ Final checklist before approving a PR:
152
152
153
153
3. **Documentation Sync**:
154
154
- [ ] Docstrings updated for all changed signatures
155
-
- [ ] README updated if user-facing behavior changes
156
-
- [ ] REGISTRY.md updated if methodology edge cases change
155
+
- [ ] `diff_diff/guides/llms.txt` updated if a new estimator/feature appears in the public API (this is the AI-agent contract; it cascades to RTD)
156
+
- [ ] `docs/api/*.rst` updated for new modules / signatures
157
+
- [ ] `docs/references.rst` updated if a new scholarly source is cited
158
+
- [ ] `README.md` updated ONLY if (a) new estimator catalog one-liner, (b) hero/badges/tagline change, or (c) top-level capability paragraph (Diagnostics & Sensitivity, Survey Support). Do NOT add usage examples, parameter tables, or per-estimator sections.
159
+
- [ ] `REGISTRY.md` updated if methodology edge cases change
The README is a **landing page**, not the documentation. Each estimator/feature has documentation across multiple authoritative surfaces:
24
+
25
+
-**`diff_diff/guides/llms.txt`** - AI-agent contract (one-line catalog entry per estimator with paper citation + RTD link). Source of truth that mirrors into RTD via `html_extra_path` and into the wheel via `get_llm_guide()`.
26
+
-**`docs/api/*.rst`** - Sphinx API reference (autoclass).
27
+
-**`docs/references.rst`** - Bibliography (one entry per scholarly source, organized by sub-section).
Do NOT search for per-estimator README sections - they were intentionally removed in the 2026-04 docs refresh. The README's `## Estimators` and `## Diagnostics & Sensitivity` headings are the only valid catalog surfaces.
151
+
110
152
### 3. Scholarly References Check
111
153
112
154
For each reference category:
113
-
1. Search README.md References section for required citations
155
+
1. Search `docs/references.rst` for required citations (NOT README.md - the bibliography moved out of README in the 2026-04 docs refresh)
114
156
2. Verify author names and year appear together
115
157
3. Report missing references
116
158
117
-
Check patterns (case-insensitive):
159
+
Check patterns (case-insensitive, run against `docs/references.rst`):
118
160
- "Arkhangelsky.*2021" for Synthetic DiD
119
161
- "Callaway.*Sant.Anna.*2021" for staggered
120
162
- "Rambachan.*Roth.*2023" for Honest DiD
121
163
- "Athey.*Imbens.*Qu.*Viviano.*2025" for TROP
122
164
- "Goodman.Bacon.*2021" for Bacon decomposition
123
165
- etc.
124
166
167
+
```bash
168
+
# Example
169
+
grep -i 'Arkhangelsky.*2021' docs/references.rst
170
+
```
171
+
125
172
### 4. API Documentation Check
126
173
127
174
For each RST file in `docs/api/`:
@@ -176,12 +223,12 @@ Generate a summary report:
176
223
```
177
224
=== Documentation Completeness Check ===
178
225
179
-
README Sections:
180
-
[PASS] DifferenceInDifferences - Found in "Basic Difference-in-Differences"
181
-
[PASS] CallawaySantAnna - Found in "Staggered Adoption"
182
-
[FAIL] NewEstimator - NOT FOUND
226
+
llms.txt + README Catalog:
227
+
[PASS] DifferenceInDifferences - Found in llms.txt and README Estimators catalog
228
+
[PASS] CallawaySantAnna - Found in both surfaces
229
+
[FAIL] NewEstimator - missing from llms.txt and README catalog
Copy file name to clipboardExpand all lines: .claude/commands/pre-merge-check.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -187,7 +187,9 @@ Based on your changes to: <list of changed files>
187
187
```
188
188
### Documentation Sync
189
189
- [ ] Docstrings updated for changed function signatures
190
-
- [ ] README updated if user-facing behavior changes
190
+
- [ ] `diff_diff/guides/llms.txt` updated if the public API surface changed (AI-agent contract)
191
+
- [ ] `docs/api/*.rst` and `docs/references.rst` updated as appropriate
192
+
- [ ] `README.md` updated ONLY for landing-page-relevant changes (catalog one-liner, hero/badges/tagline, top-level capability paragraph). Per CONTRIBUTING.md, README is not the place for usage examples or per-estimator sections.
- Documentation updates (`diff_diff/guides/llms.txt` for new public-API surfaces, `docs/api/*.rst`, `docs/references.rst` for new citations, tutorials, CONTRIBUTING.md, CLAUDE.md if design patterns change). README updates only if the change affects the landing page (new estimator catalog one-liner, hero/badges/tagline, top-level capability paragraph) - per CONTRIBUTING.md, README is not the place for usage examples or per-estimator sections.
229
229
- For bug fixes: did the plan grep for ALL occurrences of the pattern, or just the one reported?
Copy file name to clipboardExpand all lines: .claude/commands/review-pr.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,8 +45,10 @@ Analyze PRs across 6 dimensions:
45
45
46
46
### 4. Documentation Review
47
47
- Docstrings for new/modified functions
48
-
- README updates if needed
49
-
- API documentation (RST files)
48
+
-`diff_diff/guides/llms.txt` updated if a new public-API surface landed (AI-agent contract)
49
+
- API documentation (RST files in `docs/api/`)
50
+
-`docs/references.rst` updated for new scholarly citations
51
+
- README updated ONLY for landing-page-relevant changes (catalog one-liner, hero/badges/tagline, top-level capability paragraph). Per CONTRIBUTING.md, README is not the place for usage examples or per-estimator sections.
50
52
- Inline comments for complex logic
51
53
52
54
### 5. Performance
@@ -133,7 +135,7 @@ If no PR number is provided, use AskUserQuestion to request it.
133
135
134
136
## Part 4: Documentation Assessment
135
137
136
-
[Check for docstrings, README updates, API docs as needed]
138
+
[Check docstrings, llms.txt for new public-API surfaces, API RST docs, references.rst for new citations, README only for landing-page-relevant changes]
Copy file name to clipboardExpand all lines: CLAUDE.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,6 +114,21 @@ category (`Methodology/Correctness`, `Performance`, or `Testing/Docs`):
114
114
|-------|----------|----|----------|
115
115
| Description of deferred item |`file.py`| #NNN | Medium/Low |
116
116
117
+
## README discipline
118
+
119
+
`README.md` is a **landing page**, not the documentation. Target ~190 lines. The 3,119-line README that existed before the 2026-04 docs refresh grew because workflow conventions told contributors to add to README on every change.
120
+
121
+
When adding new functionality, the source of truth is:
122
+
123
+
-**`diff_diff/guides/llms.txt`** for the AI-agent contract (one-line catalog entry per estimator with paper citation + RTD link). This file is bundled in the wheel and published on RTD via `docs/conf.py``html_extra_path`.
124
+
-**`docs/api/*.rst`** for full API reference.
125
+
-**`docs/references.rst`** for scholarly citations.
126
+
-**`docs/tutorials/*.ipynb`** for hands-on examples.
127
+
-**`CHANGELOG.md`** for release notes.
128
+
-**`README.md`** for ONE LINE in the `## Estimators` flat catalog (or `## Diagnostics & Sensitivity` for diagnostic-class features). Do NOT add usage examples, parameter tables, per-estimator sections, or full bibliographies.
129
+
130
+
`/docs-impact` and `/docs-check` enforce these surfaces. See `CONTRIBUTING.md` "README is a landing page, not the docs" for the full convention.
131
+
117
132
## Testing Conventions
118
133
119
134
-**`ci_params` fixture** (session-scoped in `conftest.py`): Use `ci_params.bootstrap(n)` and
0 commit comments