diff --git a/.agents/skills/openclaw-small-bugfix-sweep/SKILL.md b/.agents/skills/openclaw-small-bugfix-sweep/SKILL.md new file mode 100644 index 00000000000..1f8b2826f24 --- /dev/null +++ b/.agents/skills/openclaw-small-bugfix-sweep/SKILL.md @@ -0,0 +1,63 @@ +--- +name: openclaw-small-bugfix-sweep +description: Fix only small, high-certainty OpenClaw bugs from a pasted issue/PR list after deep code review. +--- + +# OpenClaw Small Bugfix Sweep + +Batch workflow for pasted OpenClaw issue/PR refs. +Execute, do not summarize. +Triage does not commit, push, create PRs, comment, close, label, land, or merge. + +## Companion Skills + +Use `$gitcrawl` first, `$openclaw-pr-maintainer` for live GitHub hygiene, `$github-deep-review` posture for source tracing, and `$openclaw-testing` for proof. + +## Loop + +For each ref: + +1. Read live target with `gh`. +2. Check `gitcrawl` for related, duplicate, closed, or already-fixed threads. +3. Read body, comments, linked refs, changed files, current code, adjacent tests, and dependency contracts when relevant. +4. Trace the real runtime path. +5. For issues: fix locally only if this is a bug, current code proves root cause, the implicated path is clear, and a narrow patch is cleaner than refactor. +6. For PRs: decide `ready-to-merge`, `needs-fixup`, or `skip`; do not alter PR branches unless explicitly asked. +7. Add focused regression proof when practical for local issue fixes or PR readiness checks. +8. Run the smallest meaningful gate. +9. Continue until every pasted ref is fixed or classified. + +No subagents unless explicitly requested. + +## Skip If + +- not a bug +- config/docs/workflow/release/support/dependency/product work +- repro or root cause is uncertain +- larger refactor or owner-boundary change is cleaner +- already fixed on current `main` +- dependency behavior is guessed +- no focused proof is feasible + +Skip with terse reason. Do not pad with low-confidence fixes. + +## Fix Rules + +- owner module first; generic seam only when required +- existing patterns/helpers/types +- no drive-by refactors +- tests near failing surface +- docs only for changed public behavior +- no commit/push/create PR/comment/close/label/land/merge unless explicitly asked + +## PR Rules + +- `ready-to-merge`: code is good, current head checked, required proof is green or clearly pending only external CI; list for maintainer merge or `@clawsweeper automerge` +- `needs-fixup`: small bug is clear, but PR branch needs changes; list exact files/tests and wait for explicit fix/push/automerge instruction +- `skip`: broad, stale, speculative, config/product/security/release, owner-boundary, or refactor-sized +- if source PR is untrusted/uneditable, do not create a replacement PR during sweep + +## Output Shape + +Ledger: `fixed-local`, `ready-to-merge`, `needs-fixup`, `skipped`, `needs-human`. +Final: issue files left on disk, PRs ready for merge/automerge, tests/gates, skip reasons. diff --git a/AGENTS.md b/AGENTS.md index 96459cd7d87..cbcdfc16877 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -143,7 +143,7 @@ Telegraph style. Root rules only. Read scoped `AGENTS.md` before subtree work. - Docs change with behavior/API. Use docs list/read_when hints; docs links per `docs/AGENTS.md`. - Docs final answers: when doc files changed, end with the relevant full `https://docs.openclaw.ai/...` URL(s). -- Changelog user-facing only; pure test/internal usually no entry. +- Changelog user-facing only; fixing an issue or landing/merging a PR needs one unless pure test/internal. - Changelog placement: active version `### Changes`/`### Fixes`; every added entry must include at least one `Thanks @author` attribution, using credited GitHub username(s). Never add `Thanks @codex`, `Thanks @openclaw`, or `Thanks @steipete`. - Changelog bullets are always single-line. No wrapping/continuation across multiple lines. Long entries stay on one long line so dedupe, PR-ref, and credit-audit tooling work and so the visual style stays uniform.