harness plugin 스킬 설명서 하네스를 실제로 변경함

harness-refactor

harness-legacy-check 감사 리포트를 읽어 항목을 risk 로 분류한 뒤, 이 플러그인에 이미 배포된 워크플로우(workflows/harness-refactor.js)를 args.changes / args.rejected 로 분류 결과만 넘겨 실행한다. 위험한 항목은 실행하지 않고 Final Report 의 "Human Approval Required" 섹션에만 남긴다. 읽기 전용이 아니라 실제로 하네스 파일을 고친다.

입력
.claude/reports/
harness-legacy-check.md
분류
허용 변경 / 절대 금지
(classification-rules.md)
산출물
배포된 워크플로우 실행
(args.changes/args.rejected)
01 — 경계

언제 쓰고, 언제 안 쓰는가

쓸 때

  • /harness:harness-legacy-check 를 이미 돌려 감사 리포트를 받았고, 지적된 것 중 안전하게 자동화할 수 있는 부분을 실제로 적용하려 할 때.
  • CLAUDE.md / AGENTS.md 의 중복 섹션 정리.
  • 전역 지침에 눌러앉은 절차를 skill 로 이관.
  • 비대해진 SKILL.md 를 SKILL.md + references/ 로 분리.
  • skill description / trigger 문구 정리.
  • settings.json 의 stale 권한 항목 제거.

안 쓸 때 — 형제 스킬로 가는 경계

  • 감사 자체가 아직 없다면 /harness:harness-legacy-check 가 먼저다. 이 스킬은 감사를 대신 수행하지 않고, 리포트를 못 찾으면 Step 1 에서 그냥 중단한다.
  • 읽기만 하고 싶다면 이 스킬이 아니다. legacy-check 는 read-only 지만 이 스킬은 파일을 옮기고 고친다.
  • hooks · MCP · 권한 확대 · 애플리케이션 코드는 분류 규칙이 영구 금지 목록에 두고 있어 리포트에 있어도 워크플로우에 들어가지 않는다.
  • CLAUDE.md / AGENTS.md / GEMINI.md 문서 하나를 점검하거나 새로 만드는 일은 harness:ai-context 의 몫이다.
이 check / refactor 분리는 의도된 것이다. 감사는 아무것도 안 바꾸므로 마음 놓고 자주 돌릴 수 있고, 변경은 사람이 리포트를 읽고 납득한 뒤에만 별도 호출로 일어난다.
02 — 인터페이스

호출 형식과 인자

/harness:harness-refactor
/harness:harness-refactor -h | --help | help

인자를 받지 않는 스킬이다. 대상 리포트도, 적용 범위도 위치 인자로 지정하지 않는다.

인자기본값설명
(없음) — 리포트 경로는 고정 탐색 순서로 결정된다(아래 Step 1). 사용자가 지정하지 않는다.
-h / --help / help — references/help.md 를 그대로 출력하고 중단. 파일 변경 없음.
03 — 동작

동작 단계

1

감사 리포트 확인

고정된 순서로 찾는다: (1) .claude/reports/harness-legacy-check.md 파일이 있으면 읽어서 사용, (2) 없으면 현재 세션에 남은 harness-legacy-check 출력을 찾는다, (3) 둘 다 없으면 "harness-legacy-check 결과가 없습니다. 먼저 /harness-legacy-check 를 실행해 주세요." 를 출력하고 중단한다. 리포트를 지어내거나 감사를 즉석에서 대신 하지 않는다.

2

risk 분류

리포트의 각 항목을 references/classification-rules.md 기준으로 워크플로우에 넣을 것(허용 변경)과 넣지 않을 것(절대 금지)으로 가른다. 이 분류와 Step 3 의 사전 승인이 이 스킬의 안전 계약이다 — 두 목록은 아래 05 절에 그대로 있다.

3

실행 전 사용자 승인

분류 결과(changes 는 파일별 한 줄, rejected 는 건수와 사유)를 출력하고 "이대로 적용할까요?" 에 대한 응답을 기다린다. 승인 전에는 Workflow 를 호출하지 않고, 거부 시 [FAIL] harness:harness-refactor — 사용자 미승인 으로 중단한다. 이 시점까지 디스크에 쓴 것은 없다.

4

워크플로우 실행

Workflow({ name: 'harness:harness-refactor', args: { changes: <Step 2 changes>, rejected: <Step 2 rejected> } }). 워크플로우 스크립트(workflows/harness-refactor.js)는 이 플러그인에 이미 배포되어 있다 — 매 실행마다 모델이 새로 작성하지 않는다. 호출마다 바뀌는 것은 Step 2 에서 분류한 args.changes / args.rejected 뿐이다. 내부적으로 4개 phase 로 진행된다: Pre-flight(대상 파일 존재 확인 + 아카이브 디렉토리 생성, 파일 수정 없음) → Apply Changes(parallel() 로 비중첩 파일 그룹을 나눠 맡은 에이전트들이 각각 아카이브 후 수정하고 구조화된 결과를 돌려줌) → Verify(wc -l 비교와 references/ 파일 생성 여부 확인) → Final Report. Step 2 에서 금지로 분류된 rejected 항목은 워크플로우 본문에 적용되지 않고 Final Report 의 "Human Approval Required" 섹션에만 기록된다.

5

완료 보고

[OK] harness:harness-refactor — 완료 아래에 변경 파일 수, 생성된 references/ 수, 아카이브 수, human review 필요 항목 수, 그리고 다음 행동(git diff 확인 후 /gh-pr:commit)을 적는다. 실패 시 [FAIL] harness:harness-refactor — <이유>.

04 — 안전 계약

risk 분류: 자동 적용과 사람 판단 사이의 선

리포트가 아무리 강하게 권해도 오른쪽 여섯은 워크플로우에 들어가지 않는다. Final Report 의 "Human Approval Required" 섹션에 기록될 뿐이다.

허용 변경 — 워크플로우에 포함
  • +CLAUDE.md / AGENTS.md 의 중복 · 일반론 섹션 제거
  • +특정 작업 절차를 전역 지침에서 skill 로 이동
  • +긴 SKILL.md 를 SKILL.md + references/ 구조로 분리
  • +skill description / trigger 명확화
  • +settings.json 의 stale 권한 항목 제거
  • +삭제 대상은 영구 삭제 없이 .claude/archive/harness-refactor-YYYY-MM-DD/ 로 이동
절대 금지 — Human Approval Required 로만 기록
  • xhooks 수정
  • xMCP 설정 변경
  • xallowed-tools 권한 확대
  • x프로젝트 애플리케이션 코드 수정
  • x테스트 · 빌드 · 배포 명령 실행
  • x리포트가 신뢰도 low 로 표시한 모든 항목
05 — 주의사항

주의사항과 제약

이 스킬은 파일을 바꾼다

짝 스킬과 헷갈리기 쉬운 지점이다. harness-legacy-check 는 read-only 이지만, harness-refactor 가 실행하는 워크플로우는 CLAUDE.md / AGENTS.md / SKILL.md / settings.json 을 실제로 수정한다. 호출 전에 작업 트리가 깨끗한지 확인한다. 사전 게이트는 Step 3 의 사용자 승인이고, 호출 후 git diff 검토는 그 뒤의 2차 확인이다.

삭제는 영구 삭제가 아니다

제거 대상은 지우는 대신 .claude/archive/harness-refactor-YYYY-MM-DD/ 로 옮긴다. 잘못 판단한 삭제를 되돌릴 수 있게 하려는 것이므로, 워크플로우를 손볼 때도 이 아카이브 단계를 건너뛰지 않는다.

워크플로우 스크립트는 재작성되지 않는다

workflows/harness-refactor.js 는 이 플러그인에 체크인된 실제 파일이고, 호출마다 다시 생성되는 것이 아니다. 실행마다 바뀌는 것은 Step 2 가 분류한 args.changes / args.rejected 뿐이다. 스크립트 자체를 고치려면 플러그인 소스를 직접 편집해야 한다.

중단 조건

감사 리포트를 어느 경로로도 찾지 못하면 아무것도 하지 않고 멈춘다. 이때 스킬은 감사를 대신 실행하지 않으며, /harness-legacy-check 를 먼저 돌리라고만 안내한다.

하네스 의존성

Step 4 는 Claude Code 의 Workflow 도구를, 병렬 적용은 서브에이전트 오케스트레이션을 전제한다. 다른 하네스에서는 해당 기능의 대응 도구를 references/*-tools.md 매핑에서 찾아야 하고, metadata 상 non-Claude 하네스에서는 advisory-only 다.