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
44 lines
1.7 KiB
YAML
44 lines
1.7 KiB
YAML
name: Dev Lead
|
|
role: >-
|
|
Engineering planning and team coordination. Leads Core Platform,
|
|
Controlplane, App & Docs, Infra, and SDK sub-teams. Plus Release
|
|
Manager, Integration Tester, and Fullstack (floater).
|
|
tier: 3
|
|
runtime: claude-code
|
|
model: MiniMax-M2.7
|
|
files_dir: dev-lead
|
|
# Dev Lead enforces PR quality gates (see gate 2a in
|
|
# .claude/skills/triage/SKILL.md) and reviews engineering output
|
|
# before handoff to PM. The code-review skill surfaces the
|
|
# 16-criteria rubric — without it Dev Lead falls back to ad-hoc
|
|
# review prompts. Issue #133.
|
|
plugins: [molecule-skill-code-review, molecule-skill-llm-judge, molecule-hitl, molecule-freeze-scope]
|
|
canvas: {x: 650, y: 250}
|
|
channels:
|
|
- type: telegram
|
|
config:
|
|
bot_token: ${TELEGRAM_BOT_TOKEN}
|
|
chat_id: ${TELEGRAM_CHAT_ID}
|
|
enabled: true
|
|
idle_interval_seconds: 900
|
|
schedules:
|
|
- name: Orchestrator pulse
|
|
cron_expr: "2,7,12,17,22,27,32,37,42,47,52,57 * * * *"
|
|
enabled: true
|
|
prompt_file: schedules/orchestrator-pulse.md
|
|
children:
|
|
- !include ./core-lead/workspace.yaml
|
|
- !include ./cp-lead/workspace.yaml
|
|
- !include ./app-lead/workspace.yaml
|
|
- !include ./infra-lead/workspace.yaml
|
|
- !include ./sdk-lead/workspace.yaml
|
|
- !include ./release-manager/workspace.yaml
|
|
- !include ./integration-tester/workspace.yaml
|
|
- !include ./fullstack-engineer/workspace.yaml
|
|
# Q2 (Hongming 2026-05-08): triage-operator moved into dev tree as dev-lead child.
|
|
# Q1: doc-spec is already a child of teams/app-docs.yaml (within app-lead),
|
|
# so it's transitively under dev-lead via the app-docs sub-team — no
|
|
# additional include here, otherwise the validator flags duplicate parent.
|
|
- !include ./triage-operator/workspace.yaml
|
|
initial_prompt_file: initial-prompt.md
|