93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
		
			Executable File
		
	
	
	
	
| # Stella Ops Project Governance  
 | ||
| *Lazy Consensus • Maintainer Charter • Transparent Veto*
 | ||
| 
 | ||
| > **Scope** – applies to **all** repositories under  
 | ||
| > `https://git.stella-ops.org/stella-ops/*` unless a sub‑project overrides it
 | ||
| > with its own charter approved by the Core Maintainers.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 1 · Decision‑making workflow 🗳️
 | ||
| 
 | ||
| | Stage | Default vote | Timer |
 | ||
| |-------|--------------|-------|
 | ||
| | **Docs / non‑code PR** | `+1` | **48 h** |
 | ||
| | **Code / tests PR** | `+1` | **7 × 24 h** |
 | ||
| | **Security‑sensitive / breaking API** | `+1` + explicit **`security‑LGTM`** | **7 × 24 h** |
 | ||
| 
 | ||
| **Lazy‑consensus** – silence = approval once the timer elapses.
 | ||
| 
 | ||
| * **Veto `‑1`** must include a concrete concern **and** a path to resolution.  
 | ||
| * After 3 unresolved vetoes the PR escalates to a **Maintainer Summit** call.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 2 · Maintainer approval thresholds 👥
 | ||
| 
 | ||
| | Change class | Approvals required | Example |
 | ||
| |--------------|-------------------|---------|
 | ||
| | **Trivial** | 0 | Typos, comment fixes |
 | ||
| | **Non‑trivial** | **2 Maintainers** | New API endpoint, feature flag |
 | ||
| | **Security / breaking** | Lazy‑consensus **+ `security‑LGTM`** | JWT validation, crypto swap |
 | ||
| 
 | ||
| Approval is recorded via Git forge review or a signed commit trailer  
 | ||
| `Signed-off-by: <maintainer>`.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 3 · Becoming (and staying) a Maintainer 🌱
 | ||
| 
 | ||
| 1. **3 + months** of consistent, high‑quality contributions.  
 | ||
| 2. **Nomination** by an existing Maintainer via issue.  
 | ||
| 3. **7‑day vote** – needs ≥ **⅔ majority** “`+1`”.  
 | ||
| 4. Sign `MAINTAINER_AGREEMENT.md` and enable **2FA**.  
 | ||
| 5. Inactivity > 6 months → automatic emeritus status (can be re‑activated).
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 4 · Release authority & provenance 🔏
 | ||
| 
 | ||
| * Every tag is **co‑signed by at least one Security Maintainer**.  
 | ||
| * CI emits a **signed SPDX SBOM** + **Cosign provenance**.  
 | ||
| * Release cadence is fixed – see [public Road‑map](../roadmap/README.md).  
 | ||
| * Security fixes may create out‑of‑band `x.y.z‑hotfix` tags.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 5 · Escalation lanes 🚦
 | ||
| 
 | ||
| | Situation | Escalation |
 | ||
| |-----------|------------|
 | ||
| | Technical deadlock | **Maintainer Summit** (recorded & published) |
 | ||
| | Security bug | Follow [Security Policy](../security/01_SECURITY_POLICY.md) |
 | ||
| | Code of Conduct violation | See `12_CODE_OF_CONDUCT.md` escalation ladder |
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 6 · Contribution etiquette 🤝
 | ||
| 
 | ||
| * Draft PRs early – CI linting & tests help you iterate.  
 | ||
| * “There are no stupid questions” – ask in **Matrix #dev**.  
 | ||
| * Keep commit messages in **imperative mood** (`Fix typo`, `Add SBOM cache`).  
 | ||
| * Run the `pre‑commit` hook locally before pushing.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 7 · Licence reminder 📜
 | ||
| 
 | ||
| Stella Ops is **AGPL‑3.0‑or‑later**. By contributing you agree that your
 | ||
| patches are released under the same licence.
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ### Appendix A – Maintainer list 📇
 | ||
| 
 | ||
| *(Generated via `scripts/gen-maintainers.sh` – edit the YAML, **not** this
 | ||
| section directly.)*
 | ||
| 
 | ||
| | Handle | Area | Since |
 | ||
| |--------|------|-------|
 | ||
| | `@alice` | Core scanner • Security | 2025‑04 |
 | ||
| | `@bob` | UI • Docs | 2025‑06 |
 | ||
| 
 | ||
| --- |