# 검증 기록

아래는 개발 단계의 근거와 당시 검증 범위를 보존한 기록입니다. 현재 변경은 [변경 기록](../CHANGELOG.ko.md), 미게시 후보의 확인 방법은 [로컬 패키지 시험](demo.ko.md)에 있습니다. 과거 [1.0.0](release-1.0.0.ko.md)과 [1.1.0](release-1.1.0.ko.md) 릴리스 안내는 각각 당시 범위를 보존합니다. 이전 압축 파일의 테스트 수와 패키지 검사가 이후 파일까지 검증했다는 뜻은 아닙니다.

## 라이트 스킬 프로필과 이전 보호 (1.3.0)

1.3.0 소스는 Windows와 Node.js 22.22.3에서 전체 테스트 307개, 문법·TypeScript·Python·스킬·번역·공개 문서 검사와 필수 PowerShell 설치·업데이트·동기화 미리보기를 통과했습니다. 새 이전 회귀 7개는 적용 전 대체 설치 충돌, 정상 미리보기 후 설치 실패, 여러 대체 설치 중 일부만 성공한 경우, 최신 설치본·새 설치본의 정리 직전 수정, 제거 사이의 변경, 양쪽 스킬 경로 보존과 복구를 다룹니다. 소스 검사가 정확한 릴리스 압축 파일이나 원격 CI 결과의 검증을 대체하지는 않습니다.

라이트는 참고 자료 묶음 없이 지침 파일 하나인 스킬 하나를 선택합니다. 측정한 이름·설명 합계는 82자로 core의 230자, development의 634자보다 작으며 경로와 앱에서 추가하는 문구는 제외합니다. 패키지 내용의 크기이지 실제 모델 토큰이나 비용 절감 측정이 아닙니다. 이 검사로 앱의 발견·자동 선택·응답 문체, 서비스나 회사의 감사 동작을 검증하지는 않았습니다. 기능과 복구 범위는 [릴리스 안내](release-1.3.0.ko.md)를 참고하세요.

## 설치 사용성과 실사용 결함 수정 (1.2.2)

Windows와 Node.js 22.22.3에서 소스 테스트 295개를 모두 통과했습니다. 문법·TypeScript·Python·스킬·번역·공개 문서 검사와 필수 PowerShell 설치·업데이트·동기화 미리보기도 통과했습니다. 터미널 검사는 명시적 선택, 비활성 항목, 검색, 페이지 이동, 취소, 스트림 정리와 좁은 화면의 한글 표시를 포함합니다. 실제 Windows 터미널에서는 저장소 12개 체크, 폴더 준비, 사용할 수 없는 로컬 제외 안내, 최종 검토에서 언어 수정과 무변경 미리보기를 확인했습니다. 기존 프로젝트에서 별도로 진행한 설치는 취소 후 파일 무변경을 확인했습니다.

기존 프런트엔드 저장소 두 곳의 읽기 전용 CLI·SDK MCP 검사로 작업 기록 안내문 오분류, Windows 기록 경로의 대소문자, AST 보호 경로의 대소문자 우회, 메타데이터 날짜만 있는 기록의 월 검색 불일치를 재현했습니다. 수정 소스와 설치한 후보 패키지를 두 저장소에서 다시 검증했으며 기존 파일과 Git 상태를 보존했습니다. fixture 회귀는 사용자 지정 작업 기록 위치, 요약문, 날짜 우선순위, 제한된 메타데이터 읽기, Git·파일시스템 AST 경로를 다룹니다.

격리된 npm 설치에서 1.2.1 → 1.2.2 → 1.2.1, 두 실행 명령, 공통 기록, 기록 생성, AST, SDK MCP와 기존 기록 복구를 확인했습니다. 선택 의존성 없이 설치해도 기록 도구는 동작하고 AST 엔진이 없음을 보고했습니다. 이 검증은 새 Codex 호스트의 자동 도구 선택, 제품 UI의 모든 동작, 다른 운영체제, 게시 완료나 전역 설치 갱신을 입증하지 않습니다.

## 작업 공간과 기록 기능 후보 검증

`1.2.0-next.1` 소스는 Windows와 Node.js 22.22.3에서 테스트 240개를 통과했습니다. 문법·TypeScript·Python·명명·스킬·번역·공개 문서 검사도 통과했습니다. 필수 PowerShell 검사와 설치·업데이트·동기화 미리보기를 실행했으며 설치된 스킬은 갱신하지 않았습니다. 소스 스킬은 선택형 레거시 계약을 포함해 여섯 개이고, 개발 프로필은 다섯 개를 선택합니다.

