Skip to content

extra-figma-code-connect #87

Open
khaliulin wants to merge 85 commits into
tokens-updatefrom
feat/figma-code-connect-static
Open

extra-figma-code-connect #87
khaliulin wants to merge 85 commits into
tokens-updatefrom
feat/figma-code-connect-static

Conversation

@khaliulin

Copy link
Copy Markdown
Contributor

Что и зачем

Статический файловый аналог Figma Code Connect — даёт LLM/Claude тот же контекст связки «Figma-компонент ↔ Angular-компонент», что и оригинальный Code Connect, но без рантайма Figma CLI и без TypeScript-DSL.

Потребитель: LLM при генерации Angular-кода по Figma-дизайну.
Триггер: агент получает nodeId/componentKey из Figma MCP → ищет файл через grep → читает контракт.

Архитектура

Слой Расположение Назначение
Validator scripts/figma-code-connect/validate.mjs Node-скрипт + 6 node:test'ов; npm run validate:figma-cc
Контракт формата src/lib/figma-code-connect/{README,schema,conventions,tokens,icons,missing}.md Глобальные справочники
Контракт компонента src/lib/components/<name>/<name>.figma.md Колокация рядом с *.component.ts
Spec и план docs/superpowers/{specs,plans}/2026-06-22-figma-code-connect-static*.md Дизайн-документы

Формат файла: Markdown с YAML frontmatter. Жёсткий порядок секций: ## Overview## Props mapping## Variants## Slots## Related## Do / Don't. Code-fence — язык на открывающем (CommonMark).

Пилоты (с реальными Figma nodeId через MCP)

  • extra-button — fileKey Khh7arsuXss3ncqy1Dz3OZ, 12 вариантов.
  • extra-input-text — fileKey HOLKdvQJ8jCLeX17s9d0Yf (linked library), ControlValueAccessor + 6 вариантов.
  • extra-dialog — fileKey HOLKdvQJ8jCLeX17s9d0Yf, 4 варианта, два структурных слота (*extraDialogHeader, *extraDialogFooter).

figma.fileKey — per-component (linked-library модель Figma), это намеренно.

Проверки

  • npm run validate:figma-cc → exit 0
  • node --test scripts/figma-code-connect/validate.test.mjs → 6/6
  • ✅ Lookup по selector: и nodeId: возвращает ровно один файл на пилот

Что валидатор enforces

  • Наличие обязательных полей frontmatter (component, selector, import.*, figma.*, status, updated)
  • status ∈ {stable, beta, deprecated, orphan-code}
  • Фиксированный порядок секций тела
  • Открывающий code-fence имеет язык; закрывающий — пустой

Зависимости

Новая dev-зависимость: js-yaml@^4.1.0. Рантайм-зависимости не изменены. angular.json, .env, *.component.ts не модифицировались.

Backlog (out-of-scope этого PR)

  • Drift .figma.md*.component.ts не валидируется автоматически
  • updated: не освежается на изменение исходника
  • Dangling cross-links (inputgroup, form-field, confirm-dialog) — файлы ещё не созданы
  • Uniqueness nodeId между файлами не проверяется
  • prebuild-hook для валидатора — opt-in, не подключён

История коммитов

15 коммитов, conventional-commit формат. История содержит mid-flight fix'ы из review-loop'ов (фиксы headings, code-fence rule, inline icon, README map) — оставлены как есть для прозрачности процесса.

Контекст

  • Spec: docs/superpowers/specs/2026-06-22-figma-code-connect-static-design.md
  • План: docs/superpowers/plans/2026-06-22-figma-code-connect-static.md

Danil Khaliulin and others added 30 commits April 22, 2026 21:25
…dback/data/media/controls); оставить Aura-compat colorScheme
…, убрать мусорные ключи colorScheme, валидатор на baseline-фикстуре
…ext/border (35 ролей), компоненты переразведены (намеренные сдвиги)
@khaliulin khaliulin changed the title feat(figma-cc): static Figma Code Connect — формат, валидатор и 3 пилотных компонента extra-figma-code-connect Jun 23, 2026
@khaliulin khaliulin requested a review from AxyIX June 25, 2026 04:13
@AxyIX AxyIX temporarily deployed to github-pages July 3, 2026 05:24 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants