State the repo layers as OpenSpec context #43
Notifications
Due Date
No due date set.
Blocks
Depends on
#45 Adopt OpenSpec as the change workflow
claude-skills/marketplace
#39 Commit the OpenSpec scaffold
claude-skills/marketplace
Reference: claude-skills/marketplace#43
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Заполнить
context:иrules:вopenspec/config.yaml, чтобы генераторартефактов не предлагал решений, нарушающих правило слоёв.
Spec
AGENTS.mdDepends on
Motivation
openspec/config.yamlсейчас пустой шаблон:schema: spec-drivenизакомментированные примеры.
Поле
contextвливается в каждый вызовopenspec instructionsи работает какограничение для модели при генерации артефакта. Без него генератор спек, дизайна
и задач не знает главного правила этой репы и нарушит его по умолчанию — не
по злому умыслу, а потому что стандартный питоновский совет всегда «возьми
subprocess» или «поставь pytest».Что обязано быть в контексте:
skills/issueиskills/pagesubprocessзапрещёнsubprocess.run(["tea", ...])skills/sync/scripts/_gitea.pytea apiunittest, без pytest и зависимостейpytest.fixturetmp/issues/иtmp/wiki/, а строит одноразовый репозиторийrulesдаёт то же самое адресно по артефактам: дляtasks— требованиессылаться на TC, чтобы задачи ложились парами Red/Green.
Acceptance criteria
openspec/config.yamlимеет непустойcontext:, и в нём присутствуют всешесть правил из таблицы выше
openspec instructions proposal --change <любой> --jsonвозвращает этоттекст в поле
contextrules:для артефактаtasksтребует, чтобы каждая задача называла TCcontextне длиннее ~30 строк — это ограничение для модели, а не копияAGENTS.mdtasks.mdне предлагаетsubprocessвнутриskills/issue/scripts/и не тянет pytestConstraints
AGENTS.mdцеликом. Он остаётся источникомправды,
context— короткая выжимка тех правил, которые модель нарушает.openspec config(~/.config) — он машинный,а не проектный, и в репозиторий не попадает.