독립 Git 저장소 열두 개로 PC 웹 하나, 웹뷰 웹 세 개, Android 네 개, iOS 네 개를 구성했습니다. 공통·개별 기록, Git 없는 설치, 네 가지 제외 방식, 워크트리 제외, 취소, 미리보기, 소유권, 중간 실패·복구, worklog·등록 정보의 동시 작성과 사용자 수정 보존을 검사했습니다. 후속 회귀 시험은 예약 경로의 대소문자 우회, 오래된 개별 기록 경로, 다른 작업 공간의 커서, 평면형 구버전 로그의 월 검색, 검색 범위·읽기 한도, 명시한 원본의 이전·복구를 다룹니다. Forge는 등록된 일반 하위 폴더가 상위 원격을 물려받지 못하게 하며, Git 디렉터리가 도중에 사라지는 경우도 검사했습니다. 원격 쓰기는 시험용 전송으로 검증했습니다.

실제 터미널에서 한국어 설치 안내의 미리보기와 별도 취소를 진행했고 파일이 생기지 않았습니다. SDK stdio 시험은 등록된 하위 저장소에서 AST를 포함한 다섯 도구를 호출했습니다. 별도의 일회성 Codex 호스트 작업에서는 상위 폴더에 Astra `xhigh`, 하위 저장소에 Sol `max`를 사용했습니다. 두 작업 모두 MCP로 공통 목표, 연결된 지식, 기록된 검증, 미확인 사항과 다음 행동을 찾았고 시험 파일을 보존했습니다. 이는 도구 호출과 기록 기반 재개의 근거이며 네이티브 앱이나 빌드의 검증은 아닙니다.

합성 근거 세 묶음으로 Astra `xhigh` 단독 작성과 Sol `xhigh` 초안 후 Astra `xhigh` 검토를 비교했습니다. 출력 아홉 개에서 주어진 명령·URL·소스 위치·ID·수치가 모두 보존됐습니다. 가정이나 미실행 검증을 사실로 바꾼 사례는 발견하지 못했습니다. Sol 초안 하나는 요청한 20줄을 넘었고 다른 하나는 다음 행동을 제안으로 중복 적었습니다. 검토에서 두 문제를 정리했습니다.

| 근거 묶음 | 메인 단독 시간(초) | 초안 + 검토 시간(초) | 메인 단독 입력 토큰 | 초안 + 검토 입력 토큰 |
| --- | --- | --- | --- | --- |
| 인증 | 29.86 | 51.39 | 16,781 | 32,903 |
| 업로드 제한 | 21.19 | 35.51 | 16,750 | 32,824 |
| 네이티브 브리지 근거 | 28.59 | 33.35 | 16,767 | 32,884 |

각 사례를 한 번씩 실행한 CLI 전체 시간과 보고된 입력 사용량입니다. 호스트 지침과 캐시 입력을 포함합니다. 메인 단독은 각각 캐시 입력 11,776개, 초안과 검토를 합치면 각각 22,528개가 보고됐습니다. 텍스트 비교에서는 도구를 호출하지 않았습니다. 일반적인 속도·품질·가격·구독 한도 개선률로 해석할 수 없습니다. 초안만 보면 빨리 끝났지만 검토를 합친 시간과 입력량은 세 사례 모두 늘었습니다. 따라서 일반 기록은 메인이 작성하고 긴 독립 정리만 필요에 따라 위임합니다.

이번 후보는 모델 실행기·타이머·벡터 DB나 필수 25분 대기 설정을 추가하지 않습니다. 이 단계에서는 Linux/macOS 실행, 실제 회사 저장소, 네이티브 기기와 긴 기록 위임의 비용 효과를 검증하지 않았습니다. GitHub 작업과 npm 게시는 별도 단계입니다.

## 이전 사전 릴리스의 범위와 런타임 검사

이번 릴리스는 프로젝트 기록, 선택 스킬, 설치와 로컬 기능 노출을 바꿉니다. Writer와 Game에는 별도 로컬 계획만 작성했습니다. 기존 커밋하지 않은 파일의 해시, 저장소 HEAD와 worktree 목록을 보존했으며 두 제품 구현과 실제 게임 엔진 실행은 이번 검증 대상이 아닙니다.

개편한 테스트는 Windows와 Node.js 22.22.3에서 137개 모두 통과했습니다. 이 중 33개는 새 CLI·기록·설치/복구·실제 stdio MCP를 검증하고, 104개는 Forge와 Python 탐색을 검사합니다. 이전 458개 통과·1개 건너뜀 기준선에는 종료한 실행·색인·예약 기능이 포함되어 있으므로 총수를 성능이나 검증 범위의 직접 비교로 사용하지 않습니다.

