<!-- task=17_skill_date_placeholder plan=0 tag=SKILLDATE -->

# Plan - SKILLDATE

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

**필수: 구현 마지막에는 반드시 `CODE_REVIEW-local-G04.md`의 구현 에이전트 소유 섹션을 실제 구현 내용과 명령 출력으로 채운다.** 이 task는 plan/code-review skill template에 오늘 날짜가 하드코딩된 회귀를 고친다. 구현 체크리스트와 review stub의 구현 체크리스트를 모두 완료하고, 중간/최종 검증 출력은 실제 stdout/stderr로 남긴다. review 파일의 `이 파일을 읽는 리뷰 에이전트에게` 아카이브 지시와 `코드리뷰 전용 체크리스트`는 코드리뷰 skill 전용이므로 구현 에이전트가 실행하거나 수정하지 않는다.

## 배경

`agent-ops/skills/common/plan/SKILL.md`와 `agent-ops/skills/common/code-review/SKILL.md`의 review stub template이 `{YYYY-MM-DD}` placeholder 대신 `2026-05-17`을 포함한다. 오늘 생성된 stub에서는 우연히 맞지만, 다음 날짜부터 모든 generated review stub의 `date=`가 틀어진다. 이번 작업은 template placeholder만 복구하고 archived task logs는 건드리지 않는다.

## 의존 관계 및 구현 순서

- 선행 task 없음.
- `agent-task/16_proto_socket_heartbeat_reproducibility`와 병렬 진행 가능하다.

## 분석 결과

### 읽은 파일

- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/common/code-review/SKILL.md`

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

- skill markdown에는 자동 unit test가 없다. deterministic `rg --sort path`로 stale hardcoded date와 restored placeholder를 검증한다.

### 심볼 참조

- renamed/removed symbol 없음.

### 범위 결정 근거

- 수정 범위는 두 skill template의 fenced review stub template 안 `date=` line뿐이다.
- `agent-task/**/code_review_*.log`, `complete.log`의 `date=2026-05-17`은 historical evidence이므로 수정하지 않는다.
- plan/review skill workflow 문구, routing rules, checklist semantics는 바꾸지 않는다.

### 빌드 등급

- Build `local-G04`: 두 markdown template line 수정이며 verification이 deterministic grep으로 충분하다.
- Review `local-G04`: archived logs를 오염하지 않았는지와 placeholder 복구만 확인하면 된다.

## 구현 체크리스트

- [ ] [SKILLDATE-1] plan skill review stub template의 `date={YYYY-MM-DD}` placeholder를 복구한다.
- [ ] [SKILLDATE-2] code-review skill follow-up review stub template의 `date={YYYY-MM-DD}` placeholder를 복구한다.
- [ ] 중간 검증과 최종 검증 명령을 모두 실행하고 실제 stdout/stderr를 CODE_REVIEW에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [SKILLDATE-1] plan skill template placeholder 복구

#### 문제

`agent-ops/skills/common/plan/SKILL.md:203`이 generated review stub template 안에서 날짜 placeholder 대신 오늘 날짜를 하드코딩한다.

Before:

```markdown
<!-- agent-ops/skills/common/plan/SKILL.md:201 -->
## 개요

date=2026-05-17
task={task_name}, plan={N}, tag={TAG}
```

After:

```markdown
## 개요

date={YYYY-MM-DD}
task={task_name}, plan={N}, tag={TAG}
```

#### 해결 방법

- 해당 fenced template line 하나만 `date={YYYY-MM-DD}`로 되돌린다.

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

- [ ] `agent-ops/skills/common/plan/SKILL.md` line 203 수정
- [ ] 주변 fenced template 구조 변경 없음 확인

#### 테스트 작성

- 추가 test 작성 없음. markdown template 회귀는 `rg` 검증으로 충분하다.

#### 중간 검증

```bash
rg --sort path -n "date=\\{YYYY-MM-DD\\}" agent-ops/skills/common/plan/SKILL.md
if rg --sort path -n "date=2026-05-17" agent-ops/skills/common/plan/SKILL.md; then exit 1; fi
```

Expected: 첫 명령은 plan skill에서 placeholder line을 출력한다. 두 번째 command는 no output으로 exit 0이어야 한다.

### [SKILLDATE-2] code-review skill template placeholder 복구

#### 문제

`agent-ops/skills/common/code-review/SKILL.md:184`도 follow-up review stub template 안에서 날짜 placeholder 대신 오늘 날짜를 하드코딩한다.

Before:

```markdown
<!-- agent-ops/skills/common/code-review/SKILL.md:182 -->
## 개요

date=2026-05-17
task={task_name}, plan={N}, tag={TAG}
```

After:

```markdown
## 개요

date={YYYY-MM-DD}
task={task_name}, plan={N}, tag={TAG}
```

#### 해결 방법

- 해당 fenced template line 하나만 `date={YYYY-MM-DD}`로 되돌린다.
- archived review logs의 date lines는 grep 대상에서 제외한다.

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

- [ ] `agent-ops/skills/common/code-review/SKILL.md` line 184 수정
- [ ] 주변 fenced template 구조 변경 없음 확인

#### 테스트 작성

- 추가 test 작성 없음. markdown template 회귀는 `rg` 검증으로 충분하다.

#### 중간 검증

```bash
rg --sort path -n "date=\\{YYYY-MM-DD\\}" agent-ops/skills/common/code-review/SKILL.md
if rg --sort path -n "date=2026-05-17" agent-ops/skills/common/code-review/SKILL.md; then exit 1; fi
```

Expected: 첫 명령은 code-review skill에서 placeholder line을 출력한다. 두 번째 command는 no output으로 exit 0이어야 한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-ops/skills/common/plan/SKILL.md` | SKILLDATE-1 |
| `agent-ops/skills/common/code-review/SKILL.md` | SKILLDATE-2 |
| `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
git diff --check -- agent-ops/skills/common/plan/SKILL.md agent-ops/skills/common/code-review/SKILL.md
```

Expected: placeholder grep prints exactly two lines, stale hardcoded-date grep exits 0 with no output, diff check exits 0.

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