Skip to content

Commit b198edd

Browse files
committed
docs: update Vibe Coding Cloud Protocol to clarify the levels of naming and resource organization
1 parent 45b5581 commit b198edd

File tree

1 file changed

+20
-30
lines changed

1 file changed

+20
-30
lines changed

jekyll/_posts/2025-11-29-vibe-coding-cloud-protocol.md

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,8 @@ graph LR
6363
classDef l1 fill:#ffcc80,stroke:#e65100,stroke-width:2px,color:black
6464
classDef l2 fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:black
6565
classDef l3 fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:black
66-
classDef l4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:black
67-
classDef l5 fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:black
68-
classDef l6 fill:#ffebee,stroke:#c62828,stroke-width:2px,color:black
66+
classDef l4 fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:black
67+
classDef l5 fill:#ffebee,stroke:#c62828,stroke-width:2px,color:black
6968
7069
subgraph Level1 ["Level 1: Company"]
7170
direction TB
@@ -85,19 +84,14 @@ graph LR
8584
Prj3["Thoth"]:::l3
8685
end
8786
88-
subgraph Level4 ["Level 4: Stage"]
87+
subgraph Level4 ["Level 4: Resource Group"]
8988
direction TB
90-
Env["dev / prod"]:::l4
89+
RG["rg-shipfail-remic-dev-web<br/>(Stage + Component)"]:::l4
9190
end
9291
93-
subgraph Level5 ["Level 5: Resource Group"]
92+
subgraph Level5 ["Level 5: Resource"]
9493
direction TB
95-
RG["rg-shipfail-remic-dev-web<br/>(Stage + Component)"]:::l5
96-
end
97-
98-
subgraph Level6 ["Level 6: Resource"]
99-
direction TB
100-
Res["vm-shipfail-remic-dev-web<br/>(Type-First Naming)"]:::l6
94+
Res["vm-shipfail-remic-dev-web<br/>(Type-First Naming)"]:::l5
10195
end
10296
10397
%% Connections
@@ -106,19 +100,18 @@ graph LR
106100
Umb2 --> Prj2 & Prj3
107101
108102
%% Focus on one path to keep it readable
109-
Prj2 --> Env
110-
Env --> RG
103+
Prj2 --> RG
111104
RG --> Res
112105
```
113106

114-
### The 6 Levels of Sanity
107+
### The 5 Levels of Sanity
115108

116109
1. **Company:** Who pays? (PreAngel LLC)
117110
2. **Portfolio:** What is the *context*? (Ship.Fail for experiments, PreAngel for serious products)
118111
3. **Project:** What is the *workload*? (Zixia, ReMic, Thoth)
119-
4. **Stage:** Is this safe to break? (`dev` vs `prod`)
120-
5. **Resource Group:** The container (Stage + Component).
121-
6. **Resource:** The actual VM, Database, or Function.
112+
4. **Resource Group:** The container (Stage + Component).
113+
* **Stage:** `dev` (continuous deployment) vs `prod` (hand-picked versions).
114+
5. **Resource:** The actual VM, Database, or Function.
122115

123116
---
124117

@@ -133,30 +126,27 @@ I created a "Translation Layer" to map their complex terms to my simple reality.
133126
| **1** | **Company** | My company (the root that owns the credit card and the tenant). | Billing account + tenant |
134127
| **2** | **Portfolio** | A context bucket: PreAngel (production), Ship.Fail (experiments), ToBeMigrated (legacy parking lot). | Invoice section |
135128
| **3** | **Project** | A named workload like Zixia, Thoth, ReMic. In PreAngel: maps 1:1 to an Azure (subscription). In Ship.Fail: implemented as a family of Resource Groups inside a shared lab Azure (subscription). | Azure subscription (PreAngel) / Resource Group family in a shared Azure subscription (Ship.Fail) |
136-
| **4** | **Stage** | `dev` or `prod`. A concept encoded in names + tags, not a separate Azure object. | Environment concept (naming pattern / tag) |
137-
| **5** | **Resource Group** | A logical component inside a Project + Stage, like `web`, `api`, `data`, or `tools`. | Resource group |
138-
| **6** | **Resource** | The actual thing: VM, DB, storage account, function, key vault, etc. | Resource |
129+
| **4** | **Resource Group** | A logical container for a specific Stage (`dev`/`prod`) and Component (`web`/`api`). | Resource group |
130+
| **5** | **Resource** | The actual thing: VM, DB, storage account, function, key vault, etc. | Resource |
139131

140132
**The Golden Rule:** After this table, I almost never say "subscription" out loud. I speak in **Portfolios** and **Projects**, and only mention Azure terms in parentheses when I really need to.
141133

142-
### Stage Is Virtual (On Purpose)
143-
144-
Stage (`dev` / `prod`) is not a separate Azure object. You will never see a "Stage" blade in the portal.
134+
### Stage Is Virtual (But Critical)
145135

146-
Instead, Stage is:
136+
Stage (`dev` / `prod`) is not a separate level in the hierarchy, but it is a critical dimension of the **Resource Group**.
147137

148-
* a field in the **name** of Resource Groups and Resources, and
149-
* a **tag value** that tools and dashboards can filter on.
138+
* **dev**: Deploys continuously from Git commits.
139+
* **prod**: Deploys only hand-picked versions.
150140

151-
This is why the Unified Tree keeps Stage as its own level conceptually, even though the portal only shows it as part of names and tags.
141+
This is why the Unified Tree merges Stage into the Resource Group level.
152142

153143
### Same Tree, Two Implementations (Ship.Fail vs PreAngel)
154144

155145
Here’s the twist that makes everything click:
156146

157147
The **Unified Tree** is always the same in my head:
158148

159-
> Company → Portfolio → Project → Resource Group (w/Stage) → Resource
149+
> Company → Portfolio → Project → Resource Group (Stage + Component) → Resource
160150
161151
But it is **implemented differently** for my two main portfolios:
162152

@@ -378,7 +368,7 @@ Future-me can open any of those names in the cloud console and instantly know:
378368

379369
1. **Portfolio:** It's a Ship.Fail experiment.
380370
2. **Project:** It's for ReMic.
381-
3. **Stage:** It's `dev` (safe to break) or `prod` (don’t casually delete).
371+
3. **Stage:** It's `dev` (continuous deployment) or `prod` (hand-picked versions).
382372
4. **Component:** It's the `web` or `api` layer.
383373

384374
### 6.2 ReMic Graduates to PreAngel (Production Mode)

0 commit comments

Comments
 (0)