test(local-e2e): verify dev-department extraction end-to-end via real resolveYAMLIncludes #103

Merged
claude-ceo-assistant merged 1 commits from test/e2e-dev-department-extraction into staging 2026-05-08 11:29:34 +00:00

Summary

Local e2e for the dev-department extraction (internal#77). Exercises the FULL platform import path against the real, post-extraction repos cloned as siblings on the local filesystem.

Verification result (run on this Mac, 2026-05-08)

--- PASS: TestLocalE2E_DevDepartmentExtraction (0.01s)
org name: "Molecule AI Dev Team"
total workspaces (recursive): 39
  - PM
  - Research Lead, Market Analyst, Technical Researcher, Competitive Intelligence
  - Marketing Lead, Product Marketing Manager, Content Marketer, Community Manager, SEO Growth Analyst, Social Media Brand
  - Dev Lead
  - Core Platform Lead → Core-BE/FE/QA/Security/UIUX/DevOps/OffSec
  - Controlplane Lead → CP-BE/QA/Security
  - App & Docs Lead → App-FE/QA + Documentation Specialist (Q1) + Technical Writer
  - Infra Lead → Infra-SRE, Infra-Runtime-BE
  - SDK Lead → SDK-Dev, Plugin-Dev
  - Release Manager, Integration Tester, Fullstack Engineer (floaters)
  - Triage Operator (Q2)

What this test proves

Hongming asked for local-only verification (not staging) before any prod-side rollout. This test proves through real platform code:

  1. Cross-repo symlink composition works. parent/dev-lead symlink → ../molecule-dev-department/dev-lead/. resolveYAMLIncludes follows it (string-level security check passes, file-read follows the link).
  2. Atomized children: paths resolve. Inside the symlinked subtree, dev-lead/workspace.yaml children: uses ./core-lead/workspace.yaml. Recursive resolution chains 4 levels deep without ...
  3. Q1 + Q2 placements verified. Sentinel name check confirms Documentation Specialist is reachable (under app-lead via app-docs sub-team) and Triage Operator is reachable (direct child of Dev Lead).
  4. Workspace count is correct. 39 = 5 PM-tree + 6 Marketing-tree + 28 dev-tree.

Setup contract

Test skips (does not fail) if the local fixture isn't present, so CI on other hosts is unaffected. To run locally:

TESTROOT=/tmp/local-e2e-deploy
mkdir -p $TESTROOT && cd $TESTROOT
git clone https://git.moleculesai.app/molecule-ai/molecule-ai-org-template-molecule-dev.git molecule-dev
git clone https://git.moleculesai.app/molecule-ai/molecule-dev-department.git
cd <your-molecule-core>/workspace-server
go test -v -run TestLocalE2E_DevDepartmentExtraction ./internal/handlers/

Refs

  • internal#77 — extraction RFC
  • molecule-core#102 (merged) — symlink-resolution contract test
  • molecule-ai/molecule-dev-department PRs #1, #2, #3 — scaffold + extract + atomize (all merged)
  • molecule-ai/molecule-ai-org-template-molecule-dev PR #5 — parent slim + symlink wire (merged)
  • Hongming GO 2026-05-08 ("lets not go for staging right now, we do local test first")
## Summary Local e2e for the dev-department extraction (internal#77). Exercises the FULL platform import path against the real, post-extraction repos cloned as siblings on the local filesystem. ## Verification result (run on this Mac, 2026-05-08) ``` --- PASS: TestLocalE2E_DevDepartmentExtraction (0.01s) org name: "Molecule AI Dev Team" total workspaces (recursive): 39 - PM - Research Lead, Market Analyst, Technical Researcher, Competitive Intelligence - Marketing Lead, Product Marketing Manager, Content Marketer, Community Manager, SEO Growth Analyst, Social Media Brand - Dev Lead - Core Platform Lead → Core-BE/FE/QA/Security/UIUX/DevOps/OffSec - Controlplane Lead → CP-BE/QA/Security - App & Docs Lead → App-FE/QA + Documentation Specialist (Q1) + Technical Writer - Infra Lead → Infra-SRE, Infra-Runtime-BE - SDK Lead → SDK-Dev, Plugin-Dev - Release Manager, Integration Tester, Fullstack Engineer (floaters) - Triage Operator (Q2) ``` ## What this test proves Hongming asked for local-only verification (not staging) before any prod-side rollout. This test proves through real platform code: 1. **Cross-repo symlink composition works.** parent/`dev-lead` symlink → `../molecule-dev-department/dev-lead/`. `resolveYAMLIncludes` follows it (string-level security check passes, file-read follows the link). 2. **Atomized children: paths resolve.** Inside the symlinked subtree, `dev-lead/workspace.yaml children:` uses `./core-lead/workspace.yaml`. Recursive resolution chains 4 levels deep without `..`. 3. **Q1 + Q2 placements verified.** Sentinel name check confirms `Documentation Specialist` is reachable (under app-lead via app-docs sub-team) and `Triage Operator` is reachable (direct child of Dev Lead). 4. **Workspace count is correct.** 39 = 5 PM-tree + 6 Marketing-tree + 28 dev-tree. ## Setup contract Test skips (does not fail) if the local fixture isn't present, so CI on other hosts is unaffected. To run locally: ```bash TESTROOT=/tmp/local-e2e-deploy mkdir -p $TESTROOT && cd $TESTROOT git clone https://git.moleculesai.app/molecule-ai/molecule-ai-org-template-molecule-dev.git molecule-dev git clone https://git.moleculesai.app/molecule-ai/molecule-dev-department.git cd <your-molecule-core>/workspace-server go test -v -run TestLocalE2E_DevDepartmentExtraction ./internal/handlers/ ``` ## Refs - [internal#77](https://git.moleculesai.app/molecule-ai/internal/issues/77) — extraction RFC - molecule-core#102 (merged) — symlink-resolution contract test - molecule-ai/molecule-dev-department PRs #1, #2, #3 — scaffold + extract + atomize (all merged) - molecule-ai/molecule-ai-org-template-molecule-dev PR #5 — parent slim + symlink wire (merged) - Hongming GO 2026-05-08 ("lets not go for staging right now, we do local test first")
claude-ceo-assistant added 1 commit 2026-05-08 11:25:18 +00:00
test(local-e2e): verify dev-department extraction end-to-end via real resolveYAMLIncludes
All checks were successful
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 13s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 12s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 4s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 6s
CI / Canvas (Next.js) (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8s
CI / Python Lint & Test (pull_request) Successful in 7s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
Harness Replays / Harness Replays (pull_request) Successful in 1m12s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2m6s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m9s
CI / Platform (Go) (pull_request) Successful in 3m14s
CodeQL / Analyze (${{ matrix.language }}) (javascript-typescript) (pull_request) Successful in 5s
CodeQL / Analyze (${{ matrix.language }}) (go) (pull_request) Successful in 5s
CodeQL / Analyze (${{ matrix.language }}) (python) (pull_request) Successful in 5s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 9s
CI / Detect changes (pull_request) Successful in 16s
E2E API Smoke Test / detect-changes (pull_request) Successful in 13s
Harness Replays / detect-changes (pull_request) Successful in 13s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 13s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 14s
3adbbacf2e
Phase 4 (local-only) of internal#77 (dev-department extraction).

Adds TestLocalE2E_DevDepartmentExtraction that exercises the FULL platform
import path against the real molecule-ai-org-template-molecule-dev (post-slim)
and molecule-ai/molecule-dev-department (post-atomize) repos cloned as siblings
under /tmp/local-e2e-deploy/.

What it proves end-to-end:
  - The dev-lead symlink at parent's template root is followed by
    resolveYAMLIncludes (filepath.Abs/Rel-style security check passes,
    os.ReadFile follows the link).
  - Recursive !include chain through the symlinked subtree resolves:
    parent's org.yaml → !include dev-lead/workspace.yaml (symlinked)
    → !include ./core-lead/workspace.yaml → !include ./core-be/workspace.yaml
    (atomized children: paths, no '..').
  - 39 workspaces enumerate after resolution: 5 PM-tree + 6 Marketing-tree
    + 28 dev-tree (Dev Lead + 5 sub-team leads + 18 leaf workspaces +
    3 floaters + 1 triage-operator).
  - Q1+Q2 placements verified by sentinel name check: 'Documentation
    Specialist' is reachable (under app-lead via app-docs sub-team),
    'Triage Operator' is reachable (direct child of Dev Lead).

Test skips with t.Skipf if the local-e2e fixture isn't present on the
host — won't block CI on hosts that haven't set it up. To set up locally:

  TESTROOT=/tmp/local-e2e-deploy
  mkdir -p $TESTROOT && cd $TESTROOT
  git clone https://git.moleculesai.app/molecule-ai/molecule-ai-org-template-molecule-dev.git molecule-dev
  git clone https://git.moleculesai.app/molecule-ai/molecule-dev-department.git
  cd /Users/<you>/molecule-core/workspace-server
  go test -v -run TestLocalE2E_DevDepartmentExtraction ./internal/handlers/

Verified locally 2026-05-08:
  --- PASS: TestLocalE2E_DevDepartmentExtraction (0.01s)
  total workspaces (recursive): 39

Refs:
  internal#77 — extraction RFC
  molecule-core PR #102 — symlink-resolution contract test
  molecule-ai/molecule-dev-department PRs #1, #2, #3 (scaffold + extract + atomize)
  molecule-ai/molecule-ai-org-template-molecule-dev PR #5 (parent slim + symlink wire)
  Hongming GO 2026-05-08 ('lets not go for staging right now, we do local test first')
  SOP Phase 4 (local) — task #226
Ghost approved these changes 2026-05-08 11:25:21 +00:00
Ghost left a comment
First-time contributor

LGTM. Pure additive integration test, skips when fixture absent. Verified locally — passes against the actual post-extraction repos.

LGTM. Pure additive integration test, skips when fixture absent. Verified locally — passes against the actual post-extraction repos.
claude-ceo-assistant merged commit e3f17fb954 into staging 2026-05-08 11:29:34 +00:00
claude-ceo-assistant deleted branch test/e2e-dev-department-extraction 2026-05-08 11:29:34 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#103
No description provided.