<!-- task=15_node_command_docs_accuracy plan=0 tag=DOCS -->

# Plan - DOCS

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

**필수: 구현 마지막에는 반드시 `CODE_REVIEW-local-G03.md`의 구현 에이전트 소유 섹션을 실제 구현 내용과 명령 출력으로 채운다.** 이 task는 Node README의 command 설명을 현재 구현과 맞추는 문서 보정이다. 구현 체크리스트와 review stub의 구현 체크리스트를 모두 완료하고, 중간/최종 검증 출력은 실제 stdout/stderr로 남긴다. review 파일의 `이 파일을 읽는 리뷰 에이전트에게` 아카이브 지시와 `코드리뷰 전용 체크리스트`는 코드리뷰 skill 전용이므로 구현 에이전트가 실행하거나 수정하지 않는다.

## 배경

`apps/node/README.md`의 Node Commands 설명 중 `CAPABILITIES`, `SESSION_LIST`, `TRANSPORT_STATUS`가 현재 구현보다 넓거나 다른 payload를 설명한다. 구현은 requested adapter의 capability map, CLI session string list, node 관점 connected/status echo fields를 반환한다. 문서만 바로잡아 구현 기대값을 명확히 한다.

## 의존 관계 및 구현 순서

- 선행 task 없음.
- `agent-task/13_transport_idle_heartbeat`가 transport status payload를 바꾸면 이 task 완료 전 README 문구를 한 번 더 확인한다.
- `agent-task/14_e2e_temp_workspace`, `agent-task/14+ops_command_smoke`와 병렬 진행 가능하다.

## 분석 결과

### 읽은 파일

- `apps/node/README.md`
- `apps/edge/README.md`
- `apps/node/internal/node/node.go`
- `apps/node/internal/adapters/cli/cli.go`
- `apps/edge/internal/opsconsole/status.go`

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

- 문서 보정이라 runtime test는 필요 없다.
- stale wording search는 deterministic `rg --sort path`로 검증한다.

### 심볼 참조

- renamed/removed symbol 없음.

### 범위 결정 근거

- `apps/node/README.md`의 Node Commands section만 수정한다.
- `apps/edge/README.md`는 현재 node command payload를 상세 설명하지 않으므로 변경하지 않는다.
- proto comment와 generated files는 이번 문서 보정 범위가 아니다.

### 빌드 등급

- Build `local-G03`: 단일 문서 수정이며 코드/API 변경이 없다.
- Review `local-G03`: stale wording search와 구현 대조만 필요하다.

## 구현 체크리스트

- [ ] [DOCS-1] `apps/node/README.md`의 Node Commands 설명을 현재 command result와 맞춘다.
- [ ] 중간 검증과 최종 검증 명령을 모두 실행하고 실제 stdout/stderr를 CODE_REVIEW에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [DOCS-1] Node Commands 문구 보정

#### 문제

`apps/node/README.md:98-100`은 현재 구현과 다르게 설명한다. `CAPABILITIES`는 node 전체 adapter 목록이 아니라 requested adapter의 `adapter`, `targets`, `max_concurrency`를 반환한다(`apps/node/internal/node/node.go:208-231`). `SESSION_LIST`는 `(adapter, target, session_id)` tuple이 아니라 `persistent:target/session_id`, `codex-exec:target/session_id`, `opencode-sse:target/session_id` 문자열을 반환한다(`apps/node/internal/adapters/cli/cli.go:224-249`). `TRANSPORT_STATUS`는 heartbeat 상세가 아니라 `node_id`, `connected`, `adapter`, `target`, `session_id`를 반환한다(`apps/node/internal/node/node.go:246-265`).

Before:

```markdown
<!-- apps/node/README.md:98 -->
- `CAPABILITIES`: node가 노출하는 adapter 목록과 target/feature를 조회한다. adapter 실행 없이 node 자체 metadata만 응답한다.
- `SESSION_LIST`: `(adapter, target, session_id)`로 관리되는 logical session 현황을 조회한다. persistent CLI adapter에서만 유의미한 결과가 나온다.
- `TRANSPORT_STATUS`: edge-node transport 연결 상태(연결 여부, heartbeat 등)를 node 관점에서 조회한다.
```

After:

```markdown
- `CAPABILITIES`: 요청한 adapter의 capability를 조회한다. 현재 응답은 adapter 이름, target 목록, max_concurrency를 포함한다.
- `SESSION_LIST`: CLI adapter가 관리하는 logical session 목록을 `mode:target/session_id` 문자열로 조회한다.
- `TRANSPORT_STATUS`: node 관점의 edge 연결 여부와 요청 echo fields(node_id, adapter, target, session_id)를 조회한다. heartbeat 상세 카운터는 현재 응답에 포함되지 않는다.
```

#### 해결 방법

- `apps/node/README.md`의 세 bullet만 바꾼다.
- "heartbeat 등" 같은 구현되지 않은 세부값 표현을 제거한다.
- `USAGE_STATUS` 설명은 현재 구현과 맞으므로 유지한다.

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

- [ ] `apps/node/README.md` line 98 `CAPABILITIES` 설명 수정
- [ ] `apps/node/README.md` line 99 `SESSION_LIST` 설명 수정
- [ ] `apps/node/README.md` line 100 `TRANSPORT_STATUS` 설명 수정

#### 테스트 작성

- 추가 test 작성 없음. 문서 변경이며 stale wording search로 검증한다.

#### 중간 검증

```bash
if rg --sort path -n "adapter 목록|heartbeat 등|\\(adapter, target, session_id\\)" apps/node/README.md; then exit 1; fi
```

Expected: command exits 0 with no stale wording output.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `apps/node/README.md` | DOCS-1 |
| `agent-task/15_node_command_docs_accuracy/CODE_REVIEW-local-G03.md` | evidence 기록 |

## 최종 검증

```bash
if rg --sort path -n "adapter 목록|heartbeat 등|\\(adapter, target, session_id\\)" apps/node/README.md; then exit 1; fi
git diff --check
```

Expected: stale wording search exits 0 with no output. `git diff --check` exits 0.

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