Maintainer-governed by design

AI can write the patch.
Maintainers set the terms.

ContribAI separates code generation from permission to publish. It prepares small, reviewable changes, then requires explicit consent, deterministic policy checks, exact human review, and an auditable evidence receipt before any draft proposal.

  • Read-only default
  • Draft PRs only
  • AGPL-3.0-or-later
consent-check · read only NO WRITES

$ contribai consent-check tang-vu/ContribAI

Repository tang-vu/ContribAI

Consent FOUND

Source .github/contribai.yml

Budget 4 files / 180 changed lines

Base SHA 7a93c4d1f802b6e…

Gate READY

$ contribai analyze https://github.com/owner/repo

Analysis is local-first. Submission capability remains off.

public code ≠ permission to submit

generation ≠ admission

passing checks ≠ maintainer approval

60-second proof · zero credentials

Watch the write gate stay closed.

The installed CLI exercises the production consent parser, permit binding, admission controller, and Evidence v2 validator—then deliberately probes a protected workflow path.

contribai demo
  • No config
  • No token
  • No network
  • No writes
contribai demo OFFLINE
  1. 01CONSENTManifest parsed · 2 files / 40 linesPASS
  2. 02BINDPermit bound to repo + exact base SHAPASS
  3. 03VERIFYCode + test candidate inside scopePASS
  4. 04EVIDENCEExact candidate validates against Evidence v2PASS
  5. 05PROBE.github/workflows/release.ymlDENIED
  6. 06REVIEWHuman approval cannot be delegatedREQUIRED
  7. 07STOPSubmission capability remained offSAFE

The missing layer

Generation got cheap.
Review did not.

Most coding agents optimize for output volume. Open source needs a different optimization target: maintainer intent, bounded review cost, and evidence that can be checked independently of the model that wrote the patch.

Typical agent loop

Generate → submit → ask forgiveness

  • Public visibility treated as implied permission
  • Model decides whether its own output is safe
  • Large or unrelated changes reach maintainers
  • Verification cost is shifted upstream

ContribAI protocol

Consent → bound → verify → review

  • Maintainer manifest or approved issue required
  • Deterministic policy sits outside the LLM
  • Paths, size, base revision, and time are bounded
  • Human sees the exact candidate before a draft

The admission protocol

Seven gates. One safe default.

Any missing, stale, malformed, or failed gate closes the write path.

  1. 01
    Operator intent--submit explicitly enables the capability.
  2. 02
    Maintainer consentRepository manifest or approved open issue.
  3. 03
    Bound permitRepository, full base SHA, scope, budget, and expiry.
  4. 04
    Deterministic checksProtected paths, risk, quality, and validation.
  5. 05
    Exact human reviewEvery proposed byte and evidence check is rendered.
  6. 06
    Live revalidationEvidence and current consent are checked again.
  7. 07
    Draft proposalNever merge, publish as ready, or sign a CLA.

Inspectable by people and policy engines

Evidence over confidence.

The capsule binds the reviewed candidate to its repository, consent source, exact base revision, changed paths, scope totals, checks, and permit expiry. A mismatched or expired capsule cannot authorize the write boundary.

Read the consent protocol
schema      evidence/v2
permit      5f81b87f23a6…
consent     manifest:.github/contribai.yml
base        7a93c4d1f802b6e5c2f54968bd42676b751faf09
candidate   1b78d9b56a3e…
scope       2 files / 37 changed lines
checks      admission ✓ quality ✓ validation ✓
mode        draft_only
expires     2026-08-11T08:00:00Z

Try it safely

Zero credentials to first proof.

Exercise the safety boundary offline. Connect GitHub and an LLM only after the policy behavior matches your expectations.

No configNo tokenNo network
1Install
curl -fsSL https://raw.githubusercontent.com/tang-vu/ContribAI/main/install.sh | sh
Windows PowerShell or build from source
irm https://raw.githubusercontent.com/tang-vu/ContribAI/main/install.ps1 | iex cargo install --git https://github.com/tang-vu/ContribAI --locked
2Prove the boundary offline
contribai demo

Uses real admission and evidence code without reading secrets or touching the network.

3Configure locally
contribai init

Secrets stay in environment variables or your local ignored config.

4Inspect, then analyze
contribai consent-check tang-vu/ContribAI --json --require-consent contribai analyze https://github.com/owner/repo

No --submit, no external proposal.

Two accountable roles

Control for maintainers.
Clarity for contributors.

ContribAI does not invent a new social contract. It makes repository intent explicit and machine-checkable while leaving acceptance entirely with the maintainer.

For maintainers

Set a review budget in the repo.

Opt in narrowly, constrain paths and size, or approve one issue at a time.

schema_version: 1
enabled: true
max_files: 3
max_changed_lines: 120
allowed_paths:
  - src/**
  - tests/**
  • Remove or disable the manifest to revoke
  • Protected governance paths stay blocked
  • Every resulting pull request remains a draft

For accountable contributors

Prepare less work, with better evidence.

Analyze first, keep candidates bounded, and ask a human before publication.

  1. 01
    Discover contextAST, repository guidance, issue scope
  2. 02
    Generate candidateNo independent write authority
  3. 03
    Validate locallyRisk, quality, tests, protected paths
  4. 04
    Review exact outputHuman approval cannot be delegated

Built for real repositories

Useful analysis. Boring authority.

The intelligence can evolve. The authorization boundary stays deterministic.

AST

13-language parsing

Tree-sitter intelligence, symbols, imports, and cross-file context.

LLM

Provider choice

Gemini, OpenAI, Anthropic, Ollama, Vertex AI, and Copilot routing.

VAL

Layered validation

Local, AST, or Docker checks with explicit isolation disclosure.

MEM

Outcome memory

SQLite history and repository preferences without remote control-plane lock-in.

CLI

CLI, TUI, and MCP

Multiple interfaces sharing the same capability-aware boundaries.

OBS

Inspectable operations

Events, quotas, circuit breaking, dashboard, and evidence receipts.

Deliberately not included: bulk unsolicited PRs, auto-merge, automated CLA signing, hidden MCP PR creation, or model-decided authorization.

Questions worth asking

Before you give an agent a token.

ContribAI assumes generated output is untrusted—even when the model sounds certain.

Does ContribAI submit pull requests automatically?

No. External writes are off by default. Submission additionally requires operator intent, maintainer consent, admission checks, exact human approval, and live revalidation. The result is always a draft pull request.

Does the offline demo use separate mock policy logic?

No. It calls the production consent parser, permit issuer, admission controller, Evidence v2 builder, and submission-time evidence validator. Only the repository and candidate are bundled fixtures. GitHub, LLMs, and external writes are absent.

Can public repositories be analyzed?

Yes, subject to provider terms and local configuration. Analysis is not permission to publish. A separate maintainer-controlled gate governs external proposals.

Can maintainers revoke consent?

Yes. Remove or disable the repository manifest, remove the approval label, or close the approved issue. Current consent is re-read before the first write.

Does the evidence capsule prove CI passed?

No. It is a deterministic local audit receipt, not a remote signature or CI attestation. The protocol states that limitation explicitly.

Why AGPL?

The maintained Rust implementation is free and open source under AGPL-3.0-or-later. Network modifications remain available to their users under the license terms.

Start with observation, not authority

Prove the boundary.
Then choose whether to connect.

Run the real admission and evidence path without a token, provider, or network call.