본문으로 건너뛰기
프로킷

핵심 개념

증거와 audit, 사용자 확인

한눈에

대조표의 칸은 실제로 실행한 명령과 결과로만 채워요. 칸을 다 채웠는지는 audit 명령이 검사하고, 통과해야 완료라고 말해요. 마지막 칸은 사용자가 결과를 직접 보고 확인하는 칸이라 건너뛸 수 없어요.

증거 적는 법

원칙은 하나예요. 실행하지 않은 검사는 통과가 아니에요. 증거 형식은 prokit-verify 스킬이 정해요.

무엇이렇게 적어요
명령pnpm check-types → exit 0. 실패하면 첫 오류 한 줄
테스트vitest todo.isolation → 3 passed
리뷰prokit-reviewer(code): approve, max=low, 지적 2 (반영 1, 기각 1: 재현 안 됨)
스킬 사용writing-plans → docs/superpowers/plans/…. 대안을 썼으면 대안: OMC plan (superpowers 없음)
같은 명령을 여러 행이 요구할 때한 번 실행하고 뒤 행에는 6행과 같음: pnpm check-types → exit 0. 그사이 코드가 바뀌었으면 다시 실행
해당 없는 행N/A: 사유
  • ✓, ok, done, 완료만 적거나 공백을 뺀 4자 미만으로 적으면 증거가 아니에요.

  • 결과를 얻지 못했으면 blocked: 사유나 미실행: 사유로 적어요. blocked는 이번 세션에서 해소할 수 없는 원인(외부 서비스, 권한, 사용자 허락 없이 설치할 수 없는 도구 등)에 쓰고, 미실행은 사용자가 범위에서 뺀 단계나 앞 단계가 blocked여서 할 수 없는 뒤 단계에 써요.

  • 테스트 러너(vitest 도입 행)나 로컬 테스트 DB처럼 라운드 안에서 준비하기로 된 것이 없다는 이유로는 blocked를 쓰지 않고 그 준비부터 해요.

  • 다른 검사가 통과했다고 해서 실행하지 못한 검사를 통과로 합치지 않아요.

  • 비밀값, 토큰, 연결 문자열, 실사용자 데이터는 증거에 옮겨 적지 않아요.

검사 고르기

바뀐 것에 따라 최소 검사가 정해져 있어요. 여러 줄에 해당하면 모두 해요.

바뀐 것최소 검사
모든 코드타입 검사(commands.typecheck), 린트(commands.lint)
화면과 라우트모든 코드 검사 + 빌드, 런타임 확인, desktop(1440px)과 mobile(390px) 스크린샷
프로시저와 인증모든 코드 검사 + 테스트, 2계정 격리 테스트
스키마모든 코드 검사 + 로컬 개발 DB에 마이그레이션 적용(병합 전에는 원격 개발 DB에도). 사용자 소유 테이블이면 2계정 격리 테스트도. supabase는 supabase db advisors 보안 결과도(병합 전에는 스테이징에도)
스킬, 에이전트, dev-cyclepnpm agents:check, pnpm skills:check, pnpm dev-cycle case, pnpm dev-cycle status. 스킬 본문을 바꿨으면 skill-creator eval

명령은 .dev-cycle.json의 commands에 있어요. 린트 증거는 파일을 고치지 않는 pnpm exec biome check .로 남겨요. pnpm check는 파일을 고치므로 증거로 쓰지 않아요.

오류 예산은 0이에요. 확인한 화면마다 브라우저 콘솔의 오류와 경고, 개발 오버레이의 Issues, Next.js 진단(get_errors), 개발 서버 로그의 오류를 세요. 브라우저 확장 탓으로 보이는 항목도 빼지 않고, 깨끗한 브라우저에서 재현해 원인을 가려요.

audit

pnpm dev-cycle audit은 대조표를 검사해요.

  • 빈칸이 있으면 실패해요.

  • 작업이 다른 계층을 건드렸으면 케이스를 올리라고 알려 줘요.

  • [confirm] 칸을 N/A, PASS, blocked, 미실행, 대기 같은 건너뛰기 표시로 채우면 거부해요.

  • blocked:나 미실행:으로 채운 칸은 채운 것으로 봐요. 그래서 그런 칸이 있으면 "부분 완료(blocked N건, 미실행 M건)"로 보고하고, 사용자가 그대로 닫자고 할 때만 pnpm dev-cycle close --partial로 닫아요. 아직 하지 않은 작업을 이렇게 적어 audit을 넘기지 않아요.

audit이 통과한 뒤에만 완료라고 말해요.

사용자 확인

대조표 끝의 [confirm] 행은 사용자가 결과를 직접 보거나 써 본 뒤에 채워요.

  • 에이전트는 먼저 audit으로 남은 문제가 이 행뿐인지 봐요. 사용자가 확인할 것은 마지막 결과예요.

  • 화면이 있으면 개발 서버를 띄워 주소가 응답하는지 확인한 뒤 확인을 요청하고, 사용자가 답할 때까지 끄지 않아요.

  • 화면이면 주소와 스크린샷, 기능이면 써 볼 순서를 줘요. 새 기능(F)은 스펙의 테스트 시나리오가 순서예요. 알려진 문제(남은 오류, 미룬 지적)도 함께 알려 줘요.

  • 사용자가 확인하면 그 내용과 날짜를 적어요. 고칠 것이 나오면 고치고, 그 행을 다시 채운 뒤 확인을 또 받아요.

  • 에이전트가 이 행을 스스로 넘기지 않아요. 사용자가 결과를 보지 않고 닫자고 하면 그 말과 날짜를 그대로 적어요(예: 사용자: 확인 없이 닫는다(2026-10-01)).

자세히

비밀값 검사

커밋 전에 pnpm dev-cycle secrets가 커밋할 변경에서 비밀값을 찾아요.

종료 코드뜻다음 할 일
0비밀값을 찾지 못했어요커밋해요
1비밀값을 찾았어요커밋·push하지 않아요. 값을 지우거나 그 파일을 스테이징에서 빼고 다시 실행해요. 걸린 파일과 변수 이름만 보고해요
2검사를 실행하지 못했어요커밋하지 말고 출력을 보고해요

화면 점수 기준

화면 작업(케이스 B, B 행을 포함하는 F)의 impeccable audit 점수는 20점 만점에 16점(ui.auditMin), 접근성 점수는 4점 만점에 3점(ui.a11yMin) 이상이어야 해요. 다시 확인해도 못 미치면 완료로 보고하지 않고 더 다듬을지 물어요. 사용자가 그대로 두자고 하면 그 사실과 날짜를 적어요.

관련 문서

GitHub에서 고치기(새 탭)