Agent skill

Session Retro

by werf in werf/werf

Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter…

Apache-2.0Auto-check passedDevOps & Cloud

Install Session Retro

skills CLI
$ npx skills add werf/werf --skill session-retro -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install werf/werf session-retro --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/werf/werf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/session-retro .claude/skills/session-retro && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
session-retro
GitHub stars
4.7k
Token cost
~1.6k tokens
SKILL.md length
914 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter…

  • Works in 6 steps: Scan the session → Classify each finding → Draft the change → …
  • Tasks that involve Linting and formatting
  • SKILL.md covers 1. Scan the session, 2. Classify each finding, 3. Draft the change and 4. Confirm before applying, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Session Retro is an agent skill from werf/werf. Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter rules, CI checks. Use at the end of a session, when asked to reflect/retro, or when invoked as /session-retro.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Linting and formatting and CI/CD. It works with Docker. The repository describes itself as: A solution for implementing efficient and consistent software delivery to Kubernetes facilitating best practices. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Linting and formatting
  • Tasks that involve CI/CD

Example prompts

  • “/session-retro”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Scan the session
  2. Classify each finding
  3. Draft the change
  4. Confirm before applying
  5. Apply through the repo's own conventions
  6. Report

What it can do on your machine

Read from SKILL.md and the folder at commit fa73c7a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Session Retro loads about 1.6k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 914 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from werf/werf at commit fa73c7a, republished under its Apache-2.0 licence (© werf). 914 words, ~1,568 tokens.

