Overhaul SDLC to three-branch promotion model
Replace the 5-stage pipeline (CI→UAT→QA→CTO→CEO) with a three-branch promotion chain: dev (engineer self-merge) → uat (QA gates) → main (UAT gates). Removes CTO review stage, CEO merge bottleneck, and SLA timelines. Each gate owner has merge authority. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
committed by
Countess von Containerheim [agent]
parent
40caf8cfee
commit
0641848c4b
+66
-41
@@ -24,31 +24,32 @@ flowchart TD
|
||||
subgraph PipelineA["Pipeline A: Plugin / Feature Changes"]
|
||||
direction TB
|
||||
A_ENG["Engineer writes code<br/>(Gandalf)"]
|
||||
A_PR["Create PR → main<br/>cc @cpfarhood"]
|
||||
A_CI{"CI Passes?"}
|
||||
A_UAT["UAT Review<br/>(Pixel Patty)<br/>E2E browser testing"]
|
||||
A_UAT_PASS{"UAT Approved?"}
|
||||
A_QA["QA Review<br/>(Regression Regina)<br/>Test coverage, regressions"]
|
||||
A_PR_DEV["PR → dev<br/>Engineer self-merges"]
|
||||
A_CI_DEV{"CI Passes?"}
|
||||
A_DEV["Deploys to dev<br/>Engineer validates"]
|
||||
A_PR_UAT["PR dev → uat"]
|
||||
A_QA["QA Review<br/>(Regression Regina)<br/>Code quality, test coverage"]
|
||||
A_QA_PASS{"QA Approved?"}
|
||||
A_CTO["CTO Review<br/>(Null Pointer Nancy)<br/>Architecture, security"]
|
||||
A_CTO_PASS{"CTO Approved?"}
|
||||
A_CEO["CEO Merge<br/>(Countess)"]
|
||||
A_QA_MERGE["QA merges to uat"]
|
||||
A_UAT_DEPLOY["Deploys to UAT env"]
|
||||
A_PR_MAIN["PR uat → main"]
|
||||
A_UAT["UAT Review<br/>(Pixel Patty)<br/>Playwright browser validation"]
|
||||
A_UAT_PASS{"UAT Approved?"}
|
||||
A_UAT_MERGE["UAT merges to main"]
|
||||
end
|
||||
|
||||
subgraph PipelineB["Pipeline B: Infrastructure Changes"]
|
||||
direction TB
|
||||
B_ENG["Engineer writes code<br/>(Gandalf / Hugh)"]
|
||||
B_PR["Create PR → main<br/>cc @cpfarhood"]
|
||||
B_PR["PR → main"]
|
||||
B_CI{"CI Passes?"}
|
||||
B_QA["QA Review<br/>(Regression Regina)"]
|
||||
B_QA_PASS{"QA Approved?"}
|
||||
B_CTO["CTO Review<br/>(Null Pointer Nancy)"]
|
||||
B_CTO_PASS{"CTO Approved?"}
|
||||
B_CEO["CEO Merge<br/>(Countess)"]
|
||||
B_QA_MERGE["QA merges to main"]
|
||||
end
|
||||
|
||||
subgraph Result["Outcome"]
|
||||
MERGED["Merged to main<br/>✓ Production"]
|
||||
PROD["Merged to main<br/>✓ Production"]
|
||||
RETURNED["Returned to Engineer<br/>Fix and resubmit"]
|
||||
end
|
||||
|
||||
@@ -65,35 +66,24 @@ flowchart TD
|
||||
DET -->|".github/, infra/, org/"| PB
|
||||
|
||||
%% Pipeline A flow
|
||||
PA --> A_ENG --> A_PR --> A_CI
|
||||
A_CI -->|"Pass"| A_UAT
|
||||
A_CI -->|"Fail"| RETURNED
|
||||
A_UAT --> A_UAT_PASS
|
||||
A_UAT_PASS -->|"Pass"| A_QA
|
||||
A_UAT_PASS -->|"Fail"| RETURNED
|
||||
A_QA --> A_QA_PASS
|
||||
A_QA_PASS -->|"Pass"| A_CTO
|
||||
A_QA_PASS -->|"Fail"| RETURNED
|
||||
A_CTO --> A_CTO_PASS
|
||||
A_CTO_PASS -->|"Pass"| A_CEO
|
||||
A_CTO_PASS -->|"Fail — CEO rejection"| A_CTO
|
||||
A_CTO_PASS -->|"Fail — other"| RETURNED
|
||||
A_CEO --> MERGED
|
||||
PA --> A_ENG --> A_PR_DEV --> A_CI_DEV
|
||||
A_CI_DEV -->|"Pass"| A_DEV
|
||||
A_CI_DEV -->|"Fail"| RETURNED
|
||||
A_DEV --> A_PR_UAT --> A_QA --> A_QA_PASS
|
||||
A_QA_PASS -->|"Approved"| A_QA_MERGE --> A_UAT_DEPLOY
|
||||
A_QA_PASS -->|"Changes requested"| RETURNED
|
||||
A_UAT_DEPLOY --> A_PR_MAIN --> A_UAT --> A_UAT_PASS
|
||||
A_UAT_PASS -->|"Approved"| A_UAT_MERGE --> PROD
|
||||
A_UAT_PASS -->|"Changes requested"| RETURNED
|
||||
|
||||
%% Pipeline B flow
|
||||
PB --> B_ENG --> B_PR --> B_CI
|
||||
B_CI -->|"Pass"| B_QA
|
||||
B_CI -->|"Pass"| B_QA --> B_QA_PASS
|
||||
B_CI -->|"Fail"| RETURNED
|
||||
B_QA --> B_QA_PASS
|
||||
B_QA_PASS -->|"Pass"| B_CTO
|
||||
B_QA_PASS -->|"Fail"| RETURNED
|
||||
B_CTO --> B_CTO_PASS
|
||||
B_CTO_PASS -->|"Pass"| B_CEO
|
||||
B_CTO_PASS -->|"Fail — CEO rejection"| B_CTO
|
||||
B_CTO_PASS -->|"Fail — other"| RETURNED
|
||||
B_CEO --> MERGED
|
||||
B_QA_PASS -->|"Approved"| B_QA_MERGE --> PROD
|
||||
B_QA_PASS -->|"Changes requested"| RETURNED
|
||||
|
||||
RETURNED -->|"Fix and resubmit"| A_PR
|
||||
RETURNED -->|"Fix and resubmit"| A_PR_DEV
|
||||
RETURNED -->|"Fix and resubmit"| B_PR
|
||||
|
||||
%% Styling
|
||||
@@ -101,11 +91,46 @@ flowchart TD
|
||||
classDef pass fill:#e4f9e4,stroke:#27ae60,color:#000
|
||||
classDef agent fill:#e4e9f9,stroke:#2980b9,color:#000
|
||||
classDef decision fill:#fef9e7,stroke:#f39c12,color:#000
|
||||
classDef deploy fill:#e8f4f8,stroke:#2c3e50,color:#000
|
||||
|
||||
class BA,A_CI,A_UAT_PASS,A_QA_PASS,A_CTO_PASS,B_CI,B_QA_PASS,B_CTO_PASS,DET decision
|
||||
class A_UAT,A_QA,A_CTO,B_QA,B_CTO gate
|
||||
class MERGED pass
|
||||
class A_ENG,B_ENG,A_CEO,B_CEO agent
|
||||
class BA,A_CI_DEV,A_QA_PASS,A_UAT_PASS,B_CI,B_QA_PASS,DET decision
|
||||
class A_QA,A_UAT,B_QA gate
|
||||
class PROD pass
|
||||
class A_ENG,B_ENG agent
|
||||
class A_DEV,A_UAT_DEPLOY deploy
|
||||
```
|
||||
|
||||
## Branch Promotion Chain
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Feature["Feature Branch"]
|
||||
FB["gandalf/feature-name"]
|
||||
end
|
||||
|
||||
subgraph Dev["dev branch"]
|
||||
DEV["Engineer self-merges<br/>Deploys to dev env"]
|
||||
end
|
||||
|
||||
subgraph UAT["uat branch"]
|
||||
UATB["QA reviews & merges<br/>Deploys to UAT env"]
|
||||
end
|
||||
|
||||
subgraph Main["main branch"]
|
||||
MAIN["UAT validates & merges<br/>Deploys to production"]
|
||||
end
|
||||
|
||||
FB -->|"PR + CI"| DEV
|
||||
DEV -->|"PR + QA review"| UATB
|
||||
UATB -->|"PR + UAT review"| MAIN
|
||||
|
||||
classDef dev fill:#fff3cd,stroke:#856404,color:#000
|
||||
classDef uat fill:#cce5ff,stroke:#004085,color:#000
|
||||
classDef prod fill:#d4edda,stroke:#155724,color:#000
|
||||
|
||||
class DEV dev
|
||||
class UATB uat
|
||||
class MAIN prod
|
||||
```
|
||||
|
||||
## Handoff Protocol
|
||||
|
||||
Reference in New Issue
Block a user