Один управляемый процесс для создания аккуратных веб-интерфейсов в Codex и Claude Code: интервью → контекст → дизайн → сборка → обратная связь → независимое ревью → ОТК.
Это не ещё один «сделай красиво» prompt и не свалка из одновременно активных Skills. Impeccable отвечает за дизайн и производство, Jakub Krehel — за отдельное read-only ревью, а браузерные проверки — за факты, которые не должны зависеть от вкуса модели. Опциональные carriers и каталоги включаются только под конкретную утверждённую задачу и не становятся дополнительными арт-директорами.
Документация соответствует workflow v0.2.0.
После одного запуска workflow:
- проверяет проект и уже установленный контекст;
- задаёт короткие адаптивные вопросы;
- принимает положительные и отрицательные референсы как скриншоты или ссылки;
- при отсутствии референсов предлагает 2–3 направления на выбор;
- показывает одну карточку понимания и ждёт подтверждение;
- создаёт пользовательские
PRODUCT.md,REFERENCES.md,DESIGN.md,ACCEPTANCE.mdи brief поверхности; - передаёт производство Impeccable;
- при необходимости проводит dev-only раунд пользовательских аннотаций через Agentation и исправляет подтверждённые замечания;
- запускает независимый аудит Jakub;
- проверяет результат detector, Playwright, axe и Lighthouse;
- выдаёт честный вердикт с визуальными доказательствами и незакрытыми пробелами.
Ни один intent-файл не заполняется молча. Если пользователь хочет делегировать решение, он прямо говорит «выбери сам» и подтверждает предложенное направление.
Требуется Node.js 22.20 или новее.
Публичная установка из GitHub Release v0.2.0:
npx --yes --package=https://github.com/ForgetMeAI/design-harness/releases/download/v0.2.0/forgetme-design-harness-0.2.0.tgz forgetme-design-harness installПосле публикации в npm та же команда станет короче:
npx forgetme-design-harness installКоманда по умолчанию устанавливает project-local entry skill для Codex и Claude
Code, затем запускает официальные установщики Impeccable и полного набора Jakub.
Jakub-набор загружается из неизменяемого GitHub archive на commit
a67333399dabbc71d7778962cb9c4fb9b86a00d0; успешный код внешнего установщика
дополнительно проверяется по SHA-256 закреплённых core-файлов всех восьми skills
на каждом выбранном хосте. Неожиданный upstream drift считается ошибкой и требует
осознанного обновления Harness.
Для компактных Jakub skills проверяется точное дерево: лишний файл тоже считается
drift. Для более крупного Impeccable проверяются host-specific инструкция,
связанные guidance-файлы, detector, hook entry points и их локальная import-цепочка;
отчёт честно помечает этот режим как pinned-sentinels, а не как хэш всего дерева.
Перед каждым внешним шагом Harness сохраняет затрагиваемые skill-каталоги и
известные hook-конфиги. Ненулевой exit либо несовпадение хэшей откатывает этот
ограниченный набор изменений и не советует запускать upstream-команду отдельно,
потому что это обошло бы повторную проверку.
Сторонние проекты не копируются внутрь Design Harness. Agentation,
transitions.dev, Border Beam, Thinking Orbs, AICSS, Beautiful UI, Originkit,
Canvas UI и Metal FX входят только в каталог маршрутизации: обычная установка
Harness их не устанавливает.
Для локальной проверки checkout без изменения открытого проекта:
npm ci
npm run validate
npm run pack:checkЗапуск в Codex:
Используй $design-harness и собери сайт-визитку.
Codex ищет project skills в .agents/skills от текущей папки до корня Git-
репозитория — это соответствует официальному руководству по Codex skills.
После установки skill обычно обнаруживается автоматически. Если он
не появился в $ или /skills, откройте новую задачу из корня нужного проекта;
если это не помогло — перезапустите Codex и выполните check. В отчёте должны
быть отдельно installation: ready и QA tooling/config: ready; отсутствие Impeccable или
любого из семи Jakub skills теперь считается ошибкой, а не успешной установкой.
Project QA tooling/config считается готовым только при реально установленном локальном
node_modules, наличии Playwright/axe/Lighthouse и соответствующих Playwright и
Lighthouse конфигов. Один Vitest/Jest-конфиг или только записи в package.json
не дают ложный зелёный статус. Для --scope user команда проверяет установку;
QA проверяется отдельным project-scope запуском из корня проекта.
Запуск standalone-установки в Claude Code:
/design-harness Собери сайт-визитку.
При установке Claude-плагина через marketplace стабильное namespaced-имя:
/design-harness:design-harness Собери сайт-визитку.
После установки Impeccable в Codex откройте /hooks и одобрите его project hook.
Чтобы поставить только orchestrator и сначала всё осмотреть:
npx --yes --package=https://github.com/ForgetMeAI/design-harness/releases/download/v0.2.0/forgetme-design-harness-0.2.0.tgz forgetme-design-harness install --skip-upstreamsПолезные параметры:
--host codex|claude|both Куда установить; по умолчанию both
--scope project|user Область; по умолчанию project
--target <path> Корень project-установки
--dry-run Показать изменения, ничего не записывая
--force Заменить только существующий design-harness
--skip-upstreams Не запускать установщики Impeccable и Jakub
--installation-only Только для check: проверить core без project QA gate
--json Машиночитаемый результат
Проверить состояние без изменений:
npx --yes --package=https://github.com/ForgetMeAI/design-harness/releases/download/v0.2.0/forgetme-design-harness-0.2.0.tgz forgetme-design-harness checkcheck сама не обращается к сети. Показанная команда npx скачает пакет, если
его ещё нет в локальном кэше; уже установленный CLI можно запустить напрямую как
forgetme-design-harness check.
check — это проверка целостности установки и наличия QA-инструментов с
конфигурацией, а не качества готового интерфейса. Она ничего не запускает и не
заменяет свежие Playwright/axe/Lighthouse/detector-отчёты. После
--skip-upstreams она намеренно вернёт ненулевой статус и перечислит
отсутствующие core skills и QA-возможности.
Rollback внешнего шага также не является sandbox: npm/GitHub installer уже был явно авторизован и теоретически способен менять произвольные файлы или внешнее состояние. Harness восстанавливает только выбранные upstream skill-каталоги, новые записи в соответствующих skills-root и известные Impeccable hook sidecars; любой неполный rollback выводится как отдельная ошибка с сохранённым backup.
Плагин содержит orchestrator, но не распространяет сторонние Impeccable/Jakub
sources. Для полностью проверяемой project-local установки сначала выполните
bootstrap; он также создаст standalone-команду /design-harness:
npx --yes --package=https://github.com/ForgetMeAI/design-harness/releases/download/v0.2.0/forgetme-design-harness-0.2.0.tgz forgetme-design-harness install --host claude --target .
npx --yes --package=https://github.com/ForgetMeAI/design-harness/releases/download/v0.2.0/forgetme-design-harness-0.2.0.tgz forgetme-design-harness check --installation-only --host claude --target .На чистом проекте до создания QA-конфигурации используйте для bootstrap-проверки
check --installation-only --host claude --target .: команда требует
installation: ready, явно пишет, что QA пропущена, и не выдаёт её за пройденную.
После успешной installation-only проверки установите plugin, если нужна
namespaced-команда:
/plugin marketplace add ForgetMeAI/design-harness
/plugin install design-harness@forgetme-design-harness
/reload-plugins
/design-harness:design-harness
Локальная разработка:
claude plugin validate adapters/claude-code --strict
claude --plugin-dir adapters/claude-codePRODUCT.mdотвечает: для кого, зачем, какой голос и чего избегать.REFERENCES.mdфиксирует не только ссылки, но и конкретно что брать/не брать.DESIGN.md— визуальный контракт в совместимом с Impeccable формате.- Impeccable — единственный главный дизайн-контур.
better-interface— независимый технадзор после реализации.- Detector и browser QA — автоматический ОТК.
Два широких дизайн-контура намеренно не смешиваются в одном production-проходе: это создаёт конфликт вместо качества и делает результат неаудируемым.
Полный договор фаз, полномочий и результатов: docs/WORKFLOW.md.
Workflow умеет подготовить project-local QA scaffold для:
- Playwright screenshots на mobile/tablet/desktop;
- axe accessibility scan;
- reduced-motion режима;
- Lighthouse CI без публичной загрузки отчётов;
- Impeccable detector.
Loading, empty, error и long-copy состояния зависят от приложения. Если для них
нет воспроизводимого route/fixture, итог будет Not reviewed, а не выдуманный
зелёный статус. Screenshot mismatch никогда не принимается автоматически.
- Human feedback: Agentation — dev-only мост между первой сборкой и независимым ревью. По умолчанию используются ручные локальные аннотации; Agentation MCP включается только после отдельного явного согласия пользователя на способ запуска и хранения данных. Agentation исключается из production bundle.
- Product motion: transitions.dev — узкий method carrier для обычных
переходов интерфейса. Сначала запускается read-only
review,refineилиpolish; изменение кода черезapplyтребует подтверждения. GSAP остаётся вариантом только для действительно сложного motion и имеет собственную, не OSI open-source лицензию. - Contextual primitives: Border Beam допускается только как семантический
акцент состояния
active/live/processingлибо одного приоритетного CTA; Thinking Orbs — только для реальных AI-состояний с видимым текстом, accessibility-семантикой и статическим reduced-motion fallback. - AI-interface catalogs: AICSS можно рассматривать только для утверждённых agent/chat-сценариев и после проверки доступа к конкретному компоненту; Beautiful UI используется как каталог паттернов и референсов, а не как источник кода без подтверждённой лицензии.
- Effects and inspiration lab: Originkit, Canvas UI и Metal FX используются только для одного явно утверждённого эффекта с проверенными условиями, browser/performance budget, reduced-motion и обычным fallback без WebGL.
- Existing narrow routes: shadcn — только для подходящего React/product UI; Storybook — когда проекту действительно нужна компонентная система; image generation — когда утверждённому направлению нужны оригинальные assets.
Ни один carrier, primitive, каталог или effects-инструмент не устанавливается по умолчанию. До подключения Harness фиксирует назначение, точный источник и версию, лицензионный режим, fallback и явное одобрение пользователя.
npm run sync:claude
npm test
npm run validate
npm pack --dry-runSkill хранится в skills/design-harness/. Claude-версия генерируется в
adapters/claude-code/, потому что Claude Code использует дополнительное поле
ручного invocation, которого нет в стандартном Codex frontmatter. Не редактируйте
сгенерированную копию вручную.
Design Harness не требует API-ключей и не хранит историю чата. Машинное состояние
содержит только фазу, пути и минимальные checkpoint-данные. Никогда не помещайте
credentials в PRODUCT.md, DESIGN.md, reference-файлы или отчёты.
Аннотации Agentation могут содержать текст интерфейса, селекторы и технический контекст страницы. Harness использует их только локально в dev-среде; MCP и любой персистентный способ хранения требуют отдельного opt-in и не включаются на страницах с credentials или чувствительными пользовательскими данными.
Собственный код — MIT. Impeccable, Jakub, Playwright, axe, Lighthouse и опциональные carriers сохраняют собственные условия. См. THIRD_PARTY.md.