정적·TypeScript·스킬·번역·공개 문서·Python 검사도 통과했습니다. 새 검사 33개와 Python 탐색 검사 2개는 Node.js 18.20.8에서도 통과했습니다. 이는 호환성 확인이며 모든 지원 OS·Node 버전에서 전체 검사를 실행했다는 뜻은 아닙니다. Windows/Ubuntu 원격 CI도 실행했습니다. 최초 Windows 인터프리터 탐색은 두 push에서 실패했지만 같은 소스의 PR 검사는 통과했습니다. 느리게 시작하는 인터프리터의 회귀 검사로 3초 제한의 거부를 재현해 탐색 한도를 8초로 바꾸고, 검증 실패에는 후보별 오류를 포함했습니다. 최초 원격 실패에는 후보별 오류가 없어 정확한 원인은 확정하지 못했습니다.

배포 준비 후속 점검에서 명시한 백업과 설치가 다른 볼륨에 있을 때 EXDEV 실패를 재현했습니다. 기본 백업이 선택한 설치 경로를 따르도록 바꿨고, 파일시스템이 다른 백업 조합은 쓰기 전 미리보기·적용에서 거부합니다. 회귀 검사에서 서로 다른 Windows 볼륨과 같은 파일시스템의 기본 설치·복구를 확인했습니다. 파일시스템을 넘는 원자적 복사는 지원하지 않습니다. next 태그의 npm 게시 미리보기도 통과했지만 레지스트리 권한이나 실제 게시 성공을 확인한 것은 아닙니다.

설치 검사는 단일 경로, 프로필 선택, 한글·공백 경로, 미관리·수정 파일, junction 경계, 동시 편집, 중단된 적용, 잘못된 복구 기록, 변조된 백업, 이전·복구 재실행을 포함합니다. 기록 검사는 구버전 레이아웃, 최소 생성, 무변경 미리보기, 관리 메타데이터와 복원을 확인합니다. MCP는 SDK stdio 클라이언트로 도구 네 개, 경로 이탈 거부, 직렬화 출력 제한과 기록 무변경을 확인했습니다. Forge는 모의 전송으로 기존 식별자, 오래된 상태 충돌과 부분 실패를 검증했으며 원격 기록을 쓰지 않았습니다.

추가 검수에서 빈 명시적 스킬 선택, 읽을 수 없는 현재 상태 진입점, --root를 무시하는 문서 보고서, 선택형 검사의 상위 링크 경로 문제를 재현하고 수정했습니다. 회귀 검사에서 프로젝트 기록과 외부 파일을 바꾸지 않고 잘못된 입력을 거부합니다. MCP 검사는 텍스트·구조화 표현을 모두 포함한 최종 도구 결과를 확인합니다. 각 표현을 따로 검사할 때 놓쳤던 합산 한도 문제를 보완했습니다. npm 파일 목록에는 한국어와 연결된 유지보수 문서를 포함했으며, 현재 안내·스킬 Markdown 106개의 상대 링크와 개인 기록·백업·테스트 제외를 확인했습니다.

로컬 패키지에는 필요한 런타임·목록·참조 파일이 포함되고 개인 기록은 제외됐습니다. 별도 npm 설치 폴더에서 기존 전역 패키지 0.5.10 실행, 1.0.0-next.1 업그레이드, 0.5.10 복구, 재업그레이드가 성공했습니다. 소스 복구 기준은 별도로 0.5.11입니다. 이 최초 next.1 압축 파일 검증 단계에서는 npm 게시와 원격 push를 하지 않았습니다. 이후 GitHub 작업은 별도 이정표이며, 이 과거 패키지 검사 결과가 현재 브랜치의 공개 상태를 뜻하지는 않습니다.

## 응답 이어 읽기와 기존 프로젝트 시연

next.2 응답 규격에서 Unicode·CRLF 재조립, 긴 줄, 정확한 원본 위치, 원본·검색어·프로젝트가 다른 커서, 작은 예산, 경고 페이지와 검증 총수를 확인했습니다. 로컬 npm 압축 파일을 격리 설치한 뒤 SDK stdio 전송으로 기존 구조화 기록 두 세트에 aapb_* 도구 네 개를 호출했습니다. 이어 읽기를 검증하려고 700자의 작은 본문 크기을 지정했으며 원래 CURRENT.md의 텍스트를 모두 정확히 재조립했습니다. 원본 프로젝트에서는 읽기·이전 미리보기만 수행했고, 보존한 복사본에서 적용·복구 성공과 소유권 충돌 거부를 확인했습니다.

