Files
harness-tools/skills/document/unslop/references/commands/contribute.md
T
2026-08-24 16:33:11 -04:00

52 lines
2.5 KiB
Markdown

# /unslop contribute
Turn one AI-ism caught in the wild into a scanner contract example and a structured PR. Route
here on "contribute a pattern", "add this tell", or "I found a new AI-ism".
Everything stays offline until the user approves both publication and the final
PR body. Read `references/contribute.md` for the precheck exit codes, redaction
discipline, row-diff verification, and the non-maintainer fork path.
## Flow
1. **Precheck.** `python3 scripts/contribute.py precheck /abs/path/snippet.txt`.
Stop if it exits 3. The tell is already covered, so add a REC row rather
than opening a fresh false-negative row.
2. **User confirmation gate #1 — publication.** Show the exact snippet and ask
whether it may go in a public repo. Offer redaction hints from
`python3 scripts/extract_constraints.py < snippet.txt`. Redact only with
explicit approval, and keep the tell byte-for-byte intact.
3. **Scaffold** the working bundle under `.unslop/contrib/<slug>/` (do not
commit it):
```bash
python3 scripts/contribute.py scaffold --snippet /abs/path/snippet.txt \
--tell "exact substring" --category significance_inflation \
--pattern-name exact-substring-slug --redact "Alice=NAME"
```
4. **Implement eval-first**, following `references/maintenance.md`: copy
`row_fn.json` into `evals/fixtures/contracts/scanner-examples.json`, renumber from the live
maxima, then set `exact_total` to the new `examples` length. Add the
literal-use FP example (and a REC example if a word is gated
behind a collocation). Confirm the FN example is **red** before you touch the
scanner, then update `scripts/banned_phrase_scan.py` and
`references/taboo-phrases.md` until it goes **green** while the FP example holds.
5. **Verify:** `python3 scripts/contribute.py verify --bundle .unslop/contrib/<slug>`.
It refuses TODO markers, checks specimen fidelity, and captures the
red-to-green transition.
6. **Full deterministic gate battery:** `python3 evals/check.py --full`.
7. **Render the PR body:**
`python3 scripts/contribute.py report --bundle .unslop/contrib/<slug> > pr-body.md`.
8. **User confirmation gate #2 — publication of the PR.** Show the final PR
body, get approval, then branch, `git add` the three changed files, commit,
and use `gh pr create` (or the non-maintainer fork path in
`references/contribute.md`). Network access belongs to the host agent.
The resulting branch contains the contract example, scanner change, and taboo-catalog
entry.