accept
FreeAccept HQ membership invites from a magic link or raw token.
The English summary is being prepared. Showing the original description.
Run a project or session retrospective and capture reusable lessons.
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
You are reviewing past work to extract patterns that make future work better. This is not a report for its own sake — every finding should either become a learning (fed to /learn) or be acknowledged as already captured.
The goal: leave HQ smarter than you found it.
Mode detection:
$ARGUMENTS contains --session → SESSION mode$ARGUMENTS contains a project slug → PROJECT mode$ARGUMENTS is empty or ambiguous → AskUserQuestion: "A) Review a specific project. B) Review recent session work."Company resolution:
Check if the first word matches a company slug in companies/manifest.yaml. Same pattern as /brainstorm:
{co}, strip from args, load policiesAnnounce: Mode: {PROJECT|SESSION} | Company: {co}
Read these data sources (skip gracefully if any don't exist):
# 1. The PRD
# Read companies/{co}/projects/{slug}/prd.json
# Extract: stories (titles, statuses), metadata (dates, linear IDs)
# 2. Git history for the project
git log --oneline --since="{prd.createdAt}" -- {repo paths if known}
# 3. Workspace threads mentioning this project
# Glob pattern: workspace/threads/*{slug}*.json
# Read each, extract conversation_summary + files_touched
# 4. Audit log events
grep '"{slug}"' workspace/metrics/audit-log.jsonl | tail -50
# 5. Model usage (worker activity)
grep '"{slug}"' workspace/metrics/model-usage.jsonl | tail -50
# 6. Orchestrator state (if exists)
# Read workspace/orchestrator/{slug}/state.json
# 7. Brainstorm (if exists)
# Read companies/{co}/projects/{slug}/brainstorm.md
# 1. Recent threads (last 24h)
# List workspace/threads/ sorted by modification time, read top 5-10
# 2. Recent learnings
# List workspace/learnings/ sorted by modification time, read top 10
# 3. Recent audit log entries (last 24h)
tail -100 workspace/metrics/audit-log.jsonl
# 4. Recent git activity
git log --oneline --since="24 hours ago"
# 5. Current git status
git status
Present collection summary:
Data collected:
- Stories: {N} found ({done}/{total})
- Threads: {N} found
- Audit events: {N} found
- Git commits: {N} in scope
- Workers used: {list or "none tracked"}
1. Story Completion
| Story | Title | Status | Retries | Workers |
|---|---|---|---|---|
| US-001 | ... | done/failed/stalled | N | ... |
2. Worker Usage
| Worker | Tasks Assigned | Success Rate |
|---|---|---|
| ... | N | N/N |
Which workers carried the most load? Any worker used on >70% of stories?
3. Timeline
4. Quality Gate Outcomes
5. File Churn
6. Learnings Already Captured
workspace/learnings/ and companies/{co}/policies/ for rules created during this project1. What Was Accomplished
2. Files Touched
3. Failures or Retries
4. Time Distribution
5. Environment levers
Use the same seven levers as the /handoff deficiency scan (Step 2b of .claude/skills/handoff/SKILL.md). Unlike /handoff, retro reads the record: threads, learnings, the audit log, and git history from Step 1. Flag a lever only when that record shows the environment (not the task) slowed or misled the work.
| lever | use when |
|---|---|
navigation | Finding the right file, script, or doc took repeated searches or wrong turns. |
automated-checks | A test, lint, hook, or CI check was missing, flaky, slow, or misleading. |
coding-standards | A convention was unclear, contradictory, or undocumented. |
steering-bloat | Injected policies, reminders, or context crowded out what mattered or got truncated. |
tool-economy | A tool or command cost far more calls, output, or retries than the job needed. |
no-ops | A command, hook, or step ran and did nothing useful. |
information-access | Needed information, access, or a credential was unavailable or hard to reach. |
Write each finding with the handoff item fields (lever, kind, severity, summary, evidence, proposed_fix; kind is hq-core, local-setup, or repo; evidence is required) to a temp file, for example mktemp workspace/threads/.handoff-tmp/retro-deficiencies.XXXXXX. Then merge in the deficiencies[] arrays that /handoff stored in thread files modified in the last 24h:
bash core/scripts/retro-merge-deficiencies.sh --root "$PWD" \
--retro-json "{retro_deficiencies_file}" \
${HQ_ACTIVE_COMPANY:+--company "$HQ_ACTIVE_COMPANY"} \
--out "{retro_thread_file}"
The script dedupes by lever and summary (the retro's own item wins), drops items without evidence, tags each item with its source, and writes {retro_thread_file}: a thread-shaped file with the merged deficiencies[] and the newest thread's system_info. Step 5 reports from it and Step 6 files from it. When a company is bound, --company limits the merge to threads whose metadata.company lists it, so the analysis stays inside the resolved company's threads.
Flag these patterns when evidence supports them:
| Pattern | Signal | Implication |
|---|---|---|
| Complexity underestimated | Story with 2+ retries | PRD story sizing was off — capture as sizing heuristic |
| Worker overuse | Same worker >70% of stories | Consider making it a default in PRD template |
| Quality gate failures | >20% failure rate | Upstream planning issue — stories shipped before ready |
| Undeclared files | Stories with 0 files[] in PRD | File locking risk — add to PRD template guidance |
| Scope creep | Files touched outside story scope | Scope definition was too narrow or coupling wasn't anticipated |
| Architectural hotspot | Same file in >50% of stories | This file needs refactoring or better abstraction |
| Missing test coverage | Quality gate test failures | Test strategy needs strengthening for this area |
| Session fragmentation | 3+ handoffs for one project | Context overhead — consider longer sessions or better checkpoints |
| Tool mismatch | Repeated failures with specific tool/MCP | Tool setup issue or wrong tool for the job |
Only flag patterns with clear evidence. Don't speculate.
For each detected pattern:
Generate a learning candidate — state the rule in ALWAYS/NEVER format:
Classify scope:
companies/{co}/policies/core/policies/Check for duplicates — grep existing policies for similar rules
Present to user:
Learning candidates ({N} found):
1. {rule} — Scope: {company|global} — {new|already exists}
2. {rule} — Scope: {company|global} — {new|already exists}
...
Run /learn for new learnings? [Y/n]
If user approves: suggest running /learn with each new learning. Do NOT write policy files directly — /learn handles dedup, formatting, and injection.
Output to workspace/reports/{slug}-retro.md:
# {Project/Session Title} — Retrospective
**Date:** {ISO8601}
**Mode:** Project | Session
**Company:** {co}
**Duration:** {start date} → {end date}
## Summary
{2-3 sentence summary of what happened — scope, outcome, notable events}
## Stories (PROJECT mode)
| Story | Title | Status | Retries | Workers Used |
|-------|-------|--------|---------|-------------|
| US-001 | ... | done | 0 | frontend-designer |
**Completion rate:** {done}/{total} ({%})
## Worker Usage (PROJECT mode)
| Worker | Tasks | Coverage |
|--------|-------|----------|
| ... | N | N% |
## Timeline (PROJECT mode)
- PRD created: {date}
- First story: {date}
- Last story: {date}
- Elapsed: {N} days
- Velocity: {stories/day}
## Session Summary (SESSION mode)
| Thread | Summary | Files | Outcome |
|--------|---------|-------|---------|
| T-... | ... | N files | completed/partial |
## Patterns Detected
{For each pattern with evidence:}
### {Pattern Name}
**Signal:** {what was observed}
**Evidence:** {specific data point}
**Implication:** {what this means for future work}
## Quality Gate Outcomes (PROJECT mode)
- First-pass success rate: {%}
- Total retries: {N}
- Most common failure: {category}
## Learnings
| # | Rule | Scope | Status |
|---|------|-------|--------|
| 1 | {rule} | {scope} | new / already captured |
## Environment Deficiencies (SESSION mode)
Merged from this retro and thread `deficiencies[]` (last 24h). Same fields as the `/handoff` array.
| lever | kind | severity | summary | evidence | proposed_fix | source |
|---|---|---|---|---|---|---|
| {lever} | {hq-core / local-setup / repo} | {high / medium / low} | {one line} | {what concretely happened} | {change or command} | {retro or thread file} |
Write "None found." when the merged array is empty.
## What Went Well
- {Specific thing that worked — be concrete, not generic}
## What to Improve
- {Specific thing to do differently — actionable, not vague}
## Open Questions
- {Anything unresolved that should be addressed in the next project}
qmd update 2>/dev/null || true
SESSION mode, hq-core deficiencies. When {retro_thread_file} has any kind: "hq-core" item, offer to file them (ask; never file without a yes). Reuse the /handoff scripts with {retro_thread_file} as the thread:
bash core/scripts/handoff-builder-route.sh --root "$PWD" --thread "{retro_thread_file}"
route: public (...): offer /hq-bug. On yes, run bash core/scripts/handoff-autofile.sh --thread "{retro_thread_file}" --root "$PWD". It files one hq feedback bug report, applies the 7-day dedupe ledger and the secret scan, and prints one filed: / skipped: / aborted: / failed: line. Keep it as {file_result}.route: builder with brief: <path>: offer a staging PR. On yes, dispatch one visible fix agent with that brief exactly as /handoff Step 4.5 "Builder route" does (same prompt, never merge, never push to main). Keep its pr: line as {file_result}.brief: none (...), no hq-core items, or the user declines: {file_result} is none (<reason>).Remove the temp files from Step 2 afterwards.
Print:
Retro complete: {title}
Report: workspace/reports/{slug}-retro.md
Patterns detected: {N}
New learnings: {N} (run /learn to capture)
Environment deficiencies: {N} ({hq-core N}) — {file_result}
/learn, do not write policy files directlyNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Accept HQ membership invites from a magic link or raw token.
The English summary is being prepared. Showing the original description.
Capture qualifying architecture decisions as ADRs in the right HQ or repo location.
The English summary is being prepared. Showing the original description.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
The English summary is being prepared. Showing the original description.
Find shallow modules and propose deepening refactors, ranked with file refs; never edits code. Use when code is hard to change or planning a refactor.
The English summary is being prepared. Showing the original description.
Generate dark ASCII banner graphics for HQ and social launch assets.
The English summary is being prepared. Showing the original description.
Compare approaches to best-in-class prior art, merge existing work, verify cruft removal, and recommend the most durable design before PRD work.
The English summary is being prepared. Showing the original description.