로컬 시연 메모를 추가하기 전 첫 기록 세트는 기록 73개와 수정된 관리 문서 3개, 두 번째는 기록 74개와 수정된 관리 문서 18개였습니다. 이는 보존 신호이며 문서 내용의 결함을 증명하지 않습니다. 두 번째 레이아웃의 manifest에는 일치하는 소유권 항목이 없어 이전을 정상적으로 거부했습니다. 원본 메타데이터를 강제로 관리 상태로 만들지 않았습니다. 프로젝트별 원시 시연 기록과 해시는 배포물 밖에 보관합니다.

## 다섯 사례 비교

산출물만 생성하는 열 번의 호출에 같은 Astra 모델, xhigh 추론과 명시적 컨텍스트·출력 설정을 사용했습니다. 두 조건의 개인 지침도 동일합니다. 기본 조건은 과제와 원문을, 경량 조건은 해당 짧은 스킬과 선택형 참고 자료를 추가로 받았습니다. 비교 호출에서만 자동 스킬 목록 주입과 플러그인·앱 도구를 비활성화했고 공통 모델·예산 설정은 보존했습니다.

UI는 정보가 많은 출고 화면과 의도적인 브랜드 표현이 있는 서점 행사 화면을 가상 HTML로 구성했습니다. 문서는 보호할 문자열이 있는 기술 안내와 친근한 독서 모임 공지입니다. 코드는 공개 함수의 관찰 가능한 동작을 유지하면서 중복 헬퍼를 제거하는 사례입니다.

조건별 한 번의 실행은 이 예시를 검토하는 자료이며 일반적인 효과를 추정하지 못합니다. 블라인드 평가, 여러 시드의 벤치마크나 전체 에이전트 작업 흐름 비교가 아닙니다. 두 프롬프트 모두 도구와 확인 질문을 금지했으므로 도구 호출 0회로 질문·재독해·검사 비용의 감소를 입증할 수 없습니다.

| 사례 | 기본 / 경량 입력 토큰 | 기본 / 경량 출력 토큰 | 기본 / 경량 시간(초) | 관찰 |
| --- | ---: | ---: | ---: | --- |
| 정보가 많은 UI | 11,575 / 11,963 | 18,532 / 18,217 | 561.63 / 582.97 | 모두 주문 5건을 보존하고 지연 2건 필터와 고객 1건 검색에 성공했습니다. 뚜렷한 품질 우위는 확인하지 못했습니다. |
| 브랜드 UI | 11,411 / 11,898 | 10,434 / 10,486 | 348.30 / 331.84 | 모두 그라데이션·둥근 티켓·세리프 정체성과 행사 정보를 보존했습니다. 경량 결과에는 본문 건너뛰기 링크가 추가됐습니다. |
| 기술 한국어 | 11,230 / 11,990 | 452 / 551 | 17.79 / 21.33 | 모두 보호 문자열 8개와 운영 조건을 보존했습니다. |
| 한국어 문체 | 11,210 / 11,970 | 355 / 400 | 14.39 / 16.73 | 모두 사실·해요체·의도적으로 짧게 끊은 표현을 보존했습니다. 경량 결과는 기본 결과가 지운 안심 표현의 반복도 남겼습니다. |
| 코드 정리 | 11,208 / 11,600 | 305 / 398 | 14.98 / 18.10 | 두 결과 모두 합계 28개 동작 비교를 통과했습니다. 실질적인 소스 차이는 지역 변수 이름뿐입니다. |

출력 토큰은 별도로 표시된 추론 출력을 포함하는 CLI의 총수입니다. 캐시 입력은 경량 기술 문서 실행의 11,008토큰 외에는 0입니다. 경과 시간에는 서비스 지연이 포함됩니다. 이 수치나 구독 사용률로 금액 절감을 계산하지 않습니다.

UI 결과는 앱 내 Chromium 브라우저의 1440px·390px에서 확인했습니다. 검색·필터, Enter/Escape 진입·복귀와 포커스 복원, 빈 폼 검증, 가상 입력 접수를 실행했습니다. 390px에서 페이지 가로 넘침은 없었습니다. 전체 접근성 감사나 실제 모바일 기기 검증은 아닙니다. 출고 화면 두 결과 모두 간단한 원문보다 로컬 송장 초안 기능이 늘었으며 추가 지침이 구현 확대를 일관되게 줄이지는 못했습니다.

