Agent skill

Distill Feedback

by AnastasiyaW in AnastasiyaW/codex-claude-code-config

Turn captured user-correction signals into durable rules (learn-from-corrections loop).

MITAuto-check passed

Install Distill Feedback

skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill distill-feedback -a claude-code

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

GitHub CLI
$ gh skill install AnastasiyaW/codex-claude-code-config distill-feedback --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/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/development/distill-feedback .claude/skills/distill-feedback && 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
distill-feedback
GitHub stars
154
Token cost
~2k tokens
SKILL.md length
947 words
Files
2 (incl. scripts)
Skills in repo
50
Repo updated
First seen
Licence
MIT

At a glance

Turn captured user-correction signals into durable rules (learn-from-corrections loop).

  • Works in 6 steps: Extract the queue (deterministic) → Detect durable corrections… → Dedup + draft atomic rules → …
  • - /distill-feedback
  • SKILL.md covers Procedure, Gotchas, Troubleshooting and Related
  • Runs Python scripts from its folder; calls python

What it does

Distill Feedback is an agent skill from AnastasiyaW/codex-claude-code-config. Turn captured user-correction signals into durable rules (learn-from-corrections loop). Use when - /distill-feedback, "process feedback queue", "what corrections did I give you", "encode lessons from my corrections", session-feedback-capture queued sessions, "обнови правила по моим поправкам", "разбери очередь обратной связи". Reads ~/.claude/feedback/queue.jsonl, LLM-semantically detects durable corrections, proposes atomic rules, applies human-gated via delta-merge. Do NOT use to act on a single in-session…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/extract_feedback_queue.py`).

The repository describes itself as: Claude Code, Codex, and multi-agent configuration system: principles, hooks, skills, and workflow patterns for AI-assisted development. The licence is MIT.

When your agent uses it

  • - /distill-feedback
  • Process feedback queue
  • What corrections did I give you
  • Encode lessons from my corrections

Example prompts

  • “process feedback queue”
  • “what corrections did I give you”
  • “encode lessons from my corrections”
  • “/distill-feedback”

Requirements

  • Python 3

Workflow steps

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

  1. Extract the queue (deterministic)
  2. Detect durable corrections (LLM-semantic, prefer a fresh sub-agent)
  3. Dedup + draft atomic rules
  4. Resolve authority for the exact change
  5. Apply (delta-merge, never rewrite)
  6. Mark only reconciled sessions processed

What it can do on your machine

Read from SKILL.md and the folder at commit 3601289. 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

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

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

  • Network

    Links to these hosts (documentation or services it may open):

    • arxiv.org

    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

Distill Feedback loads about 2k tokens when it runs. Until then it costs about 169 tokens; SKILL.md has 947 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from AnastasiyaW/codex-claude-code-config at commit 3601289, republished under its MIT licence (© AnastasiyaW). 947 words, ~2,015 tokens.

Download SKILL.mdSave it as .claude/skills/distill-feedback/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
distill-feedback
description
Turn captured user-correction signals into durable rules (learn-from-corrections loop). Use when - /distill-feedback, "process feedback queue", "what corrections did I give you", "encode lessons from my corrections", session-feedback-capture queued sessions, "обнови правила по моим поправкам", "разбери очередь обратной связи". Reads ~/.claude/feedback/queue.jsonl, LLM-semantically detects durable corrections, proposes atomic rules, applies human-gated via delta-merge. Do NOT use to act on a single in-session correction (just apply the fix directly) or to hand-edit settings.json behaviors; this only mines the queued feedback backlog into durable rules.

distill-feedback — close the learn-from-corrections loop

The Stop hook session-feedback-capture.py queues finished sessions into ~/.claude/feedback/queue.jsonl. This skill processes that queue: it finds the user turns that were durable corrections of the agent's work and turns them into rules — so the same correction never has to be given twice.

Why semantic review: standing preferences depend on context, not a trigger-word count. The formerly cited private effectiveness-test/RESULTS.md was absent when checked on 2026-09-06; its F1 claims are withdrawn from this skill until the dataset, labels, model, held-out split and raw predictions can be inspected. The rubric below is a review method, not a demonstrated accuracy guarantee. Do not substitute another paper's scores for our own.

Research and authority: ACE studies evolving context; TRACE studies compiling corrections into runtime checks. Neither proves this local extractor's accuracy. The approval boundary comes from our applicable user instructions and autonomy-risk-tiers.md, not an inferred paper mandate. New standing rules are proposals; an already authorized correction to an existing rule can be implemented within that exact authority. Codex memory changes also require the separate explicit user request and supported memory-update channel.

Procedure

1. Extract the queue (deterministic)
bash
python ~/.claude/skills/distill-feedback/scripts/extract_feedback_queue.py --limit 8

Returns JSON: {pending, sessions:[{session_id, cwd, ts, user_turns:[...]}]}. --limit bounds the LLM pass (billing: distillation is opt-in, not every-session). If pending is 0, stop — nothing to do.

2. Detect durable corrections (LLM-semantic, prefer a fresh sub-agent)

For independence (Generator-Evaluator), spawn a sub-agent with the rubric below and the extracted user_turns. Ask it to return, per genuine correction: {quote, durable_rule, applicability_condition, confidence, session_id}. Pass only the turns — not your own reasoning.

RUBRIC — a user turn is a DURABLE CORRECTION if the user pushes back on / redirects the agent's behavior in a way that implies a STANDING preference or a mistake to avoid in future:

  • explicit pushback / redirection ("no, do X instead", "wrong file again")
  • reminder of a prior agreement ("we agreed you'd ask first", "мы же договаривались сначала бэкап")
  • standing-preference marker ("from now on / always / never / by default / в следующий раз / впредь")
  • frustration at a REPEATED mistake ("опять", "again", "you keep")
  • polite redirection phrased as a question ("could you not overwrite latest.pth each time?")
  • revert with a reason ("верни как было, твоя версия хуже")
  • praise THEN correction — judge the whole turn ("great it runs, but always pin versions" = YES)

NOT a durable correction: new feature/task request · diagnostic question ("why did the build fail?", "почему-то падает") · factual/info statement even with "should be / by default / never" ("deploy should be done in 5 min", "по умолчанию там 8080") · agreement ("actually that makes sense, go ahead") · reassurance ("don't worry about the tests") · praise-only · off-topic chatter.

3. Dedup + draft atomic rules

For each detected correction: write it as ONE atomic rule with an applicability condition. Dedup against existing rules/memory (grep ~/.claude/rules/ and the project memory) — if it is already a rule, skip or propose an EDIT, not a new ADD. Cluster duplicates across sessions into one rule.

4. Resolve authority for the exact change

Show the user a compact table: each proposed rule + its applicability condition + source quote + target file + action (ADD new / EDIT existing / SUPERSEDE old / SPLIT). If that exact change is not already authorized, ask for approval and retain the proposal. Do not repeatedly request permission already given for the same in-scope correction. New always-on rules, SUPERSEDE and DELETE require the applicable explicit authority.

Show full SKILL.md (400 more words)Show less
5. Apply (delta-merge, never rewrite)

On approval, apply each accepted delta with the ACE discipline from memory-maintenance.md: addressable ADD/EDIT only, dedup, preserve nuance (no full-file rewrite). Put it in the right home (file-organization-cohesion.md): a global rule → ~/.claude/rules/, a project-specific lesson → that project's memory/CLAUDE.md. If the rule is mechanically checkable (file-name shape, forbidden command, tool-call form), note that it should graduate to a hook/validator (deterministic tier beats prose — learn-from-corrections.md).

6. Mark only reconciled sessions processed

First account for every selected queue item: inspected transcript, accepted/rejected corrections and their resulting artifact, or an explicit unresolved evidence gap. The extractor's pending is the selected window when --limit is used, not whole-queue completion. A missing/unreadable transcript is not processed; locate the canonical private chat archive by session id and inspect the recovered transcript before closing it. Only ids actually reconciled in this pass go into the following command:

bash
python ~/.claude/skills/distill-feedback/scripts/extract_feedback_queue.py --mark-processed <session_id> ...

Appends to processed.jsonl (append-only; the queue is never rewritten). The SessionStart nudge count drops accordingly.

Gotchas

  • Missing path is not lost history. The extractor omits empty/unreadable sessions from its payload. Reconcile the selected queue ids against payload ids, search the existing private archive and leave unrecovered ids pending with the observed failure. Never mark an omitted id processed merely to silence the nudge.
  • Confidence is not authority. Apply step 4 using the current user's actual authorization.
  • Praise-then-correction is the #1 miss. "Спасибо, но впредь не трогай прод" IS a correction. The rubric handles it; don't let a praise-detector suppress it (that bug killed the keyword version).
  • Billing. Distillation runs an LLM over user turns. Use --limit, run it on-demand (not a hook), and prefer a cheaper model for the detection sub-agent (the rubric is not hard reasoning).
  • One-off ≠ durable. "переделай, я имел в виду src не dist" is a one-off fix, not a standing rule — the rubric's confidence + your judgment should drop these; only encode what generalizes.

Troubleshooting

  • Nudge keeps showing, payload looks empty → compare queue and payload ids; recover missing transcripts from the private archive. A skipped payload is not evidence of completed work.
  • Extractor prints pending: N but sessions: [] → all N transcripts are missing/unreadable; diagnose/recover those specific ids and retain unresolved ones; do not mark them processed.
  • Want to pause capture entirely → touch ~/.claude/.skip-feedback-capture (or CLAUDE_SKIP_FEEDBACK_CAPTURE=1); the Stop hook then no-ops.
  • rules/learn-from-corrections.md — the protocol + the evidence behind LLM-semantic + human-gate
  • rules/memory-maintenance.md — the delta-merge (ACE) discipline step 5 reuses
  • hooks/session-feedback-capture.py (Stop, capture) · hooks/feedback-pending-show.py (SessionStart, nudge)

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

Files

SKILL.md and 1 other file (scripts) in skills/development/distill-feedback of AnastasiyaW/codex-claude-code-config.

  • SKILL.md
  • scripts/extract_feedback_queue.py

Open the folder on GitHubat commit 3601289

Compare with similar skills

Distill Feedback 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.

Distill Feedback compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Distill Feedback this skillAnastasiyaW/codex-claude-code-config154—~2kAutomated safety check: PassMIT
SignalsPostHog/posthog40k—~4.3kAutomated safety check: PassCustom licence
Feedbackcodewhale-hq/Codewhale41k—~272Automated safety check: PassMIT
Capturealirezarezvani/claude-skills28k1 repos~2.8kAutomated safety check: PassMIT
Signal Detectorgarrytan/gbrain31k—~2kAutomated safety check: PassMIT
Correctcursor/plugins11k3 repos~612Automated safety check: PassNone

Similar skills

  • Signals

    PostHog/posthog

    Official

    How to query the documentembeddings table for raw signal data using HogQL.

    40k GitHub stars~4.3k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Feedback

    codewhale-hq/Codewhale

    Report a Codewhale bug or idea as a GitHub issue. An agent skill from codewhale-hq/Codewhale.

    41k GitHub stars~272 tokensUpdated today
    Auto-check passed
  • Capture

    alirezarezvani/claude-skills

    Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.

    28k GitHub starsUsed in 1 repo~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Signal Detector

    garrytan/gbrain

    Opt-in ambient signal capture. An agent skill from garrytan/gbrain.

    31k GitHub stars~2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Correct

    cursor/plugins

    Official

    Find the mistakes agents keep repeating in this repo and make each one impossible.

    11k GitHub starsUsed in 3 repos~612 tokens
    Auto-check passed
  • Paperclip Distill

    paperclipai/paperclip

    A skill your agent uses when an operation issue is a Paperclip cursor-window, distill, or backfill.

    100k GitHub stars~2.8k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from AnastasiyaW/codex-claude-code-config

All 50 skills in this repo
  • Bug Reproducer

    AnastasiyaW/codex-claude-code-config

    Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.

    154 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Motion Framer

    AnastasiyaW/codex-claude-code-config

    A skill your agent uses when implementing Motion or Framer Motion in React/JavaScript: interactive UI components, micro-interactions, gestures, layout or page transitions, and scroll-based animation.

    154 GitHub starsUsed in 1 repo~5.2k tokens
    Auto-check passed
  • Proof Verify

    AnastasiyaW/codex-claude-code-config

    Plan-based verification - freeze acceptance criteria before building, then verify after with an independent fresh-context agent (the builder must not verify their own work).

    154 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Workflow Orchestration

    AnastasiyaW/codex-claude-code-config

    Написание и запуск Claude Code dynamic workflows (JS-оркестратор субагентов).

    154 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Notebooklm Grounded Research

    AnastasiyaW/codex-claude-code-config

    A skill your agent uses when: NotebookLM, notebooklm MCP, large documentation sets, courses, books, papers, or citation-backed research are mentioned.

    154 GitHub stars~2.4k tokensUpdated today
    Auto-check: warnings
  • Deepseek Provider Contract

    AnastasiyaW/codex-claude-code-config

    Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries.

    154 GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Questions about Distill Feedback

What does Distill Feedback do?

Turn captured user-correction signals into durable rules (learn-from-corrections loop). Distill Feedback is an agent skill from AnastasiyaW/codex-claude-code-config. Turn captured user-correction signals into durable rules (learn-from-corrections loop).

When should I use Distill Feedback?

Distill Feedback fits situations like: - /distill-feedback; process feedback queue; what corrections did I give you; encode lessons from my corrections.

How do I install Distill Feedback in Claude Code?

Run `npx skills add AnastasiyaW/codex-claude-code-config --skill distill-feedback -a claude-code`. Or copy the skill folder (skills/development/distill-feedback in AnastasiyaW/codex-claude-code-config) into .claude/skills/distill-feedback in your project. Claude Code loads it when a task matches its description.

How do I install Distill Feedback in Codex?

Run `npx skills add AnastasiyaW/codex-claude-code-config --skill distill-feedback -a codex`. Or copy the skill folder (skills/development/distill-feedback in AnastasiyaW/codex-claude-code-config) into .agents/skills/distill-feedback in your project. Codex loads it when a task matches its description.

Can I use Distill Feedback 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 AnastasiyaW/codex-claude-code-config --skill distill-feedback -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/distill-feedback, .gemini/skills/distill-feedback, .github/skills/distill-feedback and .opencode/skills/distill-feedback in your project.

What does Distill Feedback need to run?

Going by SKILL.md and its folder, Distill Feedback needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Distill Feedback access the network?

SKILL.md names 1 domain. As links in the text: arxiv.org. This is read from the text; nothing was executed.

Is Distill Feedback 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Distill Feedback use?

Distill Feedback is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Distill Feedback use?

About 2k tokens (SKILL.md is roughly 8.1k 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 Distill Feedback?

Skills that share tags, products or a category with Distill Feedback: Signals (PostHog/posthog, 40k stars), Feedback (codewhale-hq/Codewhale, 41k stars), Capture (alirezarezvani/claude-skills, 28k stars) and Signal Detector (garrytan/gbrain, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Distill Feedback?

AnastasiyaW (a GitHub user) maintains it in AnastasiyaW/codex-claude-code-config, which has 154 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 11, 2026.

Source: AnastasiyaW/codex-claude-code-config on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.