Files
Find-Word/.agent/evidence-v0.2.5/release-approval/README.md
T

4.2 KiB

v0.2.5 exact 자산 소유자 승인 증거

제품 소유자 Oz의 사용자 전달 회신: 승인합니다. 이대로 진행하세요. 시각: 2026-10-14T11:29:51Z / 2026-10-14 20:29:51 KST. 승인 기록은 현재 8 WAV·manifest·notice에만 적용된다. productOwnerReleaseApproval=true, humanListeningAcceptance=true, legalPrivacyClearance=false. 회신을 전자서명 인증이나 법적/privacy clearance로 주장하지 않는다.

보존된 검수 ZIP은 전달된 /home/hermes/voice-memos/find-word-v0.2.5-normalized-ambience-review.zip과 바이트 동일하다. SHA-256: bb2e974b652df43db4a1f2a59716836e2c521839c724b34d4b71c1b40c3322e5. manifest SHA-256: 6433bf23af35f24031c6bbe784dd0abf9330f276da6b8705e47c7a1144a285b7.

ASR 실패 및 TDD

ASR 원문은 market 1 segment 및 requiredEmptyPassed=false로 불변이다. SHA-256: 98acdb16bc5dce57bb3609b705b63125e5511c2d5f7b26bdde54f4b7bd9a5e49. 이 보고서의 청취 인수/법적 clearance false 필드도 바꾸지 않았다.

  1. 01 RED: 승인 기록이 없어 새 집중 테스트가 실패했다.
  2. 원래 테스트 전체 소스, 02 ASR FAIL: 원래 requiredEmptyPassed=true assertion을 실제 실행해 실패를 다시 기록했다. 과거 15-unit.log도 수정하지 않았다.
  3. 03 GREEN: 별도 exact 승인 경로를 추가한 뒤 11개 계약 테스트 통과. 현재 ASR 검사는 원문 hash·실패 상태·market segment 보존을 검사한다. ASR PASS를 뜻하지 않는다.
  4. 04 변조 테스트: 13개 Python 테스트와 필드별 subtest가 자동 OR 분기, 승인 없음, stale WAV/manifest, 다른 ZIP, 문구/범위/시각 누락·변경, flags/법적 과장, 중복 JSON key, WAV/manifest/ASR/승인 해시를 함께 고친 경우도 검사한다. 성공 ASR fixture는 임시 사본에서만 만든다.

재실행

저장소 루트에서 실행한다. 아래 명령은 기존 증거 파일을 덮어쓰지 않는다.

python3 scripts/release_approval.py
npm run lint
npm test
python3 -m unittest discover -s tests/python -v
npm run build
npm audit --json
env -u PLAYWRIGHT_NO_SANDBOX CHROME_PATH=/usr/bin/google-chrome npm run test:browser
git diff --check

전체 검증 로그는 이 디렉터리의 05-build.log, 06-lint.log, 07-unit.log, 08-python.log, npm-audit.json, 09-browser.log, browser-results.json, chrome-sandbox.json에 보존한다. Chrome desktop/mobile은 viewport/touch emulation이며 실제 모바일 기기 인증이 아니다. run-browser.py는 전체 36개 테스트와 실제 자식 browser/renderer 인자를 수집했다. 같은 증거 위치에서 다시 실행하지 말고 새 위치를 사용한다(open('x')로 로그 덮어쓰기 거부). 최초 수집기의 argv 파서가 전체 명령을 한 요소로 받는 이 환경에서 renderer 미관측으로 종료했다. Playwright 자체 결과는 36 PASS / exit 0이다. 원래 수집기와 원문 프로세스/초기 판정을 보존했고 summarize_browser.py가 정확한 flag 경계로 원문을 재분석했다. 교정 결과는 browser 4개, renderer 72개, --no-sandbox 부재와 모든 관측 renderer의 Seccomp=2/NoNewPrivs=1을 확인한다. 전체 unit 146 PASS, Python 60 PASS, Chrome 36 PASS이며 lint/build/audit/secret scan/diff check도 통과했다.

before-sha256.json은 작업 시작 시 기존 .agent 증거, public 파일과 오디오 구현 파일 1,031개의 hash를 기록한다. 갱신하는 RESULT/ACCEPTANCE는 사본으로 보존하고 나머지는 원래 위치에서 불변이다. 소스 원본·선택 구간·loudness/gain 수학·101 voice 및 8 ambience WAV를 다시 만들지 않았다. 최신 결과와 인수 상태는 RESULT, ACCEPTANCE에 있다. commit/push/merge/tag/deploy 및 production 검증은 미실행이다.