docs: add anti-slop evidence bar to contribution guidelines

Add a strict "evidence bar" section to CONTRIBUTING.md and a PR template
that force every contribution to prove a human exercised the change:
a human-written why, a live before/after evidence block, DCO sign-off,
and a scope statement. Enumerate auto-closed categories (ETHOS edits,
voice/YC cleanup, generated-file-only diffs, blind-AI-sweep PRs). CI
enforcement (changeset-required, DCO check, generated-file guard) is
documented as the next step tied to the Changesets migration rather than
built speculatively.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sinabina
2026-07-21 15:03:02 -07:00
co-authored by Claude Opus 4.8
parent 438e843b8d
commit d57b1796bb
2 changed files with 98 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
<!--
gstack is AI-coded and proud of it. The bar is EVIDENCE OF REAL USE, not lines
of code. A PR with no proof behind it gets closed, no matter how clean it looks.
Fill every section below. See CONTRIBUTING.md → "The evidence bar".
-->
## Why (in your own words)
<!-- One paragraph: what breaks for a user today, and what this change does about
it. Not a restatement of the diff. -->
## Live evidence
<!-- REQUIRED. Paste the command(s) you ran and their real output — before and
after. For a bug: the reproduction, failing then fixed. For a skill change: the
actual transcript / `claude -p` output. For anything visual: before/after
screenshots. "bun test passes" alone is not enough — show the behavior you
changed. -->
```
# what you ran + what it produced
```
## Scope
- **Changed:**
- **Verified live by:**
- **Did NOT test:**
## Checklist
- [ ] Commits are signed off (`git commit -s`) — DCO
- [ ] This is not a generated-file-only diff (I edited the source/template and regenerated)
- [ ] No ETHOS.md edits, and no changes to voice / founder perspective / YC references
- [ ] New public command / external service / host adapter has an accepted issue linked (or N/A)
- [ ] Linked issue or reproduction: #
+62
View File
@@ -73,6 +73,68 @@ Host-specific generation and dev symlinking are not the canonical GStack 2
installation path. On this branch, `./setup` installs only the optional managed installation path. On this branch, `./setup` installs only the optional managed
runtime; it no longer places host skills or accepts legacy setup flags. runtime; it no longer places host skills or accepts legacy setup flags.
## The evidence bar: prove a human ran this
gstack is AI-coded and proud of it. That is exactly why the bar for a
contribution is **evidence of real use**, not lines of code. We close
plausible-looking changes that have no proof behind them, no matter how clean
they read. "I think this improves X" is not evidence. "Here is the command I
ran and the output before and after" is.
**Every PR must show a human exercised the change.** Attach one of:
- the reproduction for the bug you fixed (the failing state, then the fixed
state);
- the failing test you made pass;
- the actual session transcript or `claude -p` output showing the new skill
behavior; or
- for anything visual, before/after screenshots.
A PR we cannot trace to a real reproduction, a real failing test, or a real
workflow you personally hit gets closed. This is the same standard CLAUDE.md
holds us to internally: **prove it or don't say it.** "Pre-existing failure,"
"this obviously helps," and "should work" are not evidence.
### Required on every PR
1. **A human-written "why."** One paragraph in your own words: what breaks for
a user today, and what your change does about it. Generated boilerplate that
restates the diff is not a why.
2. **A live-evidence block.** The command(s) you ran and their real output — the
before, the after. Not `bun test` alone; the actual behavior you changed.
3. **`Signed-off-by` (DCO).** Commit with `git commit -s`. This is you
personally attesting you wrote or reviewed the change and have the right to
submit it. Unsigned commits do not merge.
4. **A scope statement.** Three lines: what changed, how you verified it *live*,
what you did not test.
### Auto-closed, no discussion
- **No ETHOS.md edits.** Ever. It is Garry's builder philosophy, not up for
contribution.
- **No "cleanup" of voice, founder perspective, or YC references.** These are
intentional. PRs framing them as "unprofessional," "too promotional," or
"unnecessary" are closed on sight.
- **No generated-file-only diffs.** If your PR only touches a generated file
(`*/SKILL.md`, `skills/*/references/legacy/`, `compat/`, `evals/parity/`),
you edited the output, not the source. Edit the template/input and regenerate.
- **No blind-AI-sweep PRs.** We are AI-coded, but a broad "I asked an AI to
improve the repo" change with no human-verified reproduction is slop. Show the
reproduction or it is closed.
- **New public command / external service / first-party host adapter without an
accepted issue linked first.**
### What gets fast-tracked
A linked issue you are fixing, a failing test you make pass, a live transcript
showing the improvement, a tight scope statement, and a signed commit. That PR
gets reviewed the same day.
> **Coming with the Changesets migration:** the four requirements above will be
> enforced in CI — a required changeset (carrying the human "why"), a DCO check,
> and a generated-file-only-diff guard. Until then they are reviewer-enforced,
> and reviewers will hold the line.
## Quick start ## Quick start
For GStack 2 source work: For GStack 2 source work: