다이어그램은 장식이 아니라 하중을 견디는 요소입니다. 글이 독자로 하여금 전체 형태를 한 번에 머릿속에 유지하도록 강요할 때만 사용하고, 그때는 독자가 문장에서 형태를 재구성하는 대신 형태를 바로 볼 수 있게 하는 가장 작은 뷰를 선택하세요. 여기의 모든 것은 대화 내에서 텍스트 블록 또는 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, 상태, 경계만 포함하세요—모든 추가 노드는 독자에 대한 디코딩 세금입니다.
- 정직한 답이 한 문장에 들어맞는다면, 그 문장을 쓰세요.