Skip to content

CIP-003: Formalize Community Improvement Plans (CIPs)#8

Open
thebalaa wants to merge 7 commits intoopenclaw:mainfrom
hintjen:rfc/003-cip-template
Open

CIP-003: Formalize Community Improvement Plans (CIPs)#8
thebalaa wants to merge 7 commits intoopenclaw:mainfrom
hintjen:rfc/003-cip-template

Conversation

@thebalaa
Copy link

@thebalaa thebalaa commented Mar 8, 2026

Summary

CIP-003 is the CIP template itself — a meta-proposal that defines the standard format all future Community Improvement Plans must follow. It establishes:

What it defines

  • A metadata header with 13 fields providing full traceability: CIP number (tied to PR#), author, staff champion, status, type, date, originating RFCIP issue, affected teams, discussion links (GitHub + Discord),
    and supersession chain.
  • 10 required sections for the proposal body:
    1. Summary — one-paragraph overview
    2. Motivation — the problem or opportunity
    3. Detailed Design — the core proposal in full detail
    4. Drawbacks — honest costs, risks, and trade-offs
    5. Alternatives — other approaches considered
    6. Prior Art — what other communities have done
    7. Implementation Plan — concrete steps and responsibilities
    8. Timeline — milestones and phasing
    9. Success Metrics — measurable outcomes
    10. Unresolved Questions — open items needing further discussion
  • An AI Disclosure section for transparency when AI tools assist drafting.

Why it matters

CIP-003 is the foundational document of the CIP process. Every future community improvement — whether governance, structural, tooling, or events — will be written against this template. It ensures proposals are
consistently structured, thoroughly considered, and traceable from initial pitch (RFCIP issue) through acceptance and implementation.

This PR was authored with the assistance of Pi coding agent and a custom exploration workbench.
Author accepts responsibility for the qulity of contents herein.

thebalaa added 2 commits March 7, 2026 23:07
- Fully specified meta-CIP documenting the CIP process
- RFCIP issue template for lightweight pitches
- Blank CIP template for future authors
- Process guide (rfcs/README.md)
- Updated issue template config with label reference
@thebalaa thebalaa marked this pull request as ready for review March 8, 2026 05:11
thebalaa and others added 4 commits March 7, 2026 23:16
CIP numbers are now sequential, manually assigned by the champion
when the RFCIP is greenlit. This decouples naming from GitHub
infrastructure and gives the champion explicit responsibility
for number assignment.
Copy link
Member

@thewilloftheshadow thewilloftheshadow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excited to see this merged and implemented!

Comment on lines +27 to +30
| `cip:draft` | Initial RFCIP or early CIP PR |
| `cip:discussion` | Under active community review (7-day minimum) |
| `cip:accepted` | Approved by Admin, PR merged |
| `cip:rejected` | Not approved |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `cip:draft` | Initial RFCIP or early CIP PR |
| `cip:discussion` | Under active community review (7-day minimum) |
| `cip:accepted` | Approved by Admin, PR merged |
| `cip:rejected` | Not approved |
| `CIP Status: Draft` | Initial RFCIP or early CIP PR |
| `CIP Status: Discussion` | Under active community review (7-day minimum) |
| `CIP Status: Accepted` | Approved by Admin, PR merged |
| `CIP Status: Rejected` | Not approved |

For human-used labels, I like having this format

Comment on lines +36 to +39
| `cip:governance` | Rules, policies, processes |
| `cip:structural` | Channels, roles, team changes |
| `cip:tooling` | Bots, automation, integrations |
| `cip:events` | Programs, activities, community events |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `cip:governance` | Rules, policies, processes |
| `cip:structural` | Channels, roles, team changes |
| `cip:tooling` | Bots, automation, integrations |
| `cip:events` | Programs, activities, community events |
| `CIP Type: Governance` | Rules, policies, processes |
| `CIP Type: Structural` | Channels, roles, team changes |
| `CIP Type: Tooling` | Bots, automation, integrations |
| `CIP Type: Events` | Programs, activities, community events |
| `CIP Type: Other` | Anything that doesn't fit in another category |

For human-used labels, I like having this format


1. **Pitch:** Open an [RFCIP issue](https://github.com/openclaw/community/issues/new?template=rfcip.yml) describing the problem and your proposed direction.
2. **Champion:** Staff reviews the RFCIP and assigns a champion (staff sponsor and advocate). The champion assigns the next available CIP number.
3. **Draft:** Once greenlit, open a pull request adding `rfcs/XXXX-slug.md` (where `XXXX` is the PR number). Use [`0003-rfcip-template.md`](0003-rfcip-template.md) as your starting template.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. **Draft:** Once greenlit, open a pull request adding `rfcs/XXXX-slug.md` (where `XXXX` is the PR number). Use [`0003-rfcip-template.md`](0003-rfcip-template.md) as your starting template.
3. **Draft:** Once greenlit, open a pull request adding `rfcs/XXXX-slug.md` (where `XXXX` is the PR number). Use [`XXXX-cip-blank-template.md`](XXXX-cip-blank-template.md) as your starting template.

Comment on lines +295 to +297
## AI Disclosure

AI tools (Claude) were used as a collaborative partner in designing the CIP process structure, drafting this document, and generating the RFCIP issue template. All design decisions were made by the author through a structured questionnaire process.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Big fan of this section, thank you

## Implementation Plan

1. **Merge this CIP** into the `rfcs/` directory as the foundational process document.
2. **Create GitHub labels**: `cip:draft`, `cip:discussion`, `cip:accepted`, `cip:rejected`, `cip:governance`, `cip:structural`, `cip:tooling`, `cip:events`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would prefer a different format for these, I noted that on the rfcs/README.md file

Comment on lines +119 to +168
### Process Flow

```
Community member
┌─────────────┐
│ Open RFCIP │ ◀── GitHub issue using RFCIP template
│ issue │
└──────┬──────┘
┌─────────────┐
│ Staff review│ ◀── Staff evaluates the pitch
│ + assign │
│ champion │
└──────┬──────┘
┌─────────────┐
│ Champion │ ◀── Champion greenlights + assigns CIP number
│ greenlights │
└──────┬──────┘
┌─────────────┐
│ Open CIP PR │ ◀── PR adding rfcs/XXXX-slug.md
│ (Draft) │
└──────┬──────┘
┌─────────────┐
│ Discussion │ ◀── 7-day minimum; GitHub + Discord
│ period │
└──────┬──────┘
┌─────────────┐
│ Admin │
│ decision │
└──┬──────┬───┘
│ │
▼ ▼
Accepted Rejected
(merge) (close + rationale)
Tracking issue
opened
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use mermaid for this!

Comment on lines +109 to +111
```
Draft ──▶ Discussion ──▶ Accepted
└──▶ Rejected
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use mermaid for this!

Suggested change
```
Draft ──▶ Discussion ──▶ Accepted
└──▶ Rejected
```mermaid
flowchart LR
draft([Draft]) --> disc([Discussion])
disc --> a([Accepted])
disc --> r([Rejected])
flowchart LR
    draft([Draft]) --> disc([Discussion])
    disc --> a([Accepted])
    disc --> r([Rejected])
Loading

Comment on lines +204 to +222
### GitHub Labels

**Status labels** track lifecycle state:

| Label | Meaning |
| ---------------- | -------------------------------------- |
| `cip:draft` | Initial RFCIP or early CIP PR |
| `cip:discussion` | Under active community review |
| `cip:accepted` | Approved by Admin, PR merged |
| `cip:rejected` | Not approved |

**Type labels** categorize proposals:

| Label | Meaning |
| ----------------- | ------------------------------------- |
| `cip:governance` | Rules, policies, processes |
| `cip:structural` | Channels, roles, team changes |
| `cip:tooling` | Bots, automation, integrations |
| `cip:events` | Programs, activities, community events|
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added preferred label names on rfc/README.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants