Communitygithub.com

LikeC4 C4 다이어그램

구두 설명 또는 코드베이스로부터 LikeC4 DSL로 유효한 C4 다이어그램을 작성하고, 전달 전에 LikeC4 CLI로 검증합니다. Claude Code, Codex, Cursor 및 OpenCode에서 작동합니다.

LikeC4 C4 다이어그램란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Codex, Cursor, OpenCode)가 LikeC4 DSL을 사용하여 C4 다이어그램을 생성하고 검증할 수 있게 해줍니다. 구두 설명이나 기존 코드베이스에서 시스템 컨텍스트, 컨테이너, 컴포넌트, 동적 흐름, 배포 다이어그램을 생성할 수 있습니다. 주요 특징은 `likec4 validate` 명령어를 통한 강제 검증으로, 전달 전에 다이어그램이 유효한 상태(종료 코드 0)인지 확인합니다. 스킬은 작업 범위에 따라 미니멀 템플릿(빠른 다이어그램용)과 풀 템플릿(대규모 시스템용)을 제공하며, DSL 구문을 추측하지 못하도록 참조 문서를 제공합니다. 버전 핀고정, 오프라인 폴백, 오류 카탈로그 등 설정 및 검증에 대한 자세한 내용은 `references/setup-and-validation.md`에 문서화되어 있습니다. 전체 워크플로우는 범위 설정 → 템플릿 복사 → 모델 → 뷰 작성 → 검증 → 포맷 → 전달 순서로 진행됩니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor✓OpenCode
npx skills add nedeadinside/likec4-skill

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

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

문서

LikeC4 C4 다이어그램은(는) 무엇을 하나요?

구두 설명이나 코드베이스로부터 LikeC4 DSL로 유효한 C4 다이어그램을 생성하고, CLI로 검증한 후 전달합니다. 참조 문서는 관심사별로 나뉘어 있습니다 — 작업에 필요한 부분만 그 부분을 작성하기 전에 읽고, 구문을 추측하지 마십시오.

여기에 있는 모든 내용은 likec4 1.59.2에 대해 검증되었습니다 (핀고정 및 업그레이드 절차는 references/setup-and-validation.md 참조).

엄격한 규칙 (두 가지뿐)

  1. 전달하기 전에 검증하십시오. 프로젝트에서 likec4 validate를 실행하고 종료 코드 0인 경우에만 전달하십시오. CLI를 전혀 사용할 수 없는 경우 → 문서화된 자체 점검을 수행하고 이를 공개하십시오. 절차: references/setup-and-validation.md.
  2. DSL 구문을 절대 추측하지 마십시오. 확실하지 않으면 관련 참조를 열고, 여전히 확실하지 않으면 https://likec4.dev/dsl/ 을 참조하십시오.

설정 (첫 번째 작업, 세션당 한 번)

LC4="npx -y [email protected]"
v="$(likec4 --version 2>/dev/null | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+' | tail -1)"
[ -n "$v" ] && [ "$(printf '%s\n1.53.0\n' "$v" | sort -V | head -1)" = "1.53.0" ] && LC4=likec4

설치된 CLI는 >= 1.53.0인 경우에만 사용됩니다 — 그 이전 버전은 format 명령어가 없고 1.52.0은 유효하지 않은 모델에서도 종료 코드 0을 반환하므로 아래 두 게이트가 모두 조용히 통과됩니다. 전역 설치는 필요하지 않습니다 — npx -y [email protected]는 Node 22+와 네트워크가 있는 모든 환경에서 작동합니다 (첫 실행 시 다운로드, 이후 캐시됨). 사용자가 유지 관리하는 프로젝트의 경우 npm install --save-dev [email protected]를 권장합니다. 세부 사항, 버전 하한선, 오프라인 폴백 및 오류 카탈로그: references/setup-and-validation.md.

작업 → 읽을 것

현재 작업읽을 것
시스템 컨텍스트 / 랜드스케이프 ("누가 사용하는지, 무엇과 통신하는지")references/levels/l1-context.md
컨테이너 ("내부에서 실행되는 것", 기술 선택)references/levels/l2-container.md
컴포넌트 (하나의 컨테이너 내부)references/levels/l3-component.md
코드 레벨 — 하나의 컴포넌트에 대한 클래스/인터페이스references/levels/l4-code.md
데이터 흐름 / 시나리오 / 시퀀스 (로그인, 체크아웃, 파이프라인)references/levels/flows-dynamic.md
인프라스트럭처 / "어디에서 실행되는가"references/levels/deployment.md
모든 DSL 관련 질문 (spec, model, FQN, extend, predicates)references/syntax-core.md
색상, 모양, 아이콘, 범례, 레이아웃references/styling.md
리포지토리 / 소스 코드가 주어진 경우references/code-to-diagram.md
설치, 검증, 포맷, 오류, 미리보기/내보내기/CIreferences/setup-and-validation.md

