# sfm ## Что это {{ОДНИМ АБЗАЦЕМ: что делает система, для кого, главный сценарий.}} ## Стек и ограничения - {{Язык, сборка, тесты — например: Python 3.12, uv, pytest.}} - {{Жёсткие ограничения среды исполнения — без чего код не должен собираться.}} ## Архитектура - `src/core/` (или {{ваш путь}}) — чистая логика без зависимостей от фреймворка/платформы. Покрывается тестами полностью. - `src/{{adapter}}/` — тонкая обёртка над платформой. Тестируется руками или интеграционно. - {{Ключевые интерфейсы/порты между ними, если есть.}} ## Команды - `{{npm test / pytest}}` — весь набор тестов. Зелёным считается только весь набор. - `{{npm run build / ...}}` — сборка. - `{{npm run dev / ...}}` — локальный запуск. ## Тесты - Golden-тесты: `tests/fixtures/.*` + эталон `.expected.*`. Внешние сервисы в тестах мокаются. - {{Где лежит тестовое окружение (vault, БД, песочница).}} ## Первая подсистема {{Что делается первым и почему. Тестовая инфраструктура — Task 1 первого плана.}} ## OpenSpec и superpowers - Вход в любую задачу — superpowers:brainstorming. Skills openspec-propose и openspec-explore сами по себе не запускать. - Когда brainstorming классифицировал задачу как architectural, структуру change создать через `openspec new change ` (или `/opsx:propose `), а содержимое proposal.md, specs/ и design.md написать по итогам brainstorming. tasks.md из OpenSpec не заполнять — задачи живут в плане superpowers. - `/opsx:apply` не использовать: исполнение идёт через writing-plans и SDD/executing-plans. - `openspec archive ` — после merge PR, как часть чеклиста закрытия. - Хук require-plan защищает любой каталог `src/` на любой глубине. Если код лежит иначе — перечислить каталоги (префиксы от корня, по одному в строке) в `.claude/code-paths`.