# Retrospective

Extract operational knowledge from a completed project. The goal is to accumulate institutional learning that makes future projects better — shorter timelines, fewer surprises, better estimates, stronger processes.

This is not a performance review. It's a knowledge extraction exercise. The focus is on what was surprising, what assumptions were wrong, and what the business now knows that it didn't know before.

## Process

### Reconstruct the Timeline

Read the project's Task node and its notes. The structured lifecycle notes (`[PROJECT:START]`, `[PROJECT:PHASE]`, `[PROJECT:COMPLETE]`) provide the skeleton. Fill in the timeline:

- When did each phase start and end?
- Where were the delays? What caused them?
- What went faster than expected? Why?
- Were the original estimates accurate? If not, by how much and in which direction?

### Identify Learnings

For each phase of the project, ask:

- **What was surprising?** — anything that didn't match expectations, positively or negatively
- **What assumption was wrong?** — beliefs that were disproved by reality (e.g., "materials take 2 weeks" when they actually took 3)
- **What would you do differently?** — concrete changes to approach, process, or tools
- **What worked well?** — approaches worth repeating on future similar projects

Focus on learnings that are transferable to future projects, not one-off observations about this specific project.

### Persist Learnings

For each actionable learning, write it to the graph so it can be surfaced on future similar projects:

Use `memory-write` to create an entity with:
- **labels:** `["DefinedTerm"]`
- **properties:**
  - `name`: Short description of the learning (e.g., "Kitchen refit material lead times")
  - `description`: Full learning with context (e.g., "Materials for a kitchen refit consistently take 3 weeks, not 2. Factor in supplier delays and partial deliveries. Always confirm lead times directly with the supplier rather than relying on catalogue estimates.")
  - `category`: `"project-learning"`
- **relationships:** `[{ targetId: "{project task ID}", type: "ABOUT" }]`

The `ABOUT` relationship links the learning to the source project. The embedding on the entity enables `memory-search` to surface it when a future project has a similar description.

### Present the Summary

Summarise the retrospective for the user:

- **Project:** Name and duration
- **Outcome:** Completed/partial/abandoned, with task completion stats
- **Key learnings:** The 3-5 most important things learned, each in one sentence
- **Applied to graph:** How many learnings were persisted and what they cover
- **Recommendation:** One concrete action for the next similar project

Mark the retrospective complete: `[PROJECT:PHASE] Retrospective — {n} learnings captured`.

## Cross-Project Learning

When starting a new project, `memory-search` with the project description will surface relevant learnings from past projects (because learnings are DefinedTerm entities with embeddings). Present these to the user during the Plan phase:

"Based on past projects, here's what I've learned that might be relevant:
- {learning 1} (from {source project})
- {learning 2} (from {source project})"

The user decides whether to act on prior learnings. They are inputs to planning, not constraints.

## When to Use

- After a project sprint completes (the Learnings phase of a Full tier sprint loads this reference)
- "What did we learn from the Henderson project?"
- "Let's do a retro on the kitchen refit"
- "Before we start the next one, what should we keep in mind?"
- On request at any time for any completed project
