open-code-review/GOVERNANCE.md
Kite e0bab8e03a
docs: tidy repo root and refresh screenshots; fix highlights label alignment (#1260)
* docs: refresh landing screenshots and add Korean

Regenerate the highlights and benchmark images for en/ja/ru/zh and add the Korean (ko) variants now that the site ships a Korean locale.

* docs: move localized README and CONTRIBUTING into docs/i18n/

The repo root listed five READMEs and five CONTRIBUTING files. Move the four translations of each into docs/i18n/ so only the English entry points remain in the root, and update every reference: the language switchers in the English files, the documentation-file table in CONTRIBUTING.md, the README sync rule in AGENTS.md, the README_FILES paths in the translation-sync checker, and the docs/i18n/** path trigger in the workflow. Relative links inside the moved files are rewritten to resolve from their new location.

* chore: move SECURITY.md into .github/

GitHub still surfaces the Security policy when SECURITY.md lives under .github/, matching projects like kubernetes and vite. Update the two links in GOVERNANCE.md to the new path.

* fix(pages): keep highlights stat labels aligned across locales

Long stat labels wrapped to two lines on the fixed-width column, left-aligning the wrapped text and dropping that column's caption below the others. The label style now centers text and reserves two lines (lineHeight 16px, minHeight 32px) so every column's caption shares a baseline regardless of label length or locale. Also shorten highlights.stat2Label from 'NPM COMMUNITY DOWNLOADS' to 'NPM DOWNLOADS' across all five locales so it reads directly and fits one line, and regenerate the highlights screenshots to match.

* docs: realign CONTRIBUTING documentation-file tables

The docs/i18n/ path prefix widened the first column and knocked the table pipes out of alignment. Re-pad the columns (display-width aware, so the CJK and Cyrillic rows line up too).

* docs: revert no-op benchmark screenshot re-renders

Generating the Korean benchmark image re-rendered en/ja/ru too, producing byte-different but visually identical PNGs. Restore those three to their main versions; only benchmark-ko.png (the new Korean locale) is a real addition.
2026-09-15 13:24:36 +08:00

7.7 KiB

OpenCodeReview Governance

This document describes how OpenCodeReview is governed today and how technical decisions are made in the project.

It is intended to reflect the project's current open development practice. As OpenCodeReview grows, this document may evolve to support a more formal governance model.

Goals

OpenCodeReview governance is designed to keep the project:

  • open to contributors and users
  • pragmatic in day-to-day decision making
  • transparent in technical direction
  • safe for public API and security-sensitive changes
  • sustainable across multiple components and maintainers

Scope

This document applies to the OpenCodeReview repository and its major public surfaces, including:

  • the CLI tool and its subcommands
  • LLM integration and provider interfaces
  • diff parsing and code review engine
  • configuration and plugin system
  • SDKs, examples, and project documentation

Project Values

OpenCodeReview maintainers and contributors are expected to act consistently with these principles:

  • Open development: design discussion, issue tracking, and code review happen in public whenever possible.
  • Compatibility awareness: CLI behavior, configuration formats, and documented user workflows should not change casually.
  • Security first: changes affecting credentials, API keys, or execution safety require extra scrutiny.
  • Component ownership with cross-project accountability: subsystem maintainers own their areas, while cross-cutting changes require broader review.
  • Documentation and implementation alignment: public contracts, code, examples, and docs should stay consistent.

Roles

Contributors

Contributors are anyone who participates in the project, including by:

  • opening issues or discussions
  • submitting pull requests
  • reviewing code
  • improving docs, tests, examples, or tooling

Contributors are expected to follow:

Maintainers

Maintainers are trusted contributors who have demonstrated sustained, high-quality contributions and a solid understanding of the codebase. They have:

  • write access to the repository
  • authority to review and merge pull requests
  • responsibility to uphold code quality and project standards

Maintainer responsibilities include:

  • reviewing pull requests for owned areas
  • helping preserve code quality, compatibility, and security
  • requesting cross-component review when a change affects other surfaces
  • keeping implementation, tests, docs, and examples aligned when needed
  • helping contributors land changes successfully

New Maintainers are nominated by existing Maintainers and approved by the Project Lead.

Project Lead

The Project Lead provides overall direction for the project and has final authority on decisions when consensus cannot be reached. The current Project Lead is @lizhengfeng101.

Decision Making

Day-to-Day Changes

Most changes are made through the normal pull request workflow described in CONTRIBUTING.md:

  1. discuss the change in an issue when appropriate
  2. submit a pull request
  3. pass automated checks
  4. receive maintainer review for affected areas
  5. address feedback
  6. merge once approved

Normal changes are decided by maintainer review and rough consensus.

Significant Changes

Changes with broader impact require wider review. This includes changes to:

  • CLI behavior or command interfaces
  • LLM provider integration interfaces
  • configuration formats or defaults
  • diff parsing or review engine behavior
  • security-sensitive areas such as credential handling

For these changes, maintainers should seek explicit review from all materially affected areas, not just the first area touched by the patch.

Significant changes (new features, architectural changes, breaking changes) should be proposed via a GitHub Issue before implementation to allow community discussion.

Consensus and Voting

OpenCodeReview prefers lazy consensus for most technical decisions:

  • if affected maintainers agree, the change may proceed
  • if concerns are raised, they should be addressed in the PR or issue discussion

If consensus cannot be reached in a reasonable time, the Project Lead has final decision-making authority.

Reviews and Merge Expectations

The following expectations apply before merge:

  • relevant CI checks should pass, or failures must be understood and accepted by maintainers
  • at least one maintainer of the affected area should review the change
  • cross-cutting changes should be reviewed by all materially affected areas when practical
  • breaking changes should be clearly called out, with migration guidance where needed
  • docs and tests should be updated when behavior changes

Maintainers may decline or defer a change if it:

  • conflicts with approved design direction
  • introduces unnecessary compatibility risk
  • weakens security without a strong justification
  • mixes unrelated work into a single change

Communication Channels

The project's public collaboration channels are:

  • GitHub Issues for bugs, feature requests, and implementation questions
  • GitHub Discussions for broader design discussion and community help
  • pull requests for concrete code and documentation review

Security issues should follow the private reporting guidance in SECURITY.md.

Continuity

OpenCodeReview is hosted under the Alibaba GitHub organization. Multiple members of the organization have administrative access to the repository, ensuring that the project can continue to operate even if any single individual becomes unavailable.

Additionally:

  • Multiple Maintainers are familiar with the full codebase, ensuring no single point of failure in terms of project knowledge.
  • The bus factor of the project is greater than one — critical subsystems (agent, LLM integration, diff parsing, configuration) are understood by more than one person.
  • Repository credentials, CI/CD pipelines, and release processes are accessible to multiple team members within the Alibaba organization.

Becoming a Maintainer

New maintainers are selected based on sustained, high-quality contribution to the project.

Signals that someone may be ready for maintainership include:

  • repeated high-quality code or documentation contributions
  • strong reviews and constructive technical feedback
  • reliable follow-through on owned work
  • good judgment on compatibility, security, and project direction
  • collaborative behavior with contributors and maintainers

The typical process is:

  1. nomination by an existing Maintainer
  2. discussion among Maintainers and the Project Lead
  3. no unresolved objections after a reasonable review period
  4. granting of write access and update of any relevant maintainer records

Maintainer Inactivity and Removal

Maintainers may step down at any time by notifying the project.

The Project Lead may also update maintainer status when someone has been inactive for an extended period, for example several months without meaningful review or maintenance activity.

Removal should be handled respectfully and pragmatically, with the goal of keeping ownership accurate rather than punitive.

Maintainers may also be removed for serious violations of project expectations, including repeated abuse of project privileges or violations of the Code of Conduct.

Changes to Governance

Changes to this governance document should be made through a public pull request.

Governance changes should receive review from Maintainers and the Project Lead, and should not be merged without giving maintainers and contributors a reasonable opportunity to comment.