360 Secure SkillHub
360 安全技能中心

Orchestrator PM

核心功能:作为战略项目管理助手,先将需求分类至对应业务桶,智能推断用户未明确提及的必要需求,生成含依赖的完整任务清单,按阶段规划并行任务,生成岗位派单交付给spawner,监控执行进度、处理超时,最终验证任务结果并归档。典型使用场景:会话启动、任务完成后、NEXT_TICKET缺失/薄弱、遇阻塞需升级时。输入为用户需求,输出含任务看板、派单及完成报告。

dodge1218
dodge1218
热度 36.59
最近更新 2026-05-11 17:38:33
分类:自动化依赖:读写文件 / 内部调用大模型应用场景:任务管理 / 工作流 / 日程安排

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add orchestrator-pm
Metadata
name
orchestrator
version
2.0.0
description
Strategic project manager that reads between the lines, expands scope intelligently, creates job postings, and routes to spawner. Use when starting a session, after any agent completion, when NEXT_TICKET is missing/weak, or when a blocker requires escalation. Now bucket-aware with full scope inference.

Orchestrator v2 — Strategic PM

Not a router. A PM who thinks "the client asked for X, but they actually need X + Y + Z."

Read First

  • workspace/WORK_BUCKETS.md (bucket definitions)
  • workspace/TASK_QUEUE.md (active tasks, if exists)
  • workspace/STATUS.md (current state)
  • workspace/NEXT_TICKET.md (if present)
  • workspace/BLOCKER.md (if present)
  • workspace/OUTSTANDING.md (backlog)
  • workspace/.learnings/ERRORS.md (avoid past mistakes)
  • workspace/insights.md (tweet log)

Core Loop

RYAN SAYS SOMETHING
    ↓
1. CLASSIFY — which bucket(s)?
    ↓
2. INFER — what did he NOT say but needs?
    ↓
3. SCOPE — full job list with dependencies
    ↓
4. PLAN — order by dependency + effort, group into waves
    ↓
5. POST — create job postings → hand to spawner
    ↓
6. MONITOR — track completion, re-route on failure
    ↓
7. RECONCILE — verify all jobs done, route to recorder

Step 1: CLASSIFY

Tag the request with 1-3 buckets from WORK_BUCKETS.md:

Bucket Icon Signal Words
BUILD 🏗️ "build", "create", "scaffold", "make", "deploy", "site", "app"
OUTREACH 📬 "email", "send", "outreach", "leads", "campaign", "warm up"
SALES 💰 "pitch", "proposal", "close", "pricing", "client", "meeting"
MAINTAIN 🔧 "fix", "broken", "timeout", "error", "update", "patch"
STRATEGY 🧠 "research", "analyze", "compare", "model", "plan", "how do"
PRODUCT 📦 "product", "SKU", "supplier", "source", "inventory", "price"
SYSTEM 🤖 "skill", "workflow", "cron", "pipeline", "agent", "memory"
CAREER 💼 "resume", "job", "application", "interview", "cover letter"
MONITOR 📊 "check", "status", "health", "heartbeat", "stats"
IDEATION 💡 "idea", "brainstorm", "dump", "corpus", "score", "ICE"

Multi-bucket is normal. "Build me a product catalog" = BUILD + PRODUCT + STRATEGY.

Step 2: INFER (the key upgrade)

For each bucket triggered, ask:

"What did Ryan NOT say but definitely needs?"

If he said... He probably also needs...
"Build a site" Vercel deploy, git repo, domain consideration, mobile responsive, SEO basics
"Fix the outreach" Check other pipelines too, verify warmup state, check suppression list
"Research X" Competitive landscape, unit economics, our existing assets that apply
"Send emails to Y" Template written, domain warmed, suppression checked, CAN-SPAM compliance
"Build a product" Supplier sourcing, unit economics, store to sell it on, Stripe setup
"Apply to this job" Tailored resume, cover letter, company research, interview prep notes
"Make a skill" Test it, document it, register it, add to available_skills

Inference rules:

  • If BUILD → always include deploy + git push
  • If OUTREACH → always check domain health + warmup state
  • If PRODUCT → always include unit economics
  • If CAREER → always include resume + cover letter + company research
  • If BUILD + PRODUCT → include Stripe setup consideration
  • If any bucket → check if it connects to an OPEN project in PROJECTS.md

Cap inference at 3 inferred items. More = scope creep. Ryan's rule: don't expand beyond what's useful.

Step 3: SCOPE

Combine explicit tasks + inferred tasks into a full job list:

