|
| 1 | +# Governance |
| 2 | + |
| 3 | +How decisions get made in the AI-Driven Dev Framework. |
| 4 | + |
| 5 | +## Project structure |
| 6 | + |
| 7 | +- **Maintainers**: a small group with merge rights on `main`. Listed in [`.github/CODEOWNERS`](./.github/CODEOWNERS) and on the GitHub organisation page. |
| 8 | +- **Plugin owners**: maintainers responsible for the day-to-day of a specific plugin (`aidd-context`, `aidd-dev`, etc.). They merge per-plugin PRs and triage per-plugin issues. |
| 9 | +- **Contributors**: anyone who opens a PR or issue. The contribution flow is documented in [`CONTRIBUTING.md`](./CONTRIBUTING.md). |
| 10 | +- **Community**: the wider AIDD community on Discord, YouTube, and LinkedIn. Sets direction by feedback, votes on roadmap items, and proposes new use cases. |
| 11 | + |
| 12 | +## How decisions are made |
| 13 | + |
| 14 | +The default is **lazy consensus**. Any maintainer can move forward on a PR if: |
| 15 | + |
| 16 | +1. No other maintainer has expressed an objection within 72 hours. |
| 17 | +2. The PR has at least one approval from a maintainer (or from a plugin owner for plugin-scoped changes). |
| 18 | +3. The PR passes CI and lefthook checks. |
| 19 | + |
| 20 | +Anyone can pause a PR by leaving a `request-changes` review or a `block` comment explaining the concern. The PR cannot merge until the concern is resolved. |
| 21 | + |
| 22 | +For changes that affect more than one plugin, the contract surface (skill frontmatter, marketplace.json schema), or the project's licensing / governance, lazy consensus is replaced with **explicit consensus**: at least two maintainers approve, no maintainer objects. |
| 23 | + |
| 24 | +## Adding a new plugin |
| 25 | + |
| 26 | +A new plugin lands through a regular pull request that: |
| 27 | + |
| 28 | +1. Follows the layout described in [`docs/CREATE_PLUGIN.md`](docs/CREATE_PLUGIN.md). |
| 29 | +2. Includes a `description` frontmatter on every skill clear enough that a Claude session can discover it from intent alone. |
| 30 | +3. Declares at least one `evals/scenarios.json` fixture per skill. |
| 31 | +4. Adds the plugin entry to `.claude-plugin/marketplace.json` and registers it in `release-please-config.json`. |
| 32 | +5. Has a plugin owner ready to take ongoing responsibility for issues and PRs against the plugin. |
| 33 | + |
| 34 | +A new plugin starts at `status: experimental`. It moves to `release candidate` once at least one external user has installed and reported a successful run, and to `stable` after a maintainer review of the eval coverage and the documentation. |
| 35 | + |
| 36 | +## Removing or deprecating a plugin |
| 37 | + |
| 38 | +A plugin can be deprecated by any maintainer with a one-paragraph rationale and at least one alternative path (a sibling plugin, an external project) for users to migrate to. Deprecation moves the plugin to `status: deprecated` in the README table and adds a banner in the plugin's own README. After 90 days the plugin can be removed entirely; until then it stays installable. |
| 39 | + |
| 40 | +## Breaking changes |
| 41 | + |
| 42 | +Breaking changes follow Conventional Commits with the `!` suffix (`feat!:`, `refactor!:`, etc.). Major bumps trigger an automatic release-please PR. The release notes must document the migration path for any user-visible contract (skill name, manifest field, public env variable). |
| 43 | + |
| 44 | +Prompt-only changes that alter how a skill behaves without changing its name or inputs still constitute breaking changes from the user's perspective. They should be flagged in the PR description and announced on Discord before merge. |
| 45 | + |
| 46 | +## Conflicts of interest |
| 47 | + |
| 48 | +A maintainer or plugin owner with a direct stake in a PR (e.g. their employer or a paid integration) should disclose it in the PR description and abstain from being the sole approver. The lazy-consensus window stays the same, but a second maintainer approval becomes mandatory. |
| 49 | + |
| 50 | +## Code of Conduct |
| 51 | + |
| 52 | +All decisions and interactions are bound by the [Code of Conduct](./CODE_OF_CONDUCT.md). Enforcement contacts are listed there. |
| 53 | + |
| 54 | +## Amendments |
| 55 | + |
| 56 | +This document is itself versioned. Changes to governance follow the same explicit-consensus rule above. |
0 commit comments