Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
日本語の概要は準備中です。原文の説明を表示しています。
Гейт создания любого нового репозитория IWE (экосистемного или личного пространства). Проводит запрос через: классификацию намерения (Pack / SpacePlan / именованный проект / экосистемный DS), проверку имени и класса, разметку данных (типы 2.1-2.4, карантин), объявление писатель/владелец/читатели, решение о публичности, обязательный Decision Gate (по умолчанию — одобрение пилота, для CI — ограниченное делегирование), затем исполнение (создание, регистрация, развёртывание скелета). Используй когда пилот хочет создать новый репозиторий, или спрашивает, куда и как разместить новый вид данных. Не для расширения существующего репозитория (→ Repo-Touch/Residency Gate) и не для Pack-репозиториев (делегируется `/pack-new`).
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Область действия: создать НОВЫЙ репозиторий IWE (экосистемный DS или личное пространство данных) через обязательный гейт имя/данные/владение, с результатом — созданный репозиторий, запись в реестре, развёрнутый скелет. Не входит: расширение существующего репозитория (→ Repo-Touch/Residency Gate); Pack-репозитории (делегировать
/pack-newна Шаге 1 и остановиться); одномоментное развёртывание всей структуры 5 семей (этоsetup.sh/ WP-559 — этот скилл обрабатывает один репозиторий за вызов). Роль: R6 Кодировщик выполняет гейт и записи фазы Execute; носитель авторизации Decision Gate по умолчанию — пилот (WP-527 Ф0 п.3, решено round-loop сессией 01.09.2026, зафиксировано STAGING.md S-60) — новая Pack-роль не вводится, self-approval со стороны R6 запрещён.
DS-*/instrument/surface, или личное пространство данных PD-*/MC-*/PACK-*).docs/adr/ADR-004-data-domain-map.md + docs/DATA-DOMAINS-REGISTRY.yaml (FMT-exocortex-template) должны существовать и быть читаемы — у скилла нет запасной карты доменов, и он не должен изобретать её./pack-new на Шаге 1 и остановиться; не выполнять остаток гейта этого скилла (авторитет там — Pack Creation Gate, не этот).Инвентаризация 01.09 (WP-527, в авторской рабочей копии): голые вызовы
gh repo create/create_repositoryвне этого гейта. Скилл вызывает LLM-агент, читающий SKILL.md — сырой bash-скрипт его вызвать не может; поэтому найденные каналы — документированные исключения, не кандидаты на переподключение.
setup.sh (шаг «Create DS-strategy repo») — создаёт governance-репозиторий при самой первой установке IWE, до того как у пользователя вообще появляется агент со скиллами. Не может идти через гейт по конструкции (курица-яйцо). Имя фиксировано, гейт не нужен.setup/optional/setup-agent-workspace.sh — опциональный ручной скрипт создания DS-agent-workspace, вызывается после онбординга (гейт уже доступен). Уже самостоятельно пишет REPO-TYPE.md+CLAUDE.md при создании — не переподключён к /repo-new сознательно (переписывать рабочий bash-скрипт на вызов агентского скилла архитектурно не оправдано), задокументирован здесь как известное исключение, не как разрыв.Восемь шагов в трёх фазах (Plan → Decision Gate → Execute) — см. ниже.
Input: запрос на создание репозитория; read-only доступ (если доступен) к каталогу/API SpacePlan и memory/repo-type-rules.md.
Action: подтвердить, что это запрос на создание НОВОГО репозитория — если речь о расширении существующего, остановиться и направить в Repo-Touch/Residency Gate. Затем явное ветвление:
/pack-new, стоп.planId: verified устанавливается только после read-only проверки по каталогу, с фиксацией источника и ревизии/fingerprint каталога, по которому проверено; если проверка недоступна — статус planId: unverified, Decision Gate (Step 5) блокируется. Одобрение пилота не подменяет техническую валидацию. Единственный выход из unverified — явная переклассификация в именованный проект с новым согласованным Plan; автоматический downgrade запрещён.create_repository(template_type="project") по умолчанию. Для запроса, подпадающего под активную policy-запись machine/repo-new-policies.yaml (Step 5) с известным bounds.repo_class, template_type — конвенция, зашитая в текст ЭТОГО скилла для конкретного repo_class (не поле самой policy-записи — 7 обязательных границ Step 5 её не включают): для repo_class: personal-subscriber — template_type: "notes". Запрет на namespace-shadowing зарезервированных семейных префиксов PD-*, DS-*, PACK-*, MC-* — если только имя не является константой, зафиксированной в самой policy-записи (та же personal-subscriber фиксирует DS-personal-guide).gh repo create; этот скилл только выдаёт чеклист для этой ветки и НЕ автоматизирует её — ни на этом шаге, ни на Execute (Step 7/8 к этой ветке не применяются, см. там).Output: классифицированное намерение, выбранный путь создания, и (для SpacePlan) явный статус planId: verified | unverified с доказательством проверки при verified.
Input: классифицированное намерение и путь из Step 1.
Action: сверить класс и предложенное имя с memory/repo-type-rules.md + ADR-004. Принудительный семейный префикс — только для известной семьи репозиториев. Существующее пользовательское имя сохраняется без изменений, если оно не нарушает применимое правило или зарезервированный namespace.
Output: проверенный класс и финальное предложенное имя, с любым ограничением на имя, зафиксированным в Plan.
Input: проверенный класс и предполагаемое содержимое репозитория.
Action, в двух явных подчастях (разделены нарочно, чтобы ни одна не выпала):
DATA-RESIDENCY.md, источник WP-442: шесть типов всего, из них четыре личных; отдельного типа для диалоговых артефактов нет — личные диалоги/заметки в git-репозитории пользователя укладываются в тип 2.4 «неформализуемая личная практика»). Для диалоговых источников (переписка с ИИ) дополнительно применяется профиль обработки conversation (РП-427 Ф8): отдельные цели согласия, запрет служебного содержимого инструментов по умолчанию, границы объёма/срока хранения, скан секретов и персональных данных — это профиль обработки, не отдельный тип резидентности. Вывести homes/sensitivity/quarantine из DATA-DOMAINS-REGISTRY.yaml. Отдельно проверить карантин «вне оси» (секреты, платёжные данные, чужие PII) по эвристикам WP-483 — это не та же ось, что 2.1-2.4, и её нельзя молча сворачивать в неё.Output: декларация размещения данных (включая флаг карантина вне оси) и полное назначение writer/owner/readers.
Input: класс, декларация данных, назначение ответственности.
Action: решить публичный/приватный СЕЙЧАС, не позже — если публичный, publication-gate в CI обязателен в скелете (прецедент WP-493). Набросать манифест скелета: README-паспорт (класс, назначение — одно предложение простыми словами, домены данных, writer/owner/readers, проекция gate receipt) и заглушку CLAUDE.md.
Output: решение о публичности, требование publication-gate (если публичный), запланированный манифест скелета.
Input: полный неизменный Plan из Steps 1-4, без нерешённого planId: unverified.
Action: показать полный Plan носителю авторизации. По умолчанию — пилот, approval_scope: instance. Для CI/автоматизации approval_scope: policy допустим только если политика явно ограничивает ВСЕ из: классы репозитория, namespace имён, privacy, owner (с проверяемым owner_selector, не произвольным аргументом), домены данных, лимит инстанций/период, срок действия. Запрос вне любой из этих границ → STOP, не тихий откат: отчёт с конкретной нарушенной границей и числами (например «usage_log: 50/50 за 90 дней, следующий слот доступен <дата>»), и явный новый вопрос пилоту — продлить/расширить policy (новая запись decision_ref) или инициировать отдельный instance-проход. Вызывающий скилл не переключает scope молча сам.
Хранение и проверка policy (спецификация, WP-527 01.09 — инвентаризация не нашла ни одного живого CI-канала, которому это нужно сегодня; файл создаётся лениво при первой реальной выдаче политики, не провизионируется заранее; первый реальный потребитель — repo_class: personal-subscriber, WP-527 Ф4):
<governance-репо>/machine/repo-new-policies.yaml, одна запись на policy_id с полями bounds (все 7 границ), decision_ref (approved_by/decision_session/decision_date/wp_ref — ссылка на решение пилота ВНЕ этого файла; без неё запись самоодобрена агентом, который её же и проверяет) и usage_log (append-only, одна строка на каждый успешно созданный НОВЫЙ репозиторий по этой политике: timestamp + itemized-факт; idempotent-reuse на 409 и неудачные попытки в usage_log не попадают).policy_id, проверить срок действия, decision_ref присутствует, и что запрошенные namespace/privacy/owner_selector/домены попадают в объявленные границы, посчитать записи usage_log за текущий период и сравнить с лимитом. Любой из этих чеков не прошёл → STOP (см. выше), никогда не fail-open.usage_log, сравнение с лимитом и последующая дозапись после Execute — под тем же файловым локом, что уже используется для shared-файлов governance-репо (gateway-lock.py acquire <файл политики> на время check+write, release сразу после). Без лока два параллельных запроса, оба прошедших чтение до того, как любой записал свой факт, могут вместе превысить лимит.usage_log той же политики (внутри того же лока).Output: явное одобрение или отказ с approval_scope: instance | policy. Исполнение остаётся заблокированным, если одобрение не покрывает именно этот Plan.
Input: одобренный, неизменённый Plan и решение об авторизации.
Action: создать machine-readable gate receipt со следующими полями — список не сокращать, каждое поле несёт нагрузку для аудита:
approved_by: pilot | <policy_id>
approved_at: <ISO-8601 timestamp>
approval_scope: instance | policy
request_fingerprint: <stable id/hash запроса>
plan_fingerprint: <stable id/hash полного Plan из Steps 1-4>
wp_ref: WP-527
Receipt ссылается на неизменный полный Plan, сохранённый в исходной WP/сессии, по fingerprint — не заменяет и не пересказывает Plan. README и запись в реестре получают на Step 8 проекцию этого receipt, а не полный набор полей: проекция сохраняет approved_by, approved_at, approval_scope, wp_ref — человеку эти четыре поля дают понимание «кто/когда/как/по какому РП», а request_fingerprint/plan_fingerprint остаются только в исходной записи (WP/сессия), где и находится полный Plan для машинной сверки; дублировать их в человекочитаемый паспорт незачем.
Output: gate receipt, привязанный к точному авторизованному Plan; разблокирует Фазу 3.
Input: действительный gate receipt, путь создания из Step 1, финальное имя репозитория из Step 2 — кроме ветки «экосистемный DS», для которой Execute (Step 7/8) не выполняется этим скиллом: агент передаёт пилоту/R6 итоговый чеклист (класс, имя, разметка данных, writer/owner/readers, gate receipt) и останавливается ДО этого шага, сама команда gh repo create и последующая регистрация выполняются вручную по этому чеклисту, не автоматически скиллом.
Action (для остальных трёх путей — Pack уже вышел на Step 1, значит здесь SpacePlan и именованный проект): создать репозиторий через выбранный путь (SpacePlan MCP-вызов / create_repository). При успехе зарегистрировать его в 0.OPS/REPOSITORY-REGISTRY.md своего ecosystem-development репозитория, если он есть — эту запись выполняет агент, не пилот (намеренное разделение с Decision Gate: пилот авторизует, R6 исполняет). Нет такого репозитория → пропустить регистрацию, записи неоткуда взяться. Исключение — bounds.repo_class активной policy равен personal-subscriber (или любому будущему классу с тем же свойством «персональный репозиторий подписчика, не инфраструктура экосистемы»): регистрация в REPOSITORY-REGISTRY.md не выполняется — тот реестр про инфраструктуру самой экосистемы; учёт per-подписчика уже ведётся через github_status/personal_list_sources, дублирование не нужно.
Конфликт имени (409): reuse существующего репозитория разрешён только после проверки, что он одновременно (а) принадлежит owner из авторизованного Plan (не просто совпадение имени), (б) private совпадает с Plan, (в) не противоречит ожидаемой сигнатуре template_type (например, для notes — структура inbox/, docs/, README.md). Не совпало хотя бы одно (типичный случай — старый репозиторий с другим значением private, созданный до текущей policy) → STOP, reuse запрещён, отдельная задача миграции — не решается этим скиллом молча.
Output: созданный (или безопасно переиспользованный) репозиторий и запись в реестре (кроме исключения выше), либо зафиксированное частичное состояние при сбое любой из операций.
Input: созданный репозиторий, состояние реестра, манифест скелета, решение о публичности, gate receipt. Не применяется к ветке «экосистемный DS» (см. Step 7).
Action: развернуть README-паспорт (с проекцией gate receipt), заглушку CLAUDE.md, и publication-gate в CI, если публичный — только на пути реального создания Step 7. На пути безопасного 409-reuse (Step 7) скелет НЕ разворачивается заново: у переиспользуемого репозитория уже есть собственные README/CLAUDE.md, слепая перезапись затёрла бы то, что там реально накопилось. При сбое любой операции фазы Execute — немедленно остановиться и сообщить точно, что создано, а что нет; не пытаться автоматически откатывать — неудачный откат это вторая неавторизованная мутация поверх первого сбоя.
Output: инициализированный репозиторий с обязательным скелетом governance, либо явный отчёт о частичном сбое со списком завершённых и незавершённых артефактов.
assets/repository-skeleton/README.md — шаблон README-паспорта, используется на Step 8 (плейсхолдеры для класса, назначения одной строкой, доменов данных, writer/owner/readers, проекции gate receipt).assets/repository-skeleton/CLAUDE.md — минимальная заглушка CLAUDE.md, разворачивается на Step 8, чтобы Repo-Touch Gate не встретил пустой репозиторий.planId: unverified как «наверное, нормально» — неподтверждённый план блокирует Decision Gate полностью, без обхода пилотом кроме явной переклассификации.approval_scope: policy без всех семи обязательных границ (классы, namespace, privacy, owner, домены данных, лимит инстанций/период, срок действия) — частичная политика не политика, а неограниченное разрешение с лишними шагами.bash .claude/skills/skill-creator/scripts/verify-skill.sh repo-new
Ожидается: PASS по всем структурным проверкам (поля frontmatter, поля gates, наличие секций ## When to use / ## Algorithm, существование bundled resources). У этого скилла пока нет verification_class выше closed-loop структурных проверок — живой смок-тест с реальным созданием репозитория — это WP-527 Ф3 («обкатка на первом реальном создании репо»), не часть этого файла.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Регистрация косяка агента в системе учёта 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). Используй когда пользователь предлагает архитектурное решение, новый инструмент или системное изменение.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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, DS-strategy, L3 customizations, MCP, ритуал). Используй после restore из бэкапа, после update.sh, или при еженедельной сверке.
日本語の概要は準備中です。原文の説明を表示しています。