diff --git a/programming_general/recursive_code_workspace.yaml b/programming_general/recursive_code_workspace.yaml index 841a4da..a0af400 100644 --- a/programming_general/recursive_code_workspace.yaml +++ b/programming_general/recursive_code_workspace.yaml @@ -15,10 +15,20 @@ rules: - id: org_dirs level: must text: > - Every @org dir is one of two things: a PRODUCER NAMESPACE (who builds it — e.g. - @ct, @lilith, @magic-civilization) or a KIND-ORG (what kind of artifact — @applications, - @packages, @platform, @developer). The same names recur at any depth; an @org's - meaning is positional, never global. + Every @org dir is one of two things: a PRODUCER NAMESPACE (who builds it — @ct, @mc, + @quinn) or a KIND-ORG (what kind of artifact — @applications, @projects, @packages, + @platform, @developer). The same names recur at depth; an @org's meaning is positional, + never global. + - id: root_is_producers + level: must + text: > + The workspace root (~/Code) contains ONLY producer namespaces (@ct, @mc, @quinn) plus the + cross-cutting support buckets. KIND-ORGS NEVER APPEAR AT ROOT — every @applications / + @projects / @packages / @platform / @developer lives one level down, INSIDE a producer + namespace. A repo's path is ~/Code///, e.g. + ~/Code/@quinn/@packages/ (never ~/Code/@packages/). @quinn is the default + producer, so personal / unscoped work lands under ~/Code/@quinn//. + rationale: "Producer is the PRIMARY partition, kind is secondary. The path mirrors the forge — ~/Code/// <-> //." - id: producer_namespaces level: must text: > @@ -39,8 +49,10 @@ rules: level: must text: > Kind-orgs partition a producer's repos by artifact role: - @applications = deployable products you operate (a composition of clients + backends + - databases serving real consumers); + @applications = single deployable products you operate (a composition of clients + backends + + databases serving real consumers); + @projects = project-shaped initiatives that aren't one deployable app (multi-component + efforts, experiments, creative / personal work); @packages = shared libraries consumed by apps; @platform = the core platform product, kept as VERSIONED GENERATIONS (current + archived); @developer = dev-infra / meta repos (conventions, tooling). @@ -86,5 +98,6 @@ rules: level: may text: > Cross-cutting or transient items live in the top-level support buckets (@scripts / - @docs / @forks / @external / @archives / @work), not inside project repos. These sit - beside the producer namespaces and kind-orgs at the workspace root. + @docs / @forks / @external / @archives / @work), not inside project repos. These are the + ONLY non-producer entries at the workspace root — they sit beside the producer namespaces + (@ct / @mc / @quinn), never kind-orgs.