코드 비교에는 true일 때만 선택하는 조건, null·undefined일 때의 기본값, 순서·중복, 배열 이외의 반복 가능한 값, getter 호출 횟수, 문자열 변환과 예외를 포함했습니다. 문서는 보호 문자열 검사와 의미·문체에 대한 검토를 함께 사용했으며 작성 주체를 판별하지 않았습니다.

## 반영한 판단과 한계

과제별 제약과 예시를 제공하는 짧은 디자인·UI·문서 진입점은 유지합니다. 코드 정리는 별도 선택형 참고 자료로 남깁니다. UI와 코드에서 일관된 이득이 확인되지 않았으므로 긴 지침은 선택 사항으로 두고, 작고 명확한 UI·문서 편집에서는 참조를 필수로 읽지 않도록 바꿨습니다. 이 마지막 선택형 참고 자료 문구는 비교 뒤 조정했으며 별도 모델 비교를 다시 수행하지 않았습니다.

새 앱이 찾아낸 스킬과 실제 대화에 넣은 지침을 구분해 측정했습니다. 구현 환경의 관리 AAPB 설치본은 이전 전 188개, 개발 프로필 적용 후 5개입니다. 독립 작업 190개를 충돌 없이 적용했고 재실행은 0개를 제안했습니다. 원격 플러그인을 로딩한 호스트는 활성 스킬 50개를 발견했고 실제로는 서로 다른 44개를 대화 지침에 넣었습니다. 초기 세션의 262개 항목·같은 이름 중복 88개와 구분되는 결과입니다. 44개는 선택·사용자 관리 35개, 앱 번들 4개, 주입된 시스템 스킬 5개입니다. 발견 목록에는 자동 주입하지 않는 항목도 포함됩니다.

원격 플러그인을 아직 로딩하지 않은 첫 CLI 턴은 20개만 대화 지침에 넣었습니다. 이는 로딩 시점의 차이이며 추가 정리 성과가 아닙니다. 캐시·발견·주입 목록·연결 도구를 같은 수치로 취급하지 않습니다. 기존 대화에는 이전 컨텍스트가 남습니다. 원격 플러그인 제어는 [환경 프로필](environment-profiles.ko.md), 복구는 [설치·업데이트·복구](lifecycle.ko.md)를 참고하세요.

공통 AAPB MCP와 공통에 있던 프로젝트 전용 MCP는 새 런타임에서 비활성 상태를 확인했습니다. 선택하지 않은 플러그인 MCP 오버레이도 비활성입니다. 호스트 커넥터 도구는 연결을 유지하며 도구 노출만으로 모든 커넥터 동작이나 산출물 렌더러를 검증했다고 보지 않습니다. history/notes는 공개 코드·모델 정보만으로 실제로 쓸 수 있다고 판단하지 않았고 실험 설정도 켜지 않았습니다.

## 사람용 문서 후속 검토

이전 독자 안내 구조와 현재 기능을 기준으로 README의 로고·배지·언어 선택·제품 지도·문서 탐색을 복원했습니다. 초보자, 명령어, 설치, 기록, 연동, 유지보수 안내에 실행 예시와 결과 해석을 보강했습니다. 한국어 설명은 번역 파일 대응과 별도로 검토했습니다. 일반 사용 경로는 npm 설치와 aapb 실행이며, 소스 체크아웃·PowerShell 호환·사전 릴리스 시험은 개발자 안내로 구분했습니다.

검토 과정에서 삭제된 파일을 요구하는 템플릿 안내, 없어진 훅을 실행하는 어댑터 예시, 종료된 스킬의 남은 설정 파일을 발견했습니다. 해당 참조를 고치거나 비활성화했습니다. npm 파일 목록에 README 이미지·맥락·예시를 포함했습니다. 이번 문서 후속 검토에서 런타임과 설치된 스킬 동작을 다시 개편한 것은 아닙니다.

로컬 압축 파일 설치본으로 영문·한국어 실습 기록, 원문 이어 읽기, 목록·검색 페이지, 선택형 검사, Forge 미리보기, 격리 스킬 설치·삭제·복구, SDK stdio 도구 네 개 호출을 확인했습니다. 기존 프로젝트 지침과 읽기 전용 호출의 입력은 보존했습니다. 패키지 검사는 파일 존재뿐 아니라 Markdown 링크와 HTML 이미지·링크 속성을 해석해 확인합니다. 로컬 브라우저 미리보기에서 README의 브랜드와 읽을 수 있는 구조를 살폈습니다. 독립적인 초보자 사용성 조사나 레지스트리 게시 완료를 뜻하지는 않습니다.
