Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
586dafd
docs(framework): simplify contribution to one issue-first path
blafourcade Jul 30, 2026
a89b36a
docs(framework): mark contribution simplification plan implemented
blafourcade Jul 30, 2026
8b5aa6d
docs(framework): tighten contribution flow, sync renamed roles
blafourcade Jul 30, 2026
5e42f7c
docs(framework): fold CONTRIBUTORS.md into README, unify on Maintainer
blafourcade Jul 30, 2026
e37c677
docs(framework): translate template names, fix anchors and links
blafourcade Jul 31, 2026
ba25903
docs(framework): cut repeated branch/merge facts in CONTRIBUTING.md
blafourcade Jul 31, 2026
6ea0bf3
docs(framework): cut CONTRIBUTING.md to what a newcomer needs
blafourcade Jul 31, 2026
85d292c
docs(framework): clarify report-vs-build split, restore cut facts
blafourcade Jul 31, 2026
62bdc3e
docs(framework): flesh out Make your change with principles + multi-t…
blafourcade Jul 31, 2026
15af329
docs(framework): fold bug reports into the template list
blafourcade Jul 31, 2026
164bb98
docs(framework): mermaid shows the 3 template branches, Principles intro
blafourcade Jul 31, 2026
acb274e
docs(framework): split Discussions from the issue templates line
blafourcade Jul 31, 2026
ecdf5e4
docs(framework): show the discussion-vs-issue fork in the mermaid itself
blafourcade Jul 31, 2026
5e280e3
docs(framework): distinguish Quick vs Detailed in the diagram
blafourcade Jul 31, 2026
0f6b03b
docs(framework): trim the issue picker's contact links
blafourcade Jul 31, 2026
998c803
docs(framework): actually rename the issue template files
blafourcade Jul 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Default reviewers for every change in this repository.
# GitHub assigns these reviewers automatically when a pull request is opened.
# Only Habilité AIDD maintainers can approve and merge - see GOVERNANCE.md.
# Only AIDD Maintainers can approve and merge - see GOVERNANCE.md.
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
* @ai-driven-dev/habilitated
* @ai-driven-dev/trusted-partners
6 changes: 0 additions & 6 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,3 @@ contact_links:
- name: Discord community
url: https://discord.gg/EWySJSpjWs
about: Ask questions, get help, or chat with the AI-Driven Dev community in real time.
- name: Website
url: https://www.ai-driven-dev.fr/
about: Read the AI-Driven Dev methodology, guides, and announcements.
- name: Report a security vulnerability
url: https://github.com/ai-driven-dev/framework/security/advisories/new
about: Disclose a vulnerability privately via GitHub Security Advisories. Do not open a public issue.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: 🗺️ Roadmap item
description: "Maintainer-authored work: a skill, a refactor, a rule to enforce"
name: 📋 Detailed Contribution
description: "Propose a scoped change: a skill, a refactor, a rule to enforce"
title: "<type>(<scope>): "
type: Task
body:
- type: markdown
attributes:
value: |
For maintainers planning framework work. Reporting a bug or asking for a feature as a user?
Use the **Bug Report** or **Feature Request** form instead.
Issue-first: a maintainer validates this before any PR is opened (see [CONTRIBUTING.md](https://github.com/ai-driven-dev/framework/blob/main/CONTRIBUTING.md)).
Reporting a bug? Use the **Bug Report** form instead.

The title carries its own scope, matching `commitlint.config.cjs`: `feat(aidd-pm):`, `fix(framework):`, `refactor(aidd-context):`.
- type: textarea
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
name: ✨ Feature Request
description: Propose new content or an improvement to the framework
name: 🌱 Quick Contribution
description: Propose a change or new content for the framework, minimal form
title: "feat(<scope>): "
type: Feature
body:
- type: markdown
attributes:
value: |
Have an idea? You can also post and upvote it in
[Discussions](https://github.com/ai-driven-dev/framework/discussions) -
popular ideas get promoted to a roadmap vote (see [ROADMAP.md](https://github.com/ai-driven-dev/framework/blob/main/ROADMAP.md)).
Issue-first: a maintainer validates this before any PR is opened (see [CONTRIBUTING.md](https://github.com/ai-driven-dev/framework/blob/main/CONTRIBUTING.md)).
Want to discuss an idea first? Post it in [Discussions](https://github.com/ai-driven-dev/framework/discussions).
- type: textarea
id: problem
attributes:
Expand Down
71 changes: 36 additions & 35 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,62 @@
# Contributing to the AIDD Framework

Source of truth for AIDD skills, agents, rules, and templates — authored in Claude Code syntax; the CLI adapts an archive per tool at release. This file covers contributing to **this repository**; the wider community, roles, and training programme live at [ai-driven-dev.fr](https://www.ai-driven-dev.fr/).
## 👥 How to contribute

One path, open to everyone ([roles](./GOVERNANCE.md#-roles)).

```mermaid
flowchart LR
Issue["💡 Issue / idea"] --> Branch["🌿 Branch off next"] --> PR["🔀 Open PR"] --> Review["🛡️ Habilité review"] --> Merge["✅ Squash-merge → next"] --> Release["🚀 Weekly promote → release-please ships"]
Start(["Something to share?"]) -->|"just a question"| Discussion["💬 Discussions"]
Start --> Bug["🐛 Bug"]
Start --> Quick["🌱 Quick<br/>problem + solution"]
Start --> Detailed["📋 Detailed<br/>scope + acceptance criteria"]
Bug --> Validate["✅ Get validated"]
Quick --> Validate
Detailed --> Validate
Validate --> Setup["🔧 Set up"] --> Changes["✏️ Changes"] --> PR["🔀 Open PR"] --> Review["🛡️ Review"] --> Merge["✅ Merged"]
```

## 👥 Who can contribute
1. Just a question? → [Discussions](https://github.com/ai-driven-dev/framework/discussions).
2. **Open an issue** — [🐛 Bug Report](https://github.com/ai-driven-dev/framework/issues/new?template=bug_report.yml), [🌱 Quick Contribution](https://github.com/ai-driven-dev/framework/issues/new?template=quick_contribution.yml), or [📋 Detailed Contribution](https://github.com/ai-driven-dev/framework/issues/new?template=detailed_contribution.yml).
3. **Get it validated** — a Certified Member or Maintainer moves it to `Todo`. Green light.
4. **Want to build it yourself?** → [Set up](#-set-up). Anyone can pick up a validated issue, not just the person who opened it.
5. **Open your PR** → [Open a pull request](#-open-a-pull-request).

Roles and their rights are defined in [`GOVERNANCE.md`](./GOVERNANCE.md#-roles). Where each starts:
## 📜 Principles

| Role | Start here |
| --- | --- |
| 👤 **Public** | [Open an issue](https://github.com/ai-driven-dev/framework/issues) or [discussion](https://github.com/ai-driven-dev/framework/discussions) |
| 🗳️ **Core Team** | Vote on roadmap priority |
| 🌱 **Certifié** | Open a pull request → [Set up](#-1-set-up) |
| 🛡️ **Habilité** | Review and merge |
What holds for every contribution, whatever you're building:

The rest of this guide is the *how* for those opening PRs.
- **No slop** — read every line before proposing it.
- **Spend tokens like they cost something.**
- **Claude Code syntax only** — skills, agents, and rules are authored in Claude Code syntax (the [CLI](./cli/) adapts a per-tool archive at release).
- **Follow the skill structure** → [`ARCHITECTURE.md`](docs/ARCHITECTURE.md), use the `/aidd-context:04-skill-generate`.
- **Evolve the memory** → [`aidd_docs/memory/`](aidd_docs/memory/).

## 🔧 1. Set up
## 🔧 Set up

Requires **Node 22.12+**, **pnpm**, **jq**, **python3**, and **pipx** (`gh` and the Claude/Codex CLI optional).
Requires **Node 22.12+**, **pnpm**, **jq**, **python3**, **pipx**.

```bash
make setup # deps + git hooks, registers a local marketplace, installs plugins into Claude + Codex
make setup # deps, git hooks, registers the marketplace, installs plugins into Claude + Codex
```

`make` lists every target; `make doctor` and `make check` verify the environment and run the pre-commit checks (including the Markdown link checker).

## ✏️ 2. Make your change

- **Test locally** — neither tool hot-reloads the checkout (both serve a cached copy). After editing, run `make reload` (or `PLUGIN="aidd-refine aidd-pm"` for a subset), then restart the session — `/reload-plugins` covers a Claude-only edit to an existing skill.
- **Commit** — `<type>(<scope>): description`, one scope per commit (split cross-plugin changes). The types, scopes, and rules live in [`aidd_docs/memory/vcs.md`](aidd_docs/memory/vcs.md#commit-convention) (mirrors `commitlint.config.cjs`); the **type** drives the release → [`RELEASE.md`](./RELEASE.md).

## 🔀 3. Open a pull request

- **Branch off `next`, target `next`** — only `hotfix/*` branches off `main` for urgent production fixes. The branch prefix alone decides the target → [routing table](aidd_docs/memory/vcs.md#types).
- **Fill the PR template** — explain *what* changed and *how* you solved it; skip re-asserting the conventional title and hooks (CI already enforces them).
- **Label** follows your branch kind (the PR skill applies it automatically); add `security` when relevant.
- **A Habilité review gates every merge** ([`CODEOWNERS`](./.github/CODEOWNERS)) — Certifié contributors cannot self-merge. PRs squash-merge on the conventional title. Decision rules → [`GOVERNANCE.md`](./GOVERNANCE.md#-code-decisions-merging).
`make` lists every target; `make doctor` checks your environment, `make check` runs the pre-commit checks.

## 🚀 Releases
## ✏️ Make your change

The `main`/`next` model, weekly cadence, and hotfix flow → [`RELEASE.md`](./RELEASE.md). A release ships **8 independently-versioned packages** (root `aidd-framework` + the 7 plugins; `aidd-ui` is alpha) plus per-tool archives; full breakdown → [`MAINTAINERS.md`](docs/MAINTAINERS.md#-releases).
- **Follow the [Principles](#-principles).**
- **Test locally** — run `make reload`, restart your session(s). Test in Claude *and* one other tool (e.g. Codex).
- **Commit** — `<type>(<scope>): description`, one scope per commit → [convention](aidd_docs/memory/vcs.md#commit-convention).

## 🐛 Reporting issues
## 🔀 Open a pull request

[Open an issue](https://github.com/ai-driven-dev/framework/issues/new/choose) (🐛 Bug or ✨ Feature) — auto-added to the [Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8). For usage questions use [Discussions](https://github.com/ai-driven-dev/framework/discussions), not issues (see [`SUPPORT.md`](./.github/SUPPORT.md)).
- **Branch off `next`, target `next`** → [routing table](aidd_docs/memory/vcs.md#types).
- **Fill the [PR template](.github/PULL_REQUEST_TEMPLATE.md)** — what changed, how you solved it.
- **A Maintainer review gates every merge** → [`GOVERNANCE.md`](./GOVERNANCE.md#-code-decisions).

## 📚 Reference

- **Build a plugin** → [`docs/CREATE_PLUGIN.md`](docs/CREATE_PLUGIN.md)
- **Architecture & terms** → [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) · [`docs/GLOSSARY.md`](docs/GLOSSARY.md)
- **Patterns to follow** → a minimal plugin [`aidd-refine`](plugins/aidd-refine/), a router skill [`00-onboard`](plugins/aidd-context/skills/00-onboard/), agents [`aidd-dev/agents`](plugins/aidd-dev/agents/)
- **Per-tool builds** → source files use Claude Code syntax; the `aidd-cli` maps each surface to its per-tool equivalent at release. `name` / `description` / `argument-hint` are universal; other frontmatter keys (`model`, `color`, `paths`, …) are tool-specific and ignored where unsupported.
[`ARCHITECTURE.md`](docs/ARCHITECTURE.md) · [`CREATE_PLUGIN.md`](docs/CREATE_PLUGIN.md) · [`GLOSSARY.md`](docs/GLOSSARY.md)

---

Expand Down
28 changes: 0 additions & 28 deletions CONTRIBUTORS.md

This file was deleted.

74 changes: 15 additions & 59 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,37 @@
# Governance

How decisions get made in the AI-Driven Dev Framework. Four roles form a
**ladder** - each rung keeps every right of the rungs below and adds its own.
How decisions get made in the AI-Driven Dev Framework.

```mermaid
---
title: AIDD roles ladder
---
flowchart LR
Public["Public - free"]
CoreTeam["Core Team - AIDD member"]
Certifie["Certifie AIDD - certified"]
Habilite["Habilite AIDD - maintainer"]

Public -- join programme --> CoreTeam
CoreTeam -- pass certification --> Certifie
Certifie -- promoted --> Habilite
```
Four roles form a **ladder**, each rung keeps every right of the rungs below and adds its own.

## 👥 Roles

| Tier | How you get there | Adds (on top of the rung below) | Team |
| ---- | ----------------- | ------------------------------- | ---- |
| **Public** | Free, any GitHub account | Open issues, comment, react / upvote ideas (signal only) | - |
| **Public** | Free, any GitHub account | Open issues, comment, react / upvote ideas (signal only), **open a pull request** once its issue is validated | - |
| **Core Team** | Active [AIDD programme](https://www.ai-driven-dev.fr/) member (training, community, coaching) | A **counted roadmap vote** + voice on direction | [`core-team`](https://github.com/orgs/ai-driven-dev/teams/core-team) |
| **Certifié AIDD** | Pass the [AIDD certification](https://www.ai-driven-dev.fr/) | Open **pull requests** (framework + courses) | [`certified`](https://github.com/orgs/ai-driven-dev/teams/certified) |
| **Habilité AIDD** | Promoted by a majority of Habilité | **Approve & merge** PRs, **quality veto**, appoint/promote, guard the standard | [`habilitated`](https://github.com/orgs/ai-driven-dev/teams/habilitated) |

**Plugin owners** are Habilité scoped to one plugin (`aidd-context`, `aidd-dev`,
…): they merge and triage for that plugin only.
| **Certified Members** | Pass the [AIDD certification](https://www.ai-driven-dev.fr/) | **Validate contribution issues** (triage: move `Ideation` → `Todo` on the [Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8)) | [`certified-members`](https://github.com/orgs/ai-driven-dev/teams/certified-members) |
| **Maintainer** | Certified member promoted to give AIDD Trainings (**Trusted Partner**), or **AIDD Staff** | **Approve & merge** PRs, **quality veto**, appoint/promote, guard the standard | [`trusted-partners`](https://github.com/orgs/ai-driven-dev/teams/trusted-partners) |

## 📊 Roadmap voting

- **Public** reacts (👍 / upvote). This is a **signal**, not a counted vote; it
promotes an item to a formal vote.
- **Core Team, Certifié, Habilité** each cast **one equal vote**. The vote is a
- **Core Team, Certified, Maintainer** each cast **one equal vote**. The vote is a
benefit of AIDD membership (the programme is a paid training / community /
coaching offering) - that is what turns a signal into a counted vote.
- **Habilité** holds the tiebreak and a **quality veto** as the top rung.
coaching offering), that is what turns a signal into a counted vote.
- **Maintainer** holds the tiebreak and a **quality veto** as the top rung.
- A poll runs **≥ 7 days**. Accepted items land on the
[AIDD Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8).
- This vote decides **roadmap priority**, not whether a contribution issue can
move to a PR, that validation is immediate, see [`CONTRIBUTING.md`](CONTRIBUTING.md).

## ✅ Code decisions (merging)

- Merge authority is **Habilité only**.
- **Lazy consensus** (default): a Habilité may merge if no other Habilité objects within 72h, there is ≥1 Habilité approval, and CI passes.
- **Quality veto**: any Habilité can block with a `request-changes` review until resolved.
- **Explicit consensus** — for cross-plugin changes, contract changes (skill frontmatter, `marketplace.json`), or licensing/governance changes: ≥2 Habilité approve, none object.

## 📈 Promotion and inactivity

- **→ Certifié**: pass the AIDD certification → added to `certified`.
- **→ Habilité**: a Habilité nominates a Certifié with a track record of merged,
standard-consistent work; a majority of Habilité approves → added to
`habilitated` and `CODEOWNERS`.
- A Core Team / Habilité member inactive **6 months** may be moved to **emeritus**
by a Habilité majority (keeps recognition, loses vote/merge until they return).

## 🧩 Plugins, breaking changes, conflicts

- **New plugin**: lands via PR following [`docs/CREATE_PLUGIN.md`](docs/CREATE_PLUGIN.md)
(description on every skill, registered in
`marketplace.json` + `release-please-config.json`, a Habilité owner). Starts
`experimental` → `release candidate` (one external success) → `stable` (Habilité
review).
- **Deprecate/remove**: any Habilité, with a rationale + migration path; stays
installable 90 days.
- **Breaking changes**: Conventional Commits `!` suffix; document the migration
path. Prompt-only behaviour changes also count - flag in the PR and announce on
Discord.
- **Conflict of interest**: a Habilité with a stake in a PR discloses it and is
not the sole approver (a second Habilité approval becomes mandatory).

## 🔒 Branch protection on `main` and `next`
## ✅ Code decisions

- **`main`** (production): no direct push, force-push, or deletion. Every change is a PR with ≥1 Habilité (CODEOWNERS) approval, passing checks (`lefthook (framework-local checks)`, `Commitlint`), and resolved threads. Rules: [`.github/rulesets/main.json`](.github/rulesets/main.json) (enforced once the repo is public / on a paid plan).
- **`next`** (integration): PRs with ≥1 review and passing checks, no direct push or deletion. The release bot bypasses to push the automated back-merge; the `admin` team may merge without a second review. Rules: [`.github/rulesets/next.json`](.github/rulesets/next.json). Release flow: [`RELEASE.md`](RELEASE.md).
- Merge authority is **Maintainer only**.
- **Lazy consensus** (default): a Maintainer may merge if no other Maintainer objects within 72h, there is ≥1 Maintainer approval, and CI passes.
- **Quality veto**: any Maintainer can block with a `request-changes` review until resolved.
- **Explicit consensus** : for cross-plugin changes, contract changes, or licensing/governance changes: ≥2 Maintainer approve.

## 📜 Code of Conduct & amendments

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,8 @@ Free and open-source (MIT). If it saves you time, [a ⭐](https://github.com/ai-
- **Idea or bug?** [Open an issue](https://github.com/ai-driven-dev/framework/issues) or [start a discussion](https://github.com/ai-driven-dev/framework/discussions).
- **Contribute code** → [`CONTRIBUTING.md`](CONTRIBUTING.md).

[![Contributors](https://contrib.rocks/image?repo=ai-driven-dev/framework)](https://github.com/ai-driven-dev/framework/graphs/contributors)

---

<div align="center">
Expand Down
14 changes: 8 additions & 6 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Roadmap

The live roadmap is the [AIDD Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8): a milestone is a theme, due on a Friday, and everything without one is the backlog, ordered by priority. That board is the single source of truth; this file deliberately does not duplicate it. Shipped reality lives in [`CHANGELOG.md`](./CHANGELOG.md).
The live roadmap is the [AIDD Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8): a milestone is a theme, due on a Thursday, and everything without one is the backlog, ordered by priority. That board is the single source of truth.

Shipped reality lives in [`CHANGELOG.md`](./CHANGELOG.md).

## How to influence

Priority is set by a community vote - full mechanism (who votes, weighting, polls) in [`GOVERNANCE.md`](./GOVERNANCE.md#-roadmap-voting). To influence it:
Priority is set by a community vote mechanism (who votes, weighting, polls) in [`GOVERNANCE.md`](./GOVERNANCE.md#-roadmap-voting).

- Open a `feat:` issue or an idea in [GitHub Discussions](https://github.com/ai-driven-dev/framework/discussions), and 👍 / upvote what you want - the signal that promotes an item to a vote.
- Discuss on [Discord](https://discord.gg/EWySJSpjWs).
- Sponsored work: see [`.github/FUNDING.yml`](./.github/FUNDING.yml).
To influence it:

Accepted items land on the [AIDD Roadmap board](https://github.com/orgs/ai-driven-dev/projects/8).
- Open an issue or an idea in [GitHub Discussions](https://github.com/ai-driven-dev/framework/discussions) and 👍 / upvote what you want.
- Weekly sync: Thursdays 10:30 on the [Framework channel on Discord](https://discord.com/channels/1173363373115723796/1512081578858119238) decides what the next milestone contains.
- Sponsored work: see [`.github/FUNDING.yml`](./.github/FUNDING.yml).
Loading