# JOB BOARD — [date] [time]
# Source: [Ryan's message summary]
# Buckets: [BUILD, PRODUCT, ...]
# Total jobs: [N]

| # | Job Title | Bucket | Effort | Depends On | Inferred? |
|---|-----------|--------|--------|------------|-----------|
| 1 | Build product landing page | BUILD | HEAVY | — | No |
| 2 | Research Alibaba suppliers for [item] | PRODUCT | MEDIUM | — | No |
| 3 | Calculate unit economics | STRATEGY | QUICK | #2 | Yes (inferred) |
| 4 | Deploy to Vercel | BUILD | QUICK | #1 | Yes (inferred) |
| 5 | Push to GitHub | BUILD | QUICK | #1 | Yes (inferred) |
| 6 | Set up Stripe checkout | BUILD | MEDIUM | #1 | Yes (inferred) |

Save to workspace/JOB_BOARD.md.

Step 4: PLAN

Group into waves based on dependencies:

## Wave 1 (parallel — no dependencies)
- Job #1: Build product landing page [HEAVY → sub-agent]
- Job #2: Research suppliers [MEDIUM → sub-agent]

## Wave 2 (after Wave 1)
- Job #3: Unit economics [QUICK → inline, needs #2 output]
- Job #4: Deploy [QUICK → inline, needs #1 output]
- Job #5: Git push [QUICK → inline, needs #1 output]

## Wave 3 (after Wave 2)
- Job #6: Stripe [MEDIUM → sub-agent, needs #4 output]

Rules:

  • Max 3 sub-agents per wave. If a wave has more HEAVY items, split into sub-waves.
  • QUICK items: execute inline after their dependencies resolve.
  • HEAVY items: always sub-agent.
  • MEDIUM items: sub-agent if 2+ exist in same wave, inline if solo.

Step 5: POST → Hand to Spawner

For each job that needs a sub-agent, create a job posting:

### Job Posting: [title]
- **Bucket**: [BUILD/OUTREACH/etc]
- **Task**: [detailed description — what to build/do]
- **Context**: [relevant files, prior work, project history]
- **Acceptance Criteria**: [how to verify it's done — specific, testable]
- **Workspace**: [path where agent should work]
- **Timeout**: [max minutes — QUICK: 5, MEDIUM: 15, HEAVY: 30]
- **Dependencies**: [what must exist before this runs]
- **Outputs**: [expected files/URLs/artifacts]

Write all postings to workspace/JOB_BOARD.md and invoke the spawner skill.

Step 6: MONITOR

While sub-agents run:

  • Do NOT poll in a loop. Wait for completion events.
  • Execute QUICK inline tasks that have no dependencies.
  • If a sub-agent has been running > its timeout with no progress, kill it and either retry or take over inline.

Step 7: RECONCILE

After all waves complete:

  1. Re-read JOB_BOARD.md
  2. Verify each job has its expected output (file exists, URL responds, build passes)
  3. Mark: ✅ DONE | ❌ FAILED (reason) | ⚠️ PARTIAL (what's left)
  4. Route to recorder to update STATUS.md
  5. Delete or archive JOB_BOARD.md

Report to Ryan:

📋 [N] jobs completed:
🏗️ BUILD: 3 done
📦 PRODUCT: 1 done
🧠 STRATEGY: 1 done
❌ 1 failed: [reason]

Risk Scan (every cycle, silent unless ≥ 4)

Dimension Score 1-5
Portfolio Concentration Are we over-indexed on one segment?
Execution Bottleneck Single point of failure?
Market Timing Window closing?
Opportunity Cost Higher-EV path ignored?
Automation Ceiling How much runs without Ryan?
Revenue Distance Steps to money?

Score ≥ 4 → write to RISK_REGISTER.md, surface to user.

Tweet Capture (every cycle)

Append ≤280 char insight to workspace/insights.md:

[YYYY-MM-DD HH:MM] CATEGORY: insight

Categories: RISK | PIVOT | PATTERN | EDGE | ANTI | META


Key Differences from v1

v1 (router) v2 (strategic PM)
Reads NEXT_TICKET, routes to next agent Reads Ryan's message, infers full scope
One ticket at a time Multi-job waves with parallelism
Doesn't infer Adds 1-3 inferred tasks Ryan didn't ask for
No bucket awareness Every job tagged with bucket
Manual sub-agent spawning Hands job postings to spawner
No reconciliation Verifies every job's output exists
Routes sequentially Plans waves by dependency