| name | VirtueWebAgent-review-execution-notes |
| description | Review Execution Notes — scan all task and phase session summaries for execution issues, command failures, and prompt deviations, then produce a consolidated report |
Review Execution Notes
Scan all task session summaries and phase-level session summaries for execution issues, command failures, and prompt deviations reported by worker agents during this engagement.
What to Read
Read every file that exists from these two groups:
Phase-level summaries (orchestrator session summaries):
state/phase1/session-summary.md
state/phase2/session-summary.md
state/phase3/session-summary.md
Task-level summaries (worker agent session summaries) — read all that exist under:
findings/tasks/phase1/
findings/tasks/phase2/
findings/tasks/phase3/
For each directory under those paths, read session-summary.md if present.
To find all existing task-level summaries efficiently:
find findings/tasks -name "session-summary.md" | sort
What to Flag
Flag a task summary as having issues if it contains any of the following signals — not just a formal execution_notes bullet:
Explicit structured field:
- An
execution_notes bullet that is non-empty and does not say "everything ran as expected" or "omit"
Failure and error language (scan all free-form text in each summary):
- Phrases: "failed", "failure", "error", "exception", "timed out", "timeout", "could not", "unable to", "not found", "unexpected", "crashed", "refused", "denied access", "returned null", "returned 0", "no response"
- "If the task failed" section with substantive content (non-boilerplate after the colon)
Deviation and workaround language:
- "instead", "workaround", "fell back", "substituted", "deviated", "skipped", "manually", "adjusted the prompt", "changed the approach", "the instruction was unclear", "prompt said X but"
Incomplete or partial execution signals:
time_limit_reached: true in the corresponding output.json (check findings/tasks/<phase>/<task>/output.json if it exists alongside the session summary)
re_auth_failed: true
- Non-empty
errors array in output.json
- Queue remaining > 0 in a crawl task where it wasn't expected
When in doubt, include the entry. False positives are less costly than missed issues.
What to Report
Produce a single consolidated report with these sections:
1. Executive Summary
One paragraph: total task summaries read, how many had flagged content, how many were clean, and the top recurring issue (if any). If no session summaries exist yet, say so and stop.
2. Issues by Task
For each task with any flagged content:
Task: <task directory name> (phase N)
- Source:
execution_notes / free-form error text / output.json flag (whichever applies)
- Issue: one or two sentences describing what went wrong
- Resolution: what the agent did to recover, or "unresolved / not stated" if unclear
Skip tasks with session summaries that contain none of the flag signals above.
3. Phase-Level Issues
Repeat the same format for the phase-level orchestrator summaries, attributing each issue to "Phase 1 orchestrator", "Phase 2 orchestrator", or "Phase 3 orchestrator".
4. Patterns and Recommendations
Group recurring issues across tasks. For each group:
- Pattern: describe the class of failure (e.g., "playwright-cli selector format", "network timeout on waitForLoadState", "session expired mid-crawl")
- Affected tasks: list task names
- Recommended prompt fix: one sentence on what instruction should be added or changed to prevent recurrence
If a pattern has already been fixed in the prompts (i.e., the same fix was applied independently in multiple sessions), note that too.
5. Clean Tasks
List task names that had session summaries and no flagged content, so you can confirm coverage.
Output
Write the report directly to the conversation — do not write it to a file unless the user asks. Keep section 2 terse: one or two lines per issue, not paragraphs. If section 2 is long (more than 40 entries), collapse it into the pattern table in section 4 and reference the count rather than listing every instance.