一键导入
verify-architecture
4-Layer 아키텍처 규칙, 순환 의존성, 파일 크기 제한, 코딩 컨벤션을 자동 검증합니다. 새 모듈 추가, 리팩토링, import 변경, 대규모 코드 작성 후 사용하세요. "아키텍처 검증", "구조 체크", "레이어 위반 확인" 등의 요청에도 사용하세요.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
4-Layer 아키텍처 규칙, 순환 의존성, 파일 크기 제한, 코딩 컨벤션을 자동 검증합니다. 새 모듈 추가, 리팩토링, import 변경, 대규모 코드 작성 후 사용하세요. "아키텍처 검증", "구조 체크", "레이어 위반 확인" 등의 요청에도 사용하세요.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
E2E validation skill for the dhelix CLI AI coding assistant. Two test modes: (1) Project E2E — multi-turn tests creating real projects across 5+ tech stacks, validating builds, 80% coverage, and DHELIX.md compliance. (2) Conversation Quality — multi-turn tests verifying context retention, tool call coherence, error recovery, instruction adherence, progressive complexity, and contradiction handling. Use this skill when: running E2E tests for dhelix, validating coding ability across tech stacks, testing multi-turn conversation quality, verifying /init and DHELIX.md system, benchmarking dhelix against real-world project creation, or evaluating conversation quality after model/prompt changes.
Create, improve, and test dhelix skills through a structured interview and scaffold. Use when the user says things like 'make a skill', '스킬 만들어줘', 'turn this workflow into a reusable /command', 'add a slash command that does X', or when the user wants to refine an existing skill's triggering behavior. Benchmarked against Claude Code skill-creator v2.0.
개선 계획(improvement plan)으로부터 스프린트를 실행합니다. Claude Agent Teams를 사용하여 병렬 개발팀을 구성하고 파일 충돌 분석, 태스크 분배, worktree 격리 실행, 결과 검증, 머지/커밋까지 자동 오케스트레이션합니다. 사용자가 "스프린트 실행", "개선 계획 구현", "팀으로 개발", "병렬로 구현해줘", "revolution 실행", "Phase 1 시작", "v0.3 구현" 등을 요청할 때 사용하세요. docs/revolution/ 의 개선 문서, 마일스톤 문서, 또는 사용자가 지정하는 임의의 계획 문서를 입력으로 받습니다.
새로운 슬래시 명령어를 추가하는 전체 워크플로우를 안내합니다. 명령어 파일 생성, 레지스트리 등록, 테스트 작성, CLAUDE.md 업데이트까지 포함합니다. "새 명령어 만들어줘", "슬래시 커맨드 추가", "/xxx 명령어 구현" 등의 요청에 사용하세요.
새로운 빌트인 도구를 추가하는 전체 워크플로우를 안내합니다. Zod 스키마 정의, 도구 구현, 레지스트리 등록, display 설정, 테스트 작성까지 포함합니다. "새 도구 추가", "tool 만들어줘", "빌트인 도구 구현" 등의 요청에 사용하세요.
DB Inc. 브랜드 디자인 시스템(DB제목 B/M/L 폰트, 네이비 블루 테마)을 적용하여 전문적인 PPTX 프레젠테이션을 생성합니다. PPT, 프레젠테이션, 발표자료, 제안서, PoC 문서, 보고서 등을 만들어달라는 요청에 사용하세요. "PPT 만들어줘", "발표자료 작성", "프레젠테이션 생성", "pptx 제안서" 등의 요청에도 반드시 사용하세요.
| name | verify-architecture |
| description | 4-Layer 아키텍처 규칙, 순환 의존성, 파일 크기 제한, 코딩 컨벤션을 자동 검증합니다. 새 모듈 추가, 리팩토링, import 변경, 대규모 코드 작성 후 사용하세요. "아키텍처 검증", "구조 체크", "레이어 위반 확인" 등의 요청에도 사용하세요. |
madge --circular로 순환 import를 탐지any 사용 금지import 구문을 변경하거나 파일 간 의존성을 재구성한 후| File | Purpose |
|---|---|
src/cli/ | Layer 1: CLI (Ink/React) — UI 컴포넌트, hooks, renderer |
src/core/ | Layer 2: Core — agent loop, context, session, prompt |
src/llm/ | Layer 3: Infra — LLM client, strategies, streaming |
src/tools/ | Layer 3: Infra — tool system, executor, registry |
src/mcp/ | Layer 3: Infra — MCP client, bridge, transports |
src/permissions/ | Layer 3: Infra — permission manager, modes |
src/guardrails/ | Layer 3: Infra — injection detector, secret scanner |
src/sandbox/ | Layer 3: Infra — sandbox execution |
src/subagents/ | Layer 3: Infra — agent spawner, teams |
src/hooks/ | Layer 3: Infra — hook system |
src/utils/ | Layer 4: Leaf — logger, events, path, error |
src/config/ | Layer 4: Leaf — config loader, schema, defaults |
src/skills/ | Layer 4: Leaf — skill loader, executor, manager |
src/memory/ | Layer 4: Leaf — memory manager, writer |
src/constants.ts | Layer 4: Leaf — 상수 정의 |
tsconfig.json | TypeScript strict mode 설정 |
Layer 1 (CLI): src/cli/
Layer 2 (Core): src/core/
Layer 3 (Infra): src/llm/, src/tools/, src/mcp/, src/permissions/,
src/guardrails/, src/sandbox/, src/subagents/,
src/hooks/, src/auth/, src/indexing/, src/telemetry/
Layer 4 (Leaf): src/utils/, src/config/, src/skills/, src/memory/,
src/mentions/, src/instructions/, src/voice/,
src/constants.ts
규칙: 하위 레이어는 상위 레이어를 import할 수 없습니다.
npx madge --circular --extensions ts,tsx src/
PASS: 출력이 "No circular dependency found" 또는 빈 결과 FAIL: 순환 경로가 표시됨 — 해당 파일들의 import를 분석하여 의존성을 끊어야 함
수정 가이드:
import())를 사용하여 런타임 의존성으로 전환Leaf → 상위 레이어 import 검사:
grep -rn "from ['\"]\.\./" src/utils/*.ts src/config/*.ts src/skills/*.ts src/memory/*.ts src/mentions/*.ts src/instructions/*.ts src/voice/*.ts src/constants.ts 2>/dev/null | grep -E "(cli|core|llm|tools|mcp|permissions|guardrails|sandbox|subagents|hooks|auth|indexing|telemetry)/" | head -20
PASS: 결과 없음 (Leaf가 상위를 import하지 않음) FAIL: Leaf 모듈이 상위 레이어를 import — 해당 import를 제거하거나 의존성 방향을 수정
Infra → CLI/Core import 검사:
grep -rn "from ['\"]\.\./" src/llm/*.ts src/tools/**/*.ts src/mcp/*.ts src/permissions/*.ts src/guardrails/*.ts src/sandbox/*.ts src/hooks/*.ts 2>/dev/null | grep -E "(cli|core)/" | head -20
PASS: 결과 없음 FAIL: Infra 모듈이 CLI 또는 Core를 import
Core → CLI import 검사:
grep -rn "from ['\"]\.\./" src/core/*.ts 2>/dev/null | grep "cli/" | head -10
PASS: 결과 없음 FAIL: Core 모듈이 CLI를 import
find src/ -name "*.ts" -o -name "*.tsx" | xargs wc -l 2>/dev/null | sort -rn | head -20
PASS: 모든 파일이 800줄 이하 FAIL: 800줄 초과 파일 발견 — 분리 대상 표시
수정 가이드:
types.ts로 분리grep -rn "export default" src/**/*.ts src/**/*.tsx 2>/dev/null | head -10
PASS: 결과 없음 (모든 파일이 named export 사용) FAIL: default export 발견 — named export로 변경
grep -rn "from ['\"]\./" src/**/*.ts src/**/*.tsx 2>/dev/null | grep -v "\.js['\"]" | grep -v "\.json['\"]" | grep -v "node_modules" | grep -v "\.d\.ts" | head -20
PASS: 모든 상대 import에 .js 확장자 포함
FAIL: 확장자 누락 — .js 추가 필요
any 타입 사용 검사grep -rn ": any\b" src/**/*.ts src/**/*.tsx 2>/dev/null | grep -v "eslint-disable" | grep -v "// any is" | grep -v ".d.ts" | head -15
PASS: eslint-disable 주석 없는 any 사용 없음
FAIL: 비인가 any 발견 — unknown + 타입 가드로 교체
grep -rn "console\.log\b" src/**/*.ts src/**/*.tsx 2>/dev/null | grep -v "test/" | grep -v ".d.ts" | head -10
PASS: 프로덕션 코드에 console.log 없음 FAIL: console.log 발견 — logger 사용으로 교체 또는 제거
| Check | Status | Detail |
|---|---|---|
| 순환 의존성 | PASS/FAIL | 순환 경로 또는 "없음" |
| Layer 방향 (Leaf→상위) | PASS/FAIL | 위반 파일:라인 |
| Layer 방향 (Infra→CLI/Core) | PASS/FAIL | 위반 파일:라인 |
| Layer 방향 (Core→CLI) | PASS/FAIL | 위반 파일:라인 |
| 파일 크기 (≤800줄) | PASS/FAIL | 초과 파일 목록 |
| Default Export 금지 | PASS/FAIL | 위반 파일 |
| ESM 확장자 (.js) | PASS/FAIL | 누락 파일:라인 |
any 타입 금지 | PASS/FAIL | 비인가 사용 위치 |
| console.log 금지 | PASS/FAIL | 발견 위치 |
any — ToolRegistry 등 제네릭 타입 경계에서 eslint-disable-next-line @typescript-eslint/no-explicit-any로 명시된 경우는 허용.d.ts 파일의 any는 서드파티 타입 호환을 위해 허용src/subagents/spawner.ts가 src/core/agent-loop.ts를 import하는 것은 설계상 허용 (서브에이전트가 에이전트 루프를 생성해야 하므로)src/hooks/runner.ts가 src/core/ 이벤트 타입을 import하는 것은 허용 (훅이 코어 이벤트에 반응해야 하므로)test/ 디렉토리의 파일은 레이어 규칙의 적용 대상이 아님