starting-an-iteration
Use when beginning a new conversation to work on an open-ended goal, loading context from previous iterations through iteration journals
When & Why to Use This Skill
The 'Starting an Iteration' skill is a powerful framework for maintaining continuity in long-term, open-ended projects. It solves the challenge of context loss between AI sessions by systematically loading historical data from iteration journals. By automating the retrieval of recent progress, open blockers, and key metrics, it ensures that the AI agent remains fully aligned with the project's evolving state, enabling seamless transitions and sustained productivity across multiple conversation cycles.
Use Cases
- Complex Software Development: Resuming work on a large codebase where understanding previous logic changes, pending bugs, and architectural decisions is critical for the next steps.
- Long-term Research Initiatives: Continuing multi-stage data analysis or academic research where findings from previous weeks need to be synthesized with new queries.
- Autonomous Goal Management: Managing projects that lack a fixed 'definition of done,' requiring the agent to track ongoing initiatives and strategic pivots over time.
- Project State Recovery: Quickly rebuilding the workspace and mental model after a session timeout or when switching between different high-priority tasks.
| name | starting-an-iteration |
|---|---|
| description | Use when beginning a new conversation to work on an open-ended goal, loading context from previous iterations through iteration journals |
Starting an Iteration
Overview
Begin a new iteration for an open-ended goal by loading context from previous iterations, setting up the workspace, and preparing to continue progress.
Core principle: Each conversation is one iteration. Load recent state, understand where you left off, continue the journey.
When to Use
Use this skill when:
- User runs
/start-iterationcommand - Beginning work on an ongoing open-ended goal
- Need to load context from previous conversation sessions
DO NOT use for:
- Closed goals with definition of done (use ed3d-superpowers workflow instead)
- First-time brainstorming (use brainstorming skill first)
- One-off tasks that don't need iteration tracking
Quick Reference
| Step | Action | Tool/Agent |
|---|---|---|
| 1. Detect goal | Check for autonomy directory | Glob |
| 2. Load recent context | Read last 3-5 iterations | Task (journal-reader) |
| 3. Load older context | Summarize if >5 iterations | Task (journal-summarizer) |
| 4. Present state | Show context to user | Direct output |
| 5. Create journal | Write initial journal entry | Write |
| 6. Ready to work | Create TodoWrite tracker | TodoWrite |
Process
Step 1: Detect Existing Goal
Check if a goal already exists in the current project:
# Use Glob to check for autonomy directory
pattern: "autonomy/*/goal.md"
If goal.md found:
- Extract goal name from directory path
- Proceed to Step 2 (Load Recent Context)
If no goal found:
"No autonomy goal found in this project.
Use `/create-goal` to set up a new open-ended goal first, then run `/start-iteration` to begin work."
Stop here - cannot start iteration without a goal.
Step 2: Load Recent Context
For existing goals, load context from recent iterations:
Count iterations:
# Use Glob to find iteration files pattern: "autonomy/[goal-name]/iteration-*.md"Determine iteration number:
- Count existing files: N
- This iteration will be: N+1
Dispatch journal-reader agent:
Task tool with subagent_type: "autonomy:journal-reader" Prompt: "Read last 3-5 iterations for goal '[goal-name]' and extract: - Current state - Open blockers and questions - Recent progress - Key metrics - Recommended next steps" Model: haikuWait for agent response with structured context
Step 3: Load Older Context (if >5 iterations)
If more than 5 iterations exist, summarize older ones:
Check if summary.md exists:
# Use Read to check file: "autonomy/[goal-name]/summary.md"Determine what needs summarizing:
- If summary.md exists: Check which iterations it covers
- If summary.md missing OR outdated: Summarize iterations 1 through (N-5)
Dispatch journal-summarizer agent:
Task tool with subagent_type: "autonomy:journal-summarizer" Prompt: "Summarize iterations [range] for goal '[goal-name]'. Extract major initiatives, persistent blockers, key learnings, strategic pivots, and metric trends. Update summary.md." Model: haikuWait for agent to write summary.md
Step 4: Present State to User
Combine findings from journal-reader (and summary if applicable):
**Iteration [N] started for goal: [goal-name]**
## Current State
[From journal-reader: most recent ending state]
## Recent Progress (Last 3-5 Iterations)
[Condensed summary of what was accomplished]
## Open Blockers
- [Blocker 1]
- [Blocker 2]
## Open Questions
- [Question 1]
- [Question 2]
## Key Metrics
- [Metric]: [Current value] (was [previous value])
## Recommended Next Steps
[From previous iteration's suggestions]
---
**Ready to continue. What should we work on this iteration?**
Step 5: Create Initial Journal Entry
Before beginning work, create the journal file for this iteration:
Determine iteration number and filename:
- Count: N existing iterations
- This iteration: N+1
- Filename:
iteration-NNNN-YYYY-MM-DD.md(today's date)
Prompt user for iteration intention:
"What do you want to accomplish this iteration? This helps keep us honest about the goal. We'll check against this intention when ending the iteration."Write initial journal entry:
# Iteration NNNN - YYYY-MM-DD
## Beginning State
[From journal-reader output or user context:
- Current progress summary
- Known blockers from previous iteration
- Open questions being addressed
- Current metric values if tracked]
## Iteration Intention
[User's stated intention for this iteration]
## Work Performed
### Skills & Workflows Used
[Will be filled during checkpoint or ending]
### Key Decisions Made
[Will be filled during checkpoint or ending]
### Artifacts Created/Modified
[Will be filled during checkpoint or ending]
### External Context Gathered
[Will be filled during checkpoint or ending]
### Reasoning & Strategy Changes
[Will be filled during checkpoint or ending]
### Blockers Encountered
[Will be filled during checkpoint or ending]
### Open Questions
[Will be filled during checkpoint or ending]
## Ending State
[Will be filled when ending iteration]
## Iteration Metadata
[Will be filled when ending iteration]
- Write file to:
autonomy/[goal-name]/iteration-NNNN-YYYY-MM-DD.md
Step 6: Ready to Work
Create TodoWrite tracker for current iteration work:
TodoWrite with todos: - [First task based on next steps or user intention] - [Additional tasks as identified]Begin work on the goal
Important Notes
Iteration Numbering
- Use 4-digit zero-padded numbers:
0001,0002, ...,0999,1000 - Format:
iteration-NNNN-YYYY-MM-DD.md - Date is when iteration occurred (today)
Context Loading Strategy
- Iterations 1-5: Load all in detail with journal-reader
- Iterations 6+: Load last 3-5 in detail, older iterations via summary
- Update summary every 5 iterations (5, 10, 15, 20, etc.)
Agent Delegation
Always use Task tool to dispatch journal-reader and journal-summarizer:
- Prevents context pollution in main conversation
- Uses Haiku model for efficiency
- Returns structured findings
Never read journals yourself - always delegate to agents.
Common Mistakes
| Mistake | Reality |
|---|---|
| "I'll quickly read the journals myself" | NO. Always dispatch agents. Journals can be large. |
| "User goal seems closed-ended, but I'll use autonomy anyway" | NO. Autonomy is for open-ended goals only. |
| "I'll skip loading older iterations to save time" | NO. Context is critical. Always load per strategy. |
| "I'll create summary.md myself" | NO. Dispatch journal-summarizer agent. |
| "Goal exists, so I'll skip asking user what to work on" | NO. Always present state and ask for direction. |
After Starting
Once iteration is started:
- Journal file created with Beginning State and Intention
- Work normally on the goal using appropriate skills and workflows
- Track progress mentally or with TodoWrite
- Use
/checkpoint-iterationto save progress before compaction or at interim points - When ready to conclude, use
/end-iterationto finalize journal entry