docs(proofline): capture issue 25 approved specification

This commit is contained in:
2026-08-13 16:36:51 +09:00
parent 92df8e0c5a
commit 5fc389dea8
13 changed files with 575 additions and 2 deletions
+16
View File
@@ -0,0 +1,16 @@
---
id: "ac-0007"
status: active
---
# Locked Python 3.11 non-root image와 deny-by-default context
## Criterion
Repository-root image build는 Python 3.11을 사용하고 repository-owned `uv.lock`에 고정된 runtime dependency를 `--locked --no-dev --no-editable` 경계로 설치해야 한다. 최종 image는 고정 non-root UID/GID로 실행되고 `.dockerignore`와 명시적 `COPY` allowlist가 source control metadata, local environment, credential, 운영 설정 및 불필요한 파일을 build context/layer에서 제외해야 한다.
## Verification
- 성공 조건: hosted/local verification과 runtime image가 Python 3.11·동일 lock resolution을 사용하고 기본 user가 non-root이며 필요한 package/runtime 파일만 image에 존재한다.
- 실패·경계 조건: lock drift, broad `COPY .`, root default user, `.env`·key·token·local DB·VCS/worktree metadata의 context 포함은 계약 실패다.
- 검사 방법: `uv lock --check`, Dockerfile/`.dockerignore` contract tests, image inspect의 UID/GID 및 synthetic canary scan을 실행한다.