extract(dev-tree): port dev tree from molecule-ai-org-template-molecule-dev (Phase 3c-2) #2
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "extract/dev-tree-history"
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-2 of internal#77 (dev-department extraction). Brings the dev tree from
molecule-ai-org-template-molecule-devinto this repo with 6 commits of git history preserved (subset of parent's 11 —git filter-repokept only commits that touched dev paths).Does NOT yet slim the parent template (Phase 3d, separate PR — task #225). Until parent template's wire-up lands, both repos own copies of the dev tree.
What this PR contains
File moves (extracted via
git filter-repo)dev-lead,core-{lead,be,fe,qa,security,uiux,devops,offsec},cp-{lead,be,qa,security},app-{lead,fe,qa},technical-writer,infra-{lead,sre,runtime-be},sdk-{lead,dev},plugin-dev,release-manager,integration-tester,fullstack-engineer,documentation-specialist,triage-operator.core-platform.yaml,controlplane.yaml,app-docs.yaml,infra.yaml,sdk.yaml,documentation-specialist.yaml,triage-operator.yaml,dev.yaml.SHARED_RULES.md,SECRETS_MATRIX.md(duplicated; parent template keeps its own copy for parent-only roles).What was DROPPED at extract time (17 orphan folders)
Not reachable from any
teams/*.yaml!includechain in parent:backend-engineer{,-2,-3},frontend-engineer{,-2,-3},qa-engineer{,-2,-3},security-auditor{,-2},platform-engineer,devops-engineer,sre-engineer,offensive-security-engineer,devrel-engineer,triage-operator-2,uiux-designer. The orphan-detection-by-construction property of the new validator means these can't sneak back in.Manifest wired
dev-department.yaml roots:populated to[!include teams/dev.yaml].teams/dev.yaml children:gainstriage-operator.yamlas direct child (Q2 — Hongming 2026-05-08).teams/dev.yaml children:does NOT adddocumentation-specialist.yamldirectly because doc-spec is already a child ofteams/app-docs.yaml(which is already a child of dev.yaml via app-lead sub-team) — adding both would be a duplicate-parent claim. Q1 intent satisfied: doc-spec is transitively under dev-lead via the app-docs sub-team.Validator improvements (extends scaffold's PR #1)
Caught real bugs while running against the extracted tree:
*-leadworkspaces (declared inteams/<x>.yamlwithfiles_dir: <x>-lead) showed up as orphans because the validator only registered files_dir for inline-at-manifest declarations. Now it also handles the indirected case.files_dir:matches its own folder; without this, every workspace.yaml-shaped !include double-registered.system-prompt.md/initial-prompt.mdare also recognized as workspace folder markers.--strictflag (orMOLECULE_VALIDATE_TREE_STRICT=1) — makes cross-tree..refs hard-fail instead of warn. Phase 3c-3 (atomization) flips CI to strict once..refs are gone.Validator state on this branch (default mode)
The 20
..warnings are the transitionalteams/<sub-team>.yamlshape (e.g.teams/core-platform.yaml children: [!include ../core-be/workspace.yaml, ...]). Phase 3c-3 will lift each*-leadinto a folder containing its sub-team children, dissolving teams/ entirely and removing these..refs — at which point the CI gate flips to--strict.Hostile self-review (SOP Phase 4)
category_routingrole names exist asname:fields anywhere in the tree. A misspelled role name would silently route to nowhere. Filed as parked follow-up.POST /org/importon a staging tenant. That's Phase 4 (task #226) — unblocks once parent template slim PR (Phase 3d) lands.Refs
Phase 3c-2 of internal#77 (dev-department extraction). What this commit lands: - 27 dev-tree workspace folders + teams/{core-platform,controlplane, app-docs,infra,sdk,documentation-specialist,triage-operator,dev}.yaml composition layer (extracted via git filter-repo). - 6 commits of git history preserved for the dev paths (subset of parent's 11 — only commits that touched dev paths kept). - 17 orphaned folders from parent template DROPPED at extract time (backend-engineer{,-2,-3}, frontend-engineer{,-2,-3}, qa-engineer{,-2,-3}, security-auditor{,-2}, platform-engineer, devops-engineer, sre-engineer, offensive-security-engineer, devrel-engineer, triage-operator-2, uiux-designer). These were not reachable from any teams/*.yaml !include chain in the parent. - dev-department.yaml roots populated to point at teams/dev.yaml. - teams/dev.yaml gains triage-operator as a direct child (Q2). Q1 doc-spec is already transitively under dev-lead via app-docs sub-team (teams/app-docs.yaml children include documentation-specialist.yaml), so no additional include needed there. - Validator improvements (Phase 3b refinements): * Registers files_dir-declared workspace folders from !include'd team yamls (was missing — *-lead workspaces previously orphaned). * Deduplicates inline files_dir registration after !include path has already registered the same folder. * Filesystem scan now treats system-prompt.md / initial-prompt.md as workspace markers (workspace.yaml is optional in transitional shape). * --strict flag (or MOLECULE_VALIDATE_TREE_STRICT=1) makes cross-tree '..' refs hard-fail instead of warn. Phase 3c-3 will flip the CI gate to --strict once atomization removes them. Validator state on this commit (default mode): filesystem workspace folders : 28 reachable from manifest : 28 orphans : 0 cross-tree '..' refs : 20 [WARN] duplicate-parent claims : 0 OK — tree is clean The 20 cross-tree '..' refs are the transitional teams/<sub-team>.yaml shape pre-atomization (Phase 3c-3 lifts each *-lead workspace into a folder containing its sub-team children, dissolving teams/ entirely). Refs: internal#77 — extraction RFC Hongming GO 2026-05-08 + 'approved keep going' 2026-05-08 SOP Phase 3c-2 — task #228