Skip to content

extra-figma-code-connect - #87

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

extra-figma-code-connect #87
khaliulin wants to merge 87 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
@ichiesov ichiesov added the status/in-progress В разработке label Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status/in-progress В разработке

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants