Skip to content

extra-figma-code-connect #87

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

extra-figma-code-connect #87
khaliulin wants to merge 47 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 June 18, 2026 14:02
…dback/data/media/controls); оставить Aura-compat colorScheme
…, убрать мусорные ключи colorScheme, валидатор на baseline-фикстуре
…ext/border (35 ролей), компоненты переразведены (намеренные сдвиги)
…(semantic = colorScheme(5 ролей)+dimension+typography+shadow)
…ереразведены на под-пути ролей (3 lineHeight снап: stepper/metergroup→caption, panelmenu→body.md)
Implement .figma.md format validator with TDD approach. Validates frontmatter (required YAML fields), section order, and code fence language annotations. Includes three fixtures: valid example, missing frontmatter, and wrong section order violations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add three reference documents for static Figma Code Connect feature:
- tokens.md: Figma variables mapped to CSS/Tailwind (colors, spacing, radius, typography, shadows, opacity)
- icons.md: PrimeIcons usage guide with common icon examples
- missing.md: Backlog table for tracking unimplemented tokens and icons

All three documents follow Russian documentation standard and serve as anchors for `.figma.md` component files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ening fence only

Opening fences require a language tag (html/ts/scss); closing fences must be bare ``` per CommonMark/GitHub spec.
Updated validator logic (odd-index check), fixtures, schema.md, README.md, and button.figma.md accordingly.
Added invalid-missing-open-fence-language fixture + test. Added variant='text' Do/Don't rule to button.figma.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds Code Connect file for ExtraInputTextComponent with Figma hit:
componentSet nodeId 15:13444, componentKey b8bc649d..., fileKey HOLKdvQJ8jCLeX17s9d0Yf
(UI Kit DS v2.0). Maps all @inputs (placeholder, size, readonly,
showClear, fluid, disabled via CVA), 6 variants, Do/Don't rules.
Validator exits 0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace false figma-code-connect/button|input-text|dialog layout with
real colocated layout: src/lib/components/{button,inputtext,dialog}/<name>.figma.md.
Fix input-text/ → inputtext/ folder name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace unused `draft` with `orphan-code` in schema.md. Add validator
check that rejects unknown status values. Quote updated date in
valid.figma.md fixture. Add invalid-bad-status fixture + test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Danil Khaliulin and others added 16 commits June 22, 2026 22:54
Add validator error when a closing (odd-indexed) code-fence carries a
language tag. Add invalid-closing-fence-language fixture + test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sk, inputotp, password, toggleswitch, togglebutton)
… rating, progressbar, progressspinner, metergroup)
@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
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.

1 participant