- Implemented the 'monitor' command for coordinator role to handle monitoring events, task completion, and pipeline management. - Created role specifications for the coordinator, detailing responsibilities, command execution protocols, and session management. - Added role specifications for the analyst, discussant, explorer, and synthesizer in the ultra-analyze skill, defining their context loading, analysis, and synthesis processes.
4.0 KiB
prefix, inner_loop, discuss_rounds, subagents, message_types
| prefix | inner_loop | discuss_rounds | subagents | message_types | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| STRATEGY | false |
|
|
|
Optimization Strategist
Analyze bottleneck reports and baseline metrics to design a prioritized optimization plan with concrete strategies, expected improvements, and risk assessments.
Phase 2: Analysis Loading
| Input | Source | Required |
|---|---|---|
| Bottleneck report | /artifacts/bottleneck-report.md | Yes |
| Baseline metrics | /artifacts/baseline-metrics.json | Yes |
| .msg/meta.json | /.msg/meta.json | Yes |
| Wisdom files | /wisdom/patterns.md | No |
- Extract session path from task description
- Read bottleneck report -- extract ranked bottleneck list with severities
- Read baseline metrics -- extract current performance numbers
- Load .msg/meta.json for profiler findings (project_type, scope)
- Assess overall optimization complexity:
| Bottleneck Count | Severity Mix | Complexity |
|---|---|---|
| 1-2 | All Medium | Low |
| 2-3 | Mix of High/Medium | Medium |
| 3+ or any Critical | Any Critical present | High |
Phase 3: Strategy Formulation
For each bottleneck, select optimization approach by type:
| Bottleneck Type | Strategies | Risk Level |
|---|---|---|
| CPU hotspot | Algorithm optimization, memoization, caching, worker threads | Medium |
| Memory leak/bloat | Pool reuse, lazy initialization, WeakRef, scope cleanup | High |
| I/O bound | Batching, async pipelines, streaming, connection pooling | Medium |
| Network latency | Request coalescing, compression, CDN, prefetching | Low |
| Rendering | Virtualization, memoization, CSS containment, code splitting | Medium |
| Database | Index optimization, query rewriting, caching layer, denormalization | High |
Prioritize optimizations by impact/effort ratio:
| Priority | Criteria |
|---|---|
| P0 (Critical) | High impact + Low effort -- quick wins |
| P1 (High) | High impact + Medium effort |
| P2 (Medium) | Medium impact + Low effort |
| P3 (Low) | Low impact or High effort -- defer |
If complexity is High, invoke discuss subagent (DISCUSS-OPT round) to evaluate trade-offs between competing strategies before finalizing the plan.
Define measurable success criteria per optimization (target metric value or improvement %).
Phase 4: Plan Output
-
Write optimization plan to
<session>/artifacts/optimization-plan.md:Each optimization MUST have a unique OPT-ID and self-contained detail block:
### OPT-001: <title> - Priority: P0 - Target bottleneck: <bottleneck from report> - Target files: <file-list> - Strategy: <selected approach> - Expected improvement: <metric> by <X%> - Risk level: <Low/Medium/High> - Success criteria: <specific threshold to verify> - Implementation guidance: 1. <step 1> 2. <step 2> 3. <step 3> ### OPT-002: <title> ...Requirements:
- Each OPT-ID is sequentially numbered (OPT-001, OPT-002, ...)
- Each optimization must be non-overlapping in target files (no two OPT-IDs modify the same file unless explicitly noted with conflict resolution)
- Implementation guidance must be self-contained -- a branch optimizer should be able to work from a single OPT block without reading others
-
Update
<session>/.msg/meta.jsonunderstrategistnamespace:- Read existing -> merge -> write back:
{ "strategist": { "complexity": "<Low|Medium|High>", "optimization_count": 4, "priorities": ["P0", "P0", "P1", "P2"], "discuss_used": false, "optimizations": [ { "id": "OPT-001", "title": "<title>", "priority": "P0", "target_files": ["src/a.ts", "src/b.ts"], "expected_improvement": "<metric> by <X%>", "success_criteria": "<threshold>" } ] } } -
If DISCUSS-OPT was triggered, record discussion summary in
<session>/discussions/DISCUSS-OPT.md