---
name: goal-retrospective
title: "Goal Retrospective"
description: "Periodic Act step in PDCA: review pursuit progress, emit verdict + recommended next action for owner review"
category: core
status: active
model_tier: capable
triggers:
  - "retrospective on goal"
  - "review goal progress"
  - "goal retrospective"
tools_granted:
  - list_goals
  - list_tasks
  - search_vault
  - read_vault_file
  - query_knowledge
  - submit_retrospective
priority: 7
---

## Instructions

You are running a **retrospective** on a goal the owner is pursuing autonomously. This is the **Act step** in the PDCA cycle: the agent has been planning (Plan) and working (Do), metric observations have been captured (Check), now you synthesize what's happening and recommend a next step.

### The workflow is EXACTLY three steps

**Step 1 — Read the context.** Use `read_vault_file` on the goal to see: success_metric, metric_observations (trend), answered_questions (what the owner has clarified), pursuit_log (what was attempted), tasks + statuses. Optionally `list_tasks` for project-scoped task detail.

**Step 2 — Synthesize.** Compare recent observations against the target. Look at trend (up/down/flat). Check whether tasks are being completed or piling up as delegated. See if any answered_questions changed the plan.

**Step 3 — Submit.** Call `submit_retrospective` ONCE with your verdict + recommendation. Done.

### Verdict options

- **`on_track`** — metric is progressing toward the target on the expected trajectory. Tasks are completing. No fundamental issues.
- **`off_track`** — real progress is happening but below what's needed to hit the target by the target_date. The plan needs adjustment (more resources, different tactics, different scope).
- **`stuck`** — no measurable progress in the last several dispatches. Same blockers recur. Something is structurally wrong — the plan or the metric itself.
- **`done`** — the metric is met or effectively met. The goal can be marked achieved.

### Recommended action options

- **`continue`** — stay the course. Informational only — no state change.
- **`pivot`** — plan needs concrete adjustment. Your `recommendation_note` MUST name the specific change (drop tactic X, focus on audience Y, switch from 3 segments to 2). The agent's next dispatch reads this as context.
- **`ask_owner`** — a direction-level question only the owner can answer. Informational — owner will also see the retrospective and may respond directly. Does NOT create a pending question — use `ask_goal_question` in the pursuit skill for that.
- **`pause`** — the goal should stop being pursued for now (wrong time, blocked on external dependency, scope wrong). Accepting this pauses pursuit.
- **`mark_achieved`** — verdict must be `done`. Accepting this moves the goal to achieved status.

### Rules

- **One retrospective per dispatch.** Call `submit_retrospective` exactly once. Do not narrate.
- **Verdict must match evidence.** Don't say `on_track` to be nice — the owner needs honest signals. If metric observations are flat for 3+ dispatches, that's `stuck`, not `on_track`.
- **`mark_achieved` requires evidence.** Only propose when observations meet the target. The agent's self-report is not enough — there must be a real observation.
- **Don't propose `pivot` without a concrete note.** "Change direction" is useless. "Drop the partnership outreach, focus on product-led growth via GitHub" is actionable.
- **Insights are synthesis, not narration.** 2-3 sentences summarizing the data — "3 of 5 articles drafted; metric trend up 40% this week; delegation to writer working well" — not a replay of the pursuit log.

## Examples

### Input
```
Run skill `goal-retrospective` with arguments:
{"goal_slug": "publish-5-newsletter-editions", "dispatch_count": 6}
```

### Correct sequence

1. `read_vault_file(path="goals/publish-5-newsletter-editions.md")` — read metric, observations, answered_questions, pursuit_log
2. `list_tasks(project="ai-newsletter")` — see task state
3. `submit_retrospective(goal_slug="publish-5-newsletter-editions", verdict="on_track", insights="3 of 5 editions published, 2 in draft. Latest metric observation 3 of 5. Average time per edition dropping as the writer gets rhythm. Owner's 'ship weekly' answer from dispatch 2 is being followed.", recommended_action="continue", recommendation_note="Keep the current cadence. Next dispatch can focus on editions 4-5.", dispatch_count=6)`

### Input (stuck goal)
```
Run skill `goal-retrospective` with arguments:
{"goal_slug": "agntspace-market-penetration", "dispatch_count": 12}
```

### Correct output

`submit_retrospective(goal_slug="agntspace-market-penetration", verdict="stuck", insights="3 observations over 12 dispatches: 0 → 5 → 5 stars. Metric target is 1000. Current trajectory will not hit it. All 4 initial tasks delegated but only 1 returned useful output. Researcher task failed twice on audience validation.", recommended_action="ask_owner", recommendation_note="The market-penetration approach assumed organic growth through content. After 2 months no traction signal. Owner needs to decide: change tactic (paid ads, partner co-marketing) or lower the target (100 stars instead of 1000).", dispatch_count=12)`

### What NOT to do

- ❌ "I reviewed the goal and found the following..." — NARRATIVE. No tool calls.
- ❌ `verdict: on_track` when observations show flat trend for 3+ dispatches.
- ❌ `recommended_action: pivot` without a concrete note.
- ❌ `recommended_action: mark_achieved` without a current observation that meets the target.
- ❌ Calling `submit_retrospective` multiple times — only the last one wins.
