Communitygithub.com

TasteForge 비디오

파일 기반 멀티모달 이미지, 비디오, 3D 에셋 발견; 취향 인터뷰; 증류 또는 적용 워크플로; 스타일 팩 검증; 편집 가능한 EDL/FCPXML 내보내기; 출처 감사; 그리고 제공자 생성 전에 반드시 실패 폐쇄되어야 하는 오프라인 계획에 사용됩니다.

TasteForge 비디오란 무엇인가요?

TasteForge 비디오는 ECC(Enhanced Creative Copilot) 시스템 내에서 작동하는 로컬, 결정론적, 오프라인 비디오 오케스트레이션 스킬입니다. 이 스킬은 비디오, 이미지 및 3D 에셋의 파일 중심 멀티모달 검색을 지원하며, '이 참조처럼 느껴지게'라는 추상적인 요청을 반복 가능하고 검사 가능한 워크플로로 변환합니다. 사용자는 취향 인터뷰를 진행하고, 이를 구조화된 스타일 팩으로 증류하고, 측정된 케이던스와 룩을 로컬 미디어에 적용하고, CMX3600 EDL 및 FCPXML 1.9와 같은 편집 가능한 타임라인을 내보낼 수 있습니다. 제공자(예: Fal) 생성과의 핵심 경계는 엄격합니다. 이 스킬은 모든 로컬 결정론적 작업(인터뷰, 패킹 검증, 적용, 내보내기, 출처 감사)을 처리하지만, 제공자 호출은 명시적으로 실패 폐쇄되며, 이는 라이브 생성이 필요한 모든 요청이 별도의 권한 하에 별도로 처리되어야 함을 의미합니다. 표준 구현은 ECC 저장소 내의 `ecc-tasteforge` Python 패키지이며, `python3 -m tasteforge <command>` CLI를 통해 액세스할 수 있습니다. 이 스킬은 버전 관리된 출처 추적, 결정론적 드라이런 의미론, 제공자 식별자를 단순한 포인터로 취급하는 참조 전용 출처 감사를 강조하며, 실제 제공자 호출이나 미디어 업로드가 없음을 보장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/tasteforge-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

TasteForge 비디오은(는) 무엇을 하나요?

완전한 독립형 크리에이티브 파이프라인을 위해서는 taste-distillation을 사용한 후 taste-application을 사용하세요. 해당 ECC 스킬은 Python 스크립트를 직접 제공합니다: 참조 측정, 기존 테이크 생성 또는 전달, 등급 조정, 편집, 합성, 검증, 그리고 Blender 및 Resolve로 핸드오프합니다. 해당 흐름을 위해 별도의 비디오 저장소가 필요하지 않습니다. 이 스킬은 ECC의 패키지된 오프라인 엔진과 엄격한 증거 계약을 문서화합니다.

TasteForge는 "이 참조처럼 느껴지게"라는 요청을 반복 가능하고 검사 가능한 워크플로로 변환합니다: 취향 인터뷰, 이를 구조화된 스타일 팩으로 증류, 팩 검증, 측정된 케이던스와 룩을 로컬 미디어에 적용, 그리고 편집 가능한 타임라인 내보내기. 표준 구현은 ECC 내 skills/taste-application/scripts/tasteforge/에 제공되는 tasteforge 패키지입니다. Ito-Markets/ito-video는 패키지된 ECC 엔진을 사용하는 예제 프로젝트입니다.

