From f5e19470ce4967b958f349f0ede36b952773019d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 9 May 2026 07:23:01 +0100 Subject: [PATCH] docs: update maintainer review policy --- .agents/skills/clawsweeper/SKILL.md | 17 +++++++++-------- .agents/skills/openclaw-pr-maintainer/SKILL.md | 10 ++++++---- AGENTS.md | 3 ++- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.agents/skills/clawsweeper/SKILL.md b/.agents/skills/clawsweeper/SKILL.md index c083eb7feeb..dbb2db772ab 100644 --- a/.agents/skills/clawsweeper/SKILL.md +++ b/.agents/skills/clawsweeper/SKILL.md @@ -7,7 +7,7 @@ description: "Use for all ClawSweeper work: OpenClaw issue/PR sweep reports, com ClawSweeper lives at `~/Projects/clawsweeper`. It is the one OpenClaw maintenance bot for sweeping, commit review, repair jobs, and guarded fix PRs. -Use this skill whenever Peter asks about reports, findings, dispatch health, +Use this skill whenever asked about reports, findings, dispatch health, repair/cloud PR creation, comment commands, automerge, permissions, or gates. ## Start @@ -20,7 +20,7 @@ pnpm run build:all ``` Do not overwrite unrelated edits. If the tree is dirty, inspect first and keep -read-only report work read-only unless Peter asked to commit. +read-only report work read-only unless the requester asked to commit. ## One Bot, One App @@ -79,7 +79,7 @@ gh workflow run commit-review.yml --repo openclaw/clawsweeper \ -f enabled=true ``` -Use `create_checks=true` only when Peter explicitly wants target commit Check +Use `create_checks=true` only when the requester explicitly wants target commit Check Runs. Add `-f additional_prompt="..."` for focused one-off review instructions. ## Sweep Reports @@ -175,7 +175,7 @@ gh variable set CLAWSWEEPER_ALLOW_MERGE --repo openclaw/clawsweeper --body 1 gh variable set CLAWSWEEPER_ALLOW_AUTOMERGE --repo openclaw/clawsweeper --body 1 ``` -Reset gates only when Peter asks; the active maintainer window may intentionally +Reset gates only when explicitly requested; the active maintainer window may intentionally leave them at `1`. Important gates: @@ -255,15 +255,16 @@ loop. The router: - never merges autofix PRs or draft PRs; - merges automerge PRs only when ClawSweeper passed the exact current head, checks are green, GitHub says mergeable, no human-review label is present, - the PR is not draft, required user-facing OpenClaw changelog entries are - present, and both merge gates are open. + the PR is not draft, and both merge gates are open. + +Missing changelog is not a review finding or merge blocker. If repairing a user-facing change, add/update changelog automatically when practical; never ask or block solely on it. If ClawSweeper passes while merge gates are closed, it labels `clawsweeper:merge-ready` and comments instead of merging. `@clawsweeper stop` adds `clawsweeper:human-review`. -When Peter asks Codex to create a PR and enable ClawSweeper automerge, do not -leave his local OpenClaw checkout on the PR branch. After the PR is created, +When asked to create a PR and enable ClawSweeper automerge, do not +leave the local OpenClaw checkout on the PR branch. After the PR is created, pushed, and the `@clawsweeper automerge` request is posted or otherwise confirmed, return the local checkout to `main` and fast-forward it when the working tree is clean: diff --git a/.agents/skills/openclaw-pr-maintainer/SKILL.md b/.agents/skills/openclaw-pr-maintainer/SKILL.md index 74f722d0e2c..41a67f2514f 100644 --- a/.agents/skills/openclaw-pr-maintainer/SKILL.md +++ b/.agents/skills/openclaw-pr-maintainer/SKILL.md @@ -48,7 +48,7 @@ gitcrawl cluster-detail openclaw/openclaw --id --member-limit 20 -- ## Suppress top-maintainer items in issue triage -When Peter asks for issue triage, hot issues, pressing bugs, Discord-correlated issues, or "what is still open", do not surface issues or PRs authored by top maintainers by default. He wants external/user-reported hot issues and external PRs, not maintainer-owned work queues. +When asked for issue triage, hot issues, pressing bugs, Discord-correlated issues, or "what is still open", do not surface issues or PRs authored by top maintainers by default. Prefer external/user-reported hot issues and external PRs, not maintainer-owned work queues. Suppress by default when the opener/author is one of: @@ -77,7 +77,7 @@ Also suppress lower-priority maintainer-owned noise from the broader keep/top-ma Exceptions: -- Show maintainer-authored items when Peter explicitly asks for maintainer PRs/issues, PR landing candidates, release-blocking maintainer work, or a specific PR/issue number. +- Show maintainer-authored items when the requester explicitly asks for maintainer PRs/issues, PR landing candidates, release-blocking maintainer work, or a specific PR/issue number. - Show a maintainer-authored item when it is the canonical fix for an external hot issue, but frame it as the fix path rather than as a user-facing issue candidate. - Do not close, label, or deprioritize solely because an item is maintainer-authored; this section only controls what appears in triage shortlists. @@ -103,12 +103,14 @@ Exceptions: When asked for `X` issues or PRs to triage, `X` means qualified candidates, not sampled threads. -Triage is read/prove/patch-local by default. Do not commit unless Peter writes +Triage is read/prove/patch-local by default. Do not commit unless the requester writes `commit` in the current instruction for the exact diff being handled. Do not treat earlier messages, inferred intent, "next", sweep momentum, or bundled -publish language as commit permission. If Peter asks for follow-up work without +publish language as commit permission. If the requester asks for follow-up work without saying `commit`, keep the files dirty after local fixes and proof. +Missing changelog is not a PR review finding or merge blocker. If landing/fixing a user-visible change, add/update changelog automatically when practical; never ask or block solely on it. + Only list candidates that pass all gates: - small owner/surface, with a likely narrow fix and focused regression test diff --git a/AGENTS.md b/AGENTS.md index a9372f400a0..14fdcad696a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -71,7 +71,7 @@ Telegraph style. Root rules only. Read scoped `AGENTS.md` before subtree work. ## GitHub / CI - Triage: list first, hydrate few. Use bounded `gh --json --jq`; avoid repeated full comment scans. -- Automatic PR/issue discovery: skip maintainer-owned items unless directly relevant. Do not comment, close, label, retitle, rebase, fix up, or land them without Peter asking. +- Automatic PR/issue discovery: skip maintainer-owned items unless directly relevant. Do not comment, close, label, retitle, rebase, fix up, or land them without explicit maintainer request. - PR scan/triage: no unsolicited PR comments/reviews. Report in chat only unless explicitly asked, or a close/duplicate action needs a reason comment. - Search/dedupe: prefer `gh search issues 'repo:openclaw/openclaw is:open ' --json number,title,state,updatedAt --limit 20`. - GitHub search boolean text is fussy. If `OR` queries return empty, split exact terms and search title/body/comments separately before concluding no hits. @@ -160,6 +160,7 @@ Telegraph style. Root rules only. Read scoped `AGENTS.md` before subtree work. - When upgrading the bundled Codex harness (`@openai/codex` in `extensions/codex/package.json`), refresh the model availability snapshot in `docs/plugins/codex-harness.md` from the new harness's `model/list` result. - Docs final answers: when doc files changed, end with the relevant full `https://docs.openclaw.ai/...` URL(s). - Changelog user-facing only; fixing an issue or landing/merging a PR needs one unless pure test/internal. +- Missing changelog is not a PR review finding or merge blocker. If landing/fixing a user-visible change, add/update changelog automatically when practical; never ask or block solely on it. - Changelog placement: active version `### Changes`/`### Fixes`; contributor-facing added entries should include at least one `Thanks @author` attribution, using credited human GitHub username(s). Never add `Thanks @codex`, `Thanks @openclaw`, `Thanks @clawsweeper`, or `Thanks @steipete`; if the real credited human is unknown, leave attribution blank instead of guessing or adding a random person. - 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.