You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* All of them live inside the **same Ship.Fail lab subscription**, but their names and tags still encode Portfolio, Project, Stage, and Component.
252
+
* All of them live inside the **same Ship.Fail lab subscription**, but their names and tags still encode Umbrella, Project, Stage, and Component.
253
253
254
254
**The "3-Second Rule":** If I can't tell you exactly what a Resource Group contains and who pays for it within 3 seconds of reading the name, **it is a bad name.**
255
255
@@ -258,7 +258,7 @@ Under Ship.Fail, this is also how Projects show up structurally:
258
258
I use type‑first naming. Start with the resource type abbreviation, then echo the hierarchy.
@@ -291,7 +291,7 @@ Three months later, I have *no idea* what either of those are.
291
291
Resource Group: rg-shipfail-remic-dev-web
292
292
Storage Account: st-shipfail-remic-dev-web
293
293
Tags:
294
-
Portfolio = ShipFail
294
+
Umbrella = ShipFail
295
295
Project = ReMic
296
296
Stage = dev
297
297
Component = web
@@ -300,7 +300,7 @@ Tags:
300
300
Now the same pair of resources tells me, at a glance:
301
301
302
302
* this is part of the **ReMic** Project,
303
-
* under the **Ship.Fail**portfolio,
303
+
* under the **Ship.Fail**umbrella,
304
304
* in the **dev** stage,
305
305
* in the **web** component.
306
306
@@ -396,126 +396,11 @@ In practice, “graduation” often means **redeploying infrastructure using IaC
396
396
397
397
The mental model is the same. The only changes are:
398
398
399
-
*`Portfolio` value: from `ShipFail` → `PreAngel`.
400
-
* Physical level where the Project lives: from Resource Group family inside a shared subscription → its own subscription.
401
-
402
399
*`Umbrella` value: from `ShipFail` → `PreAngel`.
403
400
* Physical level where the Project lives: from Resource Group family inside a shared subscription → its own subscription.
404
401
405
402
That’s how graduation works in this protocol.
406
403
407
-
---
408
-
409
-
## 4. The Naming Playbook: Rules for the Road
410
-
411
-
A naming convention is useless if you have to look it up every time. It needs to be intuitive. Here is the **Ship.Fail Protocol**.
412
-
413
-
### Rule #1: The Umbrella
414
-
415
-
I have exactly three Umbrellas (contexts). No more, no less.
416
-
417
-
*`umb-preangel` (Real products making money)
418
-
*`umb-shipfail` (Hackathons, MVPs, crazy ideas)
419
-
*`umb-tobemigrated` (The "Box of Shame" for old stuff)
420
-
421
-
### Rule #2: The Project
422
-
423
-
Projects are the atomic unit in my head. They are named explicitly:
424
-
425
-
```text
426
-
prj-<umbrella>-<project>
427
-
```
428
-
429
-
Examples:
430
-
431
-
*`prj-preangel-zixia`
432
-
*`prj-shipfail-thoth`
433
-
*`prj-shipfail-remic`
434
-
435
-
How this plays out in practice:
436
-
437
-
* In **PreAngel**, `prj-preangel-zixia` is both:
438
-
439
-
* the conceptual Project name, and
440
-
* the name I give to its dedicated Azure (subscription).
441
-
* In **Ship.Fail**, `prj-shipfail-remic` is still the conceptual Project name, but:
442
-
443
-
* all Ship.Fail Projects share a single lab Azure (subscription), and
444
-
* the Project is implemented as a **family of Resource Groups and tags** with the `shipfail-remic` pattern.
445
-
446
-
**Why this works:** When I see `prj-shipfail-thoth`, I know instantly: *This is an experiment (Ship.Fail) called Thoth.* Whether it currently lives as its own subscription (PreAngel style) or as Resource Groups inside the lab subscription (Ship.Fail style) is an implementation detail I can always look up—but the name and tags tell the story.
447
-
448
-
### Rule #3: The Resource Group (The Backbone)
449
-
450
-
This is where the magic happens. The Resource Group name encodes the entire lineage of the resource.
451
-
452
-
```text
453
-
rg-<umbrella>-<project>-<stage>-<component?>
454
-
```
455
-
456
-
Examples:
457
-
458
-
*`rg-shipfail-remic-dev-web`
459
-
*`rg-preangel-zixia-prod-data`
460
-
461
-
Under Ship.Fail, this is also how Projects show up structurally:
* All of them live inside the **same Ship.Fail lab subscription**, but their names and tags still encode Umbrella, Project, Stage, and Component.
465
-
466
-
**The "3-Second Rule":** If I can't tell you exactly what a Resource Group contains and who pays for it within 3 seconds of reading the name, **it is a bad name.**
467
-
468
-
### Rule #4: The Resource (Type-First)
469
-
470
-
I use type‑first naming. Start with the resource type abbreviation, then echo the hierarchy.
0 commit comments