From 02889d701abe6b74669c4e2d53479547522a0338 Mon Sep 17 00:00:00 2001 From: bellman Date: Fri, 15 May 2026 11:40:53 +0900 Subject: [PATCH] omx(team): auto-checkpoint worker-3 [6] --- .github/ISSUE_TEMPLATE/anti_slop_triage.yml | 54 +++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 17 +++++++ docs/anti-slop-triage.md | 44 +++++++++++++++++ docs/pr-issue-resolution-gate.md | 26 +++++++--- 4 files changed, 135 insertions(+), 6 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/anti_slop_triage.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 docs/anti-slop-triage.md diff --git a/.github/ISSUE_TEMPLATE/anti_slop_triage.yml b/.github/ISSUE_TEMPLATE/anti_slop_triage.yml new file mode 100644 index 00000000..095942c1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/anti_slop_triage.yml @@ -0,0 +1,54 @@ +name: Anti-slop triage +about: Classify low-signal, duplicate, generated, or unsafe reports before engineering work starts. +title: "triage: " +labels: ["needs-triage"] +body: + - type: markdown + attributes: + value: | + Use this form for issue intake that needs evidence-backed classification before anyone closes, fixes, or escalates it. + Do not paste secrets, live tokens, private logs, or non-public customer data. + - type: dropdown + id: classification + attributes: + label: Initial classification + description: Pick the strongest current classification. Update it if evidence changes. + options: + - actionable-bug + - actionable-docs + - actionable-feature + - duplicate + - spam-or-promotion + - generated-slop-or-hallucinated + - unsafe-or-security-sensitive + - not-reproducible-yet + - externally-blocked + validations: + required: true + - type: textarea + id: evidence + attributes: + label: Evidence + description: Link the PR, issue, command output, docs page, reproduction, duplicate, or policy that supports the classification. + placeholder: "Evidence: ..." + validations: + required: true + - type: textarea + id: safe_next_action + attributes: + label: Safe next action + description: State the next non-destructive action. If closure or merge is proposed, name the required owner/gate. + placeholder: "Next action: label only / request repro / link duplicate / fix docs / defer with rationale / owner review required" + validations: + required: true + - type: checkboxes + id: guardrails + attributes: + label: Guardrails + options: + - label: I did not close, merge, or mutate remote state as part of this triage-only report. + required: true + - label: I checked for duplicates or related PRs/issues before recommending action. + required: true + - label: If this touches credentials, security, or private data, I avoided public reproduction details and routed to the appropriate private/security path. + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..80febe8e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +## Summary +- + +## Anti-slop triage +- Classification: +- Evidence: +- Non-destructive review result: + +## Verification +- [ ] Targeted tests/docs checks ran, or the gap is explicitly recorded. +- [ ] `git diff --check` passes. +- [ ] No live secrets, tokens, private logs, or unrelated generated churn are included. + +## Resolution gate +- [ ] If this PR resolves an issue, the issue number and fix evidence are linked. +- [ ] If this PR should not merge, the rejection/defer rationale is evidence-backed and does not rely on vibes. +- [ ] I did not merge/close remote PRs or issues from an automation lane without owner approval. diff --git a/docs/anti-slop-triage.md b/docs/anti-slop-triage.md new file mode 100644 index 00000000..b20fbb4d --- /dev/null +++ b/docs/anti-slop-triage.md @@ -0,0 +1,44 @@ +# Anti-slop issue and PR triage + +Use this checklist before spending engineering time on low-signal issues, generated PRs, duplicate fixes, or broad unsolicited changes. The goal is not to reject community work by default; it is to make each merge, defer, or close recommendation evidence-backed and safe. + +## Classifications + +| Classification | Use when | Required evidence | Safe action | +| --- | --- | --- | --- | +| `actionable-bug` | The report has a reproducible product failure. | Repro steps, failing test, logs with secrets removed, or matching roadmap item. | Fix, assign, or link to an existing fix. | +| `actionable-docs` | The report identifies missing, stale, or confusing documentation. | Current doc path plus desired corrected source of truth. | Patch docs or link to the owning docs lane. | +| `actionable-feature` | The request matches Claw Code direction and has a concrete acceptance shape. | Issue/PR link plus roadmap or maintainer rationale. | Defer to planning or implement if already scoped. | +| `duplicate` | Another issue/PR already covers the same user-visible outcome. | Link the canonical issue/PR and note any extra evidence worth preserving. | Cross-link; close only with maintainer/owner policy. | +| `spam-or-promotion` | The content is promotional, irrelevant, or abusive. | URL/title/body excerpt summary, not a full repost. | Label/close per repository policy. | +| `generated-slop-or-hallucinated` | The change is broad, mechanically generated, unreviewable, or names APIs/files that do not exist. | Diff/path examples, missing symbols, or unverifiable claims. | Request a narrow repro or reject/defer with rationale. | +| `unsafe-or-security-sensitive` | The report includes secrets, exploit detail, or risky operational instructions. | Redacted summary and security policy link. | Move to the private/security path; do not expand public details. | +| `not-reproducible-yet` | The claim might be valid but lacks enough evidence to act. | Missing command, environment, expected/actual behavior, or version. | Ask for repro details; do not implement speculative fixes. | +| `externally-blocked` | Progress depends on upstream services, credentials, policy, or unavailable owner approval. | Blocking dependency and owner/gate. | Defer with a concrete unblock condition. | + +## PR review gate + +Every PR triage note should answer: + +1. Is the PR a merge candidate, a request-changes candidate, a duplicate, unsafe, out-of-scope, or generated slop? +2. What exact evidence supports that classification? +3. Which tests/docs checks were run or intentionally skipped? +4. Which issue, roadmap row, or user problem does it resolve? +5. If it should not merge now, what is the minimal non-destructive next action? + +Automation lanes must not merge or close remote PRs/issues. They may produce a ledger row, add local documentation/templates, and report recommended actions for a maintainer-owned final gate. + +## Issue intake gate + +Every issue triage note should answer: + +1. Is the issue correct, duplicate, spam, invalid, externally blocked, or not reproducible yet? +2. If correct and resolvable, what fix path or already-merged commit resolves it? +3. If not currently resolvable, what evidence would change the classification? +4. Are secrets, private data, or security details present that require a private path? + +## Template locations + +- Issue intake form: `.github/ISSUE_TEMPLATE/anti_slop_triage.yml` +- PR review checklist: `.github/PULL_REQUEST_TEMPLATE.md` +- Final aggregate gate: `docs/pr-issue-resolution-gate.md` diff --git a/docs/pr-issue-resolution-gate.md b/docs/pr-issue-resolution-gate.md index bcf96276..e13e1a95 100644 --- a/docs/pr-issue-resolution-gate.md +++ b/docs/pr-issue-resolution-gate.md @@ -18,14 +18,28 @@ Before the Claw Code 2.0 Ultragoal can be marked complete: ## Current live snapshot -A live snapshot was captured locally during G002 execution: +A fresh non-destructive snapshot was captured locally during G011 W3 execution: -- PR snapshot: `.omx/research/github-live/open-prs.json` -- Issue snapshot: `.omx/research/github-live/open-issues.json` -- Captured on: 2026-05-14 during the active Ultragoal run. -- Observed counts: 50 open PR records and 1000 open issue records from GitHub CLI list calls. +- Command: `gh pr list --state open --limit 1000 --json number,title,state,updatedAt,url` +- Command: `gh issue list --state open --limit 1000 --json number,title,state,updatedAt,url,labels` +- Captured on: 2026-05-15T02:39:41Z during the active Ultragoal run. +- Observed counts: 51 open PR records and 1000 open issue records from GitHub CLI list calls. +- Most recent open PR in the snapshot: #3040, `fix: recognize OPENAI_API_KEY as valid auth for OpenAI-compatible endpoints`, updated 2026-05-14T11:35:23Z. +- Most recent open issue in the snapshot: #3039, `How to install skills?`, updated 2026-05-14T08:14:36Z. +- The issue snapshot hit the configured `--limit 1000`, so the final gate must treat the issue count as at least 1000 unless a higher-limit export or paginated ledger is captured. -These local `.omx/research/github-live/*` files are evidence inputs, not final proof. The final gate must refresh them and compare deltas. +These command outputs are evidence inputs, not final proof. The final gate must refresh them and compare deltas before any completion claim. + +## Anti-slop triage templates + +Use `docs/anti-slop-triage.md` plus the repository templates before acting on the live snapshot: + +- `.github/ISSUE_TEMPLATE/anti_slop_triage.yml` records the initial issue classification, evidence, and non-destructive next action. +- `.github/PULL_REQUEST_TEMPLATE.md` adds PR classification, verification, and resolution-gate checklist items. + +The anti-slop classifications are: `actionable-bug`, `actionable-docs`, `actionable-feature`, `duplicate`, `spam-or-promotion`, `generated-slop-or-hallucinated`, `unsafe-or-security-sensitive`, `not-reproducible-yet`, and `externally-blocked`. + +Automation lanes may recommend labels, comments, defer/close rationales, or merge candidates, but must not merge or close remote PRs/issues without maintainer-owned approval. ## Required final evidence