사용 시기

  • 사용자가 푸티지가 생성되기 전에 비디오 취향에 대해 인터뷰를 요청할 때 ("룩에 대해 물어봐줘", "미적 방향에 대해 인터뷰해줘").
  • 사용자가 미학을 구조화된 제약 조건으로 증류하기를 원할 때 — 분위기가 아닌 재사용 가능한 스타일 팩 ("이 참조들을 팩으로 만들어줘").
  • 사용자가 스타일 팩을 검증하기를 원할 때 (메타데이터가 완전하고, 스키마가 유효하며, 케이던스가 측정되고, 사양이 증류되었는가?).
  • 사용자가 로컬 푸티지에 스타일 팩을 적용하기를 원할 때 — 로컬 클립에 대해 팩의 측정된 케이던스로부터 결정론적으로 컷 계획.
  • 사용자가 EDL/FCPXML을 내보내기를 원할 때 — DaVinci Resolve / Premiere / Final Cut으로 편집 가능하고 프레임 정확한 핸드오프.
  • 사용자가 생성된 미디어 출처 감사를 요청할 때 — 이 팩, 사양 또는 컷이 어디서 왔는지; 로컬에서 측정된 것과 제공자가 생성한 것은 무엇인지; 드라이런된 것은 무엇인지.
  • 사용자가 로컬 참조 파일로부터 파일 기반 멀티모달 이미지, 비디오 또는 3D 에셋 출력을 발견하거나 계획하기를 요청할 때, 별도의 매니페스트, 주제 고정 CV 효과 또는 Resolve 효과 레시피를 포함.
  • 사용자가 TasteForge, 스타일 팩, flashethereal, 취향 증류, 케이던스/리듬 계획, 멀티모달 발견, 증류/적용 워크플로 또는 비디오용 취향 인터뷰를 언급할 때.

로컬 결정론적 작업 vs 제공자 생성

이 경계는 이 호환성 스킬의 핵심입니다. 이 스킬의 작업은 로컬, 결정론적, 오프라인입니다:

작업결정론적?ECC가 실행 가능?
취향 인터뷰 → 프로필예 (오프라인)예
팩 검사 / 스키마에 대한 검증예예
프로필 (+ 측정된 근거) 증류 → 사양예 (드라이런 의미)예
로컬 미디어에 팩 케이던스 적용 → 보고서 + 타임라인예예
EDL (CMX3600) / FCPXML 1.9 내보내기예예
출처 / 계통 보고서예예
스틸 이미지의 비전 모델 증류제공자 생성아니요
참조-비디오, 이미지-3D, 호스티드 컴포즈제공자 생성아니요

ECC에서 제공자 생성은 반드시 실패 폐쇄되어야 합니다. 라이브 Fal(또는 다른 제공자) 호출 — 샷 생성, 소품 메시 발행, 호스티드 VLM 증류 — 은 별도의 검토와 함께 별도의 레인 하에 명시적으로 분리된 승인된 실행이 필요합니다. 이 호환성 레인에서 ECC는 절대 Fal을 호출하지 않고, 어떤 API 키나 다른 자격 증명(FAL_KEY 포함)도 읽지 않으며, 미디어를 업로드하지 않고, 제공자 계정 상태를 변경하지 않습니다. 요청에 제공자 생성이 필요할 때, 해당 경계를 정확히 명시하고, 로컬 부분(인터뷰, 팩 검증, 계획, 내보내기)을 실행하고 중단하세요.

Fal 워크플로가 저장되었다고 절대 주장하지 마세요. Fal 엔드포인트, 모델 ID 또는 드라이런 URL에 대한 로컬 참조(팩 메타데이터 내에 나타남)는 참조 전용입니다: 이는 제공자 측 워크플로가 저장되었거나, 유지되었거나 실행이 승인되었음을 의미하지 않습니다. 오프라인에서 생성된 모든 것은 드라이런/dry_run 의미를 가집니다 — "드라이런 사양" 또는 "결정론적 계획"이라고 말하고, 절대 "모델이 생성함"이라고 말하지 마세요.

표준 구현

  • 저장소: affaan-m/ECC; Python 배포판 ecc-tasteforge, 패키지 디렉토리 skills/taste-application/scripts/tasteforge/. 추출된 ECC 패키지에서 python3 -m pip install ./skills/taste-application/scripts로 설치. 예제 프로젝트 Ito-Markets/ito-video는 특정 ECC 커밋을 고정합니다.
  • CLI: python3 -m tasteforge <command> — provenance, inspect, validate, interview, distill, apply, export, multimodal. --live 플래그는 코드 2와 함께 종료되고 거부합니다.
  • 스키마가 계약입니다: 취향 프로필, 팩 매니페스트, 등급, 케이던스, 사양, 타임라인 이벤트, 애플리케이션 보고서 (provider는 "none"으로 열거 고정됨; dry_run은 true).
  • 복구된 소스 계통과 의도적 제외는 저장소의 skills/taste-application/SOURCE.md에 있습니다. 머신 읽기 가능 버전은 python3 -m tasteforge provenance를 실행하세요.

