skills/hitl-eval-dashboard/SKILL.md
사람의 주관 판단이 필요한 A/B·before-after·model·prompt·UX·design 품질 비교 평가에서 가벼운 HITL 평가 루프를 설계하고 구현하도록 안내한다. 다음 상황에서 먼저 호출하세요: - "직접 봐야 판단 가능", "A/B 비교", "before/after", "품질 평가", "점수 남기기", "평가 대시보드", "HITL", "리포트 만들기"를 언급 - 자동화 테스트만으로는 품질 판단이 부족하고 사람의 주관이 필요한 경우 - AI 출력, 디자인 생성물, 프롬프트 변경, 파이프라인 변경, UX 후보를 비교할 때 - 평가 결과를 나중에 집계하거나 재개할 수 있어야 하는 경우 구현 스캐폴드가 아니라 가이드형이다. 코드를 바로 만들지 말고 먼저 설계를 확인한다.
npx skillsauth add strongorange/strong-orange-agent-skills hitl-eval-dashboardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
평가를 구조화해서 "직접 봐야 아는 것"을 재현 가능한 판단 기록으로 남기는 패턴이다.
핵심은 단순함이다: 브라우저에서 빠르게 볼 수 있는 UI, 사람의 점수·코멘트 입력, 로컬 파일 저장, 재실행 가능한 집계 리포트.
SKILL을 읽은 직후 바로 코드를 만들지 않는다.
package.json, Makefile, pyproject.toml 등).| 산출물 타입 | 예시 | |---|---| | 시각적 | screenshot, HTML, 캔버스 결과, UI 화면 | | 텍스트/구조 | LLM 출력, JSON diff, 로그, API 응답 | | 복합 | screenshot + meta JSON + interview transcript |
다음 5개를 짧게 확정하고 사용자에게 보여준 뒤 구현으로 진입한다.
평가 대상: (예: "gemini A/B 생성 결과물 HTML")
비교 단위: (예: seed × run index, scenario ID, variant ID)
평가 축: (예: 의도 반영도 / 구체성 / 편집 불필요도, 3~5개)
저장 위치: (예: runs/<candidateId>/scores.json)
집계 기준: (예: B - A >= 0.5 across all axes → PASS)
기준이 없으면 제안한다. 사용자가 승인한 뒤 구현한다.
기본 A/B pair evaluation. 대안은 아래 중 선택한다.
| 모드 | 사용 시점 | |---|---| | A/B pair | baseline vs candidate 비교 | | Single-shot | 절대 품질 판단 (pass/fail, severity) | | Ranking | 3개 이상 후보 순위 | | Checklist | 체크리스트 항목 충족 여부 |
축 점수는 1~5 시작. 필요하면 winner selection, binary, severity, confidence로 교체 가능.
저장 포맷은 envelope + project payload 구조를 따른다.
envelope (모든 프로젝트에서 고정):
interface HitlEnvelope {
schemaVersion: "1"; // schema 버전
evaluationId: string; // 평가 단위 식별자 (프로젝트가 정의)
variantIds: string[]; // 비교 대상 목록 (예: ["tsA", "tsB"])
status: "draft" | "scored" | "skipped";
evidenceRefs: string[]; // 근거 파일 경로 목록 (screenshot, html 등)
reviewerNote?: string;
savedAt: string; // ISO8601
payload: unknown; // 프로젝트별 점수·코멘트
}
payload (프로젝트가 정의):
// 예시 — A/B axes score payload
interface AbScorePayload {
axesA: Record<string, number>;
axesB: Record<string, number>;
comment: string;
}
규칙:
UI는 최대한 단순하게 유지한다.
필수 요소:
기술 선택:
http 정적 서버 + vanilla HTML/CSS/JS (빌드 없음)API 최소 설계:
GET /api/manifests → 사용 가능한 run set 목록
GET /api/pair?... → 현재 pair의 artifact·meta·interview 등
GET /api/screenshot?... → 이미지 바이너리
GET /api/scores?... → 기존 점수 목록 (prefill용)
POST /api/score → 점수 저장 (upsert)
집계는 재실행 가능한 명령 하나로 닫는다.
# 예시
npm run aggregate
pnpm aggregate
python scripts/aggregate.py
리포트는 Markdown 기본:
구현 전 체크리스트:
독립 PoC 디렉터리 예시:
eval-dashboard/
├── src/
│ ├── server.ts # Node http 서버
│ └── aggregate.ts # 집계 스크립트
├── public/
│ ├── index.html
│ ├── app.js
│ └── style.css
├── runs/
│ └── <candidateId>/
│ ├── scores.json # envelope array
│ └── <seed>/<variant>/<runIdx>/
│ ├── screenshot.png
│ ├── html.html
│ └── meta.json
└── package.json
구체 구현 패턴은 references/poc-dashboard-pattern.md를 참고한다.
references/evaluation-design-template.mdreferences/score-envelope-examples.mdreferences/poc-dashboard-pattern.mddevelopment
Use when extracting honest resume bullets, 1-minute interview stories, or likely interviewer questions from a defined work period (a project, week, sprint, or custom date range). Collects evidence from git, GitHub, and an Obsidian vault, filters strictly to verified self-attribution, refuses to invent impact metrics, and marks AI-assist where material. Triggers on "이력서 bullet", "주간 회고 이력서", "프로젝트 X 회고 이력서 톤", "포트폴리오 자료 뽑아줘".
development
Plan-first staged TDD orchestration for TypeScript web repositories. Use when a TypeScript, React, Next.js, or Node web task benefits from a short spec, explicit red/green/refactor/verify stages, deterministic validation, and keeping code changes behind explicit user approval. Best suited for small feature additions, policy changes, and bug fixes where tests should act as the primary oracle.
tools
Split large git changes into readable, review-friendly, revert-safe commit stacks in Toolditor. Use when preparing a PR, reorganizing staged/unstaged changes, enforcing Korean `[type] message` commit convention, or producing commit history that is easy to review and selectively revert.
development
Decide between Strategy, Template Method, or Hybrid for architecture and refactor tasks across frontend/backend systems. Use when evaluating branching logic, adding new variants/providers/modes, introducing shared execution pipelines, or debating runtime algorithm switching versus fixed skeleton workflows. Trigger especially for AI feature flows and payment/provider integrations where pattern choice affects extensibility, testability, and change risk.