<!-- task=17_skill_date_placeholder plan=1 tag=REVIEW_SKILLDATE -->

# Plan - REVIEW_SKILLDATE

## 이 파일을 읽는 구현 에이전트에게

이 plan은 이전 리뷰의 Required issue 중 최신 skill 정책과 충돌하는 부분을 바로잡는다. `agent-ops/skills/common/plan/SKILL.md`와 `agent-ops/skills/common/code-review/SKILL.md`의 `date={YYYY-MM-DD}` template placeholder는 유지하고, PASS task-directory archive move 정책도 최신 skill 계약으로 유지한다. 구현 마지막에는 반드시 `CODE_REVIEW-local-G04.md`의 구현 에이전트 소유 섹션을 실제 구현 내용과 명령 출력으로 채운다.

## 배경

이전 follow-up plan은 `date={YYYY-MM-DD}` placeholder 복구를 위해 PASS task-directory archive move 문구를 제거하라고 지시했다. 이후 프로젝트 운영 정책이 확정되어 PASS task는 `agent-task/archive/YYYY/MM/` 아래로 이동하는 것이 현재 skill 계약이 되었다. 따라서 이번 작업은 date placeholder와 archive move 정책이 함께 유지되도록 활성 plan/review 지시를 정정한다.

## 의존 관계 및 구현 순서

- 선행 task 없음.
- 현재 task 디렉터리의 archived `code_review_local_G04_0.log`와 `plan_local_G04_0.log`는 historical evidence이므로 수정하지 않는다.

## 분석 결과

### 읽은 파일

- `agent-task/17_skill_date_placeholder/PLAN-local-G04.md`
- `agent-task/17_skill_date_placeholder/CODE_REVIEW-local-G04.md`
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/common/code-review/SKILL.md`

### 테스트 커버리지 공백

- skill markdown에는 자동 unit test가 없다. deterministic `rg --sort path`, `git diff --check`, targeted `git diff`로 placeholder 보존과 archive policy 보존을 검증한다.

### 심볼 참조

- none.

### 범위 결정 근거

- 수정 범위는 `agent-ops/skills/common/plan/SKILL.md`와 `agent-ops/skills/common/code-review/SKILL.md`의 date placeholder와 PASS archive policy 정합성 확인 및 필요한 최소 보정으로 제한한다.
- PASS task-directory archive move 문구는 최신 정책이므로 제거하지 않는다.
- `agent-task/**/code_review_*.log`, `plan_*.log`, `complete.log`의 historical date나 이전 판정은 수정하지 않는다.

### 빌드 등급

- Build `local-G04`: markdown workflow text cleanup이며 deterministic grep/diff 검증으로 충분하다.
- Review `local-G04`: 변경 범위가 skill markdown 문구 정합성에 국한되어 있다.

## 구현 체크리스트

- [ ] [REVIEW_SKILLDATE-1] plan/code-review skill에서 `date={YYYY-MM-DD}` placeholder와 PASS task-directory archive move 정책이 동시에 유지되도록 필요한 최소 보정을 수행한다.
- [ ] 중간 검증과 최종 검증 명령을 모두 실행하고 실제 stdout/stderr를 CODE_REVIEW에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_SKILLDATE-1] date placeholder와 archive policy 정합성 보존

#### 문제

이전 follow-up plan은 PASS task-directory archive move를 범위 초과 변경으로 보고 제거하라고 지시했다. 하지만 현재 skill 계약은 `date={YYYY-MM-DD}` template placeholder 보존과 PASS task directory의 `agent-task/archive/YYYY/MM/{task_name}/` 이동을 모두 요구한다.

#### 해결 방법

- `agent-ops/skills/common/plan/SKILL.md`와 `agent-ops/skills/common/code-review/SKILL.md`에서 review stub template의 `date={YYYY-MM-DD}` placeholder를 유지한다.
- 두 skill에 hardcoded `date=2026-05-17`이 들어가지 않게 한다.
- PASS task-directory archive move 정책은 제거하지 않는다.
- 이미 최신 정책과 일치하면 skill 파일은 수정하지 않고 검증 결과만 기록한다.

#### 수정 파일 및 체크리스트

- [ ] `agent-ops/skills/common/plan/SKILL.md`의 `date={YYYY-MM-DD}` placeholder 유지 확인
- [ ] `agent-ops/skills/common/code-review/SKILL.md`의 `date={YYYY-MM-DD}` placeholder 유지 확인
- [ ] `agent-ops/skills/common/code-review/SKILL.md`의 PASS `agent-task/archive/YYYY/MM/{task_name}/` 이동 정책 유지 확인
- [ ] `agent-ops/skills/common/plan/SKILL.md`의 plan-code-review workflow에서 PASS task-directory archive move 언급 유지 확인

#### 테스트 작성

- 추가 test 작성 없음. markdown workflow text 회귀는 `rg`와 targeted diff 검증으로 충분하다.

#### 중간 검증

```bash
rg --sort path -n "date=\\{YYYY-MM-DD\\}" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
if rg --sort path -n "date=2026-05-17" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md; then exit 1; fi
rg --sort path -n "agent-task/archive/YYYY/MM|PASS task-directory archive move|PASS task-directory moves|Move PASS Task" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
```

Expected: placeholder grep은 두 skill template line을 출력한다. stale hardcoded-date grep은 no output으로 exit 0이어야 한다. archive policy grep은 plan workflow와 code-review PASS archive 관련 line들을 출력한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-ops/skills/common/plan/SKILL.md` | REVIEW_SKILLDATE-1 |
| `agent-ops/skills/common/code-review/SKILL.md` | REVIEW_SKILLDATE-1 |
| `agent-task/17_skill_date_placeholder/CODE_REVIEW-local-G04.md` | evidence 기록 |

## 최종 검증

```bash
rg --sort path -n "date=\\{YYYY-MM-DD\\}" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
if rg --sort path -n "date=2026-05-17" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md; then exit 1; fi
rg --sort path -n "agent-task/archive/YYYY/MM|PASS task-directory archive move|PASS task-directory moves|Move PASS Task" agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
git diff --check -- agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
git diff -- agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
git status --short -- agent-task/17_skill_date_placeholder agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
```

Expected: placeholder grep은 두 skill template line을 출력, stale hardcoded-date grep은 no output으로 exit 0, archive policy grep은 현재 policy line들을 출력, `git diff --check`는 no output으로 exit 0이어야 한다. targeted `git diff`는 skill policy 제거가 없음을 보여주고, `git status`는 active task artifact 상태를 보여야 한다.

모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
