All checks were successful
Validate dev-department tree / Validate tree (pull_request) Successful in 49s
Initial scaffold for the dev-department subtree repo. No workspace
content yet — that lands in Phase 3c-2 (extract dev tree with git
history from molecule-ai-org-template-molecule-dev).
Files:
- dev-department.yaml manifest with defaults + category_routing,
empty roots: [] (gets populated by extract).
- .molecule-ci/scripts/validate-tree.py
orphan / reachability lint. Walks manifest
→ roots → recursive children + !include,
compares against filesystem, reports
orphans + cross-tree '..' refs + duplicate
parents + missing workspace.yaml. Exits
non-zero on any violation. Stdlib only +
PyYAML.
- .github/workflows/validate.yml
CI gate runs the validator on every PR +
push to main/staging. Pinned action SHAs
per saved memory feedback_pin_third_party_actions.
- README.md explains subtree contract: parent template
must symlink the dev-department under a
short name (e.g. `dev`), workspace
files_dir paths inside this repo use the
symlink prefix, this repo is NOT directly
importable as a standalone org template.
- .gitignore ignore .env (per-workspace secrets are
populated by platform import, never
committed).
- .gitattributes force LF on shell/Python/YAML.
Verified locally:
- empty tree → "OK — tree is clean", exit 0.
- cross-tree `..` fixture → exit 1, FAIL with reported violation.
- orphan fixture → exit 1, FAIL with reported orphan folder.
Refs:
- internal#77 (extraction RFC, Phase 1+2 done as comment 1886)
- molecule-core#102 (symlink-resolution contract pinned by tests)
- Hongming GO 2026-05-08 ("you own this feature and repos, start")
- SOP Phase 3b — task #223
81 lines
3.7 KiB
YAML
81 lines
3.7 KiB
YAML
# Molecule AI — Dev Department subtree manifest
|
|
#
|
|
# This file is the importable-subtree's root config. It carries the same
|
|
# shape as a full org template's `org.yaml` — defaults + category_routing
|
|
# + plugin set + roots — but is consumed via gitops-style symlink from a
|
|
# parent template (see README §Subtree contract).
|
|
#
|
|
# Hongming-confirmed name: dev-department.yaml (2026-05-08).
|
|
#
|
|
# Refs:
|
|
# internal#77 — gitops-style extraction RFC
|
|
# molecule-core#102 — symlink-resolution contract pinned by tests
|
|
|
|
name: Molecule AI Dev Department
|
|
description: >-
|
|
Importable subtree containing the engineering org tree:
|
|
Dev Lead + Core Platform + Controlplane + App-Docs (incl. Documentation
|
|
Specialist) + Infra + SDK sub-teams, plus floaters (Release Manager,
|
|
Integration Tester, Fullstack), plus Triage Operator.
|
|
|
|
# Defaults applied to every workspace in this subtree. Per-workspace
|
|
# `plugins:` field UNIONs with this list (see Hongming Q1: per-workspace
|
|
# plugins are first-class). A leading `!` or `-` opts a default plugin
|
|
# OUT for one workspace.
|
|
#
|
|
# Same shape as parent's org.yaml `defaults:` block. When this manifest
|
|
# is grafted into a parent template via the symlink contract, the
|
|
# parent's own defaults still apply at the parent-template level — these
|
|
# only set defaults INSIDE the dev tree.
|
|
defaults:
|
|
runtime: claude-code
|
|
tier: 2
|
|
|
|
plugins:
|
|
- ecc # Everything Claude Code guardrails + coding skills
|
|
- molecule-dev # Molecule AI codebase conventions, past bugs, review-loop
|
|
- superpowers # systematic-debugging, TDD, planning, verification
|
|
- molecule-careful-bash # refuse destructive shell (rm -rf, push --force, DROP TABLE)
|
|
- molecule-prompt-watchdog # warn on destructive user prompts
|
|
- molecule-audit-trail # append every Edit/Write to .claude/audit.jsonl
|
|
- molecule-session-context # auto-load cron learnings + PR/issue counts on SessionStart
|
|
- molecule-skill-cron-learnings # per-tick learning JSONL (pairs with session-context)
|
|
- molecule-skill-update-docs # keep architecture / README / edit-history aligned
|
|
|
|
# Audit-summary routing — Auditors fan out findings to the listed roles.
|
|
# Roles are by display name (Dev Lead, Backend Engineer, ...) not by
|
|
# workspace folder name. Roles must exist in this subtree's roots:
|
|
# block — the validator will catch dangling references in a follow-up.
|
|
category_routing:
|
|
security: [Backend Engineer, DevOps Engineer]
|
|
offensive: [Security Auditor, Backend Engineer, DevOps Engineer]
|
|
ui: [Frontend Engineer]
|
|
ux: [Frontend Engineer]
|
|
infra: [DevOps Engineer, Platform Engineer, SRE Engineer]
|
|
cloud: [DevOps Engineer, Platform Engineer, SRE Engineer, Backend Engineer]
|
|
qa: [QA Engineer]
|
|
performance: [Backend Engineer]
|
|
docs: [Documentation Specialist]
|
|
mixed: [Dev Lead]
|
|
research: [Research Lead]
|
|
plugins: [Technical Researcher]
|
|
template: [Dev Lead]
|
|
channels: [DevOps Engineer]
|
|
|
|
idle_prompt: "" # Off by default — set per-workspace to enable idle reflection
|
|
|
|
# Roots block: list the top-level workspaces of this subtree.
|
|
#
|
|
# Each root entry is a `!include <path>/workspace.yaml` reference to a
|
|
# workspace folder at the repo root level. The validator walks each
|
|
# referenced workspace.yaml recursively via its `children:` field.
|
|
#
|
|
# Atomization rule (Hongming Q3+Q5): `children:` paths inside a
|
|
# workspace.yaml MUST be relative-and-down-only (`./<child>`); no `..`.
|
|
# The `.molecule-ci/scripts/validate-tree.py` CI gate enforces this.
|
|
#
|
|
# This list is empty in the scaffold commit. Phase 3c-2 (extract content
|
|
# with git history) populates it. Phase 3c-3 nests doc-spec + triage-op
|
|
# under dev-lead/.
|
|
roots: []
|