Communitygithub.com

clanker25/diagram

프로세스가 구조를 전달해야 할 때 가장 작은 시각적 요소를 사용하세요—의사 코드, 호출 트리, 컴포넌트/파일 트리, Mermaid 다이어그램 또는 diff. 글로 질문에 답할 수 있다면 넘어가세요.

diagram란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code)가 대화에서 구조적 정보를 전달할 때 불필요하게 큰 다이어그램을 남발하지 않고, 정확히 필요한 최소한의 시각적 표현(의사 코드, 호출 트리, 컴포넌트 트리, 파일 트리, Mermaid 다이어그램, diff, 전체 코드 블록)을 사용하도록 돕습니다. 글로 설명할 때 독자가 머릿속에서 전체 구조를 유지해야 하는 경우에만 다이어그램을 사용하며, 하나의 뷰로 충분하면 두 개를 넘기지 않습니다. 모든 렌더링은 대화 내 텍스트 블록이나 Mermaid로 이루어지며, 필요 시 단 하나의 HTML 아티팩트 파일만 생성할 수 있습니다. 이 스킬은 AI가 구조적 사고를 명확하고 효율적으로 전달하도록 규율을 제공하여, 독자의 인지 부하를 최소화하고 답변의 정확성을 높입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clanker25/oh-my-claudecode/tree/HEAD/skills/diagram

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

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

문서

다이어그램은 장식이 아니라 하중을 견디는 요소입니다. 글이 독자로 하여금 전체 형태를 한 번에 머릿속에 유지하도록 강요할 때만 사용하고, 그때는 독자가 문장에서 형태를 재구성하는 대신 형태를 바로 볼 수 있게 하는 가장 작은 뷰를 선택하세요. 여기의 모든 것은 대화 내에서 텍스트 블록 또는 Mermaid로 렌더링됩니다. 최대 하나의 아티팩트 파일만 작성됩니다.

용어집

하나의 뷰를 선택하세요. 최대 두 개. 그 이상은 노이즈입니다.

의사 코드 — 언어 노이즈 없는 로직. 결정을 분기 형태로 축소합니다:

on(request)
  if state file locked by another writer
    queue and return pending
  acquire lock
  write
  release

호출 트리 — 런타임 제어 흐름. 깊이는 누가 흐름을 소유하는지 보여줍니다. 관심 있는 가장자리에 주석을 추가하세요:

acquireStateFileLockSync()
  resolveLockPath()
  openExclusive()
  writePid()

컴포넌트 트리 — UI 또는 모듈 구조. 중요한 경계를 인라인으로 주석 처리합니다:

<SettingsPage> (src/routes/settings)
  <SessionList> (자체 fetch를 소유)
  <DangerZone>
    <ConfirmButton> (입력된 확인 시까지 비활성화)

파일 트리 — 책임이 있는 위치. 얕게 유지하고, 디렉터리당 하나의 주석을 추가합니다:

src/
├── hooks/        # 훅 레지스트리 + 타입
├── tools/        # MCP 도구 핸들러
└── workflow/     # 레지스트리 + 프로젝션

Mermaid — 당사자 간의 상호작용, 데이터 흐름 또는 상태 전이:

sequenceDiagram
    participant CLI
    participant Hook
    participant State
    CLI->>Hook: PreToolUse
    Hook->>State: read mode
    Hook-->>CLI: allow / deny + facts

Diff — 주변 구조가 이미 존재할 때 변경의 형태. diff를 주제와 일치시키세요:

컴포넌트 변경:

 <SettingsPage>
   <SessionList />
   <DangerZone>
+    <ConfirmButton />
   </DangerZone>

파일 레이아웃 변경:

 src/tools/
-└── state-tools.ts
+└── state-tools/
+   ├── handlers.ts
+   └── schema.ts

제어 흐름 변경:

 commit()
   stage()
     hashBlobs()
+  writeObject()
   updateRef()
+    acquireStateFileLock()

상태 머신 변경:

 on(request)
-  write immediately
+  if locked
+    queue and return pending
+  acquire lock
+  write
+  release

전체 블록 — 생략하면 누가 무엇을 소유하는지 또는 항목이 실행되는 순서가 숨겨질 때, 완전한 단위를 한 번 표시하고 복사 가능하게 만듭니다:

export function isRegistryEnabled(): boolean {
  const flag = process.env.OMC_WORKFLOW_REGISTRY;
  return flag !== '0' && flag !== 'false';
}

텍스트가 부족할 때

UI 레이아웃, 전/후 비교, 또는 Mermaid에 비해 너무 밀도가 높은 개념: 하나의 집중된 HTML 파일을 작성하세요—다이어그램, 인포그래픽, 또는 몇 개의 슬라이드—제품 자체의 색상, 서체, 컴포넌트 스타일을 따르고, 실제 레이블과 데이터로 채우며, 데스크톱과 모바일에서 작동하도록 만듭니다. 플랫폼 오프너(Windows에서는 start, macOS에서는 open, Linux에서는 xdg-open)로 열고 거기서 멈춥니다: 하나의 아티팩트, 갤러리가 아닙니다.

규율

  • 각 시각적 요소를 그것이 지원하는 두세 문장 바로 옆에 배치하세요.
  • 현재 질문에 답하는 호출, 파일, props, 상태, 경계만 포함하세요—모든 추가 노드는 독자에 대한 디코딩 세금입니다.
  • 정직한 답이 한 문장에 들어맞는다면, 그 문장을 쓰세요.

관련 스킬