Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Unified team skill for performance optimization. Coordinator orchestrates pipeline, workers are team-worker agents. Supports single/fan-out/independent parallel modes. Triggers on "team perf-opt".
.claude/skills/catlog22-team-perf-opt/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-02 | ✓→✗ | ▼ Worse | 18% | 0% |
| case-03 | ✓→✗ | ▼ Worse | -1% | 0% |
| case-13 | ✓→✗ | ▼ Worse | 181% | 0% |
| case-14 | ✓→✗ | ▼ Worse | 280% | 0% |
> Agent timeout: spawn_agent 异步执行且无内置超时 — 除明确短任务外一律 spawn_agent 后立即 wait_agent({ timeout_ms: 3600000 })(上限 1 小时)阻塞等待,绝不依赖 30000 默认值;timed_out: true 且 Agent 未完成时再次 wait_agent 续等,不丢弃。批量场景使用 spawn_agents_on_csv({ max_runtime_seconds: 3600, ... })。
<required_reading> @~/.maestro/workflows/run-mode-lite.md </required_reading>
Profile application performance, identify bottlenecks, design optimization strategies, implement changes, benchmark improvements, and review code quality.
spawn_agent({ task_name: "team_perf_opt", message: "Execute skill team-perf-opt, args: <task-description>" })
|
SKILL.md (this file) = Router
|
+--------------+--------------+
| |
no --role flag --role <name>
| |
Coordinator Worker
roles/coordinator/role.md roles/<name>/role.md
|
+-- analyze -> dispatch -> spawn workers -> STOP
|
+-------+-------+-------+-------+-------+
v v v v v
[profiler] [strategist] [optimizer] [benchmarker] [reviewer]
(team-worker agents)
Pipeline (Single mode):
PROFILE-001 -> STRATEGY-001 -> IMPL-001 -> BENCH-001 + REVIEW-001 (fix cycle)
Pipeline (Fan-out mode):
PROFILE-001 -> STRATEGY-001 -> [IMPL-B01..N](parallel) -> BENCH+REVIEW per branch
Pipeline (Independent mode):
[Pipeline A: PROFILE-A->STRATEGY-A->IMPL-A->BENCH-A+REVIEW-A]
[Pipeline B: PROFILE-B->STRATEGY-B->IMPL-B->BENCH-B+REVIEW-B] (parallel)| Role | Path | Prefix | Inner Loop | |------|------|--------|------------| | coordinator | roles/coordinator/role.md | — | — | | profiler | roles/profiler/role.md | PROFILE- | false | | strategist | [roles/strategist/role.md](roles/strategist/role.md) | STRATEGY- | false | | optimizer | roles/optimizer/role.md | IMPL-, FIX- | true | | benchmarker | roles/benchmarker/role.md | BENCH- | false | | reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REVIEW-, QUALITY- | false |
.workflow/codebase/ARCHITECTURE.md exists, read for module boundariesmaestro load --type spec --category coding — load coding constraints as shared contextmaestro search "performance optimization profiling" --json — top 5 entries as prior contextParse $ARGUMENTS:
--role <name> → Read roles/<name>/role.md, execute Phase 2-4--role → @roles/coordinator/role.md, execute entry routerPERF-OPT{run_dir}/work/team/perf-optmaestro delegate --mode analysis (read-only), maestro delegate --mode write (modifications)mcp__maestro__team_msg(session_id=<run-id>, ...)Coordinator spawns workers using this template:
spawn_agent({
subagent_type: "team-worker",
description: "Spawn <role> worker",
team_name: "perf-opt",
name: "<role>",
run_in_background: true,
prompt: `## Role Assignment
role: <role>
role_spec: <skill_root>/roles/<role>/role.md
session: {run_dir}/work/team
session_id: <run-id>
team_name: perf-opt
requirement: <task-description>
inner_loop: <true|false>
## Progress Milestones
session_id: <run-id>
Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
Report blockers immediately via team_msg type="blocker".
Report completion via team_msg type="task_complete" after final send_message.
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
})Inner Loop roles (optimizer): Set inner_loop dynamically — true for single mode, false for fan-out/independent (parallel branches). Single-task roles (profiler, strategist, benchmarker, reviewer): Set inner_loop: false.
| Command | Action | |---------|--------| | check / status | Output execution status graph (branch-grouped), no advancement | | resume / continue | Check worker states, advance next step | | revise <TASK-ID> [feedback] | Create revision task + cascade downstream (scoped to branch) | | feedback <text> | Analyze feedback impact, create targeted revision chain | | recheck | Re-run quality check | | improve [dimension] | Auto-improve weakest dimension |
{run_dir}/work/team/
+-- team-session.json # Session metadata + status + parallel_mode
+-- {run_dir}/outputs/ # Run deliverables (via maestro run)
| +-- baseline-metrics.json # Profiler: before-optimization metrics
| +-- bottleneck-report.md # Profiler: ranked bottleneck findings
| +-- optimization-plan.md # Strategist: prioritized optimization plan
| +-- benchmark-results.json # Benchmarker: after-optimization metrics
| +-- review-report.md # Reviewer: code review findings
| +-- branches/B01/... # Fan-out branch artifacts
| +-- pipelines/A/... # Independent pipeline artifacts
+-- explorations/ # Shared explore cache
+-- wisdom/patterns.md # Discovered patterns and conventions
+-- {run_dir}/evidence/discussions/ # Discussion records
+-- .msg/messages.jsonl # Team message bus
+-- .msg/meta.json # Session metadataWhen the pipeline completes:
request_user_input({
questions: [{
question: "Team pipeline complete. What would you like to do?",
header: "Completion",
multiSelect: false,
options: [
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up tasks and team resources" },
{ label: "Keep Active", description: "Keep session active for follow-up work or inspection" },
{ label: "Export Results", description: "Export deliverables to a specified location, then clean" }
]
}]
})| Scenario | Resolution | |----------|------------| | Unknown --role value | Error with role registry list | | Role file not found | Error with expected path (roles/{name}/role.md) | | Profiling tool not available | Fallback to static analysis methods | | Benchmark regression detected | Auto-create FIX task with regression details | | Review-fix cycle exceeds 3 iterations | Escalate to user | | One branch IMPL fails | Mark that branch failed, other branches continue | | Fast-advance conflict | Coordinator reconciles on next callback | | Completion action fails | Default to Keep Active |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 34,018 | 6,949 | -80% | 1 | 1 | 0% | 6,213 | 2,526 | -59% | 0 | 0 | — |
case-02 | pass→fail | 13,145 | 9,187 | -30% | 1 | 1 | 0% | 2,433 | 2,869 | +18% | 0 | 0 | — |
case-03 | pass→fail | 13,294 | 4,386 | -67% | 1 | 1 | 0% | 2,358 | 2,331 | -1% | 0 | 0 | — |
case-04 | fail→fail | 4,082 | 5,839 | +43% | 1 | 1 | 0% | 625 | 2,448 | +292% | 0 | 0 | — |
case-05 | fail→fail | 7,951 | 10,512 | +32% | 1 | 1 | 0% | 1,184 | 2,401 | +103% | 0 | 0 | — |
case-06 | fail→fail | 11,769 | 12,306 | +5% | 1 | 1 | 0% | 2,283 | 3,656 | +60% | 0 | 0 | — |
case-07 | fail→fail | 11,167 | 5,864 | -47% | 1 | 1 | 0% | 1,990 | 2,463 | +24% | 0 | 0 | — |
case-08 | fail→fail | 7,878 | 19,973 | +154% | 1 | 1 | 0% | 1,174 | 2,482 | +111% | 0 | 0 | — |
case-09 | fail→fail | 12,795 | 6,316 | -51% | 1 | 1 | 0% | 1,988 | 2,456 | +24% | 0 | 0 | — |
case-10 | fail→fail | 28,003 | 8,353 | -70% | 1 | 1 | 0% | 637 | 2,481 | +289% | 0 | 0 | — |
case-11 | fail→fail | 11,724 | 3,987 | -66% | 1 | 1 | 0% | 2,028 | 2,709 | +34% | 0 | 0 | — |
case-12 | fail→fail | 8,112 | 8,142 | +0% | 1 | 1 | 0% | 1,274 | 2,714 | +113% | 0 | 0 | — |
case-13 | pass→fail | 5,600 | 6,822 | +22% | 1 | 1 | 0% | 868 | 2,443 | +181% | 0 | 0 | — |
case-14 | pass→fail | 8,136 | 15,631 | +92% | 1 | 1 | 0% | 1,149 | 4,369 | +280% | 0 | 0 | — |
case-15 | pass→fail | 6,915 | 19,308 | +179% | 1 | 1 | 0% | 997 | 4,851 | +387% | 0 | 0 | — |
case-16 | fail→pass | 11,320 | 5,301 | -53% | 1 | 1 | 0% | 2,046 | 2,837 | +39% | 0 | 0 | — |
case-17 | fail→fail | 9,938 | 6,484 | -35% | 1 | 1 | 0% | 1,623 | 2,356 | +45% | 0 | 0 | — |
case-18 | pass→fail | 11,537 | 5,139 | -55% | 1 | 1 | 0% | 1,782 | 2,268 | +27% | 0 | 0 | — |
case-19 | pass→pass | 9,879 | 5,069 | -49% | 1 | 1 | 0% | 1,570 | 2,917 | +86% | 0 | 0 | — |
case-20 | pass→fail | 8,443 | 8,181 | -3% | 1 | 1 | 0% | 1,753 | 2,872 | +64% | 0 | 0 | — |
case-21 | pass→pass | 6,877 | 8,974 | +30% | 1 | 1 | 0% | 1,606 | 4,035 | +151% | 0 | 0 | — |
case-22 | pass→pass | 10,906 | 10,237 | -6% | 1 | 1 | 0% | 2,190 | 4,177 | +91% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 5 counted toward the lift figure. The other 17 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -27 percentage points is the difference between those two pass rates over the 5 comparable cases. 7 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/3/2026 | +41% |
| gemini-3.6-flash | verified | 8/3/2026 | +43% |
Other measured skills in the registry, with their headline benchmark lift.