3.6 KiB
3.6 KiB
Find-Word v0.2.3 구현 작업
기준
- canonical repository:
https://source.ibit.kr/OZ-Group/Find-Word - 기준 커밋:
c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5 - 작업 브랜치:
feat/v0.2.3 - 제품 버전:
0.2.3 - 배포 대상:
https://findword.heart-m.com/ - 정확한 credit:
Designed by OZ at Heat-T Medical Inc. - 프로젝트 라이선스: private / all rights reserved /
UNLICENSED
사용자 요구사항의 실행 해석
- 각 라운드는 정확히 3문항이다.
- 한 라운드의 자동 난이도는 3문항 내내 동일하다. 정상 완료 결과 화면에서 다음 난이도 버튼을 누르면 바로 다음 단계의 새 3문항 라운드가 시작된다. 5단계에서 완료하면 같은 단계 재도전 또는 처음 화면으로 돌아간다.
- 시작 화면에서 시작 난이도(1~5)를 선택한다.
- 사용자가 배경 대비 목표 음성 비율을 직접 조정할 수 있도록 SNR dB 제어를 제공한다. 게임 중 변경은 현재 재생 전/재청취와 이후 라운드 문항에 적용하며 자동으로 문항마다 변하지 않는다. 범위와 step은 안전하고 명시적으로 제한한다.
- 진행 중
문제 풀이 종료를 누르면 현재 오디오를 즉시 중단하고, 지금까지 답한 문항 수와 정답 수를 보여 주는 중도 종료 결과 화면을 표시한다. 사용자가처음 화면으로를 눌러 초기 화면으로 돌아간다. 무응답 문항을 오답으로 세지 않는다. - 기존 procedural white-noise 환경음을 제거하고, 길거리·쇼핑몰·극장·백화점·시장·지하철·카페·비 오는 거리의 실제 현장 녹음 8개를 정적 자산으로 번들한다. 환경마다 서로 다른 녹음을 사용한다.
- 현장음은 공개·수정·재배포가 허용된 라이선스만 사용한다. 원본 URL, 직접 다운로드 URL, 저작자, 라이선스, 변환, 원본/배포 해시와 attribution을 manifest와 문서에 기록한다. NC/ND/불명확한 자산은 금지한다.
- 배경음은 24kHz mono PCM16 WAV로 통일하고, 재생 시 RMS를 정규화한다. 목표 음성과의 상대 SNR이 사용자의 dB 설정을 따른다. 짧은 자산은 click 없이 loop하고 목표 음성 종료 때 정리한다.
- 앱 런타임은 same-origin 정적 자산만 요청하며 외부 네트워크, 분석, 추적, runtime TTS를 추가하지 않는다.
CHANGELOG.md를 버전 히스토리 파일로 생성하고 v0.2.3의 모든 변경, 오류 수정, 자산/라이선스, 테스트와 배포 관련 변경을 기록한다. 이전 v0.1.1/v0.1.0의 핵심 이력도 보존한다.- 버전 문자열을 package, lock, HTML title, UI, README, manifest/문서와 빌드에 일관되게
0.2.3으로 반영한다. - 직접 작성·수정한 소스 코드에는 모듈, 함수, 클래스, 핵심 변수·매개변수, 비자명한 로직의 목적과 이유를 설명하는 상세한 한국어 주석을 단다. 타입 선언·자명한 JSX 태그마다 형식적 주석을 반복하지 말고 설계 의도를 설명한다.
개발 방식
- strict TDD: 각 동작의 실패하는 테스트를 먼저 실행해 RED를 남긴 뒤 최소 구현으로 GREEN을 확인한다.
- 과거
.agent/evidence-v0.1.1과.agent/RESULT*.md는 수정하지 않는다. - 새 evidence는
.agent/evidence-v0.2.3/, 결과는.agent/RESULT-v0.2.3.md에 기록한다. - production 코드 변경 전 테스트를 작성한다.
- 기존 100개 목표 음성과 게임 콘텐츠, 개인정보 미수집, 접근성, 정확한 credit을 보존한다.
- Codex는 commit, push, merge, tag, production 배포를 하지 않는다. Neo가 독립 검증 후 실행한다.