# Complete - m-iop-agent-cli-runtime/03+01,02_guardrail_admission

## 완료 일시

2026-07-28

## 요약

Workspace guardrail admission의 effective working repository Git metadata 검증을 2개 리뷰 루프로 완성했으며 최종 판정은 PASS다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G09_0.log` | `code_review_cloud_G09_0.log` | FAIL | task root 아래 중첩 working repository의 외부 Git metadata escape를 발견했다. |
| `plan_cloud_G03_1.log` | `code_review_cloud_G04_1.log` | PASS | effective working repository discovery, typed blocker, provider invocation 0회 회귀를 구현·검증했다. |

## 구현/정리 내용

- task root의 mode-specific Git metadata 검증을 유지하면서 effective `WorkingDir`에서 가장 가까운 중첩 `.git` metadata도 검증하도록 확장했다.
- 중첩 `.git` directory/file/symlink와 `gitdir`/`commondir`를 canonicalize하고 task root 밖 metadata는 exact `WorkspaceGrant.VCSMetadataRoots` allowance로 제한했다.
- nested external Git metadata 차단 시 `vcs_metadata_not_allowed`, path-free 설정 안내와 provider invocation 0회를 고정하는 agentguard/catalog 회귀 테스트를 추가했다.
- `iop.agent-runtime` 계약에 task root와 effective working repository의 실제 Git metadata 검증 범위를 반영했다.

## 최종 검증

- `command -v go; readlink -f "$(command -v go)"; go version; go env GOROOT` - PASS; `/config/.local/bin/go`, `/config/opt/go/bin/go`, `go1.26.2 linux/arm64`, `GOROOT=/config/opt/go`.
- `make proto` - PASS; protobuf Go 생성 명령이 오류 없이 완료됐다.
- `go test -count=1 ./packages/go/agentguard/... -run 'NestedWorkingRepositoryMetadata'` - PASS; `ok iop/packages/go/agentguard`.
- `go test -count=1 ./packages/go/agentprovider/catalog/... -run 'BlocksNestedExternalGitMetadataBeforeInvocation'` - PASS; `ok iop/packages/go/agentprovider/catalog`.
- `go test -race -count=1 ./packages/go/agentguard/... ./packages/go/agentprovider/catalog/...` - PASS; 두 대상 package가 race 검증을 통과했다.
- `go test -count=1 ./packages/go/agentruntime/... ./packages/go/agentprovider/...` - PASS; agentruntime, catalog, CLI와 status package 회귀가 통과했다.
- `gofmt -l packages/go/agentguard packages/go/agentprovider/catalog` - PASS; 출력 없음.
- `git diff --check` - PASS; 출력 없음.

## Roadmap Completion

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-cli-runtime.md`
- Milestone link: [Milestone 문서](../../../../../../agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-cli-runtime.md)
- Completed task ids:
  - `guardrail-admission`: PASS; evidence=`agent-task/archive/2026/07/m-iop-agent-cli-runtime/03+01,02_guardrail_admission/plan_cloud_G03_1.log`, `agent-task/archive/2026/07/m-iop-agent-cli-runtime/03+01,02_guardrail_admission/code_review_cloud_G04_1.log`; verification=`make proto`, focused nested metadata tests, 대상 race suite와 인접 runtime/provider suite
- Not completed task ids: 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
