agent-fault
FreeРегистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
The English summary is being prepared. Showing the original description.
Оценка архитектурного решения по 7 характеристикам ЭМОГССБ (v3.1 — фильтр допуска, атрибут-сценарии, совет затронутых сторон; профиль без агрегатного балла, conjunctive screening). Используй когда пользователь предлагает архитектурное решение, новый инструмент или системное изменение.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Выполни оценку решения: $ARGUMENTS
Оценка архитектурного решения по 7 характеристикам ЭМОГССБ (v3.1 — фильтр допуска, атрибут-сценарии, совет затронутых сторон; профиль без агрегатного балла, conjunctive screening). Используй когда пользователь предлагает архитектурное решение, новый инструмент или системное изменение.
before (БЛОКИРУЮЩЕЕ)До Шага 0-А ровно один раз за верхнеуровневый вызов загрузить расширения (фаза before обязательна и для быстрого трека — фильтр допуска выполняется только после неё):
bash .claude/scripts/load-extensions.sh archgate before
Код 0 → прочитать каждый путь из вывода в алфавитном порядке и выполнить.
Код 1 → расширений нет, продолжить. Любой другой код, ошибка расширения,
явный BLOCK/STOP или содержательное возражение рецензента внутри расширения
блокирует начало оценки: показать путь файла и наблюдаемую причину.
Каждое before/checks-расширение завершает инструкции явным маркером
ARCHGATE_EXTENSION: PASS либо ARCHGATE_EXTENSION: BLOCK — <причина>.
Отсутствующий или неизвестный маркер = ошибка блокирующей фазы, не PASS.
Защита от рекурсии: каждая фаза before, checks, after выполняется не
более одного раза за верхнеуровневый вызов. Расширению запрещено вызывать
/archgate, повторно загружать archgate.* или иначе повторно входить в этот
жизненный цикл. Попытка рекурсии считается ошибкой текущей фазы: блокирует
before/checks, а в after даёт предупреждение и пропускается.
Расширения — доверенные локальные инструкции, а текстовый детектор — защита от
прямой случайной рекурсии, не песочница для враждебного shell-кода. Не исполнять
собранную через eval, декодирование, подстановку переменных или конкатенацию
команду/инструкцию из расширения: неоднозначную косвенную команду считать той же
ошибкой рекурсии (BLOCK в before/checks, WARN и пропуск в after).
Критерий «архитектурности» — стоимость изменения (Левенчук/ailev; Фаулер: архитектура — то, что трудно поменять). Полный гейт — для дорогих решений; дешёвые обратимые решения идут быстрым треком (WP-548 Ф1: сверка с мировой практикой).
Оцени решение по 3 осям. Ось «высокая», если:
| Ось | Высокая, если |
|---|---|
| Стоимость изменения (cost-to-change) | правка затрагивает ≥3 единиц самостоятельной доставки (репозиторий, деплоящийся сервис, платформенный скилл/скрипт), ИЛИ меняет контракт данных/API, ИЛИ защищённые файлы платформы (перечень — docs/critical-files-map.yaml) |
| Окно отката (reversibility window) | откат требует миграции данных или внешних уведомлений, ИЛИ превышает 1 календарный день работы одного человека |
| Внешние обязательства (external commitments) | затрагивает обещания пользователям (SC), SLA, безопасность/PII, платежи, регуляторику |
core_result = fast_tracked: Шаги 0–4.6 пропускаются, но маршрут НЕ обходит контракт публикации — обязательный проход через Extensions checks (Шаг 4.7) и публикацию в Шаге 5. Payload Шага 5 для fast-track: мини-DRR по секции «Fast-track» шаблона .claude/templates/drr-template.md (фикс-поля: дата, решение, по одной строке на каждую ось «почему низкая», владелец решения) — хранится там же, где полные DRR.Сверь решение с принципами 2-го уровня (DP.ARCH.001 §7). Если решение нарушает принцип — сообщи и предложи исправление до подачи на оценку.
СТОП. Не переходи к шагу 2 без ответа пользователя на ВСЕ ТРИ вопроса. Не угадывай за пользователя. Не определяй сам. СПРОСИ и ДОЖДИСЬ ответа.
Вопрос 1: «Какие 1–2 характеристики критичны для этого решения?»
Приведи список ВСЕХ 7 характеристик с предварительной оценкой релевантности для данного решения:
| Характеристика | Моя оценка релевантности | Почему |
|---|---|---|
| Эволюционируемость | высокая/средняя/низкая | [1 предложение] |
| Масштабируемость | высокая/средняя/низкая | [1 предложение] |
| Обучаемость | высокая/средняя/низкая | [1 предложение] |
| Генеративность | высокая/средняя/низкая | [1 предложение] |
| Скорость | высокая/средняя/низкая | [1 предложение] |
| Современность | высокая/средняя/низкая | [1 предложение] |
| Безопасность | высокая/средняя/низкая | [1 предложение] |
Рекомендация: «По моей оценке критичны [X] и [Y]. Согласен, или другие?»
Пометь ответ: ❌ в критических фиксирует core_result = rejected по правилу
блокировки #1. Останови дальнейшую оценку ядра, но не завершай скилл: обязательный
маршрут через Extensions checks в Шаге 4.7 сохраняется.
Вопрос 2 (A.19 Lawful Comparison): «Какие альтернативы рассматривались?»
Вопрос 3 (Advice Process — Harmel-Law «Facilitating Software Architecture»; ISO 42010 stakeholders): «Кого затрагивает решение и чей совет собрать до вердикта?»
archgate.checks).Задай все три вопроса одним сообщением. Дождись ответа. Только потом — шаг 2.
Оцени решение по 7 характеристикам. Без агрегатного балла — только профиль.
Шкала:
| Характеристика | Вопрос | Статус | Обоснование |
|---|---|---|---|
| Эволюционируемость | Что сломается при изменении? Можно ли заменить компонент без каскада? | ✅/⚠️/❌ | [конкретно] |
| Масштабируемость | Что будет при 10x нагрузки? Где bottleneck? | ✅/⚠️/❌ | [конкретно] |
| Обучаемость | Сколько читать, чтобы начать? Экзоскелет или протез? | ✅/⚠️/❌ | [конкретно] |
| Генеративность | Создаёт платформу? Работает в шаблоне экзокортекса? | ✅/⚠️/❌ | [конкретно] |
| Скорость | Бот <3 сек, CLI <1 сек? Где latency? | ✅/⚠️/❌ | [конкретно] |
| Современность | Как эту задачу решают лучшие? Что пропущено из SOTA? | ✅/⚠️/❌ | [конкретно] |
| Безопасность | Какие угрозы? PII, секреты, injection surface? Lock-in? Чеклист §Б ниже. | ✅/⚠️/❌ | [конкретно] |
ATAM (SEI): оцениваются атрибут-сценарии, не абстрактные качества. «Абстрактно зелёное» запрещено.
Для каждой характеристики, названной критичной в Шаге 1, — минимум один конкретный сценарий: стимул → среда → ожидаемая реакция, плюс деловая значимость (business importance — почему этот сценарий важен для дела). Критичная характеристика без сценария не может получить ✅ — максимум ⚠️ с пометкой «оценка без сценария».
Если передано ≥2 вариантов — строй сводную таблицу:
| Характеристика | Вариант A | Вариант B | ... |
|---|---|---|---|
| Эволюционируемость | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Масштабируемость | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Обучаемость | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Генеративность | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Скорость | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Современность | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Безопасность | ✅/⚠️/❌ | ✅/⚠️/❌ | |
| Предварительный результат ядра | ГОТОВ/ЗАБЛОКИРОВАН | ГОТОВ/ЗАБЛОКИРОВАН |
Рекомендуемый вариант: наименьшее число ⚠️ при отсутствии ❌ в критических характеристиках.
Три условия для multi-agent: (1) context isolation, (2) parallelism gain, (3) tool specialization. Все три НЕ выполнены → single-agent.
Применяй при оценке характеристики Безопасность. Отвечай на каждый пункт кратко.
Auth & Access:
user_id в теле запроса — должен браться из JWT, не из body)Secrets:
.secrets/)? Не хардкодятся?Классификация данных (B7.3.1) — БЛОКИРУЮЩЕЕ для РП с PII / payment_credentials / secrets:
Source-of-truth: C.IT-Platform/C2.IT-Platform/C2.2.Architecture/Data-Governance/B7.3.1-l2-data-classification-map.md в своём ecosystem-development репозитории, если он есть. Если затрагивается чувствительный класс — пройти 6 пунктов:
Injection & Input:
Шифрование:
Итог §Б: если ≥2 пунктов ❌ или PII логируется → Безопасность = ❌ (блокер).
Приоритетная тройка (всегда):
Полный справочник: memory/sota-reference.md.
Принцип: non-compensatory. Высокий статус по одной характеристике НЕ компенсирует блокер по другой.
Проверь каждое правило явно и выведи результат по каждому отдельно:
Правило 1. Критические характеристики. Перечисли характеристики, помеченные как критические в Шаге 1, и их статус из Шага 2. Пример: «Безопасность (критическая) → ⚠️ — правило не сработало». → Вывод: сработало / не сработало.
Правило 2. Количество блокеров (❌). Перечисли все характеристики со статусом ❌ из Шага 2 (с названиями). Пример: «❌ не найдено» или «❌ Безопасность, ❌ Эволюционируемость — итого 2». → Вывод: [N] блокеров — сработало (N≥2) / не сработало (N<2).
Правило 3. Соотношение ⚠️ и ✅. Перечисли все ⚠️ и все ✅ из Шага 2 (с названиями). Пример: «⚠️ Эволюционируемость, Современность, Безопасность (3 шт.) | ✅ Масштабируемость, Обучаемость, Генеративность, Скорость (4 шт.)». → Вывод: сработало (≥4⚠️ и 0✅) / не сработало.
Предварительный результат ядра (ещё не публиковать как вердикт):
core_result = rejected и блокирующие условия. Шаги 4–4.6 для
отклонённого решения не выполняются (DRR = N/A); перейди в общую точку
Extensions checks (Шаг 4.7). Не обходи checks прямым переходом к Шагу 5.L2 = информативный (не блокирующий до обкатки). Полное описание: DP.M.005 §9.
4a. Определи триггеры:
| Триггер | L2-характеристика |
|---|---|
| Формат хранения user-data, схема данных, зависимость от вендора/API | Переносимость данных (L2.1) |
| ИИ-система (Зона А), Intervention Loop, недетерминированный компонент | Наблюдаемость (L2.2) |
| ИИ-оценка пользователя (квалификация, прогресс, рекомендация, обратная связь) | Объяснимость (L2.3) |
| Оценка/измерение (ЦД, метрики, stage, score) | Воспроизводимость (L2.4) |
| Автоматическое действие от имени пользователя | Контролируемость (L2.5) |
| Миграция данных, хранилище, схема ЦД | Сохранность знаний (L2.6) |
| Внешняя интеграция, протокол обмена, MCP Registry | Интероперабельность (L2.7) |
| Новый автоматический процесс (агент, конвейер, скрипт с LLM-вызовом) или изменение частоты/объёма уже существующих вызовов | Экономичность (L2.8) |
Ни один триггер не сработал → пропусти только оценку L2 и продолжай с Шага 4.5.
4b. Оцени сработавшие L2 (тоже ✅/⚠️/❌, без числовой шкалы):
Чеклисты: DP.ARCH.001 §4.8–4.15 (Экономичность — §4.15: три вопроса — reflex-first вместо LLM там, где логика формализуема; модель по размеру задачи, не с запасом; виден ли расход до того, как стал проблемой). Формат:
Доменные расширения:
Триггер: [компонент] → [L2-характеристика]
| [Характеристика] | Статус | Обоснование |
|------------------|----------|-------------|
| Вопрос 1 | ✅/⚠️/❌ | ... |
| Вопрос 2 | ✅/⚠️/❌ | ... |
| Вопрос 3 | ✅/⚠️/❌ | ... |
| **L2.N итог** | ✅/⚠️/❌ | Информативно |
Вердикт L2: ✅ (нет ❌), ⚠️ (1–2 ❌), ❌ (≥3 ❌) — рекомендация, но не блокирует.
Источник: TOC Thinking Processes (Goldratt / Dettmer); Schragenheim S&T tree «monitoring entries». Дёшево, мощно, предотвращает foreseeable damage.
После того как решение прошло вето-фильтр (Шаг 3) и L2 (Шаг 4), но до финальной обратной связи — построй 3 negative branches:
«Если внедрить выбранное решение, что плохого может случиться в течение 1–4 недель после? Перечисли 3 наиболее вероятных негативных последствия (по убыванию вероятности или ущерба).»
Для каждой ветки — trim (как митигировать или почему ветка untrimmable):
| # | Negative branch | Вероятность | Ущерб | Trim |
|---|---|---|---|---|
| 1 | [что сломается / какой риск проявится] | низкая/средняя/высокая | низкий/средний/высокий | [конкретная митигация] или untrimmable |
| 2 | ... | ... | ... | ... |
| 3 | ... | ... | ... | ... |
Решающее правило:
Анти-паттерн: writing «всё будет хорошо» / «риски минимальны» / общие фразы без конкретики. NBR работает только когда ветки специфичны (что именно, какой компонент, какой стейкхолдер).
Проверяем, что решение прошло из декларации в операционализируемый контракт.
После NBR, прежде чем выдать финальный вердикт, пройди DRRAdequacyPass:
| # | Вопрос | Почему важно | Статус |
|---|---|---|---|
| 1 | Решение операционализировано: есть чеклист, тест или инвариант, который проверяет его выполнение? | Декларация ≠ работающий механизм | ✅/⚠️/❌ |
| 2 | Детектор/гейт реально блокирует, а не только существует в документе? | Наличие правила не останавливает действие | ✅/⚠️/❌ |
| 3 | Есть forcing function или explicit acknowledgement пользователя? | Подсказка показана ≠ ответ затребован | ✅/⚠️/❌ |
| 4 | Контракт/обещание проверено приёмкой (verify-pass, smoke, canary, acceptance report)? | Обещание дано ≠ исполнение измерено | ✅/⚠️/❌ |
| 5 | Запись решения ведётся в одном месте (OwnerIntegrity)? | Один факт — одно место | ✅/⚠️/❌ |
| 6 | Указан срок/условие пересмотра решения? | Решение устаревает без review_date / superseded_by | ✅/⚠️/❌ |
| 7 | Какой автоматический контроль (fitness-check) охраняет критичную характеристику после внедрения? | Разовая оценка ≠ охрана: деградацию должен ловить механизм, не память (принцип #27 Intervention Loop; fitness functions — Ford/Parsons) | ✅/⚠️/❌ |
Правила:
Черновик DRR: подготовь данные по шаблону .claude/templates/drr-template.md,
но до успешных checks, обязательных подтверждений и финального вердикта не
записывай решение как принятое.
checks (БЛОКИРУЮЩЕЕ)После DRR (либо DRR = N/A для отклонённого ядром решения, либо
core_result = fast_tracked из Шага 0-А), но до публикации
вердикта ровно один раз загрузить проверки:
bash .claude/scripts/load-extensions.sh archgate checks
Код 0 → прочитать и выполнить каждый файл в алфавитном порядке. Код 1 →
проверок нет. Ошибка loader/исполнения или попытка рекурсии блокирует публикацию:
вернуть extension_check_error, путь и наблюдаемую причину. Явный BLOCK/STOP
или содержательное возражение рецензента блокирует публикацию с типом
extension_check_blocked, путём и причиной. После такого исхода Шаг 5 запрещён;
исправление проверяется новым верхнеуровневым вызовом, где каждая lifecycle-фаза
снова выполняется ровно один раз.
Маркер ARCHGATE_EXTENSION: BLOCK всегда даёт extension_check_blocked;
ARCHGATE_EXTENSION: PASS разрешает переход только после успеха всех файлов.
Это единственная точка, где результат называется и показывается пользователю как вердикт.
Если core_result = rejected, обязательные подтверждения рисков не запрашивай:
после успешных checks сразу опубликуй отрицательный вердикт. Уже блокирующее
решение нельзя задерживать в pending_ack просьбой «принять риск».
Если core_result = fast_tracked (Шаг 0-А), после успешных checks опубликуй
облегчённый вердикт: «Решение прошло быстрым треком (все оси допуска низкие)» +
мини-DRR (секция «Fast-track» шаблона). Обязательных подтверждений рисков нет —
рисковых флагов быстрый трек не создаёт; фаза after выполняется как обычно.
Только если ядро прошло, сначала собери обязательные подтверждения. Для каждой ⚠️ (L1), а также для флагов NBR/DRR, требующих acknowledgement, запроси явное решение:
«[Характеристика] ⚠️. Выбери: (а) принимаю риск — [обоснование]; (б) митигация — [что конкретно].»
Пока обязательный ответ не получен, состояние = pending_ack; это не вердикт,
DRR не финализируется, фаза after не запускается. Если выбрана митигация,
изменённое решение проходит новый верхнеуровневый вызов АрхГейта с начала жизненного цикла (Extensions before, Шаг 0-А).
После всех обязательных подтверждений опубликуй ровно один вердикт:
core_result = fast_tracked: облегчённый вердикт быстрого трека (абзац выше).core_result = rejected:
«Решение НЕ проходит АрхГейт. Блокирующие условия: [список]. Рекомендация: [что исправить].»
«Решение проходит АрхГейт.»
Только если опубликован проходящий вердикт, финализируй DRR как принятое решение
по шаблону .claude/templates/drr-template.md. При core_result = rejected не
записывай решение как принятое; черновик остаётся нефинализированным до новой
успешной оценки.
Для каждой ⚠️/❌ (L1) → обратная связь по принципам:
after (НЕ МЕНЯЕТ ВЕРДИКТ)После публикации вердикта (и, для проходящей ветки, получения всех обязательных explicit acknowledgement из Шага 5) ровно один раз загрузить расширения:
bash .claude/scripts/load-extensions.sh archgate after
Код 0 → прочитать файлы в алфавитном порядке и выполнить каждый, продолжая со
следующим даже после ошибки предыдущего. Код 1 → расширений нет. При любом
другом коде всё равно выполнить каждый корректный путь, который loader успел
вывести в stdout, а каждую диагностику stderr показать отдельным предупреждением
с путём и причиной. Повреждённый файл и попытку рекурсии не выполнять. Фаза
after не может переписать, отозвать или понизить уже опубликованный вердикт.
Для диагностического исхода after может использовать
ARCHGATE_EXTENSION: WARN — <причина>; BLOCK после вердикта также трактуется
только как предупреждение.
No 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.
Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
The English summary is being prepared. Showing the original description.
Разбор extraction-reports со status pending-review — решение R15 (accept/reject/defer) ЖИВЫМ ПИЛОТОМ, запись в Pack, обновление статуса, коммит. Вызывать при Close при наличии N>0 pending-review отчётов.
The English summary is being prepared. Showing the original description.
Classifies raw pilot request → structured JSON {task_type, class, artifact, budget_estimate, confidence, routing_tag, resolution_path, schema_version, result_type, expected_result_kind, result_kind_resolution, hypothesis_relation}. Keyword-fast (<200ms) or Haiku fallback (<60s). Does NOT create WP or call executor.
The English summary is being prepared. Showing the original description.
Audit repository documentation: detect drift between code and docs, report coverage by category. Run manually or on triggered drift critical.
The English summary is being prepared. Showing the original description.
Аудит пользовательской инсталляции IWE. Запускает scripts/iwe-audit.sh + MCP healthcheck + smoke-test ритуала через sentinel-механику (контракт dry-run-contract.md), передаёт отчёт subagent'у в роли VR.R.002 Аудитор (context isolation) → verdict ✅/⚠️/❌ по 6 компонентам (Inventory, L1 drift, {{GOVERNANCE_REPO}}, L3 customizations, MCP, ритуал). Используй после restore из бэкапа, после update.sh, или при еженедельной сверке.
The English summary is being prepared. Showing the original description.
Инструкции для автора шаблона IWE: staging-канал (обкатка → FMT), авторские правила L3, Extensions Gate. Загружать при: staging / promote / author / шаблон / extensions / L3.
The English summary is being prepared. Showing the original description.