一键导入
verify-tool-metadata-pipeline
Tool metadata가 실행→이벤트→activity→UI까지 일관되게 전달되는지 검증. 도구 정의, executor, agent-loop, 또는 display 코드 변경 후 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Tool metadata가 실행→이벤트→activity→UI까지 일관되게 전달되는지 검증. 도구 정의, executor, agent-loop, 또는 display 코드 변경 후 사용.
用 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-tool-metadata-pipeline |
| description | Tool metadata가 실행→이벤트→activity→UI까지 일관되게 전달되는지 검증. 도구 정의, executor, agent-loop, 또는 display 코드 변경 후 사용. |
ToolResult.metadata → ToolCallResult.metadata → tool:complete event → activity entry → UI componenttool-display.ts의 모든 extractDetail이 3번째 파라미터로 metadata를 받는지toolDisplayMap에 display config를 가지는지events.ts의 tool:complete 타입과 실제 emit하는 필드가 일치하는지src/tools/definitions/*.ts에서 새 도구를 추가하거나 metadata 형태를 변경했을 때src/tools/executor.ts 또는 src/tools/types.ts를 수정했을 때src/cli/renderer/tool-display.ts의 toolDisplayMap을 변경했을 때src/core/agent-loop.ts의 tool:complete 이벤트 emit 부분을 변경했을 때src/cli/components/ToolCallBlock.tsx 또는 TurnBlock.tsx를 수정했을 때| File | Purpose |
|---|---|
src/tools/types.ts | ToolResult, ToolCallResult 인터페이스 (metadata 필드) |
src/tools/executor.ts | executeToolCall() — ToolResult → ToolCallResult 변환 |
src/core/agent-loop.ts | tool:complete 이벤트 emit (metadata 포함) |
src/utils/events.ts | 이벤트 타입 정의 (tool:complete payload) |
src/cli/hooks/useAgentLoop.ts | onToolComplete → activity entry 변환 |
src/core/activity.ts | ActivityCollector — entry 저장 |
src/cli/renderer/tool-display.ts | toolDisplayMap, getToolDisplayText, getToolPreview |
src/cli/components/ToolCallBlock.tsx | metadata prop 수신 및 전달 |
src/cli/components/TurnBlock.tsx | entry.data.metadata 추출 및 전달 |
src/tools/definitions/*.ts | 각 도구의 metadata 반환값 |
grep -n "metadata" src/tools/types.ts
PASS: ToolCallResult 인터페이스에 readonly metadata?: Readonly<Record<string, unknown>> 존재
FAIL: metadata 필드가 없으면 파이프라인이 끊어짐
grep -A2 "result.metadata" src/tools/executor.ts
PASS: executeToolCall() 반환값에 metadata: result.metadata 포함
FAIL: metadata가 drop되면 UI에 도달하지 못함
grep -B1 -A5 'tool:complete' src/core/agent-loop.ts | grep metadata
PASS: 최소 1개의 tool:complete emit에 metadata: result.metadata 포함
FAIL: metadata가 이벤트에 누락
grep -A5 "tool:complete" src/utils/events.ts | grep metadata
PASS: tool:complete 이벤트 타입에 metadata? 필드 정의됨
FAIL: 타입 불일치로 TypeScript 에러 발생 가능
grep -A10 "onToolComplete" src/cli/hooks/useAgentLoop.ts | grep metadata
PASS: destructuring에 metadata 포함 및 addEntry에 전달
FAIL: metadata가 activity layer에서 손실
grep "extractDetail.*metadata" src/cli/renderer/tool-display.ts | head -5
PASS: extractDetail 시그니처에 metadata 파라미터 존재 FAIL: display 함수가 metadata를 활용할 수 없음
grep "metadata" src/cli/components/ToolCallBlock.tsx
PASS: ToolCallBlockProps에 metadata 포함, getToolDisplayText에 전달
FAIL: UI 컴포넌트에서 metadata 미사용
grep "metadata" src/cli/components/TurnBlock.tsx
PASS: findMetadata 헬퍼 존재, ToolCallBlock에 metadata prop 전달
FAIL: entry에서 metadata 추출 로직 누락
# 도구 정의 파일에서 name 추출
grep -rh "name:" src/tools/definitions/*.ts | grep -oP '"[^"]+"' | sort -u
# toolDisplayMap 키 추출
grep -oP '^\s+\w+:' src/cli/renderer/tool-display.ts | tr -d ' :' | sort -u
PASS: 모든 도구 이름이 toolDisplayMap에 존재 FAIL: 누락된 도구가 generic "Running X" / "Completed X"로 표시됨
| Check | Status | Detail |
|---|---|---|
| ToolCallResult.metadata | PASS/FAIL | 필드 존재 여부 |
| executor 전달 | PASS/FAIL | metadata 전달 여부 |
| agent-loop emit | PASS/FAIL | 이벤트 포함 여부 |
| events.ts 타입 | PASS/FAIL | 타입 정의 여부 |
| useAgentLoop 전달 | PASS/FAIL | activity entry 전달 |
| extractDetail 시그니처 | PASS/FAIL | metadata 파라미터 |
| ToolCallBlock prop | PASS/FAIL | metadata prop |
| TurnBlock 추출 | PASS/FAIL | findMetadata 존재 |
| toolDisplayMap 커버리지 | PASS/FAIL | 누락 도구 목록 |