로컬 결정론적 명령에 대해 설치된 ECC 엔진을 사용하고 JSON을 해석하세요. 패키지된 엔진이 없으면 설치하세요; 로직을 인라인으로 재구성하지 마세요. taste.resolve는 tasteforge.resolve의 호환성 임포트이므로 크리에이티브 스크립트와 예제 프로젝트는 하나의 검증된 Resolve 어댑터를 공유합니다.

python3 -m tasteforge CLI는 설치된 ecc-tasteforge 배포판을 사용합니다. 독립형 taste-distillation 및 taste-application 스크립트는 자체 Python 요구 사항과 함께 ECC의 옵트인 미디어 생성 모듈에 제공됩니다. 두 경로 모두 사용자의 저장소나 미디어를 게시할 필요가 없습니다.

저장된 체크아웃을 재개하기 전에 해당 커밋을 기록하고 로컬 브랜치와 워크트리를 검사하여 나중에 구현 수정을 준비하세요. 표준 패키지의 테스트와 python3 -m tasteforge apply --help를 실행하세요; ECC의 텍스트 및 픽스처 테스트는 선택된 Python 체크아웃이 이 계약을 구현한다는 것을 증명하지 않습니다.

크리에이티브 스킬 체이닝

단계소유자검토 가능한 결과
크리에이티브 방향taste명명된 장르, 참조 관찰, 선택된 룩 및 회피 목록
증류 및 계획tasteforge-video측정된 증거, 별도의 장르 사양, 드라이런 매니페스트 및 케이던스 계획
편집 및 효과video-editing, Remotion, Manim 또는 Fusion과 같은 선택된 렌더러 사용적용된 푸티지, 실제 트랙, 편집 가능한 효과 및 타임라인
선택적 생성 자산 또는 음성fal-ai-media 또는 선택된 오디오 워크플로, 자체 승인 하에제공자 영수증 및 검사된 출력
전달편집 워크플로, 그 다음 요청 시 content-engine검토된 정확한 내보내기 및 배포 사본

프로젝트에 필요한 단계만 사용하세요. taste 스킬의 과거 angelcore/cloud-trance 팔레트와 비트 문법은 선택적 크리에이티브 예제입니다; 현재 브리핑을 재정의하거나 별도의 번호가 매겨진 장르를 병합해서는 안 됩니다. 3D Cyber Glitch 및 Fluid Sketch를 포함하여 각 장르의 실제 참조를 방향에 사용하세요. TasteForge는 이러한 스킬을 대체하거나 모든 렌더러를 요구하지 않습니다. 3D 재료, 지오메트리, 와이어프레임 동작, 모션 및 구성을 장르 시그니처에 명시적으로 유지하세요. 3D 요청 매니페스트는 에셋에 대한 계획입니다; 메쉬가 아닙니다. 주제 고정 설명자는 추적 요구 사항의 이름을 지정합니다; 주제가 감지되거나 추적되었다는 증거가 아닙니다. CV 효과가 안정적으로 적용되었다고 주장하기 전에 실제 트랙, 트랙 손실 동작 및 렌더링된 주제 프레임을 검사하세요.

