Skip to content

Commit d29eef9

Browse files
docs(contributing): add authorship & acknowledgments policy
Every merged PR is automatically credited in CONTRIBUTORS.md and the JOSS paper's Acknowledgments. Paper authorship is separate and extended by invitation against four objective criteria (new estimator family, reference-parity ownership, sustained core contribution, or paper writing), aligned with ICMJE / JOSS norms. Adds CONTRIBUTORS.md seed file and a prominent callout in the "Types of Contributions" block so new contributors see the policy before opening a PR.
1 parent 1833274 commit d29eef9

2 files changed

Lines changed: 97 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ We welcome contributions to StatsPAI! This document provides guidelines for cont
1212
4. **Documentation**: Improve docs, examples, or tutorials
1313
5. **Testing**: Add test cases or improve test coverage
1414

15+
> **On credit**: every merged PR is credited in `CONTRIBUTORS.md` and
16+
> the paper's Acknowledgments. Paper **authorship** is separate and
17+
> extended by invitation against objective criteria — see
18+
> [Authorship & Acknowledgments](#-authorship--acknowledgments) below.
19+
1520
### Getting Started
1621

1722
1. **Fork the Repository**
@@ -190,6 +195,76 @@ src/statspai/
190195
})
191196
```
192197

198+
## 🧾 Authorship & Acknowledgments
199+
200+
StatsPAI is an academic project that publishes a JOSS paper and
201+
follow-on methodological work. To keep expectations transparent, we
202+
separate **acknowledgment** from **paper authorship**.
203+
204+
### Acknowledgments (automatic)
205+
206+
Everyone whose pull request is merged into `main` is automatically
207+
credited. Specifically:
208+
209+
- Added to `CONTRIBUTORS.md` (name + GitHub handle + area of contribution).
210+
- Listed in the **Acknowledgments** section of the JOSS paper and any
211+
subsequent methodological papers that build on the codebase they
212+
touched.
213+
- Credited in release notes (`CHANGELOG.md`) for the version that
214+
ships their change.
215+
216+
No invitation is needed. This is the default and applies to all merged
217+
contributions — bug fixes, docs, tests, refactors, new estimators.
218+
219+
### Paper Authorship (by invitation, criteria-based)
220+
221+
**By default, code contributors are not co-authors of StatsPAI
222+
papers.** The core development team extends authorship invitations to
223+
contributors who meet **at least one** of the following objective
224+
criteria, consistent with
225+
[ICMJE](https://www.icmje.org/recommendations/browse/roles-and-responsibilities/defining-the-role-of-authors-and-contributors.html)
226+
and [JOSS](https://joss.readthedocs.io/en/latest/submitting.html#authorship)
227+
authorship norms:
228+
229+
1. **New estimator family** — independently designed and implemented a
230+
first-class public function family exposed through `sp.*`
231+
(e.g., a new `sp.xxx` or a new branch of an existing dispatcher
232+
such as `sp.synth(method=...)` / `sp.decompose(method=...)` /
233+
`sp.dml(model=...)`), including reference-parity tests.
234+
2. **Reference alignment ownership** — led the numerical alignment of
235+
a non-trivial module against Stata / R / published paper numbers
236+
(added tests under `tests/reference_parity/` or
237+
`tests/external_parity/` that exercise real external output).
238+
3. **Sustained core contribution** — ≥ 10 merged PRs **and** ≥ 2,000
239+
net lines of production code (excluding generated files, vendored
240+
assets, and pure formatting) in core estimator modules (any module
241+
listed under "因果 / 处理效应", "面板 / 结构", or "因果发现 / ML" in
242+
`CLAUDE.md`).
243+
4. **Paper writing** — drafted or substantially revised sections of
244+
the manuscript, participated in response-to-reviewers, and approved
245+
the final submitted version.
246+
247+
Meeting a criterion makes a contributor **eligible** for an
248+
invitation; the core team issues the invitation in writing and the
249+
contributor must accept explicitly. Invited authors are expected to
250+
also satisfy standard ICMJE responsibilities: review and approve the
251+
final manuscript, and be accountable for the accuracy of the portions
252+
they contributed.
253+
254+
### What this means in practice
255+
256+
- A one-off bug fix or docs PR → Acknowledgments + `CONTRIBUTORS.md`.
257+
- Implementing a new estimator with parity tests → eligible for
258+
authorship invitation under criterion (1) or (2).
259+
- Large-scale code contribution across many PRs → eligible under
260+
criterion (3).
261+
- Contributions to paper text or reviewer response → eligible under
262+
criterion (4).
263+
264+
If you are actively working toward authorship eligibility, feel free
265+
to open a discussion or email <brycew6m@stanford.edu> ahead of time so
266+
scope and criteria can be agreed upon before the work is done.
267+
193268
## 📞 Getting Help
194269

195270
- **GitHub Issues**: For bugs and feature requests

CONTRIBUTORS.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Contributors
2+
3+
StatsPAI is built by the people listed here. Every merged pull request
4+
earns a line in this file and a slot in the Acknowledgments section of
5+
the project's JOSS paper.
6+
7+
> Paper **authorship** is separate and extended by invitation against
8+
> objective criteria — see the "Authorship & Acknowledgments" section
9+
> of [`CONTRIBUTING.md`](CONTRIBUTING.md#-authorship--acknowledgments).
10+
11+
## Core Maintainers
12+
13+
- **Biaoyue (Bryce) Wang** ([@brycewang-stanford](https://github.com/brycewang-stanford)) — project lead, architecture, most estimator modules.
14+
15+
## Contributors
16+
17+
<!--
18+
Format: - **Name** ([@handle](https://github.com/handle)) — area of contribution (e.g., "did module", "docs", "reference parity for sp.rd").
19+
New entries go in alphabetical order by handle. Added automatically on PR merge.
20+
-->
21+
22+
_Be the first! Open a PR and your name lands here._

0 commit comments

Comments
 (0)