This document describes how decisions get made in Ardur and how code reaches users. It describes the project as it is today, not as it might be later. If you find a rule here that the repository does not actually follow, that is a bug in this document — please report it.
Ardur is a single-maintainer open-source project. Gnani Rahul Nutakki is the maintainer and is responsible for triage, review, release, and security response.
There are two roles today:
- Maintainer — reviews and merges, cuts releases, responds to security reports, and is the final decision-maker on scope and claims.
- Contributor — anyone opening an issue or pull request.
There is no CODEOWNERS file, no automated reviewer routing, and no approval-count rule. Review is a human judgment call. As the project grows, additional maintainers would be added by the current maintainer, and this document updated in the same change.
devis the integration trunk. All normal work — features, fixes, docs — targetsdev.origin/devis the default diff and PR base.mainis release-only and human-gated. It receives work promoted fromdevafter that work has landed, passed verification, and is ready as a public-facing release. Promotion tomainis an explicit, deliberate act by the maintainer; it is never a side effect of ordinary development.- The published documentation site deploys from
main, somainis also what the public reads.
Contributors and agents should not open PRs against main on their own
initiative. If a workspace was branched from main by accident, keep the
branch name and retarget the PR at dev.
- Open a PR against
dev. Keep it scoped and reviewable. - CI runs. The required checks are the gate — see
.github/workflows/, which is authoritative for what currently runs. Notable gates include the test suites, CodeQL, a secret scan (which also blocks specific LLM model identifiers in public surfaces), format validation, documentation-sync staleness checks, and, for kernel-facing changes, privileged enforcement jobs. - The maintainer reviews. Automated review tooling may also comment; its findings are advisory and the maintainer's judgment governs.
- The maintainer merges. Branch protection is enabled on
devandmain.
Signed-off-by: on commits (git commit -s) is the convention in this
repository's history. It is not currently enforced by a bot.
- Architectural and protocol decisions are recorded as ADRs under
docs/decisions/. If a change alters a trust boundary, a credential format, an enforcement tier, or what the project claims, it should reference or add an ADR rather than living only in a PR description. - Claims are governed by evidence, not by consensus. A capability is not
described as proven unless the verifier and public artifacts back it, and
documented limitations in
docs/known-limitations.mdandSTATUS.mdare treated as first-class project state. Disagreements about what Ardur can do are settled by running the verifier, not by discussion. - Disagreements are worked out in the issue or PR thread. The maintainer decides when there is no consensus.
Vulnerability reports follow SECURITY.md — a GitHub Security
Advisory is preferred, and an active vulnerability should never be filed as a
public issue. Security response is the maintainer's responsibility and takes
priority over feature review.
Participation is governed by CODE_OF_CONDUCT.md.
Governance changes are made by PR to dev like any other change, and are the
maintainer's decision.