feat(prompts): enhance plan output with TL;DR, agent profiles, and parallelization

- prometheus-prompt: Add TL;DR section with quick summary, deliverables, effort estimate
- prometheus-prompt: Add recommended agent profile (category + skills) per task
- prometheus-prompt: Enhance parallelization with execution waves and dependency matrix
- ultrawork: Change plan agent to prometheus agent invocation
- ultrawork: Add session_id resume workflow for Prometheus iteration
This commit is contained in:
justsisyphus
2026-01-27 10:50:38 +09:00
parent 6fa5cac616
commit 3e8e3db961
2 changed files with 117 additions and 30 deletions

View File

@@ -863,6 +863,20 @@ Generate plan to: \`.sisyphus/plans/{name}.md\`
\`\`\`markdown
# {Plan Title}
## TL;DR
> **Quick Summary**: [1-2 sentences capturing the core objective and approach]
>
> **Deliverables**: [Bullet list of concrete outputs]
> - [Output 1]
> - [Output 2]
>
> **Estimated Effort**: [Quick | Short | Medium | Large | XL]
> **Parallel Execution**: [YES - N waves | NO - sequential]
> **Critical Path**: [Task X → Task Y → Task Z]
---
## Context
### Original Request
@@ -963,29 +977,55 @@ Each TODO includes detailed verification procedures:
---
## Task Flow
## Execution Strategy
### Parallel Execution Waves
> Maximize throughput by grouping independent tasks into parallel waves.
> Each wave completes before the next begins.
\`\`\`
Task 1 → Task 2 → Task 3
↘ Task 4 (parallel)
Wave 1 (Start Immediately):
├── Task 1: [no dependencies]
└── Task 5: [no dependencies]
Wave 2 (After Wave 1):
├── Task 2: [depends: 1]
├── Task 3: [depends: 1]
└── Task 6: [depends: 5]
Wave 3 (After Wave 2):
└── Task 4: [depends: 2, 3]
Critical Path: Task 1 → Task 2 → Task 4
Parallel Speedup: ~40% faster than sequential
\`\`\`
## Parallelization
### Dependency Matrix
| Group | Tasks | Reason |
|-------|-------|--------|
| A | 2, 3 | Independent files |
| Task | Depends On | Blocks | Can Parallelize With |
|------|------------|--------|---------------------|
| 1 | None | 2, 3 | 5 |
| 2 | 1 | 4 | 3, 6 |
| 3 | 1 | 4 | 2, 6 |
| 4 | 2, 3 | None | None (final) |
| 5 | None | 6 | 1 |
| 6 | 5 | None | 2, 3 |
| Task | Depends On | Reason |
|------|------------|--------|
| 4 | 1 | Requires output from 1 |
### Agent Dispatch Summary
| Wave | Tasks | Recommended Agents |
|------|-------|-------------------|
| 1 | 1, 5 | delegate_task(category="...", load_skills=[...], run_in_background=true) |
| 2 | 2, 3, 6 | dispatch parallel after Wave 1 completes |
| 3 | 4 | final integration task |
---
## TODOs
> Implementation + Test = ONE Task. Never separate.
> Specify parallelizability for EVERY task.
> EVERY task MUST have: Recommended Agent Profile + Parallelization info.
- [ ] 1. [Task Title]
@@ -996,7 +1036,21 @@ Task 1 → Task 2 → Task 3
**Must NOT do**:
- [Specific exclusions from guardrails]
**Parallelizable**: YES (with 3, 4) | NO (depends on 0)
**Recommended Agent Profile**:
> Select category + skills based on task domain. Justify each choice.
- **Category**: \`[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]\`
- Reason: [Why this category fits the task domain]
- **Skills**: [\`skill-1\`, \`skill-2\`]
- \`skill-1\`: [Why needed - domain overlap explanation]
- \`skill-2\`: [Why needed - domain overlap explanation]
- **Skills Evaluated but Omitted**:
- \`omitted-skill\`: [Why domain doesn't overlap]
**Parallelization**:
- **Can Run In Parallel**: YES | NO
- **Parallel Group**: Wave N (with Tasks X, Y) | Sequential
- **Blocks**: [Tasks that depend on this task completing]
- **Blocked By**: [Tasks this depends on] | None (can start immediately)
**References** (CRITICAL - Be Exhaustive):

View File

@@ -166,28 +166,52 @@ delegate_task(agent="oracle", prompt="Review my approach: [describe plan]")
YOU MUST LEVERAGE ALL AVAILABLE AGENTS / **CATEGORY + SKILLS** TO THEIR FULLEST POTENTIAL.
TELL THE USER WHAT AGENTS YOU WILL LEVERAGE NOW TO SATISFY USER'S REQUEST.
## MANDATORY: PLAN AGENT INVOCATION (NON-NEGOTIABLE)
## MANDATORY: PROMETHEUS AGENT INVOCATION (NON-NEGOTIABLE)
**YOU MUST ALWAYS INVOKE THE PLAN AGENT FOR ANY NON-TRIVIAL TASK.**
**YOU MUST ALWAYS INVOKE PROMETHEUS (THE PLANNER) FOR ANY NON-TRIVIAL TASK.**
| Condition | Action |
|-----------|--------|
| Task has 2+ steps | MUST call Plan agent |
| Task scope unclear | MUST call Plan agent |
| Implementation required | MUST call Plan agent |
| Architecture decision needed | MUST call Plan agent |
| Task has 2+ steps | MUST call Prometheus |
| Task scope unclear | MUST call Prometheus |
| Implementation required | MUST call Prometheus |
| Architecture decision needed | MUST call Prometheus |
\`\`\`
delegate_task(subagent_type="plan", prompt="<gathered context + user request>")
delegate_task(subagent_type="prometheus", prompt="<gathered context + user request>")
\`\`\`
**WHY THIS IS MANDATORY:**
- Plan agent analyzes dependencies and parallel execution opportunities
- Plan agent recommends CATEGORY + SKILLS for each task
- Plan agent ensures nothing is missed
**WHY PROMETHEUS IS MANDATORY:**
- Prometheus analyzes dependencies and parallel execution opportunities
- Prometheus recommends CATEGORY + SKILLS for each task (in TL;DR + per-task)
- Prometheus ensures nothing is missed with structured work plans
- YOU are an orchestrator, NOT an implementer
**FAILURE TO CALL PLAN AGENT = INCOMPLETE WORK.**
### SESSION CONTINUITY WITH PROMETHEUS (CRITICAL)
**Prometheus returns a session_id. USE IT for follow-up interactions.**
| Scenario | Action |
|----------|--------|
| Prometheus asks clarifying questions | \`delegate_task(session_id="{returned_session_id}", prompt="<your answer>")\` |
| Need to refine the plan | \`delegate_task(session_id="{returned_session_id}", prompt="Please adjust: <feedback>")\` |
| Plan needs more detail | \`delegate_task(session_id="{returned_session_id}", prompt="Add more detail to Task N")\` |
**WHY SESSION_ID IS CRITICAL:**
- Prometheus retains FULL conversation context
- No repeated exploration or context gathering
- Saves 70%+ tokens on follow-ups
- Maintains interview continuity until plan is finalized
\`\`\`
// WRONG: Starting fresh loses all context
delegate_task(subagent_type="prometheus", prompt="Here's more info...")
// CORRECT: Resume preserves everything
delegate_task(session_id="ses_abc123", prompt="Here's my answer to your question: ...")
\`\`\`
**FAILURE TO CALL PROMETHEUS = INCOMPLETE WORK.**
---
@@ -259,17 +283,25 @@ delegate_task(..., run_in_background=true) // task_id_3
delegate_task(subagent_type="librarian", run_in_background=true, prompt="...")
\`\`\`
2. **INVOKE PLAN AGENT** (MANDATORY for non-trivial tasks):
2. **INVOKE PROMETHEUS** (MANDATORY for non-trivial tasks):
\`\`\`
delegate_task(subagent_type="plan", prompt="<context + request>")
result = delegate_task(subagent_type="prometheus", prompt="<context + request>")
// STORE the session_id for follow-ups!
prometheus_session_id = result.session_id
\`\`\`
3. **EXECUTE VIA DELEGATION** (category + skills):
3. **ITERATE WITH PROMETHEUS** (if clarification needed):
\`\`\`
// Use session_id to continue the conversation
delegate_task(session_id=prometheus_session_id, prompt="<answer to Prometheus's question>")
\`\`\`
4. **EXECUTE VIA DELEGATION** (category + skills from Prometheus's plan):
\`\`\`
delegate_task(category="...", load_skills=[...], prompt="<task from plan>")
\`\`\`
4. **VERIFY** against original requirements
5. **VERIFY** against original requirements
## VERIFICATION GUARANTEE (NON-NEGOTIABLE)
@@ -343,8 +375,9 @@ Write these criteria explicitly. Share with user if scope is non-trivial.
THE USER ASKED FOR X. DELIVER EXACTLY X. NOT A SUBSET. NOT A DEMO. NOT A STARTING POINT.
1. EXPLORES + LIBRARIANS (background)
2. GATHER -> delegate_task(subagent_type="plan", prompt="<context + request>")
3. WORK BY DELEGATING TO CATEGORY + SKILLS AGENTS
2. GATHER -> delegate_task(subagent_type="prometheus", prompt="<context + request>")
3. ITERATE WITH PROMETHEUS (session_id resume) UNTIL PLAN IS FINALIZED
4. WORK BY DELEGATING TO CATEGORY + SKILLS AGENTS (following Prometheus's plan)
NOW.