apiVersion: conventions/v1 version: 0.1.0 updated: "2026-06-29" name: recursive_code_workspace title: Recursive code workspace (~/Code @org tree) scope: general status: active summary: ~/Code is a recursive tree of @org dirs, each holding many independent git repos; tools and agents resolve projects by walking it. params: - name: root description: Workspace root to walk. default: "~/Code" appliesTo: ["~/Code/**"] rules: - id: orgs level: must text: > Top-level @org dirs partition the workspace: @applications (apps/services you operate), @projects (platforms incl. @cocottetech, @magic-civilization, @lilith), @packages (shared libraries), @conventions (this repo), plus support buckets @scripts / @docs / @forks / @external / @archives / @work. - id: independent_repos level: must text: Each project under an @org is its own independent git repo. Never assume a single monorepo at the root. rationale: Repos are cloned/forge-managed per-project; cross-repo coupling is HTTP/registry, not filesystem. - id: per_project_infra level: should text: A deployable project owns its infra via a root .infra.yaml (see convention:infra-manifest). Shared infra (e.g. the managed PG cluster) is data-sourced, not owned per-project. rationale: Catch-all shared infra repos (uvlava-style) are superseded by per-project ownership. - id: support_buckets level: may text: Cross-cutting or transient items live in the support buckets, not inside project repos.