State the repo layers as OpenSpec context #43

Open
opened 2026-08-10 13:10:11 +00:00 by claude · 0 comments
Collaborator

Summary

Заполнить context: и rules: в openspec/config.yaml, чтобы генератор
артефактов не предлагал решений, нарушающих правило слоёв.

Spec

AGENTS.md

Depends on

  • commit-the-openspec-scaffold — файл должен быть в git, иначе его нет в worktree

Motivation

openspec/config.yaml сейчас пустой шаблон: schema: spec-driven и
закомментированные примеры.

Поле context вливается в каждый вызов openspec instructions и работает как
ограничение для модели при генерации артефакта. Без него генератор спек, дизайна
и задач не знает главного правила этой репы и нарушит его по умолчанию — не
по злому умыслу, а потому что стандартный питоновский совет всегда «возьми
subprocess» или «поставь pytest».

Что обязано быть в контексте:

Правило Почему без него сломается
два офлайн-домена, skills/issue и skills/page генератор предложит дёрнуть Gitea прямо из домена
в доменах только stdlib, subprocess запрещён предложит subprocess.run(["tea", ...])
транспорт ровно один — skills/sync/scripts/_gitea.py появится вторая обёртка над tea api
тесты — stdlib unittest, без pytest и зависимостей приедет pytest.fixture
тест не трогает tmp/issues/ и tmp/wiki/, а строит одноразовый репозиторий тест снесёт рабочий стор разработчика
язык: English headers, Russian prose артефакты уедут в разнобой

rules даёт то же самое адресно по артефактам: для tasks — требование
ссылаться на TC, чтобы задачи ложились парами Red/Green.

Acceptance criteria

  • openspec/config.yaml имеет непустой context:, и в нём присутствуют все
    шесть правил из таблицы выше
  • openspec instructions proposal --change <любой> --json возвращает этот
    текст в поле context
  • rules: для артефакта tasks требует, чтобы каждая задача называла TC
  • context не длиннее ~30 строк — это ограничение для модели, а не копия
    AGENTS.md
  • проверено на реальном change: сгенерированный tasks.md не предлагает
    subprocess внутри skills/issue/scripts/ и не тянет pytest

Constraints

  • Не входит в объём: дублировать AGENTS.md целиком. Он остаётся источником
    правды, context — короткая выжимка тех правил, которые модель нарушает.
  • Не входит в объём: глобальный openspec config (~/.config) — он машинный,
    а не проектный, и в репозиторий не попадает.
<!-- tea:id state-the-repo-layers-as-openspec-context --> ## Summary Заполнить `context:` и `rules:` в `openspec/config.yaml`, чтобы генератор артефактов не предлагал решений, нарушающих правило слоёв. ## Spec `AGENTS.md` ## Depends on - commit-the-openspec-scaffold — файл должен быть в git, иначе его нет в worktree ## Motivation `openspec/config.yaml` сейчас пустой шаблон: `schema: spec-driven` и закомментированные примеры. Поле `context` вливается в каждый вызов `openspec instructions` и работает как ограничение для модели при генерации артефакта. Без него генератор спек, дизайна и задач не знает главного правила этой репы и нарушит его по умолчанию — не по злому умыслу, а потому что стандартный питоновский совет всегда «возьми `subprocess`» или «поставь pytest». Что обязано быть в контексте: | Правило | Почему без него сломается | |---|---| | два офлайн-домена, `skills/issue` и `skills/page` | генератор предложит дёрнуть Gitea прямо из домена | | в доменах только stdlib, `subprocess` запрещён | предложит `subprocess.run(["tea", ...])` | | транспорт ровно один — `skills/sync/scripts/_gitea.py` | появится вторая обёртка над `tea api` | | тесты — stdlib `unittest`, без pytest и зависимостей | приедет `pytest.fixture` | | тест не трогает `tmp/issues/` и `tmp/wiki/`, а строит одноразовый репозиторий | тест снесёт рабочий стор разработчика | | язык: English headers, Russian prose | артефакты уедут в разнобой | `rules` даёт то же самое адресно по артефактам: для `tasks` — требование ссылаться на TC, чтобы задачи ложились парами Red/Green. ## Acceptance criteria - [ ] `openspec/config.yaml` имеет непустой `context:`, и в нём присутствуют все шесть правил из таблицы выше - [ ] `openspec instructions proposal --change <любой> --json` возвращает этот текст в поле `context` - [ ] `rules:` для артефакта `tasks` требует, чтобы каждая задача называла TC - [ ] `context` не длиннее ~30 строк — это ограничение для модели, а не копия `AGENTS.md` - [ ] проверено на реальном change: сгенерированный `tasks.md` не предлагает `subprocess` внутри `skills/issue/scripts/` и не тянет pytest ## Constraints - Не входит в объём: дублировать `AGENTS.md` целиком. Он остаётся источником правды, `context` — короткая выжимка тех правил, которые модель нарушает. - Не входит в объём: глобальный `openspec config` (`~/.config`) — он машинный, а не проектный, и в репозиторий не попадает.
claude added this to the openspec integration milestone 2026-08-10 13:10:11 +00:00
claude added the
type
task
comp/docscomp/openspec
labels 2026-08-10 13:10:11 +00:00
claude added a new dependency 2026-08-10 13:10:11 +00:00
claude added a new dependency 2026-08-10 13:10:13 +00:00
Sign in to join this conversation.