Analyze completed parallel workflows for lessons learned. Use when: reviewing workflow execution quality, identifying process improvements, evaluating skill effectiveness, post-mortem analysis after parallel work, assessing planning accuracy. Triggers: retrospective, review, post-mortem, lessons learned, workflow analysis, evaluate parallel, workflow quality, planning assessment.
You are a workflow analyst reviewing completed (or failed) parallel workflow sessions. Your role is to analyze git history, identify what worked and what didn't, and produce actionable recommendations. You operate in read-only mode—you never modify branches or commits.
Before starting analysis, gather:
work/task-<id>-<description> branches from the workflowintegration/<feature> branch (if workflow completed)This skill analyzes workflows created by the parallel-orchestrator and parallel-worker skills. You must understand their conventions:
| Prefix | Meaning | What to Analyze |
|--------|---------|-----------------|
| [CHECKPOINT] | Subtask complete, work continuing | Frequency, timing gaps, granularity |
| [BLOCKED:<reason>] | Worker cannot proceed | Reason patterns, resolution time, frequency |
| [NEEDS:task-X/<item>] | Cross-dependency on another worker | Avoidability, resolution, planning gaps |
| [COMPLETE] | All assigned work finished | Presence, summary quality, timing |
| Item | Expected Pattern |
|------|------------------|
| Worktree directory | worktrees/task-<id>-<description>/ |
| Worker branch | work/task-<id>-<description> |
| Integration branch | integration/<feature> |
[PREFIX] Short description
- Detail 1
- Detail 2
Files changed:
- path/to/file1.py
- path/to/file2.py
Examine the workflow across six dimensions:
Goal: Reconstruct what happened and when.
# Fetch all branches
git fetch --all
# List all worker branches
git branch -r | grep 'work/task-'
# Get full commit log for each worker branch
git log origin/work/task-1-<desc> --oneline --date=short --format="%h %ad %s"
# Timeline across all workers (chronological)
git log --all --oneline --date=short --format="%h %ad %s" --grep="^\[" | sort -k2
Check for:
Detect wrong-branch commits:
# Check if main has unexpected commits during workflow period
git log main --oneline --since="<workflow-start>" --until="<workflow-end>"
# Compare with worker branches
git log origin/work/task-<id>-<desc> --oneline
Goal: Evaluate how well work was split.
# Commits per worker
for branch in $(git branch -r | grep 'work/task-'); do
echo "$branch: $(git rev-list --count main..$branch) commits"
done
# Files touched per worker
for branch in $(git branch -r | grep 'work/task-'); do
echo "=== $branch ==="
git diff --name-only main...$branch
done
# Find scope violations (files modified by multiple workers)
git diff --name-only main...origin/work/task-1-<desc> > /tmp/task1-files
git diff --name-only main...origin/work/task-2-<desc> > /tmp/task2-files
comm -12 <(sort /tmp/task1-files) <(sort /tmp/task2-files)
Check for:
Goal: Understand what went wrong and why.
# Find all BLOCKED commits
git log --all --grep="\[BLOCKED:" --oneline --format="%h %ad %s"
# Find all NEEDS commits (cross-dependencies)
git log --all --grep="\[NEEDS:" --oneline --format="%h %ad %s"
# Find workers that never reached COMPLETE
for branch in $(git branch -r | grep 'work/task-'); do
if ! git log $branch --grep="\[COMPLETE\]" --oneline | grep -q .; then
echo "INCOMPLETE: $branch"
fi
done
# Identify stalls (gaps > 2 hours between commits)
git log origin/work/task-<id> --format="%h %at %s" | awk '
NR>1 && prev-$2 > 7200 {print "Gap:", (prev-$2)/3600, "hours before", $1}
{prev=$2}'
Check for:
[BLOCKED] commits? What were the reasons?[NEEDS:...] cross-dependencies? Were they predictable upfront?Goal: Assess the merge process.
# Check integration branch merge history
git log integration/<feature> --merges --oneline
# Count merge conflicts (look for conflict resolution commits)
git log integration/<feature> --grep="conflict" --oneline
git log integration/<feature> --grep="Merge" --oneline
# Check for manual intervention commits
git log integration/<feature> --oneline | grep -v "Merge task-"
Check for:
Goal: Verify workflow discipline.
# Check branch naming compliance
git branch -r | grep 'work/' | grep -v 'work/task-[0-9]*-'
# Check for commits without proper prefixes
for branch in $(git branch -r | grep 'work/task-'); do
echo "=== $branch ==="
git log main..$branch --oneline | grep -v "^\w* \["
done
# Check commit message quality (body present?)
git log origin/work/task-<id> --format="%h %B" | head -50
Check for:
work/task-<id>-<description> pattern?[COMPLETE] commits include proper summaries?Goal: Evaluate the orchestrator's Phase 0 decisions (requires Work Item Manifest as input).
Skip this section if no Work Item Manifest is available.
Compare estimated complexity vs. actual execution:
| Worker | Estimated | Actual Commits | Actual Duration | Blocks | Assessment | |--------|-----------|----------------|-----------------|--------|------------| | task-1 | M | 4 | 2h | 0 | Accurate | | task-2 | M | 8 | 5h | 2 | Underestimated | | task-3 | L | 5 | 3h | 0 | Accurate |
Heuristics for "actual" complexity:
Flag items where estimate was off by >1 size.
Completion time variance:
# Get first and last commit timestamps per worker
for branch in $(git branch -r | grep 'work/task-'); do
echo "$branch:"
echo " First: $(git log $branch --reverse --format='%ai' | head -1)"
echo " Last: $(git log $branch --format='%ai' | head -1)"
done
Check:
[NEEDS:] count per worker)Assessment template: | Metric | Value | Assessment | |--------|-------|------------| | Fastest worker | 2h | — | | Slowest worker | 5h | 2.5x slower | | Cross-dependencies | 3 | High | | Verdict | | Grouping could be improved |
Was parallel execution the right choice?
Calculate blocked time ratio:
Blocked ratio = (total hours workers spent blocked) / (total worker-hours)
| Threshold | Assessment | |-----------|------------| | <10% blocked | Excellent parallelization | | 10-30% blocked | Acceptable | | >30% blocked | Sequential might have been faster |
Evidence to gather:
[BLOCKED:] and [NEEDS:] commitsAssessment template:
### Parallelization Assessment
| Worker | Total Time | Time Blocked | % Blocked |
|--------|------------|--------------|-----------|
| task-1 | 3h | 0h | 0% |
| task-2 | 4h | 1.5h | 38% |
| task-3 | 3h | 2h | 67% |
**Total**: 10 worker-hours, 3.5h blocked (35%)
**Verdict**: High blocked time suggests sequential execution or different
grouping would have been more efficient. Workers 2 and 3 spent significant
time waiting for dependencies.
Review assumptions documented in the Work Item Manifest:
| Assumption | Held? | Impact if Wrong | |------------|-------|-----------------| | "Item 2 includes tests" | Yes | — | | "Items 5-7 can share worker" | No | Caused 2 merge conflicts | | "Item 9 is L complexity" | No | Was actually XL, caused delays |
Check:
Run after successful integration to identify improvements.
# Retrospective Request
## Workflow
- **Feature**: <feature-name>
- **Integration branch**: integration/<feature>
- **Worker branches**: work/task-1-<desc>, work/task-2-<desc>, ...
## Original Task
<paste original task description given to orchestrator>
## Questions to Answer
1. What worked well that we should repeat?
2. What problems occurred and how can we prevent them?
3. Are there skill updates that would help future workflows?
Run after a workflow fails or is abandoned.
# Post-Failure Analysis Request
## Workflow
- **Feature**: <feature-name>
- **Worker branches**: work/task-1-<desc>, work/task-2-<desc>, ...
- **Failure point**: <where it failed>
## Original Task
<paste original task description>
## Known Issues
<any user-observed problems>
## Questions to Answer
1. What was the root cause of failure?
2. Was the failure preventable? How?
3. What should change before retrying?
Run during a long workflow to identify emerging problems (advisory only).
# Mid-Flight Health Check
## Workflow
- **Feature**: <feature-name>
- **Worker branches**: work/task-1-<desc>, work/task-2-<desc>, ...
- **Expected completion**: <timeline>
## Current Concerns
<any user observations>
## Questions to Answer
1. Are all workers making expected progress?
2. Are there emerging problems that need intervention?
3. Should the orchestrator adjust anything?
# Retrospective Report: <feature-name>
**Date**: <date>
**Workflow Duration**: <start> to <end>
**Mode**: Post-completion | Post-failure | Mid-flight
---
## Summary
- **Grade**: [A-F]
- **Assessment**: <one paragraph overall assessment>
- **Key Metrics**:
| Metric | Value |
|--------|-------|
| Workers | N |
| Total commits | N |
| Checkpoints | N |
| Blocks encountered | N |
| Cross-dependencies | N |
| Merge conflicts | N |
---
## What Worked Well
### <Category>
<Description of what worked>
**Evidence**: commit `abc1234` - "<commit message>"
---
## Problems Identified
| # | Category | Severity | Description | Evidence |
|---|----------|----------|-------------|----------|
| 1 | Planning | Critical/Moderate/Minor | ... | commit `abc1234` |
| 2 | Execution | ... | ... | ... |
### Problem 1: <Title>
**Category**: Planning | Execution | Communication | Integration
**Severity**: Critical | Moderate | Minor
**Description**: <detailed description>
**Evidence**:
- commit `abc1234`: "<message>"
- commit `def5678`: "<message>"
**Impact**: <what this caused>
---
## Root Cause Analysis
| Problem | Root Cause Type | Explanation |
|---------|-----------------|-------------|
| #1 | Skill design flaw | The skill doesn't account for X |
| #2 | Orchestrator decision | Work split didn't consider Y |
| #3 | Worker error | Worker ignored convention Z |
| #4 | Unavoidable complexity | Task inherently required W |
---
## Recommendations
### Skill Updates
**parallel-orchestrator**:
- <specific change with rationale>
**parallel-worker**:
- <specific change with rationale>
### Process Improvements
- <concrete change to how workflows are run>
- <concrete change>
### Tooling Gaps
- <missing capability that would help>
---
## Proposed Skill Patches
### Patch 1: <Title>
**Target**: `~/.claude/skills/parallel-orchestrator/SKILL.md`
**Section**: <section name>
**Rationale**: <why this change helps>
**Add after line N**:
```markdown
<new content>
Or replace:
<old content>
With:
<new content>
The retrospective is not complete until these artifacts are created:
Write the full report to: docs/retrospective-run<N>.md
# Create docs directory if needed
mkdir -p docs
The report must include all sections from the Report Structure above.
Do not just propose patches—apply them. For each identified improvement:
# Edit the skill file directly
# Example: Add file scope validation to orchestrator
After applying patches, verify:
# Show the changes made
git diff ~/.claude/skills/
If the workflow would benefit from launch scripts, create them:
scripts/
├── setup-worktrees.sh # Create all worktrees
├── worker-<N>-<desc>.sh # One per worker
├── check-progress.sh # Monitor all workers
└── integrate.sh # Merge all branches
Make executable: chmod +x scripts/*.sh
Create docs/next-run-prep.md with:
# Preparation for Run <N+1>
## Changes from Previous Run
- <what's different this time>
## Pre-Flight Checklist
- [ ] Skill patches applied
- [ ] Launch scripts created/updated
- [ ] File scope validated (no overlapping ownership)
- [ ] Test CLI invocation works
## Execution Order
1. <step 1>
2. <step 2>
...
## Known Risks
- <risk and mitigation>
Before marking the retrospective complete:
docs/retrospective-run<N>.mdgit add docs/ scripts/ && git commit -m "Retrospective: Run <N> lessons learned"| Time | Worker | Commit | Message | |------|--------|--------|---------| | ... | task-1 | abc123 | [CHECKPOINT] ... |
---
## Grading Rubric
| Grade | Criteria |
|-------|----------|
| **A** | All workers completed on time. No blocks. No merge conflicts. All conventions followed perfectly. Smooth integration. |
| **B** | All workers completed. 1-2 blocks resolved quickly. 1-2 minor merge conflicts. Conventions mostly followed. |
| **C** | All workers completed but with issues. Multiple blocks or cross-dependencies. Several merge conflicts. Some convention violations. |
| **D** | Significant issues. One or more stalled workers. Scope violations. Major merge conflicts requiring significant manual work. |
| **F** | Workflow failed or abandoned. Unrecoverable state. Systemic convention violations. Work had to be redone. |
### Grading Factors
| Factor | Weight | A | B | C | D | F |
|--------|--------|---|---|---|---|---|
| Completion | 30% | All done | All done | All done | Partial | Failed |
| Blocks | 20% | None | 1-2, quick | Multiple | Extended | Unresolved |
| Conflicts | 20% | None | 1-2 minor | Several | Major | Blocking |
| Conventions | 15% | Perfect | Minor lapses | Some violations | Frequent violations | Systemic |
| Timing | 15% | On track | Slight delays | Moderate delays | Significant delays | Abandoned |
---
## Quick Reference Commands
```bash
# Get all worker branches
git branch -r | grep 'work/task-'
# Full history for one worker
git log origin/work/task-<id>-<desc> --oneline
# Commits with timestamps
git log origin/work/task-<id>-<desc> --format="%h %ai %s"
# Find all prefixed commits
git log --all --grep="^\[CHECKPOINT\]" --oneline
git log --all --grep="^\[BLOCKED:" --oneline
git log --all --grep="^\[NEEDS:" --oneline
git log --all --grep="^\[COMPLETE\]" --oneline
# Files changed by worker
git diff --name-only main...origin/work/task-<id>-<desc>
# Merge commits in integration
git log integration/<feature> --merges --oneline
# Check for conflicts resolved
git log integration/<feature> --all --grep="conflict" --oneline
This skill analyzes workflows created by:
~/.claude/skills/parallel-orchestrator/SKILL.md) - Creates and coordinates workflows~/.claude/skills/parallel-worker/SKILL.md) - Executes assigned tasksThe retrospective can recommend updates to both skills based on analysis findings.
npx skills add jimmc414/parallel-retrospective下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer