Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
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.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Роль: DP.ROLE.058 Артефактор-Постановщик
Триггер: запрос без routing-tag (Маршрутизатор → Артефактор) или/artifactor "текст"
Service Clause: DP.SC.160
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.
Вход: сырой текст запроса пилота (любой длины, без routing-tag)
Выход: JSON, schema_version 3 (WP-575 Ф2 — добавлено поле result_type) → stdout:
{
"task_type": "string",
"class": "trivial | closed-loop | open-loop | problem-framing",
"artifact": "string (одна строка на русском — существительное-результат)",
"budget_estimate": "~Xh | ?",
"confidence": "high | low",
"routing_tag": "string",
"resolution_path": "keyword | llm",
"schema_version": 3,
"result_type": "system | episteme | unresolved",
"expected_result_kind": "kind_id из PACK-digital-platform/pack/digital-platform/result-kinds-registry.yaml | null",
"result_kind_resolution": "static | deferred-to-session | unresolved",
"hypothesis_relation": "unclassified"
}
Инвариант:
confidence=high только при keyword-пути; confidence=low при LLM-пути{"error": "INSUFFICIENT_INPUT"}, стопbudget_estimate: "?" только при problem-framing или полной неопределённостиresult_type (WP-575 Ф2, hard-distinctions.md №36) — Исполнитель (system: агент/скрипт/сервис — действующее) vs Информационный объект (episteme: документ/знание/правило — читаемое). Решается ДО имени и класса задачи, независимая ось от expected_result_kind — НЕ выводится из kind_id (кортеж kind_id/task_type/class присваивается одновременно, вывод из него нарушил бы «раньше имени и класса», и kind_id создавался для другого различения). unresolved — тип неочевиден → форсирует уточнение у пилота на WP Gate, классификатор НЕ гадает (тот же принцип, что hypothesis_relation: "unclassified" ниже).result_type (делает потребитель — /wp-new/WP Gate Ритуал, не сам Артефактор, тот же принцип, что и передача hypothesis_relation в WP Gate): system → обязательна проверка IntegrationGate (новизна инструмента/агента/скрипта/сервиса); episteme → Routing Gate (карта размещения документа/знания, DP.KR.001 §5); unresolved → уточнение у пилота до продолжения.expected_result_kind — дискриминатор ожидаемого kind-а результата (WP-481 Ф7, «не бывает общего результата»), НЕ показатель готовности проверки (gate_ready — забота /verify, не Артефактора)result_kind_resolution: "unresolved" — ни один kind реестра не подходит; классификатор НЕ подменяет ближайшим (анти-утечка в супертип)result_kind_resolution: "deferred-to-session" — мета-триггер (например peer_session), kind решается внутри самого процесса, не в момент классификацииKEYWORD_MAP (дрейф) — fail-closed, эскалировать пилоту, не игнорировать полеhypothesis_relation: "unclassified". До выбора
tests | enables | responds | researches | operational РП остаётся pending,
а не запускается в работу.Артефактор не вправе приписать РП гипотезу без решения пилота. Он обязан передать в WP Gate вопрос о типе связи:
tests H-NNN — РП проверяет одну ставку;enables H-NNN — делает её проверку измеримой или возможной;responds H-NNN — следует из вердикта;researches — ищет основание для новой гипотезы;operational — поддерживает норму, устраняет инцидент или исполняет обязанность.Для первых трёх нужен один H-NNN. Для двух последних номер гипотезы не
подставляется. Связь unclassified видна в карточке РП и блокирует её запуск,
но не создание: это сохраняет обратимость и не ломает старые автоматизации.
Запустить скрипт (возвращает JSON или сигнал):
S="${IWE_SCRIPTS:-$HOME/IWE/scripts}"
PY3="$(bash "$S/lib/find-python3.sh")" && "$PY3" "$S/artifactor.py" "$ARGUMENTS"
Интерпретация результата:
result_type: system|episteme (exit 0) → вернуть пилоту, стоп.result_type: unresolved (exit 0) → перейти к Шагу 2 и проверить смысл всего запроса, включая явное уточнение пилота. Keyword-ответ не учитывает уточнение после общего триггера («реализация плана»); повторять тот же keyword-ответ после уточнения нельзя. Если основной результат по-прежнему неизвестен, Шаг 2 сохраняет unresolved для вопроса потребителя.{"error": "INSUFFICIENT_INPUT"}, стопЗаполнить все поля, используя правила ниже. Вернуть JSON с resolution_path: "llm", confidence: "low", schema_version: 3. Для expected_result_kind/result_kind_resolution — та же логика, что у keyword-пути: подобрать kind_id из PACK-digital-platform/pack/digital-platform/result-kinds-registry.yaml по смыслу запроса; если ни один явно не подходит — expected_result_kind: null, result_kind_resolution: "unresolved" (не подменять ближайшим).
Шаг 2.0 — тип результата (WP-575 Ф2, ПЕРВЫЙ вопрос, до имени и класса). Прежде чем формулировать artifact/class, ответить: результат этой работы будет действующей системой (агент, скрипт, сервис, MCP-инструмент, бот, автоматизация — что-то, что будет ВЫПОЛНЯТЬСЯ) или информационным объектом (документ, знание, правило, отчёт, план — что-то, что будет ЧИТАТЬСЯ)?
result_type: "unresolved", не гадать (та же дисциплина, что у result_kind_resolution: "unresolved"). Документ, который выдаёт создаваемый скрипт, — выход системы; документация к ней — сопроводительный результат. Это не делает тип неоднозначным, если основной результат явно указан. Описание сервиса без его реализации — episteme.result_type: "system" или "episteme" соответственно.system. «напиши руководство по Y» → episteme. «доделай хвосты РП-N» без указания что именно осталось → unresolved (может оказаться и кодом, и документом).Правила class:
| Класс | Критерий |
|---|---|
trivial | Протокол без неопределённости (day-open, week-close, peer-сессия) |
closed-loop | Чёткая спецификация + известный метод (баг-фикс, миграция, ревью, триаж) |
open-loop | Нет спецификации, нужно генерировать (контент-план, диагностика, сценарии) |
problem-framing | Расплывчато, метод неизвестен (идеи, концепции, «что-то придумать с X») |
При сомнении — выбирать более широкий класс (open-loop, не closed-loop).
Правила artifact: одна строка на русском, первое слово — существительное, обозначающее документ, систему или состояние системы (не процесс/действие над ним — «Разбор X», «Анализ X», «Проверка X» не годятся, даже когда сами по себе грамматически существительные).
Примеры: «Список тем для трёх постов», «Отчёт диагностики латентности», «Задание на сценарии».
Не так: «Разбор 88 неразобранных коммитов» (описывает действие) → так: «Реестр неразобранных коммитов ветки X» (описывает артефакт-результат).
Общий тест «процесс → результат» (WP-7 Ф140, peer-session 2026-09-11 с Kimi+Codex). Частные примеры выше не ловят отглагольные существительные без объекта X («Оплата», «Миграция», «Интеграция», «Синхронизация») — формально существительные, но по смыслу называют само действие. Перед тем как принять artifact:
Причастие на старом существительном оставляет прежний объект и клеит к нему статус. Так не называть.
Пример: не «Оплата Мастерской IWE через Aisystant и Telegram-канал» (оплата→оплатить — сама работа), а «Канал оплаты Мастерской IWE через Aisystant и Telegram».
Тест применяется и к keyword-пути (Шаг 1) — но там НЕ рантайм-проверкой (это нарушило бы контракт «<200ms, без LLM»), а разовым аудитом KEYWORD_MAP в artifactor.py: значение artifact каждой записи обязано проходить тот же тест на момент добавления/правки записи.
Правила budget_estimate:
trivial → ~0.5hclosed-loop → ~2h (если нет конкретного числа в запросе)open-loop → ~3hproblem-framing → ?Поле routing_tag = значение task_type (snake_case).
Вывести JSON в stdout. Без дополнительных пояснений.
| Сценарий | Поведение |
|---|---|
| Запрос < 5 слов | {"error": "INSUFFICIENT_INPUT"} |
| Скрипт не найден / сбой | Перейти к Шагу 2 напрямую |
| Запрос на иностранном языке | Классифицировать как есть, confidence: low |
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Разбор extraction-reports со status pending-review — решение R15 (accept/reject/defer) ЖИВЫМ ПИЛОТОМ, запись в Pack, обновление статуса, коммит. Вызывать при Close при наличии N>0 pending-review отчётов.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Оценка архитектурного решения по 7 характеристикам ЭМОГССБ (v3.1 — фильтр допуска, атрибут-сценарии, совет затронутых сторон; профиль без агрегатного балла, conjunctive screening). Используй когда пользователь предлагает архитектурное решение, новый инструмент или системное изменение.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Audit repository documentation: detect drift between code and docs, report coverage by category. Run manually or on triggered drift critical.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Аудит пользовательской инсталляции 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, или при еженедельной сверке.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Инструкции для автора шаблона IWE: staging-канал (обкатка → FMT), авторские правила L3, Extensions Gate. Загружать при: staging / promote / author / шаблон / extensions / L3.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.