atomize(dev-tree): nest sub-teams + leaf workspaces under dev-lead/, dissolve teams/
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
This commit is contained in:
parent
6debb12c09
commit
1dd614a4f1
4
.github/workflows/validate.yml
vendored
4
.github/workflows/validate.yml
vendored
@ -39,7 +39,7 @@ jobs:
|
||||
- name: Install PyYAML
|
||||
run: python -m pip install --no-input --disable-pip-version-check pyyaml==6.0.1
|
||||
|
||||
- name: Run validator
|
||||
- name: Run validator (--strict: hard-fail on cross-tree '..')
|
||||
run: |
|
||||
chmod +x .molecule-ci/scripts/validate-tree.py
|
||||
.molecule-ci/scripts/validate-tree.py
|
||||
.molecule-ci/scripts/validate-tree.py --strict
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
name: App & Docs Lead
|
||||
role: >-
|
||||
App & Docs team lead. Owns molecule-app and docs site. Triage+merge
|
||||
authority. Dispatches to App-FE, App-QA, Doc Specialist, Technical Writer.
|
||||
tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: app-lead
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
- name: Orchestrator pulse (every 5 min)
|
||||
cron_expr: "0,5,10,15,20,25,30,35,40,45,50,55 * * * *"
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
@ -1,19 +0,0 @@
|
||||
name: Core Platform Lead
|
||||
role: >-
|
||||
Core Platform team lead. Owns molecule-core (the monorepo). Has
|
||||
triage+merge authority for all molecule-core PRs. Reviews PRs,
|
||||
manages issues, dispatches work to Core-BE, Core-FE, Core-QA,
|
||||
Core-Security, Core-UIUX, Core-DevOps, Core-OffSec. Enforces
|
||||
staging-first workflow for molecule-core.
|
||||
tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: core-lead
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
- name: Orchestrator pulse (every 5 min)
|
||||
cron_expr: "1,6,11,16,21,26,31,36,41,46,51,56 * * * *"
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
@ -1,16 +0,0 @@
|
||||
name: Controlplane Lead
|
||||
role: >-
|
||||
Controlplane team lead. Owns molecule-controlplane and molecule-tenant-proxy.
|
||||
Triage+merge authority. Dispatches to CP-BE, CP-QA, CP-Security.
|
||||
tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: cp-lead
|
||||
plugins: [molecule-hitl, molecule-skill-code-review, molecule-security-scan, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
- name: Orchestrator pulse (every 5 min)
|
||||
cron_expr: "2,7,12,17,22,27,32,37,42,47,52,57 * * * *"
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
@ -83,4 +83,4 @@ defaults:
|
||||
# + fullstack-engineer floaters + documentation-specialist + triage-operator
|
||||
# (the last two added per Hongming Q1+Q2).
|
||||
roots:
|
||||
- !include teams/dev.yaml
|
||||
- !include ./dev-lead/workspace.yaml
|
||||
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: app-lead
|
||||
files_dir: app-fe
|
||||
files_dir: dev-lead/app-lead/app-fe
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: app-lead
|
||||
files_dir: app-qa
|
||||
files_dir: dev-lead/app-lead/app-qa
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -34,7 +34,7 @@ role: >-
|
||||
stay current; nothing private leaks to public.
|
||||
tier: 3
|
||||
model: opus
|
||||
files_dir: documentation-specialist
|
||||
files_dir: dev-lead/app-lead/documentation-specialist
|
||||
canvas: {x: 900, y: 250}
|
||||
# Documentation Specialist needs browser-automation to crawl the live
|
||||
# docs site (visual regressions, broken links, dead anchors) plus
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: app-lead
|
||||
files_dir: technical-writer
|
||||
files_dir: dev-lead/app-lead/technical-writer
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, browser-automation]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: app-lead
|
||||
files_dir: dev-lead/app-lead
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -15,7 +15,7 @@ schedules:
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
children:
|
||||
- !include ../app-fe/workspace.yaml
|
||||
- !include ../app-qa/workspace.yaml
|
||||
- !include documentation-specialist.yaml
|
||||
- !include ../technical-writer/workspace.yaml
|
||||
- !include ./app-fe/workspace.yaml
|
||||
- !include ./app-qa/workspace.yaml
|
||||
- !include ./documentation-specialist/workspace.yaml
|
||||
- !include ./technical-writer/workspace.yaml
|
||||
@ -7,7 +7,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-be
|
||||
files_dir: dev-lead/core-lead/core-be
|
||||
plugins: [molecule-hitl, molecule-skill-code-review, molecule-security-scan, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-devops
|
||||
files_dir: dev-lead/core-lead/core-devops
|
||||
plugins: [molecule-hitl, molecule-skill-code-review, molecule-freeze-scope]
|
||||
channels:
|
||||
- type: telegram
|
||||
@ -7,7 +7,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-fe
|
||||
files_dir: dev-lead/core-lead/core-fe
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-offsec
|
||||
files_dir: dev-lead/core-lead/core-offsec
|
||||
plugins:
|
||||
- molecule-skill-code-review
|
||||
- molecule-skill-cross-vendor-review
|
||||
@ -7,7 +7,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-qa
|
||||
files_dir: dev-lead/core-lead/core-qa
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-security
|
||||
files_dir: dev-lead/core-lead/core-security
|
||||
plugins:
|
||||
- molecule-skill-code-review
|
||||
- molecule-skill-cross-vendor-review
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: core-lead
|
||||
files_dir: core-uiux
|
||||
files_dir: dev-lead/core-lead/core-uiux
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, browser-automation]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: core-lead
|
||||
files_dir: dev-lead/core-lead
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -15,10 +15,10 @@ schedules:
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
children:
|
||||
- !include ../core-be/workspace.yaml
|
||||
- !include ../core-fe/workspace.yaml
|
||||
- !include ../core-qa/workspace.yaml
|
||||
- !include ../core-security/workspace.yaml
|
||||
- !include ../core-uiux/workspace.yaml
|
||||
- !include ../core-devops/workspace.yaml
|
||||
- !include ../core-offsec/workspace.yaml
|
||||
- !include ./core-be/workspace.yaml
|
||||
- !include ./core-fe/workspace.yaml
|
||||
- !include ./core-qa/workspace.yaml
|
||||
- !include ./core-security/workspace.yaml
|
||||
- !include ./core-uiux/workspace.yaml
|
||||
- !include ./core-devops/workspace.yaml
|
||||
- !include ./core-offsec/workspace.yaml
|
||||
@ -7,7 +7,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: cp-lead
|
||||
files_dir: cp-be
|
||||
files_dir: dev-lead/cp-lead/cp-be
|
||||
plugins: [molecule-hitl, molecule-skill-code-review, molecule-security-scan, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: cp-lead
|
||||
files_dir: cp-qa
|
||||
files_dir: dev-lead/cp-lead/cp-qa
|
||||
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: cp-lead
|
||||
files_dir: cp-security
|
||||
files_dir: dev-lead/cp-lead/cp-security
|
||||
plugins:
|
||||
- molecule-skill-code-review
|
||||
- molecule-skill-cross-vendor-review
|
||||
@ -6,7 +6,7 @@ tier: 3
|
||||
runtime: claude-code
|
||||
model: MiniMax-M2.7
|
||||
parent: dev-lead
|
||||
files_dir: cp-lead
|
||||
files_dir: dev-lead/cp-lead
|
||||
plugins: [molecule-hitl, molecule-skill-code-review, molecule-security-scan, molecule-skill-llm-judge, molecule-compliance]
|
||||
idle_interval_seconds: 900
|
||||
schedules:
|
||||
@ -15,6 +15,6 @@ schedules:
|
||||
enabled: true
|
||||
prompt_file: schedules/orchestrator-pulse.md
|
||||
children:
|
||||
- !include ../cp-be/workspace.yaml
|
||||
- !include ../cp-qa/workspace.yaml
|
||||
- !include ../cp-security/workspace.yaml
|
||||
- !include ./cp-be/workspace.yaml
|
||||
- !include ./cp-qa/workspace.yaml
|
||||
- !include ./cp-security/workspace.yaml
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user