Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Delivery Loop Retro

ASecurity

Write a structured retrospective of a delivery-loop run (frontend-delivery-loop, backend-delivery-loop, or fullstack-delivery-loop) that judges what went well, what went badly, where time/roundtrips/tool calls were wasted and in which skill or agent, how the agents integrated, and the session id + trace file paths — then save it as a Markdown report for skill-evolution-factory to act on. Use this the moment a delivery loop finishes (or stalls), whenever the user says "retro", "post-mortem", "...

4 stars
0 votes
0 copies
1 views
Added 9/19/2026
developmentpythongobashfrontendbackendfullstack

Works with

climcp

Security Analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned 9/19/2026

$npx -y skills add jgamaraalv/delivery-loop --skill delivery-loop-retro --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Delivery Loop Retro?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Delivery Loop Retro
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jgamaraalv-delivery-loop-retro/badge)](https://www.skillsdirectory.com/skills/jgamaraalv-delivery-loop-retro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: delivery-loop-retro
description: >-
  Write a structured retrospective of a delivery-loop run (frontend-delivery-loop,
  backend-delivery-loop, or fullstack-delivery-loop) that judges what went well, what
  went badly, where time/roundtrips/tool calls were wasted and in which skill or agent,
  how the agents integrated, and the session id + trace file paths — then save it as a
  Markdown report for skill-evolution-factory to act on. Use this the moment a delivery
  loop finishes (or stalls), whenever the user says "retro", "post-mortem", "retrospectiva",
  "feedback loop", "evaluate the loop", "how did the loop go", "what should we improve in
  the loop/agents", or asks to grade/critique a frontend/backend/fullstack delivery-loop
  run. Run it even if the user only gestures at it — a finished loop is the trigger.
---

# Delivery-Loop Retro

## What this is

A delivery loop (`frontend-`/`backend-`/`fullstack-delivery-loop`) just ran — an
orchestrator drove a team of specialist subagents through test → diagnose → fix →
review → re-test until ship-ready. This skill turns that run into a **rigorous,
evidence-backed retrospective** whose entire purpose is to **make the next run
better**. The report you write is not for a human to admire and forget; it is the
**input to `skill-evolution-factory`**, which mutates the load-bearing lines of the
loop skills and persona files and measures the delta. So every criticism you make
must point at a *specific file and a specific instruction the factory can change.*

You are the analyst, not the orchestrator. You did not (necessarily) drive the loop;
your job is to reconstruct what happened from the evidence, judge it honestly, and
hand the plugin maintainers a list of changes worth measuring.

## When you run

The natural trigger is **immediately after a loop reaches its boundary** —
"tests green + reviews clean + production-ready", or a stall the user wants
diagnosed. You normally run **in the same session that drove the loop**, so you
have live memory of the dispatches *and* the durable trace on disk. If you're
pointed at a *past* session instead, pass its id to the collector (see below);
everything else is the same.

## The output, and where it goes

One Markdown report per loop run. Resolve the destination **once, in this order**:

1. If a `docs/feedbackloops/` directory exists at the plugin's dev checkout root
   (i.e. `${CLAUDE_PLUGIN_ROOT}/docs/feedbackloops/`), write there. This is where
   `skill-evolution-factory` reads its inputs.
2. Else write to `<host-repo>/docs/feedbackloops/` (the project the loop ran in)
   and **tell the user** the dev checkout wasn't found, so they can move it.

Create the directory if missing. Filename:
`<YYYY-MM-DD>-<loop>-<change-slug>-<session8>.md` — e.g.
`2026-06-18-frontend-delivery-loop-gated-nav-3e3febb7.md`
(`<session8>` = first 8 chars of the session id; `<change-slug>` = the OpenSpec change
or feature the loop delivered, kebab-cased).

## How to write the report

### Step 1 — Collect the trace (deterministic, do this first)

Run the bundled collector from the **host repo root** (the project the loop ran in).
It resolves the session id, transcript path, and a precise per-subagent roster
(tokens, wall-clock, tool-call counts) from the harness transcript, plus each
persona's persisted episode:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/.claude/skills/delivery-loop-retro/scripts/collect_trace.py"
# add --session <id> to target a past run; --json for the raw summary; --help for flags
```

Paste its Markdown **Trace index** verbatim into the report's appendix — it is your
session-id + trace-paths deliverable and the spine of your metrics. Don't hand-tally
what the script already counts; spend your effort on *why* the numbers look like they
do.

The collector is the floor, not the ceiling. The richest evidence is the
**per-subagent return content** and the **roundtrips between dispatches**, which
live in the transcript and in your own memory of the run. `references/evidence-sources.md`
maps every signal — the transcript anatomy, the `toolStats`/`toolBreakdown` that
exposes a persona burning tool calls, the agent-memory episodes (`taskId`, `objective`,
`specDrift`, `notes`), and the OpenSpec change/vault artefacts. **Read it before you
judge** so you cite mechanisms, not impressions.

### Step 2 — Judge along the axes that matter

Reconstruct the run, then form a defensible verdict on each axis. For every claim,
hold yourself to: *what exactly happened, in which dispatch, costing what, and which
skill/agent line is responsible.* The retro doc at
`docs/retro-frontend-delivery-loop-2026-06-05.md` is the bar — notice how each point
names a mechanism (a Radix uncontrolled flip, a `.toastRegion:empty` a11y regression)
and a cost, never a vibe.

- **What worked** — and *why it worked*, so the factory doesn't accidentally erode it.
  A good thing you can't explain is a good thing you'll lose in the next edit. This section is
  **load-bearing downstream**: `skill-evolution-factory` turns each named positive into a *guard
  fixture* — a behaviour the baseline passes that any promoted edit must still pass — so the goal of
  "push the negatives → 0 without losing the positives" is enforced mechanically. Name each positive
  concretely enough that it could be turned into a pass/fail check (the behaviour, the dispatch/episode
  that shows it, the mechanism), not as vague praise. **Favour positives a fresh model would NOT do on
  its own** — a project-specific convention, a named path, a rule the loop only follows because an
  instruction says so. A positive that's just generic good practice (a competent agent does it anyway)
  makes a weak guard: the factory can't protect a behaviour that won't regress when its instruction is
  removed. The load-bearing positives are the non-obvious ones.
- **What went badly** — defects that escaped, wrong verdicts, gates that missed,
  fixers that decided scope they shouldn't have.
- **Friction & waste** — the heart of the report. Where did the loop spend time,
  tokens, and tool calls it didn't need to? Look hard at: high tool-call/long-duration
  dispatches (a driver re-learning the MCP sandbox; a fixer re-discovering
  architecture); **roundtrips** (finding → fix → re-review ping-pong, a fixer blocked
  on an artifact another in-flight task promised, a reviewer re-flagging the same
  thing); redundant dispatches; `AskUserQuestion` rounds that interrupted for
  decisions the user rubber-stamped. **Attribute each one to the responsible
  skill/reference/persona line** — that attribution is what the factory consumes.
- **Agent integration** — how the team composed. Diagnose-vs-fix discipline (did
  reviewers/drivers stay diagnose-only; did fixers avoid deciding what was wrong);
  handoffs and `SendMessage` resumes; parallel-wave file ownership (any clobbering or
  near-miss); whether the orchestrator routed findings to the right fixer; whether
  context was lost across a dispatch boundary. Both what clicked and what ground.

### Step 3 — Turn every negative into an improvement target

This is what separates this report from a diary. For each problem worth fixing,
produce a row the factory can act on directly. A target that doesn't name a file and
an instruction is **not done** — keep working it until it does.

```markdown
## Improvement targets for skill-evolution-factory

| # | Symptom (observed, with cost) | Target file | Section / load-bearing line | Proposed change (falsifiable) | Evidence |
|---|---|---|---|---|---|
| 1 | playwright-expert spent 247 tool calls / 29min re-discovering the MCP sandbox limits | `.claude/agents/frontend/playwright-expert.md` | the "live drive" grounding block | State the known sandbox limits (no `URL`/`Buffer`/`atob`/`setTimeout`; FS at repo root) inline so the driver doesn't probe for them | dispatch #18; episode `…_behaviour…txt` |
```

Rules that make a target usable:
- **Open the real file and read the instruction before you propose changing it.** This is
  the single highest-leverage habit, and the one that most often saves the factory's
  budget. The naive retro proposes "state X in the persona" — but X is frequently *already
  there*, and the real failure is that it's buried, unenforced, or contradicted elsewhere.
  Proposing to add something that exists is worse than no target: the factory spends a full
  tournament proving a no-op. So for every target, read the actual lines, **quote the
  current instruction verbatim**, and frame the change as a *delta against that quote*
  ("line X already says '…' — the fix isn't to add it, it's to hoist it out of a run-on
  bullet into a standalone pre-flight so it's salient"). A target you wrote without opening
  the file is a guess.
- **Anchor to quoted text, not just a line number.** Line numbers are convenient but rot —
  the files get edited (including *by the factory*), and a stale number points at the wrong
  place. The factory re-locates load-bearing blocks by *content*. So cite the **section
  heading and a short quoted phrase** of the instruction as the durable anchor; add the
  line number as a secondary convenience, not the sole locator.
- **Name the real file.** Loop workflow lives in `.claude/skills/<loop>/SKILL.md` and
  its `references/*.md`; persona behaviour lives in `.claude/agents/<area>/<persona>.md`.
  Point at the one that actually carries the instruction — the factory mutates *lines*,
  so "improve the loop" is useless; "the wave-gate rule in `references/review-gate.md`"
  is actionable. Use `references/evidence-sources.md` for the file map if unsure.
- **Make the change falsifiable.** Phrase it as a hypothesis the factory can test:
  "stating X inline will stop the driver probing for it," not "make the driver better."
- **Generalize, don't overfit.** You're proposing edits that fire across *every future
  run*. Fix the class ("fixers copy design snippets verbatim, latent bugs and all → tell
  the architect to mark snippets normative-vs-illustrative"), not the one instance.
- **Cite evidence** — dispatch number, episode filename, or transcript moment — so a
  maintainer can verify the symptom before paying to evolve against it.
- **Don't invent problems.** A clean run with no high-value targets is a finding; say so
  rather than padding the list. The factory wastes budget chasing non-discriminating
  edits.

### Step 4 — Assemble and save

Write the report to the resolved path using the structure below, then tell the user
the path and give a 3-5 line verbal summary (loop, result, top 1-2 improvement
targets). The full annotated template with an example lives in
`references/report-template.md`; the canonical skeleton is:

```markdown
# Delivery-Loop Retro — <loop> · <change-slug>

**Repo:** … · **Branch:** … · **Date:** … · **Result:** <ship-ready | stalled @ …>
**Session:** `<id>` · **Loop shape:** <waves / dispatches / review rounds in one line>

## 1. Metrics            ← from the collector's Trace index, plus what you add
## 2. What worked (and why)
## 3. What went badly
## 4. Friction & waste    ← per-incident, attributed to a skill/agent line, with cost
## 5. Agent integration
## 6. Improvement targets for skill-evolution-factory   ← the hand-off table (Step 3)
## 7. Appendix — evidence
   - Trace index (collector output, verbatim)
   - Notable subagent returns / episodes / Urgent findings
```

## The quality bar

- **Evidence or it didn't happen.** Every positive and negative cites a dispatch, an
  episode, a finding, or a transcript moment. No unsupported adjectives.
- **Cost-quantified.** Friction without a number ("slow", "wasteful") is unactionable.
  Attach tokens, tool calls, wall-clock, or roundtrip count — the collector gives you
  all four per dispatch.
- **Attributed.** Every improvement target names the file and instruction to change.
- **Honest about the clean parts.** Protecting what worked matters as much as fixing
  what didn't — an unexplained strength gets edited away. And don't manufacture targets
  to look thorough.
- **Self-contained.** A maintainer who never saw the run should be able to read the
  report, open the cited traces, and agree with each target without asking you anything.

## Files in this skill

- `scripts/collect_trace.py` — deterministic trace collector (session id, transcript
  path, per-subagent roster with tokens/duration/tool-calls, episode roster, loop
  detection). Stdlib-only, best-effort, never aborts the retro.
- `references/evidence-sources.md` — where every signal lives and how to read it: the
  transcript anatomy, agent-memory episodes, OpenSpec change/vault artefacts, and the
  file map (which skill/agent file carries which behaviour) you target in Step 3.
- `references/report-template.md` — the full annotated report template with a worked
  example, modelled on `docs/retro-frontend-delivery-loop-2026-06-05.md`.

Attribution

jgamaraalvjgamaraalv
View sourceSee grades on GitHubMore from jgamaraalv →
SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

285172 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

10311 votes
View all in development →