atomize(dev-tree): nest sub-teams under dev-lead/, dissolve teams/, --strict CI gate (Phase 3c-3) #3
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "atomize/lift-subteams-into-dev-lead"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Phase 3c-3 of internal#77. Completes the structural atomization Hongming asked for in Q3+Q5: every workspace is a self-contained folder, no cross-tree
..refs anywhere, and the validator now hard-fails on violations via--strict.Tree shape after this PR
teams/is deleted entirely — its 8 yaml files are absorbed into the appropriate*-lead/workspace.yamland<workspace>/workspace.yamlfiles.Mechanical changes
Folder moves (history preserved via
git mv)All 25 leaf workspace folders moved into their new nested location. Git renames are visible in the diff (e.g.
app-fe/* → dev-lead/app-lead/app-fe/*).Workspace.yaml content updates
teams/dev.yaml. children: rewritten:!include core-platform.yaml→!include ./core-lead/workspace.yaml!include ../release-manager/workspace.yaml→!include ./release-manager/workspace.yamlteams/<sub-team>.yaml. children:!include ../<x>/workspace.yaml→!include ./<x>/workspace.yaml.teams/documentation-specialist.yaml(Q1 placement nested under app-docs sub-team).teams/triage-operator.yaml(Q2 placement as direct child of dev-lead).files_dir:paths normalized to org-root-relativeEvery workspace's
files_dir:is now its full path-from-org-root. When the parent template imports via thedev-leadsymlink (Phase 3d),files_dir: dev-lead/core-lead/core-becorrectly resolves through the symlink. This also keeps the workspace tree introspectable from outside the platform —files_dir:always matches the actual folder location.Examples:
files_dir: core-be→files_dir: dev-lead/core-lead/core-befiles_dir: core-lead→files_dir: dev-lead/core-leadfiles_dir: documentation-specialist→files_dir: dev-lead/app-lead/documentation-specialistfiles_dir: triage-operator→files_dir: dev-lead/triage-operatorManifest
dev-department.yaml roots:updated from!include teams/dev.yamlto!include ./dev-lead/workspace.yaml.CI gate
.github/workflows/validate.ymlnow runsvalidate-tree.py --strict. Cross-tree..refs hard-fail. Going forward, any PR re-introducing a..is caught at PR time.Validator state on this PR (--strict)
Hostile self-review (SOP Phase 4)
parent: dev-leadfield from the old*-lead/workspace.yamlstubs when overwriting them with team-yaml content. Per the platform investigation (org.go:340-480) theparent:field is NOT a recognized OrgWorkspace field — it was decorative metadata. Loss is acceptable; if anything wants explicit parent linkage, it can be re-added later.files_dirpaths are written assuming parent-template imports via adev-leadsymlink at parent-root. The dev-department repo is documented as subtree-only (README §Subtree contract); standalone import would resolvefiles_dir: dev-lead/...against dev-department's own root and fail to find the files. Acceptable per Hongming Q6 (symlink-only composition).POST /org/importon staging. That's Phase 4 (next PR after parent template slim). The validator-clean state + the symlink-resolver tests in molecule-core PR #102 give high confidence, but actual import is the truth-teller.What's still ahead
dev-lead → dev-department/dev-leadsymlink, updateorg.yaml workspaces:to!include dev-lead/workspace.yaml. Separate PR.POST /org/import. Last step.Refs
Phase 3c-3 of internal#77 (dev-department extraction). Atomization completes the structural goal of the RFC (Hongming Q3+Q5): each workspace is a self-contained folder; no cross-tree '..' refs; the validator can enforce orphans-impossible-by-construction in --strict mode. What changed: Folder moves (history preserved via git mv): - core-be, core-fe, core-qa, core-security, core-uiux, core-devops, core-offsec → core-lead/<self>/ - cp-be, cp-qa, cp-security → cp-lead/<self>/ - app-fe, app-qa, technical-writer, documentation-specialist → app-lead/<self>/ - infra-sre, infra-runtime-be → infra-lead/<self>/ - sdk-dev, plugin-dev → sdk-lead/<self>/ - core-lead, cp-lead, app-lead, infra-lead, sdk-lead, release-manager, integration-tester, fullstack-engineer, triage-operator → dev-lead/<self>/ Workspace.yaml content: - dev-lead/workspace.yaml: lifted from teams/dev.yaml. children: paths rewritten from team-yaml-style ('!include core-platform.yaml') and floater-style ('!include ../release-manager/workspace.yaml') to canonical './<child>/workspace.yaml'. - dev-lead/<sub-team>-lead/workspace.yaml: lifted from teams/<sub-team>.yaml. children: paths rewritten from '../<child>/workspace.yaml' to './<child>/workspace.yaml'. - dev-lead/app-lead/documentation-specialist/workspace.yaml: lifted from teams/documentation-specialist.yaml (Q1 placement). - dev-lead/triage-operator/workspace.yaml: lifted from teams/triage-operator.yaml (Q2 placement). - All files_dir: paths updated to full path-from-org-root (e.g. 'core-be' → 'dev-lead/core-lead/core-be', 'core-lead' → 'dev-lead/core-lead', etc.). When parent template imports via the 'dev-lead' symlink (Phase 3d), files_dir resolves correctly relative to parent's org-root. Manifest: - dev-department.yaml roots: changed from '!include teams/dev.yaml' to '!include ./dev-lead/workspace.yaml'. Composition layer: - teams/ entirely deleted (8 yaml files removed). The composition is now expressed structurally via the folder tree. CI gate: - .github/workflows/validate.yml runs validate-tree.py --strict. Cross-tree '..' refs now hard-fail. Validator state on this commit (--strict): filesystem workspace folders : 28 reachable from manifest : 28 orphans : 0 cross-tree '..' refs : 0 duplicate-parent claims : 0 generic errors : 0 OK — tree is clean (strict) Refs: internal#77 — extraction RFC Hongming Q3+Q5 (atomization) + Q1+Q2 (doc-spec + triage-op placement) + 'dont wait for me, follow the plan' 2026-05-08 SOP Phase 3c-3 — task #229