agentleFS
VibeEngineering-LLCVibeEngineering-LLC/agent-ops-doctrine/skills/self-learning/SKILL.md

self-learning

Skill1 starsChanged 58 days agoMITView on GitHub

Петля самообучения: сбор уроков из секции LESSONS отчётов субагентов, триаж по четырём корзинам, каталог классов ошибок C-NNN, межконтурный разнос. Триггеры: «оттриажить уроки», «класс ошибки», «почему агенты забывают», рецидив закрытого класса. НЕ запись инцидента (incident-log), не хендофф (session-handoff).

12 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use changelog-style, docs-consistency-check and 4 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • GrinvSkill

    changelog-style

    Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.

    Also in 4 projects that use this

  • GrinvSkill

    docs-consistency-check

    Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.

    Also in 4 projects that use this

  • MicrosoftSkill

    release

    Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).

    Also in 4 projects that use this

  • +3 more from Grinv

The file

Files
SKILL.md

self-learning — чтобы опыт не умирал вместе с контекстом

Веса заморожены. Всё, что система «помнит», — это текст, который снова попадёт в контекст, либо код, который исполнится помимо контекста. Отсюда закон, из которого следует остальное:

Урок выучен не тогда, когда он записан, а тогда, когда у него есть машинный триггер, предъявляющий его в момент риска.

Проверено фактом на своей же истории: правило §33 лежало в глобальном CLAUDE.md — рецидив через три дня (моделирование:W-022); мера высшей ступени по надзорный:W-026 была мутационно проверена — рецидив через сутки в соседнем скрипте (надзорный:W-030). Запись не защищает. Защищает привод.

Слои памяти — куда класть урок

СлойНосительКогда всплываетЦена
L0хук / гейт / скрипт-проверкапринудительно, всегда~0 токенов
L1CLAUDE.md, frontmatter скиллакаждая сессиясамый дорогой актив (×все сессии ×все контуры)
L2тело SKILL.md, referencesесли сработал триггерплатится при чтении
L3SESSION-STATE, TODOстарт сессиидёшево
L4журналы W/P, DECISIONSтолько явным поиском~0, но и защиты ~0

Обучение = движение уроков ВВЕРХ; §28-бюджет давит ВНИЗ. Равновесие — заменой: правило, поглощённое хуком, ужимается до указателя. Порог L1: урок нужен более чем в ~30% сессий, иначе L2 или L0.

Двухосевая лестница мер (главное отличие от incident-log)

Лестница §32 знает только СИЛУ меры. Этого мало — доказано надзорный:W-026→W-030:

Узкая область (один скрипт/файл)Область класса (все проявления)
Слабая сила (запись/правило)заметка в журналеправило класса в доктрине
Сильная сила (хук/устранение)патч одного скрипта ← здесь провалилосьгейт класса по сигнатуре

При рецидиве первый вопрос — не «поднять ступень?», а «провалилась СИЛА или ОХВАТ?» Если мера была высшей, но узкой — поднимать некуда, нужно расширять охват.

Петля — шесть шагов, у каждого свой привод

ШагЧтоПривод (не дисциплина)
CAPTUREсекция LESSONS: (0–3 пункта, «ожидал X → оказалось Y → обход Z») в отчёте субагентахук lessons_gate.py блокирует Agent-вызов без неё (порог 600 симв.)
BUFFERдамп LESSONS в <контур>\audit\lessons-inbox.md первым действием при приёме отчётафайл переживает сжатие контекста
TRIAGE4 корзины (ниже)хук lessons_inbox_counter.py считает - [ ] и напоминает на каждом промпте
DISTILLклассовый урок → класс C-NNN в ~/.claude/references/error-classes.mdновый инцидент обязан сослаться на C-NNN либо завести класс
DEPLOYурок → в слой всплытия (обычно L0: сигнатура в реестр диспетчера)хук-диспетчер инъецирует вопросом, не императивом
SPREADдоктринальный урок → глобальный references/ + промпты владельцам зон (§12)harvest-скрипт с курсором + крон

Четыре корзины триажа

мусор (норма, большинство — выбрасывать без сожаления) / локальный (в проект) / классовый (в каталог C-NNN + журнал) / доктринальный (в глобальную доктрину + разнос по контурам).

Жёсткое правило маршрутизации: факт о платформе, ОС или общем инструменте (Windows-кодировки, Bash-транспорт, Ollama, git, хуки) не имеет права на корзину «локальный». Именно так умер урок про Job Object — лежал в приватном DECISIONS.md одного контура, пока не был найден случайно.

Каталог классов C-NNN

~/.claude/references/error-classes.md. Класс определяется по причине, не по симптому: «потерял данные» — последствие; «предположил семантику флага по имени» — класс.

Обязательные поля: формулировка · проявления (составной ключ контур:W-NNN — номера уникальны только внутри контура!) · trigger-signature · вопрос-инъекция (≤120 симв.) · текущая мера с пометкой узкая/классовая · статус.