Download SKILL.mdSave it as .claude/skills/session-retro/SKILL.md (or your agent's skills folder).
name
session-retro
description
Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter rules, CI checks. Use at the end of a session, when asked to reflect/retro, or when invoked as /session-retro.

Session Retro

A session carries signal about how the harness should behave next time: corrections, discovered conventions, skills that turned out wrong, workflow friction. It evaporates when the conversation ends unless something writes it down. This skill is that step.

The output is a harness change — a change to whatever tells the next session how to work. Often that is prose (AGENTS.md, CODESTYLE.md, CONTRIBUTING.md, a skill under .agents/skills), but it is just as legitimately a Taskfile.dist.yaml target, a .golangci.yml rule, a CI check, an issue/PR template, or a docs/ page. Pick the landing spot from the finding, not from a list.

1. Scan the session

  • Corrections: the user said "no", "not like that", or redid your work. What rule would have prevented it?
  • Repeated explanations: anything explained more than once — the current instructions don't cover it.
  • Discovered conventions: facts that came from the user or from reading the repo, not from any doc — build quirks, naming schemes, "we always do X here".
  • Skill bugs found in use: a skill that gave wrong guidance, missed a step, or referenced a stale path or command.
  • Workflow decisions: the user picked one approach over another ("always do it this way from now on") — a durable preference, not a one-off call.
  • Friction: a check that was slow, awkward, or easy to forget, or a step done by hand that a task target could do.
  • Near-misses: something caught just before landing (wrong branch, guessed path, unverified assumption) — the cheapest lesson, the cost is already paid.
  • Context waste: tool calls that cost a lot of context for little return — a whole-file read where a grep would do, the same file read twice, a raw task build/task test log pasted in full, a subagent spawned for a one-line lookup, or a wide search done inline instead of delegated. A generic bash call where a purpose-built tool exists is the expensive one. Each maps to a rule.
  • Skill usage: which skills actually fired, and whether it mattered. A skill whose body was never opened during the work it governs guided nothing, however apt its name.
  • Prompt friction: the request as posed cost tokens — a file the user already knew and you hunted for, a constraint revealed after you built the wrong thing, work redone that one clarifying question would have prevented. If a question you should have asked would have caught it, that is a rule for you; otherwise it is feedback for the user, not a file.

Those three are denominated in tokens, so measure them instead of recalling them: per-message usage lives in the session transcript (~/.pi/agent/sessions/<cwd-slug>/*.jsonl, or ~/.claude/projects/<cwd-slug>/*.jsonl). Aggregate inside the analysis script and print only the top consumers — dumping per-message rows into the conversation costs more than the finding is worth. Match skills by file path (skills/<name>/SKILL.md), never the bare name, and keep frontmatter-only, body-read, and edited apart. With no transcript available, drop these cuts rather than estimating from memory.

Ignore one-off task specifics, anything an existing doc, skill, or check already covers, and raw totals with no attributable cause — a per-tool call-count table is not a finding.

Show full SKILL.md (400 more words)Show less

2. Classify each finding

Ask two questions: who needs to know this, and can a machine enforce it instead of a human remembering it?

Finding is about…Goes into
A rule a tool can checkA task target, a .golangci.yml rule, or a CI check — ALWAYS prefer this over a sentence asking someone to remember
How to work in this repo — commands, verification, scope disciplineAGENTS.md
Go design or naming conventionCODESTYLE.md
Commit/branch/PR types and scopesCONTRIBUTING.md
A whole reusable procedureA skill in .agents/skills
Behavior a werf user hits, not an agentdocs/, or command help text (then task doc:gen)
One-off, won't recurNothing

Search before writing: most findings are a missing line in something that already exists, not a new file. Extend the closest existing skill or section rather than creating a near-duplicate.

3. Draft the change

  • Make the smallest edit that closes the gap; don't rewrite unrelated sections.
  • Match the file's existing tone — AGENTS.md and CODESTYLE.md are terse, imperative, bulleted.
  • A rule belongs in exactly one place. Cross-reference instead of duplicating; a copied rule drifts.
  • Don't restate in prose what a task command or linter already enforces.
  • When a tool has become self-documenting — its own descriptions now carry the contract — TRIM the skill that taught workarounds for it instead of layering notes on top. A skill keeps only what the tool cannot know: local conventions and domain norms.

4. Confirm before applying

  • Low-risk (typo, stale path or command, clarifying a sentence): apply directly.
  • A new mandatory rule, a changed workflow, a new skill, or any change to tooling and CI: state the proposed wording and rationale, and confirm before writing.

5. Apply through the repo's own conventions

Harness files are versioned like code: branch and open a PR per git-conventions and pull-request. NEVER push to a release branch (main, 3, 2, 1.2) directly. A change to Taskfile.dist.yaml, .golangci.yml, or CI must be run once before it is proposed — an unverified check is worse than none.

6. Report

List what changed, file by file, and where each finding was routed — including the ones dropped as one-off, so nothing is silently omitted. Report skill usage as a short table — skill, tier reached, body reads, and one line of impact: what it changed, or what it would have prevented. Report context-waste and prompt-friction findings with their measured cost and the turn they came from, even when they produce no file.

© werf, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/session-retro of werf/werf.

Open the folder on GitHubat commit fa73c7a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in werf/werf, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Session Retro next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Session Retro compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Session Retro this skillwerf/werf4.7k—~1.6kAutomated safety check: PassApache-2.0
GitHub Actions CreatorFNOSP/FlyNarwhal4951 repos~2.4kAutomated safety check: PassAGPL-3.0
Megalinter Checknvuillam/npm-groovy-lint2481 repos~3.9kAutomated safety check: NotesMIT
Modern Web GuidanceJetBrains/skills3633 repos~1.4kAutomated safety check: PassApache-2.0
Configuration GeneratorArabelaTso/Skills-4-SE253—~2.8kAutomated safety check: NotesApache-2.0
Golang Continuous Integrationsamber/cc-skills-golang3.4k—~3.7kAutomated safety check: PassMIT

Similar skills

  • GitHub Actions Creator

    FNOSP/FlyNarwhal

    A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.

    495 GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • Megalinter Check

    nvuillam/npm-groovy-lint

    Collect MegaLinter lint errors for the current repository. An agent skill from nvuillam/npm-groovy-lint.

    248 GitHub starsUsed in 1 repo~3.9k tokens
    DevOps & CloudAuto-check: notes
  • Modern Web Guidance

    JetBrains/skills

    Official

    Search tool for modern web development best practices. An agent skill from JetBrains/skills.

    363 GitHub starsUsed in 3 repos~1.4k tokens
    DevOps & CloudAuto-check passed
  • Configuration Generator

    ArabelaTso/Skills-4-SE

    Generate configuration files for applications, services, and infrastructure.

    253 GitHub stars~2.8k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes
  • Golang Continuous Integration

    samber/cc-skills-golang

    GitHub Actions CI/CD pipeline configuration for Golang projects — workflow files for test, lint, SAST, coverage and vulnerability-scan jobs, Dependabot and Renovate config files, GoReleaser release…

    3.4k GitHub stars~3.7k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Verify

    gocronx-team/gocron

    Reproduce the complete gocron CI pipeline locally and report every result.

    808 GitHub stars~529 tokensUpdated 5 days ago
    DevelopmentAuto-check passed

More from werf/werf

  • werf conventions for branch names and commit messages. An agent skill from werf/werf.

    4.7k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Pull Request

    werf/werf

    Generates Pull Request titles and descriptions according to werf conventions.

    4.7k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Review

    werf/werf

    Code review of a pull request, branch, or diff. An agent skill from werf/werf.

    4.7k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Independent challenge pass for a non-trivial or high-risk change.

    4.7k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • How to treat conclusions inherited from an earlier session — handover notes, prepared comments, verdict files, plans.

    4.7k GitHub stars~669 tokensUpdated yesterday
    Auto-check passed
  • Verify a test actually falsifies the behavior it claims to cover, via real mutation.

    4.7k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Session Retro

What does Session Retro do?

Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter…. Session Retro is an agent skill from werf/werf. Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter rules, CI checks.

When should I use Session Retro?

Session Retro fits situations like: tasks that involve Linting and formatting; tasks that involve CI/CD.

How do I install Session Retro in Claude Code?

Run `npx skills add werf/werf --skill session-retro -a claude-code`. Or copy the skill folder (.agents/skills/session-retro in werf/werf) into .claude/skills/session-retro in your project. Claude Code loads it when a task matches its description.

How do I install Session Retro in Codex?

Run `npx skills add werf/werf --skill session-retro -a codex`. Or copy the skill folder (.agents/skills/session-retro in werf/werf) into .agents/skills/session-retro in your project. Codex loads it when a task matches its description.

Can I use Session Retro in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add werf/werf --skill session-retro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-retro, .gemini/skills/session-retro, .github/skills/session-retro and .opencode/skills/session-retro in your project.

What does Session Retro need to run?

SKILL.md names no scripts, command-line tools or credentials: Session Retro is instructions for the agent only.

Does Session Retro access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Session Retro safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Session Retro use?

Session Retro is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Session Retro use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Session Retro?

Skills that share tags, products or a category with Session Retro: GitHub Actions Creator (FNOSP/FlyNarwhal, 495 stars), Megalinter Check (nvuillam/npm-groovy-lint, 248 stars), Modern Web Guidance (JetBrains/skills, 363 stars) and Configuration Generator (ArabelaTso/Skills-4-SE, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Session Retro?

werf (a GitHub organization) maintains it in werf/werf, which has 4,728 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

Source: werf/werf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.