Как FISS взаимодействует с навыками
Навыки входят в интеллектуальное пространство в широком смысле. Однако их формат, хранение, установка, обнаружение и запуск находятся вне области регулирования FISS. Стандарт не требует помещать их в FISS/.
Взаимодействие с навыками опирается на принцип «Сохраняйте независимость внешних механизмов»: внешние механизмы остаются независимыми, а стандарт поддерживает механизм переопределений их поведения на уровне проекта без изменения самих механизмов.
Если проект использует переопределения, корневой индекс должен содержать ссылку на FISS/overrides/INDEX.md с условием «Читать перед использованием любого навыка». Например:
- [Переопределения проекта](overrides/INDEX.md) — Читать перед использованием любого навыка.Операционные артефакты
Операционный артефакт — артефакт, который не просто описывает что-либо, а используется в процессе работы как действующий элемент этого процесса.
Интеллектуальное пространство состоит не только из знаний и инструкций. В него входят операционные артефакты, которые обеспечивают движение задачи через процесс. Например, постановка определяет задачу, план направляет выполнение, а результаты проверки служат основанием для подтверждения завершения работы.
Один из возможных процессов:
намерение → постановка (statement) → анализ → решения → план → изменения → результат → проверкаЭто пример, а не обязательный процесс FISS. Его этапы могут использовать операционные артефакты; отдельный файл для каждого этапа не требуется. Операционный характер определяется ролью артефакта в работе, а не его форматом, каталогом или сроком хранения.
Навык должен обозначать операционный артефакт по назначению и может задавать имя файла по умолчанию. Например, навык подготовки плана создаёт план текущей задачи в plan.md, а навык выполнения плана читает и использует тот же артефакт. Навыки, работающие с одним артефактом, должны использовать согласованное назначение и имя по умолчанию либо явно установленное проектом соответствие.
Проект определяет расположение операционных артефактов в подходящем документе в FISS/overrides/:
Операционные артефакты текущей задачи хранятся в `_currenttask/`.В этом случае имя plan.md, заданное навыком, даёт путь _currenttask/plan.md.
Операционный артефакт плана текущей задачи находится в `_currenttask/task-plan.md`.Это правило задаёт полный путь конкретного артефакта и переопределяет его имя. Если заданы оба правила, для плана используется _currenttask/task-plan.md, а для остальных операционных артефактов — общая директория и их имена по умолчанию. Пути в этих примерах указаны относительно корня проекта.
Перед созданием или чтением артефакта агент должен определить его расположение в следующем порядке:
- явное проектное расположение конкретного артефакта;
- общая директория операционных артефактов задачи и имя файла по умолчанию;
- расположение, установленное другими правилами проекта или поведением навыка по умолчанию.
Все навыки, использующие один операционный артефакт в одной задаче, должны обращаться к одному и тому же расположению. Если существующий артефакт находится в другом месте или правила противоречат друг другу, агент должен разрешить расхождение по правилам источников, а не создавать второй экземпляр. При параллельной работе проект должен определять отдельную рабочую область для каждой задачи либо другой однозначный способ различать их артефакты.
Переопределения на уровне проекта
FISS/overrides/ содержит проектные переопределения правил и поведения механизмов, внешних по отношению к проекту и его интеллектуальному пространству, которые используются в проекте. Например, навыков. Проектные правила и поведение, не являющиеся переопределением внешних механизмов, следует хранить в FISS/knowledge/project/.
Навык должен содержать переносимый способ рассуждения и работы. Проект может уточнить, где лежат его артефакты, как выглядят записи, что считается достаточной проверкой и в каких случаях агенту нужна остановка. Такие правила не следует встраивать в навык: тогда его пришлось бы менять для каждого проекта.
Для таких правил рекомендуется необязательная составная область FISS/overrides/:
FISS/
├── INDEX.md
├── BOOTSTRAP.md
└── overrides/
├── INDEX.md
├── skills/
│ ├── open-questions.md
│ ├── adr.md
│ ├── risks.md
│ ├── task-execution.md
├── governance.md
├── artifacts.md
├── templates.md
├── verification.md
├── orchestration.md
├── context-and-memory.md
└── style.mdЭто пример, а не обязательный набор файлов. Создавайте только документы, где проект действительно изменяет или явно закрепляет правило. FISS/overrides/INDEX.md остаётся единой точкой входа по мере роста области. Параллельные версии правил не создаются.
FISS/overrides/INDEX.md содержит ссылки на используемые документы с условиями чтения. Применимость определяется предметом работы, а не названием навыка: навыки могут переименовываться, объединяться и разделяться. Названия навыков для навигации не нужны. Например:
# Переопределения проекта
- [Открытые вопросы](skills/open-questions.md) — Читать при добавлении, пересмотре или закрытии открытых вопросов.
- [Проверка результатов](verification.md) — Читать при планировании проверок и подтверждении завершения работы.В этом примере skills/ — контейнер внутри FISS/overrides/: ссылки на его документы находятся в FISS/overrides/INDEX.md. Самостоятельная область FISS/skills/ не создаётся. Правила переопределения поведения и жизненных циклов навыков находятся в переопределениях, а сами вопросы, риски и решения — в соответствующих областях или внешних системах проекта.
Перед использованием любого навыка агент должен прочитать точку входа переопределений, если она есть, и выбрать применимые документы по условиям чтения. Читать все документы области не требуется. Это общее правило работы агента с проектом; его не нужно повторять в каждом навыке.
Если конкретного правила нет, агент учитывает явно установленные правила проекта, затем обнаруженную конвенцию, а при их отсутствии — поведение навыка по умолчанию. Переопределение заменяет только описанную часть поведения; остальные правила навыка сохраняются. Несогласованность с другим явным правилом проекта разрешается по правилам источников, а не молчаливым выбором. Переопределения не отменяют ограничений среды исполнения и не гарантируют совместимость с любым навыком: если правило нельзя применить, агент должен сообщить об этом человеку.
Переопределения — обычные канонические документы, а не набор абстрактных переменных. Они формулируют правило напрямую и могут ссылаться на существующие знания, внешние системы и другие артефакты. Поэтому отдельный YAML с теми же настройками не требуется. Если для инструмента необходим машинный формат, он должен быть производным от канонического документа.
Что можно переопределить
Ниже перечислены возможные классы проектных правил. Они не являются обязательными частями FISS и не требуют создавать одноимённые файлы. Таблица помогает решить, нужен ли проекту соответствующий документ. Все пути в её последнем столбце указаны относительно корня проекта.
| Область | Что может описывать документ | Примеры файлов |
|---|---|---|
| Поведение и жизненные циклы навыков | Состояния, переходы, условия закрытия и пересмотра: для ADR, открытых вопросов, рисков, выполнения задач, терминов, сверки ментальной модели, веток и слияния | FISS/overrides/skills/open-questions.md, FISS/overrides/skills/adr.md, FISS/overrides/skills/risks.md |
| Контроль и автономия | Обязательные подтверждения человека, режимы работы агента, критерии человеческого ревью, допустимые отклонения от плана | FISS/overrides/governance.md |
| Артефакты и пути | Расположение ADR, проектных и предметных знаний, открытых вопросов, рисков, глоссариев, проекций и профиля автора; общая директория операционных артефактов задачи и отдельные пути для конкретных артефактов | FISS/overrides/artifacts.md |
| Форматы и шаблоны | Структуры ADR, плана, записи риска, предписывающего правила, сообщения коммита и Pull Request | FISS/overrides/templates.md |
| Проверка | Команды проверки, приемлемые свидетельства, критерии завершения и случаи обязательного независимого ревью | FISS/overrides/verification.md |
| Оркестрация | Лимиты попыток исправления, выбор моделей и ролей, правила разрешения неоднозначности, параллельность и worktree | FISS/overrides/orchestration.md |
| Контекст и память | Порог сохранения или сжатия контекста, контрольные копии, объединение знаний и признаки их устаревания | FISS/overrides/context-and-memory.md |
| Язык и стиль | Языки материалов, режим общения, авторский голос и проверки когнитивных искажений | FISS/overrides/style.md |
Пример: переопределение жизненного цикла открытых вопросов
Встроенный подход навыка может допускать статус Deferred. Если проект не допускает откладывания открытых вопросов, если они могут быть решены прямо сейчас, правило следует зафиксировать в FISS/overrides/skills/open-questions.md:
# Открытые вопросы
## Жизненный цикл
Статус описывает состояние знания, а не состояние рабочего процесса:
- `Active` — неопределённость существует и остаётся значимой; исследование или зависимость не меняют этот статус.
- `Needs review` — есть свидетельство изменения контекста или нарушения условия «Пересмотреть если»; неизвестная свежесть или сам по себе конфликт свидетельств статус не меняют.
- `Resolved` — появилось достаточное основание считать вопрос решённым и указано «Закрыто через»; это результат закрытия, а не статус активного представления.
- `Superseded` — вопрос покрыт другим вопросом или решением; в истории закрытия укажи ссылку на замену.
- `Withdrawn` — исходная постановка ошибочна или больше не имеет основания; зафиксируй это в истории закрытия.
Не создавай отдельные статусы `Investigating` и `Blocked`: исследуемый вопрос или вопрос, ожидающий зависимости, остаётся `Active`, а зависимость фиксируется в контексте. Не используй статус `Deferred`: проект не допускает откладывать открытые вопросы.
В шаблоне активной записи допускаются только `Active` и `Needs review`. Поле «Почему отложено» не используется; переход в `Deferred` исключён из процедуры сверки. Ожидание исследования или зависимости не является основанием закрыть вопрос.Этот документ не изменяет сам навык. Он уточняет, как навык должен применяться в конкретном проекте, и объясняет человеку причину отличия от поведения по умолчанию.
Операционные артефакты и переносимость
Навык должен определять операционный артефакт по назначению и может задавать его имя и расположение по умолчанию. Эти значения не являются обязательными для проекта: проект может переопределить расположение артефакта своими правилами. При отсутствии такого переопределения используются значения по умолчанию, заданные навыком.
При отсутствии проектного правила используется расположение по умолчанию, заданное навыком. Если проект явно задаёт расположение, оно имеет приоритет.
Например, навык может работать с планом задачи и задать для него конкретное имя файла, например plan.md, а так же, указать, что по умолчанию будет создавать / искать файл по пути:
_currenttask/plan.mdВ правилах проекта можно задать общую папку для всех операционных артефактов, например, в FISS/overrides/artifacts.md так:
# Навыки
Все операционные артефакты навыков хранятся в проекте в директории `_currenttask/`Если необходимо изменить имя файла артефакта (в случае, если оно задано внутри навыка как plan.md), то это переопределение поведения навыка, тогда в FISS/overrides/skills/writing-plans.md можно написать это так:
# Пути
Операционный артефакт плана текущей задачи должен находиться по пути `_currenttask/task-plan.md`