Сигнатуру не выдумывать. Нет машинно-проверяемого условия — писать «класс слабо защищён, ожидаем рецидив». Это честная ранняя диагностика, а не поражение.

Форма инъекции — вопрос, не императив

«Ты читал код этого флага — или вывел его смысл из имени?» работает лучше, чем «читай код флагов». Вопрос требует ответа в текущем рассуждении; императив требует лишь согласия три часа назад. Потолки: ≤2 строк на урок и ≤3 урока на вызов (согласовано с §31.C.4 — там же обоснование Ω=1–3; до 30.08 здесь стояло «≤2», расхождение снято в пользу доктрины); триггер, срабатывающий чаще чем на 20% вызовов, — сужать.

Уроки в контекст — выборкой, не журналом (§31.C.4, 2026-08-30)

В бриф/промпт попадают ≤3 наиболее релевантных задаче урока, отобранных RAG'ом по журналам (движок приватного RAG-скилла — импортом, §33), а не журнал целиком. Обоснование: эпизодическая память агента эффективна ОГРАНИЧЕННОЙ (Reflexion, arXiv 2303.11366: Ω = 1–3 записи); длинный список уроков — несжатый контекст: доступен, но не работает. Рост журнала не должен означать рост промпта — журнал это архив для выборки, не приложение к брифу.

Правило второго случая (против инфляции правил)

Первый инцидент класса → журнал + сигнатура, и всё. Текстовое правило или отдельный хук — со второго случая, ЛИБО сразу, если цена необратима (метрология, финансы, push, delete). Инфляция правил — режим отказа: чем больше always-on, тем хуже всплывает каждое.

Проверка меры

  • Хук/гейт — мутационно: воспроизвести условие инцидента и показать, что мера сработала; повторять при каждой правке хука. Зелёный прогон не значит ничего, пока не показано, что он умеет краснеть (#SA-3).
  • Текстовое правило — вопрос «где именно оно всплывёт?» задаёт не автор (§31.A: свой контекст заражён сделанным), а стерильный проход. Нет ответа — правило мертворождённое, переразмещать.
  • Ре-верификация L0 периодически: хук может быть мёртв с установки, и молчание неотличимо от работы (надзорный:W-015).

Метрика — одна, вычислимая скриптом

Доля классов с рецидивом ПОСЛЕ принятой меры (цель → 0 для мер уровня хук+); MTBR по классам; latency «инцидент → общий слой». Считает скрипт по каталогу и составным ключам — не самопометка агента (метрика, наказывающая за рецидив, дестимулирует его признание).

НЕ метрика: число записей и правил. Это графомания, а не обучение.

Границы

  • incident-log — нормативный дом лестницы мер и полей записи инцидента. Здесь на неё только ссылка; дублировать формулировки нельзя (два дома одного правила = дрейф).
  • session-handoff — состояние для продолжения работы, не уроки.
  • §31 IRON MODE — как не допустить (стерильные проверки, лестница делегирования). incident-log — что делать, когда допустил. Здесь — как сделать, чтобы урок не пропал и не потребовался второй раз.

Anti-patterns

  • ❌ Институциализировать петлю текстовым правилом без привода — умрёт молча (эмпирика: «сводный анализ раз в 10 записей» из incident-log — 0 исполнений за 30 записей).
  • ❌ Отвечать на рецидив повторной записью в журнал — рецидив означает, что ступень уже провалена.
  • ❌ Считать «мусор» плохим результатом триажа — 90% мусора это норма, ценность в хвосте.
  • ❌ Развёрнутые LESSONS — длинная форма порождает отписки.
  • ❌ Грузить журналы в контекст «на всякий случай» — оплата ретривала до потребности.
  • ❌ Полносвязная рассылка инцидентов всем контурам — канал умирает от спама за месяц.
  • ❌ Хук на каждый урок — инфляция переезжает из CLAUDE.md в settings.json; нужен ОДИН диспетчер с реестром.

История

Создан 2026-08-21 по запросу оператора («продумай очень хорошо стратегию самообучения, сделай самоаудит»). Стратегия прошла двойной стерильный аудит §31.A: независимый дизайнер и адверсариальный скептик, не видевшие работы друг друга. Скептик вынес по первой версии 3 КРИТИЧНО + 8 СЕРЬЁЗНО («нежизнеспособна»): петля целиком держалась на текстовых правилах, провал которых сама же и доказывала; метрика была невычислима; два опорных факта диагностики не прошли проверку источником (ошибочная ссылка D-031 вместо D-037; мера W-026 названа журнальной, тогда как она была высшей ступени, но узкой). Все находки учтены в v2. Полные документы: <work-root>\надзорный\prompts\self-learning\ (STRATEGY-v2.md, AUDIT-1-sterile-designer.md, AUDIT-2-adversarial-skeptic.md).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.