설치된 SDK로 전체 합성 입력을 분석해 custom-01을 만들고 custom-02에서 component·score만 바꾼 뒤 후보 파일 네 개를 확인합니다. 로컬 합성 실습이며 실제 고객 API 호출·연동 등록·실행 승인이 아닙니다.
시작 전 준비
Part.1 설치와 Part.5 도구 체인 설정을 먼저 마칩니다. 아래 전체 JSON 두 개·UTF-8 텍스트 편집기·새 비공개 실습 폴더를 준비합니다. 의도적으로 숫자 score를 쓰는 의도적 오류 픽스처를 정상 기준 입력으로 사용하지 않습니다.
Online run 또는 준비된 Offline run-offline 경로를 선택합니다. Offline은 타깃 호환 의존성 검증·네이티브 도구 준비를 완료해야 합니다. 브라우저 다운로드 폴더·추정 예제 경로 대신 Part.1의 실제 설치 경로를 사용합니다.
실제 환경에 맞게 Online 또는 Offline을 선택합니다. Online은 승인된 네트워크 접근을 사용합니다. Offline은 폐쇄 온프렘용 선택 사항으로 반입 전에 호환 제품·컴파일러·네이티브 도구 체인·선언된 의존성을 준비해야 합니다. 문서 다운로드에는 이 패키지가 없습니다.
빈 워크시트를 내려받아 guide-practice-01 같은 새 폴더에 비공개 작업 사본으로 저장합니다. JSON은 UTF-8 텍스트 편집기로 열고 따옴표와 미관찰 필드의 null을 유지하며 .json.txt가 아닌 .json으로 저장합니다. 워크시트는 기록 문서이며 제품 요청이 아닙니다. SDK나 Helper에 제출하지 마십시오.
단계를 순서대로 따라 하기
1 · 새 실습 폴더와 전체 입력 저장하기
수행할 작업: 새 비공개 폴더 guide-custom-01에 inputs·runs 하위 폴더를 만듭니다. custom-api-01.json·custom-api-02.json을 정확한 이름으로 inputs에 저장합니다. 폴더가 있으면 다른 새 이름을 정하고 경로 변수를 바꾸며 이전 폴더는 보존합니다.
결과 확인: 전체 입력 두 개가 존재합니다. 각각 request_id·correlation_id와 definition·source·mapping·fixture가 있는 draft를 포함합니다. 응답 조각만으로는 전체 SDK 입력이 되지 않습니다.
일치하지 않을 때: 브라우저가 .txt·중복 접미사를 붙이면 이전 작업을 덮어쓰지 않고 저장 파일명을 바로잡습니다. record_kind가 있는 워크시트는 기록이며 제출하지 않습니다.
2 · 스키마 확인과 첫 입력 분석하기
수행할 작업: custom-api-01.json을 엽니다. 선언 소스 출력 score는 string이고 fixture 응답은 "97"이며 STRING_TO_INTEGER 매핑이 quality_score를 대상으로 합니다. 설치된 SDK에서 아래 analyze 명령을 사용하고 종료 코드·실제 상태 및 사유를 보존합니다.
결과 확인: 문서화된 분석 검사에서 전체 입력이 수용됩니다. 스키마 선언·fixture 샘플을 실제 공급자 응답과 구분합니다.
일치하지 않을 때: 숫자 97·draft 누락·미지원 필드는 다른 입력입니다. 오류를 보존하고 사본에서 문서의 불일치만 수정한 뒤 후보 생성 전에 그 사본을 분석합니다.
3 · 선택 모드로 custom-01 한 번 생성하기
수행할 작업: Online은 inputs/custom-api-01.json과 미사용 runs/custom-01로 run을 사용합니다. Offline은 검증된 의존성과 필요한 문서의 macOS CLT 선택을 포함한 run-offline을 사용합니다. 후보 하나에 경로 하나만 사용하고 전체 반환 결과를 확인합니다.
결과 확인: 새 디렉터리에 README.md·adapter.rs·libadapter.rlib·manifest.json과 문서의 단계 및 파일 검사가 있습니다. 종료 비정상·후검사 실패는 후보 완료가 아닙니다.
일치하지 않을 때: 실패 시 custom-01·원래 결과를 보존하고 중단합니다. 실패를 숨기기 위해 즉시 명령 모드를 바꾸거나 같은 출력 디렉터리를 재사용하지 않습니다.
4 · custom-02의 응답 값 두 개만 변경하기
수행할 작업: 제공된 두 번째 입력을 첫 번째와 비교합니다. draft.fixture.response.component는 "my-test-component", score는 "88"이 되며 둘 다 문자열입니다. 새 사본에서 직접 수정하거나 제공된 두 번째 전체 파일을 사용합니다. 이 실습에서는 스키마·매핑·타깃 식별자를 바꾸지 않습니다.
결과 확인: 두 번째 전체 JSON은 값 두 개만 다릅니다. 예제 요청·상관 식별자 재사용은 문서의 로컬 SDK 실습에 한정하며 실제 Helper·Work 제출에는 적용하지 않습니다.
일치하지 않을 때: score를 JSON 숫자 88로 바꾸거나 전체 파일을 표시된 응답 조각으로 대체했으면 중단하고 문자열 타입의 전체 입력을 복원합니다.
5 · 분석 후 두 번째 미사용 출력에 생성하기
수행할 작업: custom-api-02.json을 분석한 뒤 같은 선택 명령 모드·네이티브 옵션으로 runs/custom-02를 사용합니다. custom-01을 덮어쓰지 않습니다. 필수 검사가 모두 완료되면 두 매니페스트·소스 파일을 엽니다.
결과 확인: 입력·단계 결과에 각각 연결된 후보 폴더가 두 개 있습니다. fixture 값이 바뀌어도 매핑은 같을 수 있습니다.
일치하지 않을 때: 분석·생성이 실패하면 두 번째 결과를 분리 보존하고 아래 정확한 오류 사례를 사용합니다. 완료된 custom-02를 만들기 위해 custom-01의 성공 파일을 복사하지 않습니다.
6 · 출력 비교와 후보 범위 기록하기
수행할 작업: 각 폴더의 README.md·adapter.rs·manifest.json을 읽습니다. 입력 지문·단계 결과·파일을 각각 비교합니다. 문서의 매니페스트 상태는 CUSTOMER_REVIEW_CANDIDATE이고 authority_granted는 false입니다. fixture 변경으로 adapter.rs가 같아도 매니페스트 관찰은 달라질 수 있습니다.
결과 확인: 관찰 기록에 두 입력·출력 경로·각 소스 및 라이브러리 지문·실제 매니페스트 결과·다음 연동 검토자가 있습니다. 런타임 등록·실제 API 연결을 주장하지 않습니다.
일치하지 않을 때: 라이브러리가 다르면 매니페스트 수동 수정 대신 정확한 도구 체인·입력을 비교합니다. 재현 가능하게 생성 코드를 바꾸려면 지원되는 입력 선언·매핑을 변경하고 새 후보를 만듭니다.
자신의 OS 블록만 사용합니다. 생성 성공 후 다운로드 링크로 전체 JSON 두 개를 위 inputs 폴더에 저장하고 동일 터미널에서 계속합니다. 독자용 명령 예시이며 웹페이지가 디렉터리를 생성하지는 않습니다.
Shell
# macOS / Linux: run this folder-creation block first
PRACTICE="$HOME/guide-custom-01"
(
umask 077
mkdir "$PRACTICE" && mkdir "$PRACTICE/inputs" "$PRACTICE/runs"
)
# Stop if mkdir reports that the folder exists.
Windows PowerShell · 새 폴더 생성
자신의 OS 블록만 사용합니다. 생성 성공 후 다운로드 링크로 전체 JSON 두 개를 위 inputs 폴더에 저장하고 동일 터미널에서 계속합니다. 독자용 명령 예시이며 웹페이지가 디렉터리를 생성하지는 않습니다.
동일 터미널에서 한 줄씩 실행하고 echo $?로 종료 코드를 즉시 확인한 뒤 반환 검사를 읽고 계속합니다. 실제 설치 경로를 사용합니다. Offline은 위 run 행 대신 아래 대안을 사용합니다.
Shell
SDK_EXE="$HOME/VibePackr-SDK-install-01/sdk/bin/packr-sdk-engine"
PRACTICE="$HOME/guide-custom-01"
# First create this fresh private folder and save the two complete inputs.
# Run each line only after the previous command and result checks succeed.
"$SDK_EXE" analyze "$PRACTICE/inputs/custom-api-01.json" unused
"$SDK_EXE" run "$PRACTICE/inputs/custom-api-01.json" "$PRACTICE/runs/custom-01"
"$SDK_EXE" analyze "$PRACTICE/inputs/custom-api-02.json" unused
"$SDK_EXE" run "$PRACTICE/inputs/custom-api-02.json" "$PRACTICE/runs/custom-02"
Windows PowerShell · 분석·Online 생성
새 디렉터리 생성·입력 저장을 먼저 합니다. 프로세스 반환 코드 외에 모든 출력 검사도 유지합니다. macOS 셸 변수 할당을 PowerShell에 붙여넣지 않습니다.
PowerShell
$SdkExe = Join-Path $env:USERPROFILE 'VibePackr-SDK-install-01\sdk\bin\packr-sdk-engine.exe'
$Practice = Join-Path $env:USERPROFILE 'guide-custom-01'
& $SdkExe analyze (Join-Path $Practice 'inputs\custom-api-01.json') unused
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve analysis error' }
& $SdkExe run (Join-Path $Practice 'inputs\custom-api-01.json') (Join-Path $Practice 'runs\custom-01')
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve candidate error' }
# Continue only after inspecting all required first-candidate checks.
& $SdkExe analyze (Join-Path $Practice 'inputs\custom-api-02.json') unused
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve second analysis error' }
& $SdkExe run (Join-Path $Practice 'inputs\custom-api-02.json') (Join-Path $Practice 'runs\custom-02')
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve second candidate error' }
macOS / Linux · Offline 대안
정확한 타깃·의존성 검증 후 Online run 행 대신 사용합니다. macOS CLT 선택이 해당되면 실행 전에 run-offline 명령에 --macos-developer-selection COMMAND_LINE_TOOLS를 붙입니다. 후보 02에도 같은 선택을 유지하며 같은 출력 폴더에 대안 두 개를 실행하지 않습니다.
Shell
# macOS / Linux: use instead of run, after dependency verification
SDK_DEPS="$HOME/VibePackr-SDK-install-01/dependencies"
"$SDK_EXE" run-offline "$PRACTICE/inputs/custom-api-01.json" "$PRACTICE/runs/custom-01" "$SDK_DEPS"
# Repeat only after success, using input 02 and output custom-02.
# macOS CLT selection, if applicable, adds:
# --macos-developer-selection COMMAND_LINE_TOOLS
Windows PowerShell · Offline 대안
입력마다 분석을 먼저 합니다. 실제 검증된 의존성 경로를 사용합니다. 이 행들은 Online run을 대체하며 같은 후보 디렉터리에 Online 실행 뒤 이어 실행하지 않습니다.
PowerShell
$SdkDeps = Join-Path $env:USERPROFILE 'VibePackr-SDK-install-01\dependencies'
& $SdkExe run-offline (Join-Path $Practice 'inputs\custom-api-01.json') (Join-Path $Practice 'runs\custom-01') $SdkDeps
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve first offline candidate error' }
# Continue only after all first-candidate checks pass.
& $SdkExe run-offline (Join-Path $Practice 'inputs\custom-api-02.json') (Join-Path $Practice 'runs\custom-02') $SdkDeps
if ($LASTEXITCODE -ne 0) { throw 'Stop and preserve second offline candidate error' }
기대 출력 구성 · 자신의 실제 결과 확인
이 트리는 문서의 기대 구성이며 실행 캡처가 아닙니다. 텍스트 파일은 편집기로 엽니다. .rlib은 바이너리 라이브러리이며 더블클릭 실행 앱이 아닙니다. Part.5의 OS별 파일 지문 명령을 사용합니다.
전체 입력 두 개·후보 폴더·실제 매니페스트·파일별 지문·명령 모드·도구 버전을 보존합니다. 최초 Helper B 확인은 선언 완성 후, 선택 SDK·Builder 작성 전에 수행합니다. 편집 후에는 영향을 받은 지원 검사를 다시 수행하고 별도 구현 검토·등록·Pack 승인 경로를 마친 뒤 사용합니다. 기존 구현·등록·릴리스 호환 연동은 SDK 작성을, 목표·설치 범위에 맞는 기존 승인 Pack은 Builder 작성을 생략할 수 있습니다.
Helper B는 구현·새 Pack 필요 여부를 결정하기 전에 완성된 선언을 확인합니다. 구현·선언 변경 후에는 영향을 받은 지원 검사를 다시 수행하고 별도 구현·등록·Pack 승인 경로를 마친 뒤 사용합니다. 생성 후보는 운영 권한을 부여하지 않습니다.
목표에 필요한 경로만 선택합니다. 보존 PoC 독해는 설치 없이 시작할 수 있습니다. 제공된 로컬 SDK 실습은 Part.1 → Part.5를 따르며 새 GAPE 관찰·어플라이언스 계정이 필요하지 않습니다. 기존 승인 Pack은 현재 준비 요건 확인 후 Part.1 → Part.7 → Part.8을 따를 수 있습니다. 새 연동·Pack 작성은 조건부 전체 순서를 따릅니다.
동일 Work 산출물·영수증·종결을 비교하며 사람 인수은 실제 기록될 때까지 대기로 유지합니다.
공통 용어
가이드 / Part
가이드는 목적·역할 경로이고 Part는 도구 설명입니다. 서로 보완하며 경쟁하는 두 번호 순서가 아닙니다.
Contract / 소스 Document
게시된 대상 Contract는 지원 대상·리비전을 정합니다. 소스 Document는 소스 형식을 선언합니다. 소스 선언은 실행을 승인하지 않습니다.
전체 요청 / 소스 전용 파일
전체 SDK 요청은 request_id·correlation_id와 definition·source·mapping·fixture가 있는 draft를 포함합니다. status 소스 Document는 한 구성 요소이며 전체 요청이 아닙니다.
Fixture / 실제 관찰
fixture는 선언된 로컬 실습의 합성 값을 제공합니다. 선언 필드는 실제 공급자 호출·현재 연결·고객 결과를 입증하지 않습니다.
SDK 후보 / Pack 후보
SDK 후보에는 README.md·adapter.rs·libadapter.rlib·manifest.json이 있습니다. Builder Pack 후보는 별도 제품 반환 후보이며 자체 검증·승인 경로를 가집니다. 어느 쪽도 자동으로 승인 Pack이 되지 않습니다.
워크시트 / 영수증 / 인수
워크시트는 사람 기록입니다. 영수증은 제품 실행 기록입니다. 검증 PASSED·자동화 완료와 사람 인수 대기는 함께 존재할 수 있으며 각 필드의 실제 범위를 기록합니다.
온라인 / 오프라인
구성 선택 사항입니다. Offline 제품 개발에는 정확한 선언 의존성 세트·네이티브 도구가 필요하며 오프라인 매뉴얼 ZIP은 문서 열람을 지원합니다.
입력별 올바른 출력 연결
status.read 소스 전용 예제와 read_quality SDK 실습은 서로 다른 예제입니다. 일치하는 전체 요청을 사용하고 status 소스 파일을 quality SDK 전체 요청으로 제출하지 않습니다. 아래 매핑 값은 설명을 위한 기대값이며 새 실행 캡처가 아닙니다.
사람 기록·로컬 컴파일 후보·실제 Work 및 보고서·영수증이라는 서로 다른 산출물 종류입니다.
해당 도구·현재 타깃을 사용하며 워크시트·이전 결과를 다음 전체 요청으로 제출하지 않습니다.
실제 입력·버전·후보 또는 Work 식별에 출력을 연결합니다. 파일 존재·종료 0만으로는 충분하지 않습니다.
Pack 시스템 개념 · 영문 SVG 판
사용자가 제공한 2026년 10월 8일 v1.5 개념도입니다. 고객 운영 Pack은 선언된 Contract·권한 안에서 동작하고 Builder는 검증·승인이 필요한 후보를 준비합니다. Pack 종류·자기 적응 표기는 예시·릴리스별이며 현재 실행 가능한 기능 목록이 아닙니다. 현재 표시본은 문서 변경을 반영한 영문 SVG이며, 이전 래스터 원본은 보존합니다.
Helper B는 구현·새 Pack 필요 여부를 결정하기 전에 완성된 선언을 확인합니다. 구현·선언 변경 후에는 영향을 받은 지원 검사를 다시 수행하고 별도 구현·등록·Pack 승인 경로를 마친 뒤 사용합니다. 생성 후보는 운영 권한을 부여하지 않습니다.
목표에 필요한 경로만 선택합니다. 보존 PoC 독해는 설치 없이 시작할 수 있습니다. 제공된 로컬 SDK 실습은 Part.1 → Part.5를 따르며 새 GAPE 관찰·어플라이언스 계정이 필요하지 않습니다. 기존 승인 Pack은 현재 준비 요건 확인 후 Part.1 → Part.7 → Part.8을 따를 수 있습니다. 새 연동·Pack 작성은 조건부 전체 순서를 따릅니다.
설치 릴리스와 호환되며 구현·등록된 기존 연동이 요구를 충족할 때만 SDK 작성을 생략합니다. 기존 승인 Pack이 목표와 설치 범위를 충족할 때만 Builder 제작을 생략합니다. 어느 경우든 선언 확인·연동 검증·결과 검토는 수행합니다.
Online과 Offline 모두 선택 가능한 구성
Online은 해당 설치에서 승인한 네트워크 접근을 사용합니다. Offline은 폐쇄 온프렘용 선택 사항이며, 반입 전에 정확한 OS·타깃 도구 체인과 의존성 세트를 준비합니다. 매뉴얼 ZIP에는 문서와 합성 입력이 있으며 제품 바이너리나 Rust 도구 체인은 없습니다.
다섯 작업 경로와 최신 매뉴얼 연결
아래에서 작업 경로를 선택하고 해당 Part에서 정확한 입력·기대 출력을 확인합니다. 새 선언은 Part.4, 어댑터 구현은 Part.5, Pack 작성은 Part.6, 기존 Work·보고서 점검은 Part.7–8을 사용합니다. Helper A는 Document 전에 계획하고 Helper B는 선택적 SDK·Builder 작업 전에 완성된 요청을 검사합니다. 변경 후에는 영향받는 지원 검사를 반복합니다.
Custom API 실습은 문서의 합성 JSON을 새 작업 폴더에 복사하고 의도한 필드만 수정한 뒤 설치된 SDK 절차를 사용합니다. 새 출력의 adapter.rs와 manifest.json을 확인하고 입력·출력 지문과 SDK·컴파일러·타깃 버전을 기록합니다. 생성 후보에는 문서의 연동·검증 단계가 여전히 필요합니다.
예: score나 component 변경은 어댑터 소스가 같아도 매니페스트 메타데이터를 바꿀 수 있습니다. 산출물을 각각 비교합니다. 라이브러리 지문이 다르면 재현성 결론 전에 정확한 입력·도구 체인·타깃·의존성 세트를 비교합니다.
준비 워크시트가 완성되어도 DENIED·CONTRACT_INCOMPATIBLE·의존성 누락·후검사 실패는 제품 단계의 실패 또는 차단으로 남습니다. 결과를 보존하고 새 후보에서 문서의 준비 요건을 해결하며 이전 출력은 유지합니다.
공개된 DISCOVER·NORMALIZE 발췌를 함께 읽고 각 operation·request_id·status·reason·lifecycle_stage를 기록합니다. 두 발췌의 요청 ID는 동일한 과거 값이며 검토할 기록이지 재사용할 키가 아닙니다. R2의 의미상 거부도 프로세스 종료 코드 0을 반환할 수 있으므로 JSON 결과를 읽으십시오.
기대 관찰
탐색 성공과 정규화 거부를 구분해 유지하고, 다음 담당자에게 누락된 대상·패키지 문제를 전달합니다.
연락 경계 안내: “평가 문의”를 클릭하면 로컬 메일 프로그램이 다음 수신 주소로 열립니다: support@vibepackr.com 로 구조화된 문의 양식이 열립니다. 이메일 전송만으로 지원 사례가 등록되거나 어플라이언스가 구성되지는 않습니다. 자격 증명·개인정보·기밀 로그를 포함하지 마십시오.