워크플로

  1. 인터뷰 (interview): 룩 축(팔레트, 그레인, 조명, 초점 거리, 카메라 움직임, 주제 프레이밍, 등급, 분위기 형용사, 회피 목록) 및 별도로 콘텐츠 브리핑에 대한 답변을 수집합니다. 룩과 콘텐츠를 분리하세요; 이를 병합하는 것이 전형적인 실패입니다.
  2. 증류 (distill): 프로필을 스키마 사양에 오프라인으로 매핑하고, 팩이 제공될 때 팩의 측정된 근거 (흑백점, 대비, 영역별 크로마, 팔레트, 컷 리듬)를 포함합니다. 결과는 드라이런 사양입니다: 결정론적, 제공자 "none".
  3. 검증 (validate / inspect): 스키마에 대해 팩을 확인합니다; 오류 대 경고를 보고합니다 (메타데이터 전용 팩에 스틸 이미지 누락은 오류가 아닌 경고).
  4. 적용 (apply): 사용자의 로컬 클립에 대해 팩의 측정된 케이던스(시드 기반, 결정론적)에서 샷 지속 시간을 계획합니다; 애플리케이션 보고서 및 프레임 정확한 타임라인 이벤트를 생성합니다.
  5. 내보내기 (export): 실제 NLE로 가져오기 위해 합리적이고 NTSC-안전한 시간으로 CMX3600 EDL + FCPXML 1.9를 작성합니다.
  6. 감사 (provenance): 계통을 보고합니다 — 복구된 소스 다이제스트, 생성 기록, 픽스처 출처, 포인터 전용 레코드로서의 제공자 참조.

반복 소스 없이 실제 푸티지 적용

브리핑에 반복 클립이 필요하지 않은 경우, apply --no-repeat --fps를 지원하는 표준 체크아웃을 사용하고 출력 프레임 속도를 명시적으로 설정합니다. 해당 플래그가 없으면, 레거시 라운드 로빈 선택을 조용히 사용하지 않고 구현 격차를 보고합니다. 엄격 모드는 매니페스트 순서로 각 정규화된 소스 경로를 최대 한 번 사용하고 충분하지 않거나 너무 짧은 소스를 거부합니다. 케이던스 계획을 채우기에 충분한 검토된 선택 항목을 준비합니다. 이는 소스 수준의 고유성이며, 동일한 녹음에서 별도의 in/out 범위를 지원하는 것이 아닙니다.

애플리케이션 보고서는 컷 계획입니다. 시각적 샷 순위를 매기거나, 푸티지 등급을 조정하거나, LUT를 적용하거나, 오버레이를 렌더링하거나, Resolve 프로젝트를 가져오지 않습니다. 팩의 측정된 참조 케이던스를 출력 프레임 속도와 분리하여 유지하세요.

내보내기 CLI는 {"clips": [...]}를 예상합니다. 내보내기 전에 애플리케이션의 timeline_events를 clips 아래에 래핑하고, 적용에 사용된 것과 동일한 --fps를 전달하세요; 내보내기의 기본 프레임 속도는 계획을 재확인해서는 안 됩니다. 타임라인을 편집 워크플로에 전달하기 전에 방출된 이벤트 수, 총 프레임, 고유 소스 및 미디어 링크를 확인하세요. 해당 워크플로가 NLE에서 중첩 효과를 적용할 때, 호환 가능한 트랙을 할당하고 요청된 모든 시작, 종료 및 지속 시간을 다시 읽으세요. 반환된 항목이나 성공적인 추가 호출만으로는 예약된 모든 효과가 배치되었음을 증명하지 않습니다; 렌더링 전에 누락되거나, 이동되거나, 잘린 배치를 거부합니다.

파일 기반 멀티모달 계약

로컬 참조가 이미지, 비디오 및 3D 에셋 출력에 대한 드라이런 생성 계획을 구동하면서 장르 구분을 유지해야 할 때 이 경로를 사용하세요:

python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodal

구성은 번호가 매겨진 장르와 로컬 증거 파일을 지정합니다. 이러한 후보 장르를 하나의 일반적인 미학으로 혼합하지 말고 별도로 유지하세요:

  1. Flash Ethereal
  2. 3D Cyber Glitch
  3. Fluid Sketch

명령은 ffprobe/ffmpeg로 로컬 참조를 측정하고 장르당 하나의 스타일 사양, 별도의 이미지, 비디오 및 3D 에셋 매니페스트, 출처 및 Resolve 효과 레시피를 생성합니다. 효과 일정은 시드 기반 비주기적이어야 합니다. CV 효과는 정확한 추적 손실 정책이 disable_effect_until_track_recovers인 실제 주제 고정이 필요합니다; continue_without_anchor 및 다른 모든 정책은 실패 폐쇄됩니다. 모든 효과는 얼굴과 읽기 가능한 텍스트를 보존하고 장식용 코너 메쉬가 전체 프레임 3D 작업을 대체하는 것을 방지하는 배치 제약 조건을 전달합니다.

