chore(policy): adopt the autonomous maintainer posture - #76
Conversation
Reconcile .maintainer.yml to renderAutonomousPolicy's output, as measured by dz enroll on 2026-09-11 (developerz.ai#3400). Authorized by the repo owner. Nine value changes; reasoning in the file comments. - pr.auto_merge true — the substantive change: the repo is AI-managed, gated by its own CI and branch protection, not by this line - pr.wait_for_other_bots drops dependabot — it is not configured here - handoff.ask_reporter_first false — handoff under fleet mode is real, the ask is a formality - review.enabled/force true with request_changes/approval false — advisory first pass: comments, never blocks, never approves - release.manager none — a correction: no release-please config exists; release.yml cuts releases (v1.6.0-v1.9.0) - release.channels [] — no independent publish path for the agent Co-Authored-By: Claude Code <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (1)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. 📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
📝 WalkthroughWalkthroughThe maintainer policy enables autonomous pull request merging, limits required reviewers, removes reporter confirmation, enables advisory native review, and disables release management and agent publishing channels. ChangesMaintainer Policy
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Merge Risk: ⚪ Minimal · up to The autonomous maintainer policy changes have no identified merge-blocking risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
A rabbit checks the merge gate bright Comment |
|
CI is green and the policy change looks correct. Merging requires an approving review — could you take a look? 🤖[bot] 🤖 Posted by developerz.ai — the maintainer agent, not a human. |
What
One file changed:
.maintainer.yml. This is the reconcile case from developerz-ai/developerz.ai#3400 — the committed policy brought torenderAutonomousPolicy's output, as measured bydz enrollon 2026-09-11 and authorized by the repo owner (ivndev001). After this merges,dz enroll developerz-ai/ui-debugger-mcp --posture autonomousshould report AI_MANAGED withchanges: [].Nine value changes, nothing else. Each is pinned in the file with its reasoning; the substance:
pr.auto_mergefalsetruepr.wait_for_other_bots[coderabbit, copilot, dependabot](default)[coderabbit, copilot]handoff.ask_reporter_firsttrue(default)falsereview.enabledfalsetruereview.forcefalse(default)truereview.request_changestrue(default)falsereview.approvaltrue(default)falserelease.manager"release-please"(default)"none"release.channels[github-release](default)[]versionandhandoff.mode: fleetare untouched.Why each change is correct
pr.auto_merge: true— the substantive change, and the point of the exercise. This is what makes the repo actually AI-managed rather than merely AI-assisted: the bot merges its own PRs once they are green. Authorized by the repo owner on 2026-09-11. What stands behind it is the repo's own CI and branch protection, not this line:ci.yml(lint + typecheck + test + build) runs on every PR, and themain-protectionruleset requires a PR intomainand blocks force-push and deletion (both verified today). The key only says who may press the button once those gates pass — it grants nothing and enforces nothing by itself.review.request_changes: false+review.approval: falsewithenabled/forcetrue — the ADVISORY first pass. The native reviewer runs and comments (forcebeats the active CodeRabbit incumbent), but never blocks a merge and never approves one. That is the shape wurk has run since 2026-08, and it is deliberately conservative for a first live pass — if the pass earns trust, the two blocking knobs are where it would be switched on.release.manager: "none"— a CORRECTION, not a downgrade.manager: release-pleaseimplies batched release PRs driven byrelease-please-config.json+.release-please-manifest.json. Neither file exists in this repo, no release-please PR has ever been opened, and releases are cut by.github/workflows/release.yml— v1.9.0, v1.8.0, v1.7.0 and v1.6.0 all exist (verified on the repo today).nonemeans "no release MANAGER", which is what is true here. The same correction developerz-ai/wurk made in its issue #328.release.channels: []— removes the agent's independent publish path. In wurk,channels: [github-release]fired on ordinary feature merges and produced seven tags and GitHub Releases marked "Latest" with no gem behind them (wurk#420) — andmanager: nonealone did not stop it; the channel authorized releasing on its own.release.ymlowns the whole lane here too (on: release: published→ npm + MCP registry), so there is no channel for the agent to publish on.handoff.ask_reporter_first: falseand droppingdependabotfromwait_for_other_botsare the remaining posture alignments. Undermode: fleetthe handoff path is real, so the ask is a formality; and dependabot has no.github/dependabot.ymlin this repo, so waiting on it would hold a green merge open for a reviewer that is not coming.Gates
The repo has no check that covers YAML or the policy schema — CI runs lint (biome, TS/JSON only), typecheck, test, build; nothing reads
.maintainer.yml. What I ran locally:ajvvalidation of the file against the published schemahttps://developerz.ai/schemas/maintainer.v1.json(fetched today; all ten keys and their defaults confirmed against it): passbun run lint: pass (157 files)bun run typecheck: passCI's own lint/typecheck/test/build run on this PR as usual.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit