Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions .agents/skills/branch-checkout/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ description: 작업 전용 Git 브랜치를 만들거나 전환한다. 별도

## 절차

1. `git status --short`와 `git branch --show-current`를 확인한다.
1. `git status --short`, `git branch --show-current`, `git worktree list`, `git submodule status`를 확인한다.
2. 변경분이 있으면 요약하고, 전환해도 되는지 판단한다. 사용자 변경은 되돌리지 않는다.
3. 필요하면 `git fetch origin`으로 원격 기준을 최신화한다.
4. 기존 브랜치면 `git switch {branch}`를 실행한다.
5. 새 브랜치면 `task/{task-id}-{short-slug}` 형식을 선호해 `git switch -c {branch}`를 실행한다.
6. 전환 후 현재 브랜치와 남은 변경분을 보고한다.
3. worktree나 submodule 상태가 전환에 영향을 주면 먼저 보고한다.
4. 필요하면 baseline test 실행 여부를 사용자에게 보고한다. 실행하지 않았다면 "baseline test not run"으로 남긴다.
5. 필요하면 `git fetch origin`으로 원격 기준을 최신화한다.
6. 기존 브랜치면 `git switch {branch}`를 실행한다.
7. 새 브랜치면 `task/{task-id}-{short-slug}` 형식을 선호해 `git switch -c {branch}`를 실행한다.
8. 전환 후 현재 브랜치, worktree 상태, 남은 변경분을 보고한다.

## 제한

Expand Down
10 changes: 6 additions & 4 deletions .agents/skills/git-push/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@ description: 현재 Git 브랜치를 안전하게 원격에 push한다. git push

## 절차

1. `git status --short`와 `git branch --show-current`를 확인한다.
1. `git status --short`, `git branch --show-current`, `git worktree list`를 확인한다.
2. 현재 브랜치가 `main`/`master`면 push하지 말고 사용자 확인을 받는다.
3. 커밋되지 않은 변경분이 있으면 push 대상이 아니므로 중단하고 보고한다.
4. upstream이 있으면 `git push`를 실행한다.
5. upstream이 없으면 `git push -u origin {current-branch}`를 실행한다.
6. push 결과와 PR 작성 가능 여부를 보고한다.
4. 최근 RUN_REPORT에 fresh verification evidence와 review approval이 있는지 확인한다. 없으면 PR 가능 상태가 아니라고 보고한다.
5. upstream이 있으면 `git push`를 실행한다.
6. upstream이 없으면 `git push -u origin {current-branch}`를 실행한다.
7. push 결과와 PR 작성 가능 여부를 보고한다.

## 제한

- `--force`, `--force-with-lease`는 사용하지 않는다.
- 인증/권한/remote 오류는 원문을 요약하고 멈춘다.
- merge, PR, keep, discard 선택지는 사용자가 명시 요청할 때만 제시한다.
7 changes: 4 additions & 3 deletions .agents/skills/grill-me/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ Codex용 PRD 인터뷰 스킬이다. `CLAUDE.md` 기획 규칙과 `.claude/skill
2. 코드베이스나 기존 문서로 답할 수 있는 내용은 직접 확인한다.
3. 사용자에게 질문은 한 번에 하나만 한다.
4. 모든 질문에는 권장 답과 이유를 함께 제시한다.
5. 목적, 대상 사용자, 핵심 기능 3±2개, Non-goals, 측정 가능한 성공 기준이 나오면 질문을 멈춘다.
6. `docs/templates/PRD.md`를 기준으로 `docs/PRD.md`를 작성하고, 미확정 항목은 Open Questions에 남긴다.
7. 승인 후 UserFlow·DESIGN·Architecture 보완과 `$harness-plan` 실행을 안내한다.
5. 목적, 제약, 대상 사용자, 핵심 기능 3±2개, Non-goals, 측정 가능한 성공 기준을 확인한다.
6. 구현 전 접근안 2-3개와 추천안을 짧게 비교한다. 사용자가 답하지 못하면 권장안을 임시 결정으로 둔다.
7. `docs/templates/PRD.md`를 기준으로 `docs/PRD.md`를 작성하고, 미확정 항목은 Open Questions에 남긴다.
8. 승인 후 UserFlow·DESIGN·Architecture 보완과 `$harness-plan` 실행을 안내한다.

## 기본값

Expand Down
3 changes: 3 additions & 0 deletions .agents/skills/harness-plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ Codex에서 Claude Code `/harness-plan`에 해당하는 절차를 직접 수행
- `.harness/events/planning.jsonl`의 사용자-facing 메시지는 쉬운 문장으로 남긴다.
- 새 Task는 `agents/task-decomposer.md`의 INVEST·DoD·Acceptance 기준과
`agents/quality-gates.md`의 scope/YAGNI 기준을 만족해야 한다.
- 각 Task는 Files, Interfaces, Verification 관점이 DoD 또는 Acceptance에 드러나야 한다.
- 2-5분 단위 코드 step까지 쪼개지 않는다. 독립 검증 가능한 1 PR 이내 단위면 충분하다.
- placeholder, no-op, 실패를 숨기는 Acceptance는 proposal에 넣지 않는다.
16 changes: 11 additions & 5 deletions .agents/skills/harness-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,20 @@ Codex에서 Claude Code `/harness-review`에 해당하는 리뷰 절차를 수
## 절차

1. `AGENTS.md`, `CLAUDE.md`, `agents/quality-gates.md`, 대상 Task, Acceptance evidence, 현재 diff를 읽는다.
2. 코드 리뷰 관점으로 버그, 회귀 위험, 누락된 테스트, 규칙 위반, `agents/quality-gates.md` 위반을 우선 찾는다.
3. findings를 심각도순으로 먼저 보고하고, 각 항목은 파일·라인 근거를 포함한다.
4. 문제가 없으면 "발견 없음"을 명확히 말하고 남은 테스트 gap이나 잔여 위험만 짧게 남긴다.
2. Spec compliance 관점으로 Task DoD, Acceptance, TDD evidence, fresh verification evidence, scope/YAGNI 위반을 먼저 확인한다.
3. Code quality 관점으로 버그, 회귀 위험, 누락된 테스트, 유지보수성 문제, `agents/quality-gates.md` 위반을 찾는다.
4. findings를 심각도순으로 먼저 보고하고, 각 항목은 파일·라인 근거를 포함한다.
5. 문제가 없으면 "발견 없음"을 명확히 말하고 남은 테스트 gap이나 잔여 위험만 짧게 남긴다.

## 리뷰 축

- `Spec compliance`: Task 요구, DoD, Acceptance, TDD 또는 예외 사유, fresh verification evidence 충족 여부.
- `Code quality`: 버그, 회귀 위험, 과한 추상화, 불필요한 범위 확장, 테스트 누락 여부.

## 판정

- `APPROVE`: blocker 없음, Acceptance evidence가 충분함.
- `REQUEST_CHANGES`: 동작 버그, 규칙 위반, Acceptance 미실행/실패, 테스트 누락이 Task 완료를 막음.
- `APPROVE`: `Spec compliance`와 `Code quality` 모두 blocker 없음, fresh verification evidence가 충분함.
- `REQUEST_CHANGES`: 둘 중 하나라도 blocker가 있음. 동작 버그, 규칙 위반, TDD evidence 누락, Acceptance 미실행/실패, 테스트 누락이 Task 완료를 막으면 이 판정이다.

리뷰 중 직접 수정하지 않는다. 수정이 필요하면 findings를 근거로 구현 단계로 되돌린다.
findings는 `agents/quality-gates.md`의 review/reporting gate처럼 먼저 보고하고,
Expand Down
12 changes: 7 additions & 5 deletions .agents/skills/harness-work/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,17 @@ Codex에서 Claude Code `/harness-work`에 해당하는 절차를 직접 수행
4. 기준 미달이면 구현하지 말고 `$harness-plan` 절차로 하위 Task proposal을 만든다.
5. 기준 통과 시 `.harness/tasks/<task-key>/STATE.md`를 갱신하고 구현한다. Task 디렉토리가 없으면 루트 `.harness/*.md` 템플릿을 복사해 만든다.
6. 작업 중 범위가 커지면 중단하고 `agents/quality-gates.md`의 split 조건과 task-decomposer 기준으로 재분해한다.
7. 구현 후 `agents/test-agent.md` 절차대로 해당 Task Acceptance 명령과 관련 테스트 스위트를 실행한다.
8. 검증 실패 시 수정 후 재실행한다.
9. 검증 통과 후 `$harness-review` 절차로 현재 diff를 리뷰한다.
7. 기능, 버그 수정, 동작 변경은 구현 전 failing test 또는 failing Acceptance를 먼저 확인한다. 문서, 설정, 생성 코드, throwaway prototype은 TDD 예외 사유를 기록한다.
8. 구현 후 `agents/test-agent.md` 절차대로 해당 Task Acceptance 명령과 관련 테스트 스위트를 fresh verification으로 실행한다.
9. 검증 실패 시 수정 후 재실행한다.
10. 검증 통과 후 `$harness-review` 절차로 현재 diff를 리뷰한다.

## 완료 기준

- Acceptance와 관련 테스트가 통과해야 한다.
- Acceptance와 관련 테스트가 fresh verification으로 통과해야 한다.
- TDD evidence 또는 명시적 예외 사유가 있어야 한다.
- `.harness/tasks/<task-key>/RUN_REPORT.md`에 변경 요약, 주요 결정 근거,
Acceptance/test evidence, 남은 위험을 짧게 남긴다.
TDD evidence, Acceptance/test evidence, 남은 위험을 짧게 남긴다.
- Acceptance와 관련 테스트 통과 후 에이전트가 `tasks/index.json`의 대상 Task를
`done`으로 갱신하고 `Plans.md`를 재생성한다. GitHub Actions는 Task 상태를
전환하지 않는다.
Expand Down
14 changes: 8 additions & 6 deletions .agents/skills/pr-create/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,19 @@ description: 현재 작업 브랜치에서 GitHub PR을 작성한다. PR 생성,

## 절차

1. `git status --short`와 `git branch --show-current`를 확인한다.
1. `git status --short`, `git branch --show-current`, `git worktree list`를 확인한다.
2. 현재 브랜치가 `main`/`master`면 PR을 만들지 않는다.
3. 커밋되지 않은 변경분이 있으면 커밋이 필요하다고 보고하고 중단한다.
4. 대상 Task를 `tasks/index.json`에서 확인한다.
5. PR 본문에 변경 요약, 검증 결과, DoD/Acceptance evidence, 남은 위험을 포함한다.
6. Task의 `gh` 값이 `#N`이면 `Closes #N`을 포함한다.
7. 기본은 `gh pr create --draft`다. 사용자가 ready PR을 명시하면 draft를 생략할 수 있다.
8. 생성 후 PR URL과 남은 merge gate를 보고한다.
5. `.harness/tasks/<task-key>/RUN_REPORT.md`에서 TDD evidence, fresh verification evidence, review approval을 확인한다.
6. PR 본문에 변경 요약, 검증 결과, DoD/Acceptance evidence, 남은 위험을 포함한다.
7. Task의 `gh` 값이 `#N`이면 `Closes #N`을 포함한다.
8. 기본은 `gh pr create --draft`다. 사용자가 ready PR을 명시하면 draft를 생략할 수 있다.
9. 생성 후 PR URL과 남은 merge gate를 보고한다.

## 제한

- Acceptance evidence가 없거나 리뷰가 `REQUEST_CHANGES`면 PR 생성 전 중단한다.
- Acceptance evidence, fresh verification evidence, TDD evidence 또는 예외 사유가 없거나 리뷰가 `REQUEST_CHANGES`면 PR 생성 전 중단한다.
- Task 상태 변경은 PR 생성 전에 Acceptance evidence와 함께 이미 반영돼 있어야 한다.
GitHub Actions가 상태를 대신 전환하지 않는다.
- merge, PR, keep, discard 선택지는 사용자가 명시 요청할 때만 제시한다.
9 changes: 5 additions & 4 deletions .claude/commands/branch-checkout.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
description: Create or switch to a dedicated task branch after checking repository state.
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git switch:*), Bash(git fetch:*), Read
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git worktree:*), Bash(git submodule:*), Bash(git switch:*), Bash(git fetch:*), Read
---

# /branch-checkout

절차 원본은 `.agents/skills/branch-checkout/SKILL.md`다. 이 command는 Claude Code 호출용 wrapper다.

1. `.agents/skills/branch-checkout/SKILL.md`를 읽고 같은 절차를 따른다.
2. `git status --short`와 `git branch --show-current`를 먼저 확인한다.
2. `git status --short`, `git branch --show-current`, `git worktree list`를 먼저 확인한다.
3. 사용자 변경은 되돌리지 않는다.
4. `git reset --hard`, `git checkout --`, 강제 push는 실행하지 않는다.
5. 인자: `$ARGUMENTS`
4. worktree/submodule 상태와 baseline test 실행 여부를 보고한다.
5. `git reset --hard`, `git checkout --`, 강제 push는 실행하지 않는다.
6. 인자: `$ARGUMENTS`
9 changes: 5 additions & 4 deletions .claude/commands/git-push.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
description: Push the current branch safely after checking status, branch, and upstream.
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git remote:*), Bash(git push:*), Read
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git worktree:*), Bash(git remote:*), Bash(git push:*), Read
---

# /git-push

절차 원본은 `.agents/skills/git-push/SKILL.md`다. 이 command는 Claude Code 호출용 wrapper다.

1. `.agents/skills/git-push/SKILL.md`를 읽고 같은 절차를 따른다.
2. `git status --short`와 `git branch --show-current`를 먼저 확인한다.
2. `git status --short`, `git branch --show-current`, `git worktree list`를 먼저 확인한다.
3. `main`/`master` push와 커밋되지 않은 변경분 push는 중단하고 보고한다.
4. `--force`, `--force-with-lease`는 사용하지 않는다.
5. 인자: `$ARGUMENTS`
4. fresh verification evidence와 review approval이 없으면 PR 가능 상태가 아니라고 보고한다.
5. `--force`, `--force-with-lease`는 사용하지 않는다.
6. 인자: `$ARGUMENTS`
6 changes: 3 additions & 3 deletions .claude/commands/pr-create.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
description: Create a GitHub pull request from the current task branch with task and acceptance context.
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git log:*), Bash(gh pr create:*), Bash(gh pr view:*), Read
allowed-tools: Bash(git status:*), Bash(git branch:*), Bash(git worktree:*), Bash(git log:*), Bash(gh pr create:*), Bash(gh pr view:*), Read
---

# /pr-create

절차 원본은 `.agents/skills/pr-create/SKILL.md`다. 이 command는 Claude Code 호출용 wrapper다.

1. `.agents/skills/pr-create/SKILL.md`를 읽고 같은 절차를 따른다.
2. `git status --short`와 `git branch --show-current`를 먼저 확인한다.
3. Acceptance evidence와 리뷰 상태를 확인한다.
2. `git status --short`, `git branch --show-current`, `git worktree list`를 먼저 확인한다.
3. TDD, fresh verification evidence와 리뷰 상태를 확인한다.
4. 기본은 draft PR이다. 연결 이슈가 있으면 `Closes #N`을 포함한다.
5. 인자: `$ARGUMENTS`
6 changes: 6 additions & 0 deletions .harness/CONTEXT_INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@

## Task별 맥락

- `.harness/tasks/4.14-superpowers-workflow-docs/`: workflow 문서 정렬 evidence
- `.harness/tasks/4.15-planning-decomposition-rules/`: task-decomposer 규칙 강화 evidence
- `.harness/tasks/4.16-tdd-verification-gates/`: TDD/fresh verification gate evidence
- `.harness/tasks/4.17-review-verdict/`: review verdict 이원화 evidence
- `.harness/tasks/4.18-git-helper-safety/`: git helper 안전 흐름 evidence
- `.harness/tasks/4.19-skeleton-evidence-template/`: skeleton RUN_REPORT 갱신 evidence
- `.harness/tasks/<task-key>/STATE.md`: 현재 스냅샷
- `.harness/tasks/<task-key>/LOG.md`: 작업·에러 원문
- `.harness/tasks/<task-key>/RUN_REPORT.md`: 변경·결정·검증 요약
Expand Down
11 changes: 7 additions & 4 deletions .harness/RUN_REPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,18 @@

## Evidence

| 명령 | 결과 | 비고 |
|------|------|------|
| `[acceptance command]` | `[PASS|FAIL|SKIP]` | `[핵심 출력 또는 이유]` |
| `[test command]` | `[PASS|FAIL|SKIP]` | `[핵심 출력 또는 이유]` |
| 구분 | 명령 또는 근거 | 결과 | 비고 |
|------|----------------|------|------|
| TDD | `[red command 또는 예외 사유]` | `[RED|EXEMPT|N/A]` | `[실패 확인 또는 예외 이유]` |
| Verification: Acceptance | `[acceptance command]` | `[PASS|FAIL|SKIP]` | `[핵심 출력 또는 이유]` |
| Verification: Tests | `[test command]` | `[PASS|FAIL|SKIP]` | `[핵심 출력 또는 이유]` |
| Review | `[harness-review verdict]` | `[APPROVE|REQUEST_CHANGES|SKIP]` | `[Spec compliance / Code quality 요약]` |

## Notes

- 결정: `[결정과 근거. 없으면 없음]`
- 변경 파일: `[path — 이유]`
- 실패/복구: `[LOG.md 위치 또는 없음]`
- TDD 예외: `[문서·설정·생성 코드·prototype 등 사유 또는 없음]`
- 다음 행동: `[이어갈 위치 또는 없음]`
- 최종 갱신: `YYYY-MM-DD HH:MM KST`
7 changes: 7 additions & 0 deletions .harness/shared/planning/latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"run_id": "plan-20260709-121720-5862c6",
"updated_at": "2026-07-09T12:17:20+09:00",
"context": ".harness/shared/planning/runs/plan-20260709-121720-5862c6/context.json",
"proposal": ".harness/shared/planning/runs/plan-20260709-121720-5862c6/proposed-tasks.json",
"report": ".harness/shared/planning/runs/plan-20260709-121720-5862c6/decomposition-report.md"
}
Loading
Loading