반환된 영수증은 번들 경계입니다. 상대 경로, 바이트 크기, SHA-256, 장르, 모달리티, provider_execution:false 및 정확한 참조/시간 출처별로 방출된 모든 증거 아티팩트를 바인딩합니다. 영수증은 provider_calls:0을 정확한 정수(JSON 부울 false는 유효하지 않음), provider_execution:false 및 dry_run:true로 요구합니다. 모든 장르 사양도 명시적 dry_run:true를 요구합니다. Resolve 효과 레시피는 동일한 정확한 정수 provider_calls:0, provider_execution:false 및 dry_run:true를 요구합니다. 모든 모달리티 매니페스트와 모든 중첩 요청은 네 가지 정확한 실패 폐쇄 필드, 즉 정수 provider_calls:0, provider_execution:false, dry_run:true 및 submit:false를 모두 포함해야 합니다; 각 요청은 또한 provider_call_mode:"disabled"를 요구합니다. 누락된 필드는 기본값이 아닌 거부이며, 출력이 작성되기 전에 dry_run:false는 거부되어야 합니다.

타임라인, 증거, 프로브 및 소스 지속 시간 데이터 어디에서나 부울을 유효하지 않은 숫자로 취급하세요. 이러한 모든 숫자 값은 유한한 실수여야 합니다: true, false, NaN, 무한대, 음수 이벤트 시작, 양수가 아닌 지속 시간, 범위를 벗어난 증거 시간 및 선언된 유한 양수 타임라인을 넘어 끝나는 이벤트를 거부합니다. 전체 파일 증거는 명시적 전체 파일 시간 기준을 사용하며 타임스탬프를 발명하지 않습니다.

영수증 참조는 지속 시간 권위입니다. 인용된 SHA-256으로 각 검증된 참조 지속 시간을 키로 지정하세요; 하나의 다이제스트의 중복 발생은 지속 시간에 동의해야 하며 그렇지 않으면 번들이 유효하지 않습니다. 모든 효과 증거 source_duration과 모든 주제 고정 source_duration은 인용된 시간을 포함하는 것뿐만 아니라 해당 다이제스트의 검증된 영수증 지속 시간과 같아야 합니다. 프로브 지속 시간과 모든 프로브 측정값은 바이트 수 및 SHA-256에 사용된 것과 동일한 안정적인 바이트를 설명해야 합니다. 소스가 프로빙 중에 변이되거나 계속 사용 가능한 동안 다르게 재해싱되면, 영수증을 방출하거나 수락하지 않고 실패 폐쇄하세요.

생성 후 항상 번들 검증을 실행하세요. 누락된 이미지, 비디오 또는 3D 에셋 매니페스트는 실패 폐쇄되어야 합니다. 일반화되거나 중복된 장르, 주기적 일정, 고정되지 않은 CV 효과, 누락된 배치 제약 조건, 제공자 실행 플래그, 바인딩되지 않은 출력 파일, 바이트 크기 드리프트 또는 SHA-256 변조는 실패 폐쇄되어야 합니다. 심볼릭 링크인 출력 루트, 중간 파일 또는 아티팩트를 거부하고 특수 파일(FIFO 및 장치 포함)을 거부합니다; 출력은 실제 디렉토리 트리 아래의 일반 파일로 유지되어야 합니다. 로컬 ffmpeg 또는 ffprobe를 사용할 수 없으면 CLI는 Python 추적 없이 바운드된 0이 아닌 로컬 미디어 처리 오류를 반환해야 합니다. 증거를 삭제하거나 검증을 약화시켜 실패한 영수증을 수리하지 마세요.

예제 세션

# ECC 엔진 설치 후; 아래 경로는 프로젝트 입력입니다
python3 -m tasteforge validate stylepacks/flashethereal
python3 -m tasteforge interview --answers answers.json --genre flashetherea

…

[번역을 위해 잘렸습니다]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

관련 스킬