작업에 맞게 구조 조정

  • 간단한 요청 (하나의 시스템, 빠른 컨텍스트/컨테이너 그림): templates/minimal/에서 시작 — 3개 파일 (spec.c4, model.c4, views.c4). 이를 위해 여러 폴더 프로젝트를 구축하지 마십시오.
  • 실제 시스템 (2개 이상의 레벨, 여러 시스템, 배포, 흐름): templates/full/ 레이아웃을 사용 — 파일을 복사하고 내용 이름을 변경하십시오:
architecture/
├── spec.c4                 # 유일한 specification 블록: 모든 종류
├── model/
│   ├── landscape.c4        # 최상위 시스템 + 행위자
│   ├── <system>.c4         # 시스템당 하나의 파일, extend <system> { … } 사용
│   └── externals.c4        # externalSystem 요소
├── deployment/prod.c4      # nodes + instanceOf (종류는 spec.c4에 유지)
└── views/
    ├── context.c4          # 레벨 1 (뷰 인덱스)
    ├── <system>-views.c4   # 드릴다운이 있는 레벨 2/3 뷰
    └── dynamic-flows.c4    # 동적 + 배포 뷰

파일을 추가하여 확장하고 (새 시스템 → 새 model/<s>.c4), 모델을 뷰와 분리하고, specification을 하나의 파일에 유지하십시오. 폴더 아래의 모든 .c4 파일은 자동으로 하나의 모델로 병합됩니다.

템플릿은 내장 테마 색상만 사용합니다 (범위 내 = primary, 외부 = externalSystem 종류를 통한 gray, 사람 = indigo) — 사용자 정의 색상이나 태그는 없습니다. 이는 C4 규칙을 유지하고 밝은/어두운 테마에 적응합니다.

워크플로우

  1. 범위 지정 — 시스템, 행위자, 외부 시스템을 식별하고 레벨을 선택합니다. 기본값: 컨텍스트 + 컨테이너; 중요하지 않은 컨테이너의 경우 컴포넌트; 각 주요 시나리오에 대한 동적 뷰 (권장); 인프라가 중요한 경우 배포; 명시적 요청 또는 명확한 정당성이 있는 경우에만 레벨 4 (references/levels/l4-code.md — 기본 대체는 소스 링크). 리포지토리가 입력인 경우 → references/code-to-diagram.md. 진정으로 모호한 범위 → 한 가지 질문을 하고, 그렇지 않으면 진행하고 가정을 명시하십시오.
  2. 설정 — 일치하는 템플릿을 복사하고 위의 LC4 라인을 실행합니다.
  3. 모델, 그 다음 뷰 — 모델 파일을 작성하고, 각 다이어그램에 대한 레벨 파일을 읽으면서 드릴다운 (view of, navigateTo)으로 뷰를 작성합니다.
  4. 검증, 그 다음 포맷 — $LC4 validate <dir> 실행; 종료 코드 0이 될 때까지 Line N: 오류를 수정합니다 (카탈로그는 setup-and-validation.md에 있음). 그런 다음 $LC4 format <dir>을 실행하고 재검증하여 파일이 사용자 자신의 도구가 생성하는 표준 스타일과 일치하도록 합니다.
  5. 전달 — 파일 트리, 검증 결과, 다이어그램 보는 방법 ($LC4 start <dir>; 내보내기/CI 옵션은 setup-and-validation.md에 있음)을 보여줍니다.

품질 기준 (전달 전 확인)

  • likec4 validate 종료 코드 0 (또는 공개된 자체 점검), stderr 깨끗함.
  • likec4 format <dir> --check 종료 코드 0 — 파일이 표준 형식임.
  • 모든 요소에 설명이 있음; 모든 컨테이너/컴포넌트에 technology가 있음; 모든 관계에 방향성 레이블 (무엇을 + 어떻게)이 있음.
  • 모든 뷰에 title이 있음; 뷰당 약 ≤20개 요소 — 혼잡한 뷰는 분할.
  • 레벨이 연결됨: 컨텍스트 → 컨테이너 → 컴포넌트가 view of / navigateTo를 통해 연결됨.

관련 스킬