docs(proofline): capture issue 57 specification

This commit is contained in:
Hermes Agent
2026-08-14 17:04:19 +09:00
parent 1a2b500722
commit 5c9c5ca0ca
10 changed files with 299 additions and 17 deletions
@@ -0,0 +1,59 @@
# 구현 완료 evidence
이 파일은 ProofLine canonical lifecycle artifact가 아닌 GitHub issue comment 원문 evidence입니다. 기록된 구현·테스트 결과는 로컬 기능 브랜치의 사후 증거이며 ProofLine delivery closure, publication, release 또는 deployment 완료를 의미하지 않습니다.
- Source URL: https://github.com/fourblocks2020/trex-core/issues/57#issuecomment-5290864375
- Comment ID: `5290864375`
- Node ID: `IC_kwDOSvywKc8AAAABO1wu9w`
- Author: `genichin`
- Created at: `2026-08-14T07:47:03Z`
- Updated at: `2026-08-14T07:47:03Z`
- Original body SHA-256: `2a57a0b702957cb534cc9aa35e08618e76e38d9da5d1926e8055f84973783b51`
- Captured from GitHub API: `2026-08-14T16:51:15+09:00`
## Original Comment Body
<!-- BEGIN ORIGINAL COMMENT BODY -->
## 구현 완료
승인된 #57 범위의 requester-versioned·runtime-locked image publication 구현과 독립 검증을 완료했습니다.
### 구현 내용
- GHCR publication trigger를 strict `vX.Y.Z` tag push로 제한하고 일반 `main`/branch push, non-push event, malformed·leading-zero·prerelease/build tag를 fail-closed 처리
- exact `${GITHUB_SHA}` checkout 후 실제 `git rev-parse HEAD`를 다시 비교하여 source identity 검증
- Git tag version을 `pyproject.toml` package version과 독립적인 container publication authority로 유지
- Docker runtime dependency 설치가 repository-owned `uv.lock`을 실제로 소비하도록 `uv sync --locked --no-dev --no-editable` 적용
- 기존 full Ruff·full pytest publication gate와 single build, built-image smoke, tested image ID, archive SHA-256, canary scan, OCI revision, no-rebuild publish 계약 보존
- source-derived tag와 version tag를 같은 tested image에 부여하고 동일 registry digest를 가리키는지 검증
- 성공 output·summary에 immutable image reference, digest, source commit과 selected version tag를 함께 기록하고 `latest` 생성 금지
- operator documentation에 version tag 생성·push가 구현과 분리된 별도 사용자 승인 외부 쓰기임을 명시
- 초기 후보의 checkout 재검증·version evidence 누락을 별도 후속 커밋에서 보완하여 이력을 보존
### 검증 결과
Release 집중·전체 회귀, 정적 검사, ProofLine validation, Docker build/smoke와 독립 read-only 리뷰를 모두 통과했으며 승인 차단 finding은 없습니다.
- 최종 HEAD: `e3fa8243d926efd0b81463dbfc5403cf6e4889f9`
- 최종 tree: `ea05e23139965abed1f6a454c4ca2b5d356f8ab9`
- Release 집중 테스트: `75 passed`
- 전체 테스트: `1065 passed, 51 skipped`
- 전체 Ruff: `All checks passed!`
- `proofline validate`: exit `0`
- `git diff --check`: PASS
- checkout mismatch fail-closed 실동작: PASS
- Docker build, built-image smoke, image ID, archive export·checksum, canary scan: PASS
- image user `10001:10001`, `trex-core-daemon` entrypoint와 OCI source revision 확인
- 독립 read-only 리뷰: **PASS**, `mutation=false`, 승인 차단 finding 없음
- 기능 브랜치 `feat/issue-57-versioned-locked-publication`과 worktree: clean
### 비차단 후속 권고
- `TREX_POSTGRESQL_TEST_DSN`이 준비되면 PostgreSQL integration 41건을 실제 DB에서 재실행
- `TREX_RABBITMQ_TEST_URL`이 준비되면 RabbitMQ integration 9건을 재실행
- 안전한 KIS sandbox credentials가 준비되면 sandbox integration 1건을 재실행
- 로컬에 `actionlint`를 마련하거나 향후 GitHub workflow 실행에서 Actions-level YAML·shell 해석을 추가 확인
- version tag 생성·push와 GHCR publication은 별도 사용자 승인 후 수행하고, 게시 결과의 source/version tag가 동일 digest를 가리키는지 실제 registry evidence로 확인
> 현재 상태는 **격리 기능 브랜치의 로컬 구현·검증·커밋 완료**입니다. push·PR·main 반영·version tag 생성·GHCR 게시·배포·릴리스 완료를 의미하지 않습니다.
<!-- END ORIGINAL COMMENT BODY -->