Phase 3d of internal#77 (dev-department extraction).
What changed:
Deletions:
- 17 orphan workspace folders not reachable from any teams/*.yaml
!include chain in this template (caught at extract time by
validate-tree.py): 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.
- 27 dev-tree workspace folders extracted to molecule-ai/molecule-dev-department
(history preserved 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.
- 8 teams/<dev-tree>.yaml composition files (dev.yaml, core-platform.yaml,
controlplane.yaml, app-docs.yaml, infra.yaml, sdk.yaml,
documentation-specialist.yaml, triage-operator.yaml).
Additions:
- dev-lead → ../molecule-dev-department/dev-lead/ (symlink). Resolves
correctly when both repos are cloned as siblings under operator's
/org-templates/ (current convention: /org-templates/molecule-dev/
+ /org-templates/molecule-dev-department/). Platform's
resolveYAMLIncludes follows the symlink at file-read while its
security check (filepath.Abs/Rel) operates on path strings, so
'dev-lead/workspace.yaml' counts as 'inside parent root' even though
its content lives in the sibling repo. Contract pinned by
molecule-core PR #102's tests.
Edits:
- org.yaml workspaces: gains '!include dev-lead/workspace.yaml' (third
root after pm.yaml + marketing.yaml). The other two roots are
unchanged.
- teams/pm.yaml children: removed dev.yaml, documentation-specialist.yaml,
triage-operator.yaml, triage-operator-2 (orphan). Comments document
where each moved.
- teams/marketing.yaml children: removed devrel-engineer (orphan).
This template is now ~50% smaller and contains only parent-only roles:
PM + Research (research-lead, market-analyst, technical-researcher,
competitive-intelligence) + Marketing (marketing-lead, content-marketer,
product-marketing-manager, community-manager, seo-growth-analyst,
social-media-brand). Engineering org tree is composed in via
the dev-lead symlink + dev-department repo.
Refs:
internal#77 — extraction RFC
molecule-ai/molecule-dev-department PRs #1, #2, #3 (scaffold + extract + atomize)
molecule-core PR #102 — symlink-resolution contract test
Hongming GO 2026-05-08 ("approved, keep going" + "dont wait for me, follow the plan")
SOP Phase 3d — task #225
32 lines
1.2 KiB
YAML
32 lines
1.2 KiB
YAML
name: PM
|
|
role: Project Manager — coordinates Research and Dev teams
|
|
tier: 3
|
|
model: opus
|
|
files_dir: pm
|
|
workspace_dir: ${WORKSPACE_DIR}
|
|
canvas: {x: 400, y: 50}
|
|
# PM-specific: /triage (PR triage) and /retro (weekly retrospective).
|
|
plugins: [molecule-workflow-triage, molecule-workflow-retro]
|
|
# Auto-link Telegram so the user can talk to PM directly from Telegram.
|
|
# Bot token + chat ID come from pm/.env (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID).
|
|
channels:
|
|
- type: telegram
|
|
config:
|
|
bot_token: ${TELEGRAM_BOT_TOKEN}
|
|
chat_id: ${TELEGRAM_CHAT_ID}
|
|
enabled: true
|
|
schedules:
|
|
- name: Orchestrator pulse
|
|
cron_expr: "1,6,11,16,21,26,31,36,41,46,51,56 * * * *"
|
|
enabled: true
|
|
prompt_file: schedules/orchestrator-pulse.md
|
|
children:
|
|
- !include research.yaml
|
|
# Dev tree extracted to molecule-ai/molecule-dev-department (internal#77).
|
|
# Dev Lead is now a top-level workspace in org.yaml `workspaces:`,
|
|
# composed via the `dev-lead` symlink at template root.
|
|
# Documentation Specialist + Triage Operator moved into the dev tree
|
|
# (Hongming Q1+Q2): doc-spec under dev-lead/app-lead, triage-op as
|
|
# direct dev-lead child. The orphan triage-operator-2 was deleted.
|
|
initial_prompt_file: initial-prompt.md
|