0021: Contribution and Proposal Management Strategy
Date: 2025-08-13
Status: Proposed
Context
As the Citadel project grows, it will receive feature requests, bug reports, and architectural suggestions from a wide range of contributors, including the open-source community and stakeholders representing paying customers. We need a clear, transparent, and structured process for managing these contributions to ensure that all ideas are evaluated fairly and that development efforts align with the project's strategic goals and architectural principles.
Decision
We will adopt a formal, structured process for managing all contributions. This process makes a clear distinction between bug reports and new feature proposals.
-
Bug Reports (GitLab Issues)
- The GitLab issue tracker is to be used exclusively for reporting verifiable bugs in the existing software.
- Feature requests or general discussions submitted as issues will be closed with a request to follow the formal proposal process.
-
Feature Proposals (Citadel Enhancement Proposal - CEP)
- Entry Point: The sole entry point for any new feature or significant change is a Citadel Enhancement Proposal (CEP).
- Process:
- A contributor creates a new CEP document from a template in a dedicated feature branch (e.g.,
cep/add-saml-support). - The CEP must be detailed enough for a human or AI to begin implementation. It must clearly define the problem, the proposed solution, user stories, and technical requirements.
- The contributor opens a Merge Request (MR) to merge the CEP into the
mainbranch.
- A contributor creates a new CEP document from a template in a dedicated feature branch (e.g.,
- Discussion & Review: The MR itself serves as the formal forum for discussion and review. This keeps the discussion tied directly to the proposed change.
- Decision:
- Acceptance: Merging the MR into
mainsignifies that the CEP isAccepted. The proposal is now part of the official project documentation. - Rejection/Deferral: Closing the MR without merging signifies that the proposal is
RejectedorDeferred. The history remains in the closed MR for future reference.
- Acceptance: Merging the MR into
-
Architectural Design (ADR)
- Trigger: An
AcceptedCEP that requires a significant architectural change, introduces a new service, or modifies a core cross-cutting concern must be accompanied by a new ADR. - Relationship: The CEP defines the problem, while the ADR defines the architectural solution ("how").
- Trigger: An
-
Implementation (Checklist)
- Trigger: Once a CEP is
Acceptedand any required ADRs are approved, the work is broken down into a detailed implementation checklist. - Process: The checklist is added to the project backlog and development can begin, following the project's TDD and layered architecture principles.
- Trigger: Once a CEP is
Consequences
Positive
- Clarity & Focus: The
mainbranch contains only accepted proposals and working code, providing a clean context for developers and AI assistants. - Quality: Ensures that ideas are thoroughly vetted and designed before implementation begins.
- Prioritization: Creates a formal mechanism for prioritizing work based on both community interest and business needs.
- Traceability: The MR serves as a permanent, auditable record of the discussion and decision-making process for each proposal.
Negative
- Process Overhead: This formal process introduces more steps than an informal "just do it" approach. This is a deliberate trade-off in favor of long-term quality and maintainability.
This ADR formalizes the governance model for how ideas become reality within the Citadel project. It prioritizes a clean development history and rigorous, transparent decision-making.