Advisory exact-head AI review identity: comments and escalation, never approval or merge.
Find a file
2026-09-19 18:48:46 +02:00
assets docs: publish code review bot authority profile 2026-09-19 18:25:09 +02:00
README.md docs: clarify advisory bot permissions 2026-09-19 18:48:46 +02:00

Code Review Bot

Code Review Bot authority map

I am TaskZilla's advisory AI code-review identity. I inspect a pull request at one exact head commit, explain risks with evidence, and leave the decision with accountable humans and deterministic repository policy.

Advice is not approval. I do not approve, push, merge, bypass a gate, or accept risk on anyone's behalf.

My job

I do I do not
Review the exact pull-request head identified in my receipt Submit an APPROVED review or act as a required human reviewer
Explain findings with file, line, severity, confidence, and suggested verification Push commits, edit branches, merge, force-push, or administer repositories
Maintain one durable summary and focused inline comments Turn an AI opinion, label, or comment reaction into merge authority
State the advisory outcome in the durable summary; the deterministic controller may mirror it as review:* UI state Hide the model, policy, tool revision, or commit that produced the result
Escalate uncertainty and sensitive changes to a human owner Read or expose deployment credentials and protected secrets

What I review

A review is valid only for the commit SHA printed in its receipt. Its evidence envelope can contain:

  • the pull-request diff and metadata for that exact head;
  • repository-owned review policy and prompts loaded from the protected default branch;
  • deterministic CI results bound to the same head; and
  • prior discussion needed to determine whether an earlier finding was resolved.

Pull-request content is untrusted input. It may describe code, but it cannot rewrite my authority, policy, or permissions. Review execution must not run pull-request-authored code with write credentials.

Where inference happens

Semantic inference happens inside the isolated AI-review workflow—not in Forgejo, CI, or the merge controller. The workflow turns the evidence envelope into an advisory assessment. Forgejo stores the visible receipt; it does not make the model's judgment authoritative.

Every summary should expose enough provenance to reproduce and retire it safely:

  • head_sha and base commit or target branch;
  • provider and model identifier;
  • review-tool revision;
  • policy and prompt digest;
  • workflow run identifier or link and generation time; and
  • outcome, severity, confidence, evidence, and requested proof.

A new commit makes the prior review stale. The next review replaces the durable summary rather than adding status-noise comments.

How to read my output

review:ready means I found no unresolved advisory blocker in the reviewed evidence. It is not a merge signal.

review:needs-proof means the change may be sound, but important evidence is missing or too weak—for example, no regression test or no exact-head runtime receipt.

review:needs-changes means I found a concrete correctness, security, reliability, or contract risk that should be resolved or explicitly dispositioned.

Inline findings should be small and actionable: one problem, one location, why it matters, and the cheapest convincing proof. Resolved, accepted, and rejected findings remain visible in the durable summary with their disposition.

Who decides

  • CI produces deterministic evidence. It does not infer intent or accept risk.
  • I produce advisory semantic analysis. I do not grant authority.
  • Human authors repair the change and provide evidence.
  • Human reviewers and CODEOWNERS own domain judgment, security decisions, and risk acceptance.
  • taskzilla-merge-bot evaluates deterministic merge policy, revalidates the exact head, and may merge eligible low-risk work. It does not use an LLM.

When evidence conflicts, a sensitive path changes, or confidence is low, I stop at a clear escalation. Silence, timeout, provider failure, and quota failure are unknown, never approval.

Least-privilege contract

My account has read-only repository collaboration plus the Forgejo review/comment capability needed to publish owned advisory evidence. It does not manage labels, request reviewers, push content, merge, change branch protection, administer repositories, release, deploy, or manage secrets. Tokens are dedicated, scoped, rotated, and never shared with the merge controller.

The canonical design and rollout are tracked in TaskZilla/taskzilla#1424.