내 PC에서 예제 실행
OS·셸 선택 → 파일 확인 → 새 작업 폴더 → 전체 예제 → 후보 파일 확인
SDK 예제부터 시작설치하고, 설정하고, 연결한 뒤 검증합니다.
이 안내서는 웹브라우저나 오프라인 전달 묶음에서 사용할 수 있습니다. 고객 조직이 어플라이언스를 운영하고 연결할 지원 구성요소를 선택합니다.
설치와 함께 전달된 서명 구성요소 목록을 확인하십시오. 사용 중인 플랫폼과 버전에 지정된 이미지·설치 파일을 사용하고, 필요한 파일이 없다면 공급자에게 문의하십시오.
실습·다음 단계
실패 시 바로 열기
Part.1~8은 현재 도구별 매뉴얼, W1~W4와 GUI-01 같은 코드는 그 안의 실습입니다. Use Case 1~5는 보존한 작업 안내 번호이며 Part 번호와 다릅니다. Case A~J와 SDK-1·IH-1 같은 코드는 문제 해결 사례입니다. 이전 파일 이름과 pN 절 주소는 기존 북마크용으로 유지하므로 현재 Part는 본문 제목으로 확인합니다.
로컬 SDK 합성 예제는 어플라이언스 설치 없이 시작할 수 있습니다. 회사 사용자는 기존 VM에 연결하고, 배포 담당자만 새 VM을 만듭니다. 목적에 맞는 한 경로를 따라 결과를 확인한 뒤 이어가십시오.
OS·셸 선택 → 파일 확인 → 새 작업 폴더 → 전체 예제 → 후보 파일 확인
SDK 예제부터 시작호환 클라이언트와 관리자의 연결·기기 등록 자료를 받습니다. VM 배포와 사용자 설정은 별개입니다.
연결 준비 확인OS·CPU·파일 종류와 셸 사용법부터 확인합니다.
이 단계 열기현재 SDK 파일 확인 → 압축 해제 → 새 작업 폴더 → 예제.
이 단계 열기일반 사용자 설치 → 기기 등록 → 인증된 연결.
이 단계 열기전체 소스 JSON 저장 → 문법 확인 → 전체 요청에 넣기.
이 단계 열기실행 파일·전체 요청 선택 → 발견 결과 읽기 → 단계별 준비.
이 단계 열기받은 뷰어를 읽거나 승인 manifest로 새 snapshot을 만듭니다.
이 단계 열기제공 연습 입력 → 새 후보 리비전 → 검증 → 인계.
이 단계 열기파일·명령·입력·기동·연결·권한 중 처음 막힌 곳을 찾습니다.
이 단계 열기각 첫 실습의 준비물과 완료 결과를 먼저 읽으십시오. 회사별 연결·등록·승인 자료는 담당자가 제공한 실제 값이 필요합니다. 현재 SDK 목록은 SDK 본체와 선택 Rust 세트의 목록이며 다른 도구 설치 파일까지 포함한 목록은 아닙니다.
한·영 설치 안내 전체를 이 페이지에서 펼쳐볼 수 있습니다. 구성요소를 선택해 실제 사용 순서와 문제 해결을 읽으십시오. 온라인·폐쇄망 환경 모두를 설명하며, 예시는 실행 이력과 구분합니다. 릴리스별 구성요소의 설치 가능 여부와 권한은 제공 목록에서 확인합니다.
이미지 확인 → 첫 부팅 → 고유 신원 → 관리자 설정
플랫폼별 설치 → 경로별 인증 → 같은 설치 확인 → 실제 결과 확인
지원 Pack 확인 → 후보 준비·검증 → 승인·사용 권한 → 실행 기록
승인 입력 → 리비전 고정 → snapshot 검증 → 관찰 한계·공개 등급 확인
전체 요청 → 발견·정규화 → 의미 검증 → 후보 준비·담당자 인계
작업·입출력 선언 → 정확한 대상 참조 → 문법·의미 확인 → 요청 인계
문제 해결은 A–J의 상세 시나리오 30개와 도구별 12개로 보강했습니다. 상황·관찰·확인/조치·정상 복귀·인계 조건을 차례로 읽으십시오. 실제 보존 기록 사례 2개는 별도 절에서 근거에 연결했습니다.
제공된 릴리스의 순서대로 현재 상태를 확인합니다.
준비 도구는 필요할 때 선택합니다. 후보가 자동으로 등록·실행되지는 않습니다.
마지막으로 확인한 상태를 기준으로 맞는 사례를 선택합니다.
승인된 제품 전달 경로에서 운영체제에 맞는 SDK 패키지를 받으십시오. 이 매뉴얼 묶음은 문서·합성 실습 입력을 담으며, 제품 바이너리·라이선스 활성화·Rust 및 네이티브 도구 체인을 포함하지 않습니다.
온라인 개발에서는 지원 Rust 컴파일러와 네이티브 도구를 설치하거나 재사용합니다. 폐쇄 온프렘에서는 반입 전에 호환되는 오프라인 의존성 세트와 도구 체인을 준비합니다. 오프라인 구성은 선택 사항이며 제품 기본 모드가 아닙니다.
릴리스 이미지, 대상 환경과 범위를 확인합니다.
어플라이언스와 필요한 클라이언트만 설치합니다.
관리자 범위와 지원 런타임 바인딩을 설정합니다.
서비스, 신원, 바인딩과 기록된 결과를 확인합니다.
전달받은 구성요소 목록에서 설치 파일과 지원 플랫폼을 확인하십시오. 해당 버전에 포함된 구성요소만 선택합니다.
구성요소 목록에 지정된 서명 어플라이언스 이미지를 고객 환경에 배포합니다. 지원 플랫폼을 확인하고 첫 부팅 설정을 마친 뒤 클라이언트를 연결하십시오.
지원 운영체제의 워크스테이션 클라이언트입니다. 릴리스 매니페스트가 지정한 플랫폼 패키지만 설치하고 고객 조직의 어플라이언스에 연결합니다.
운영체제에 맞게 제공된 Builder를 설치해 Pack 후보를 준비하고 검증합니다. Builder 자체가 Pack을 승인하거나 실행하지 않습니다.
해당 릴리스와 사용 권한에 선언된 Pack만 사용합니다. Pack 제작, 검증, 승인과 통제된 실행은 각각 별도 단계입니다.
개발 워크스테이션에서 읽기 전용 Custom API 또는 MCP 기록으로 연동 후보를 준비하고 컴파일합니다. 운영 환경을 먼저 선택하며 SDK Engine을 오프라인 전용으로 제한하지 않습니다.
승인된 기존 Rust 툴체인과 호환 run 명령을 사용하거나, 빌드 입력을 고정하려면 제공된 의존성 세트를 선택합니다. 설치와 실제 연결은 별도 단계입니다.
반입 전 해당 OS용 의존성 세트를 준비하고 전체 파일을 검증합니다. run-offline은 그 로컬 자산으로 지원 범위의 Rust·crate를 추가 다운로드 없이 사용합니다. SDK 빌드의 의존성 문제를 위한 선택 구성이며 제품 기본값이 아닙니다.
기존 온라인 툴체인 경로와 별도 검증 의존성 경로는 증거 범위가 다릅니다. 검사 실패를 우회하려고 경로를 바꾸지 마십시오. OS별 명령·입력 수정·재현성·문제 해결·제거는 SDK Engine 상세 안내에서 확인합니다.
SDK Engine은 실제 연결이나 Pack 등록 전에 고객이 검토할 연동 후보를 준비합니다. 선언된 읽기 전용 Custom API 작업 또는 MCP 기록과 합성 응답을 검사하고, 값 매핑 소스를 생성하여 로컬 Rust 컴파일러로 빌드합니다. 이 도구는 원천 API·MCP 서버를 호출하거나, 자격 증명을 읽거나, Appliance를 변경하거나, Pack을 등록하거나, Work를 실행하지 않습니다.
패키지에는 합성 예제가 포함됩니다. 선택 세트 경로를 쓰려면 동일 세대의 운영체제별 공용 오프라인 Rust 의존성 패키지를 함께 준비하십시오. 기존 설치 툴체인을 선택한 온라인 경로에서는 이 세트가 필수가 아닙니다. 여기에 네이티브 컴파일러·표준 라이브러리·Cargo와 선언된 정확한 crate 버전이 들어 있으며, 이 범위에서는 Rust나 crate를 따로 다운로드하지 않습니다. 다른 OS·새 crate·다른 타깃은 별도 검증 대상입니다. macOS arm64와 Debian 13 amd64 패키지는 Rust 1.96.0, Windows amd64 패키지는 Rust 1.97.1을 사용합니다.
네이티브 전제 조건은 별도입니다. Debian은 기존 시스템 C 링커·libc 개발 파일, macOS는 신뢰 검증을 통과하는 Apple 개발 도구·SDK, Windows는 Visual Studio 2022 BuildTools의 MSVC 14.44.35207 및 Windows SDK 10.0.26100.0이 필요합니다. 이 자산은 Rust 의존성 패키지에 재배포하지 않습니다. 새 OS에 이 전제 조건까지 설치한다는 범위는 검증하지 않았습니다.
macOS의 run-offline은 기본적으로 현재 Apple 개발 도구 선택(SYSTEM_ACTIVE)을 사용합니다. 이미 설치된 Command Line Tools를 실행 한 번에 명시적으로 선택하려면 의존성 경로 뒤에 --macos-developer-selection COMMAND_LINE_TOOLS를 붙이십시오. 등록된 /Library/Developer/CommandLineTools 설치를 선택하며 기존 신뢰 검사를 모두 적용합니다. 시스템 개발 도구 설정을 바꾸거나 다른 설치로 자동 전환하지 않습니다. 다른 운영체제에서는 이 옵션을 거부합니다.
./bin/packr-sdk-engine run-offline examples/read-only-custom-api.json ./quality-candidate /absolute/path/dependencies --macos-developer-selection COMMAND_LINE_TOOLS공식 서명·공증, 고객 활성화·전달의 상태는 해당 패키지와 별도로 신뢰하는 릴리스 목록에서 확인하십시오. 로컬 예제 성공만으로 그 상태를 승인하지 않습니다.
SDK Engine은 온라인 개발 환경과 오프라인 환경 모두에서 사용할 수 있습니다. 오프라인 의존성 세트는 인터넷이 차단된 온프렘에서 SDK가 어댑터를 컴파일할 때 필요한 Rust 자산을 미리 준비하기 위한 선택 구성입니다. 제품의 기본 운영 모드를 오프라인으로 고정하는 설정이 아닙니다. SDK에서 새 연동 후보를 빌드할 때 생길 수 있는 의존성 문제를 해결하는 데 목적이 있습니다.
| 사용 환경 | 준비 방법 | 실행 경로와 확인 범위 |
|---|---|---|
| 온라인 개발 환경 | 조직이 승인한 전달 경로로 SDK를 준비하고 지원되는 Rust 컴파일러·네이티브 도구를 설치 또는 재사용합니다. 공용 의존성 세트를 함께 사용해도 됩니다. | 기존 툴체인은 run, 검증된 별도 의존성 세트는 run-offline을 사용합니다. 두 명령의 검증·영수증 범위는 다릅니다. |
| 인터넷이 차단된 온프렘 | 반입 전에 SDK와 같은 OS용 의존성 세트, 네이티브 전제 조건과 지문 목록을 준비합니다. | 전체 의존성 검증 후 run-offline으로 로컬 빌드합니다. 허용된 세트 범위에서는 Rust·crate 추가 다운로드가 필요 없습니다. |
| 네트워크가 있지만 빌드를 고정하려는 환경 | 온라인 환경에서 동일한 의존성 세트를 선택해 사용할 수 있습니다. | run-offline이라는 명령 이름이 컴퓨터의 네트워크를 차단하거나 전체 제품을 오프라인 전용으로 만들지는 않습니다. |
온라인 환경에서 기존 설치 툴체인을 사용하는 호환 경로는 다음과 같습니다. 압축을 푼 SDK 디렉터리에서 rustc --version으로 실제 선택되는 컴파일러를 확인하고, 지원 버전·타깃·OS 도구를 준비한 다음 새 출력 폴더를 지정하십시오. 이 경로는 PATH의 컴파일러를 사용하며 별도 의존성 세트의 전체 파일·네이티브 신뢰 영수증을 제공하지 않습니다. 해당 환경에서 별도로 검증해야 합니다.
rustc --version
./bin/packr-sdk-engine analyze examples/read-only-custom-api.json unused
./bin/packr-sdk-engine run examples/read-only-custom-api.json ./online-custom-candidate-01
./bin/packr-sdk-engine run examples/read-only-mcp-transcript.json ./online-mcp-candidate-01rustc --version
if ($LASTEXITCODE -ne 0) { throw 'Rust compiler unavailable' }
.\bin\packr-sdk-engine.exe analyze .\examples\read-only-custom-api.json unused
if ($LASTEXITCODE -ne 0) { throw 'Analyze failed' }
.\bin\packr-sdk-engine.exe run .\examples\read-only-custom-api.json .\online-custom-candidate-01
if ($LASTEXITCODE -ne 0) { throw 'Custom candidate failed' }
.\bin\packr-sdk-engine.exe run .\examples\read-only-mcp-transcript.json .\online-mcp-candidate-01
if ($LASTEXITCODE -ne 0) { throw 'MCP candidate failed' }run은 설치된 컴파일러를 쓰는 호환 명령으로 유지되어 있습니다. 현재 패키지의 별도 의존성 검증 경로와 같다고 해석하지 마십시오. run-offline의 신뢰·권한 검사에 실패한 뒤 그 검사를 피하기 위한 대체 실행으로 사용하지 않습니다. 아래의 검증된 의존성 세트 절차는 온라인 환경에서도 선택할 수 있습니다. 어느 경로의 합성 예제도 실제 API나 MCP 서버에 접속하지 않습니다.
SDK 본체에는 bin, docs, examples, 라이선스·고지가 있습니다. Rust 의존성 세트에는 DEPENDENCIES.json, FILES.json, toolchain, cargo-home과 고지가 있습니다. 본체만 해제했다고 선택 구성인 의존성 세트까지 설치된 것은 아닙니다. 기존 설치와 결과를 보존하려면 세대별 새 위치를 선택하십시오.
| 플랫폼 | SDK 본체 | 선택 의존성 세트 | 지원 범위 확인 |
|---|---|---|---|
| macOS ARM64 | 해당 OS의 .tar.gz | RUST_DEPENDENCIES_MACOS_ARM64.tar.gz | Apple Silicon, 등록된 Apple 도구와 SDK |
| Debian 13 AMD64 | 해당 OS의 .tar.gz | RUST_DEPENDENCIES_DEBIAN_13_AMD64.tar.gz | x86-64, 시스템 C 링커·libc 개발 파일 |
| Windows AMD64 | 해당 OS의 .zip | RUST_DEPENDENCIES_WINDOWS_AMD64.zip | x64, 등록된 MSVC·Windows SDK |
macOS에서는 shasum -a 256, Debian에서는 sha256sum, Windows에서는 Get-FileHash -Algorithm SHA256으로 두 압축 파일을 각각 확인합니다. 동일 위치에서 받은 해시만으로 공급자 신원이 증명되지는 않습니다. 별도로 신뢰하는 구성요소 목록과 비교하십시오. 파일 이름이 같아도 해시가 다르면 진행하지 않습니다.
Linux·macOS에서 아래 경로를 실제 파일로 바꾸고 실행합니다. 예제의 루트는 기존에 존재하면 중단합니다. 개인 홈의 비공유 경로를 사용하고, 상위 경로도 다른 사용자가 수정할 수 없어야 합니다.
sdk_archive="/absolute/path/sdk-package.tar.gz"
deps_archive="/absolute/path/RUST_DEPENDENCIES_OS.tar.gz"
install_root="$HOME/VibePackr-SDK-install-01"
test ! -e "$install_root" || exit 1
umask 077
mkdir -m 700 "$install_root" || exit 1
mkdir "$install_root/sdk" "$install_root/dependencies" "$install_root/runs" || exit 1
tar -xzf "$sdk_archive" -C "$install_root/sdk" || exit 1
tar -xzf "$deps_archive" -C "$install_root/dependencies" || exit 1
cd "$install_root/sdk" || exit 1Windows PowerShell 5.1에서는 접근이 제한된 사용자 홈 아래의 새 디렉터리를 준비합니다. 공유·동기화·네트워크 경로를 사용하지 말고 조직이 승인한 현재 사용자 전용 경로와 ACL을 확인하십시오. 아래는 이미 해당 권한이 확인된 부모 경로를 가정합니다. 기존 디렉터리를 덮어쓰거나 시스템 전체 ACL을 바꾸지 않습니다.
$sdkArchive = 'C:\absolute\path\sdk-package.zip'
$depsArchive = 'C:\absolute\path\RUST_DEPENDENCIES_WINDOWS_AMD64.zip'
$installRoot = Join-Path $env:USERPROFILE 'VibePackr-SDK-install-01'
if (Test-Path -LiteralPath $installRoot) { throw 'Choose a fresh install root' }
New-Item -ItemType Directory -Path $installRoot -ErrorAction Stop | Out-Null
$sdkRoot = Join-Path $installRoot 'sdk'
$depsRoot = Join-Path $installRoot 'dependencies'
$runsRoot = Join-Path $installRoot 'runs'
New-Item -ItemType Directory -Path $sdkRoot,$depsRoot,$runsRoot -ErrorAction Stop | Out-Null
Expand-Archive -LiteralPath $sdkArchive -DestinationPath $sdkRoot -ErrorAction Stop
Expand-Archive -LiteralPath $depsArchive -DestinationPath $depsRoot -ErrorAction Stop
Set-Location -LiteralPath $sdkRoot다음 단계에서 전체 의존성 검증이 권한 문제로 거부되면 해당 설치를 사용하지 말고 승인된 설치 절차로 해결하십시오. 검사 완화, 관리자 권한 실행, 실행 정책 우회, 시스템 신뢰 저장소 변경을 해결 방법으로 사용하지 않습니다. 온라인에서 기존 툴체인만 쓰는 경우 의존성 압축 해제 단계는 선택 사항입니다.
bin, docs, examples를 함께 보관하십시오. 시스템 전체에 설치할 때는 해당 릴리스의 운영체제별 안내를 따르십시오.cargo-home은 검증 입력으로 보존하며 작업 캐시로 직접 쓰거나 전역 캐시에 병합하지 마십시오. 활성화 스크립트나 셸 세션 변경은 필요하지 않습니다. 아래 의존성 절대 경로를 실제 경로로 바꾼 뒤 전체 파일 검증과 예제 확인을 수행하십시오.Linux 또는 macOS 터미널:
./bin/packr-sdk-engine verify-offline-dependencies DEBIAN_13_AMD64 /absolute/path/dependencies
# macOS arm64: DEBIAN_13_AMD64 대신 MACOS_ARM64
test -f examples/read-only-custom-api.json
test -f examples/read-only-mcp-transcript.json
./bin/packr-sdk-engine analyze examples/read-only-custom-api.json unusedWindows PowerShell:
.\bin\packr-sdk-engine.exe verify-offline-dependencies WINDOWS_AMD64 C:\absolute\path\dependencies
Test-Path .\examples\read-only-custom-api.json
Test-Path .\examples\read-only-mcp-transcript.json
.\bin\packr-sdk-engine.exe analyze .\examples\read-only-custom-api.json unusedanalyze는 입력만 읽고 출력 디렉터리를 만들지 않습니다. 성공 결과에도 authority_granted: false가 표시됩니다. 릴리스 목록에 SDK Engine이 없으면 진행을 멈추고 해당 릴리스의 지원 경로에서 올바른 패키지를 받으십시오.
아래는 앞 단계의 경로 변수가 같은 셸에 남아 있다는 가정입니다. 새 셸에서는 실제 절대 경로를 다시 지정하십시오. analyze의 마지막 unused는 CLI 형식에 필요한 자리이며 결과 폴더가 아닙니다.
macOS ARM64에서 이미 설치된 Command Line Tools를 명시적으로 선택하는 예입니다. 기본 선택은 SYSTEM_ACTIVE이며 아래 옵션은 이 한 실행에만 적용됩니다.
./bin/packr-sdk-engine verify-offline-dependencies MACOS_ARM64 "$install_root/dependencies" || exit 1
./bin/packr-sdk-engine analyze examples/read-only-custom-api.json unused || exit 1
./bin/packr-sdk-engine run-offline examples/read-only-custom-api.json "$install_root/runs/custom-01" "$install_root/dependencies" --macos-developer-selection COMMAND_LINE_TOOLS || exit 1
./bin/packr-sdk-engine run-offline examples/read-only-mcp-transcript.json "$install_root/runs/mcp-01" "$install_root/dependencies" --macos-developer-selection COMMAND_LINE_TOOLS || exit 1Debian 13 AMD64:
./bin/packr-sdk-engine verify-offline-dependencies DEBIAN_13_AMD64 "$install_root/dependencies" || exit 1
./bin/packr-sdk-engine analyze examples/read-only-custom-api.json unused || exit 1
./bin/packr-sdk-engine run-offline examples/read-only-custom-api.json "$install_root/runs/custom-01" "$install_root/dependencies" || exit 1
./bin/packr-sdk-engine run-offline examples/read-only-mcp-transcript.json "$install_root/runs/mcp-01" "$install_root/dependencies" || exit 1Windows AMD64:
.\bin\packr-sdk-engine.exe verify-offline-dependencies WINDOWS_AMD64 $depsRoot
if ($LASTEXITCODE -ne 0) { throw 'Dependency verification failed' }
.\bin\packr-sdk-engine.exe analyze .\examples\read-only-custom-api.json unused
if ($LASTEXITCODE -ne 0) { throw 'Analyze failed' }
.\bin\packr-sdk-engine.exe run-offline .\examples\read-only-custom-api.json (Join-Path $runsRoot 'custom-01') $depsRoot
if ($LASTEXITCODE -ne 0) { throw 'Custom candidate failed' }
.\bin\packr-sdk-engine.exe run-offline .\examples\read-only-mcp-transcript.json (Join-Path $runsRoot 'mcp-01') $depsRoot
if ($LASTEXITCODE -ne 0) { throw 'MCP candidate failed' }앞의 OS별 설치·실행 블록으로 Custom과 MCP를 각각 새 폴더에 실행한 뒤 아래를 확인합니다. SDK는 바탕화면 앱 아이콘을 만드는 설치 프로그램이 아니므로 앱 목록 대신 해제한 bin의 실행 파일과 결과 경로를 찾습니다. 명령은 그 SDK 디렉터리에서 실행합니다. 본체만 쓰는 온라인 경로에서는 선택 의존성 변수를 만들 필요가 없습니다.
기존 툴체인의 온라인 run 예제를 그대로 사용했다면 결과는 SDK 폴더 아래 online-custom-candidate-01과 online-mcp-candidate-01입니다. 아래 조회 명령의 경로를 그 실제 결과로 바꾸십시오. runs/custom-01과 runs/mcp-01은 앞의 선택 세트 실행 블록이 만든 경로입니다.
ls -la "$install_root/runs/custom-01"
cat "$install_root/runs/custom-01/README.md"
cat "$install_root/runs/custom-01/adapter.rs"
cat "$install_root/runs/custom-01/manifest.json"$candidate01 = Join-Path $runsRoot 'custom-01'
Get-ChildItem -LiteralPath $candidate01
Get-Content -LiteralPath (Join-Path $candidate01 'README.md') -Raw -Encoding UTF8
Get-Content -LiteralPath (Join-Path $candidate01 'adapter.rs') -Raw -Encoding UTF8
Get-Content -LiteralPath (Join-Path $candidate01 'manifest.json') -Raw -Encoding UTF8| 읽을 대상 | 처음 확인할 내용 | 해석 |
|---|---|---|
| 출력 폴더 | adapter.rs, libadapter.rlib, README.md, manifest.json | 실패 stage의 임시 폴더와 구분 |
| adapter.rs | component 매핑과 score → quality_score 변환 | 합성 응답의 매핑 코드; API 클라이언트 아님 |
| manifest.json | compiler_version, files의 3개 지문, 다섯 단계, authority_granted=false | 이 실행의 후보와 검증 기록 |
| offline_execution | 선택 세트 경로로 실행했을 때만 해당 의존성·네이티브 관측 | 온라인 run에 같은 영수증이 있다고 가정하지 않음 |
| MCP 결과 | 별도 mcp-01 폴더와 repository 매핑 | Custom 성공을 MCP 성공으로 재사용하지 않음 |
libadapter.rlib는 Rust 라이브러리이며 더블클릭하거나 운영체제 실행 파일처럼 실행하지 않습니다. 결과에서 97이 quality_score 정수로 매핑되는 것은 합성 검증의 내용입니다. 실제 서버의 응답을 받았다는 뜻이 아닙니다. 원본 입력 값을 읽고 매핑·단계 기록과 대조하십시오.
아래 명령은 새 inputs-02 폴더에 전체 예제를 복사합니다. 이 절에서는 편집·분석까지 진행하고, 뒤의 input.json을 바꾸고 두 번째 후보 만들기에서 재실행합니다. 같은 이름이 있으면 새 번호를 고르십시오.
test ! -e "$install_root/inputs-02" || exit 1
mkdir "$install_root/inputs-02" || exit 1
cp ./examples/read-only-custom-api.json "$install_root/inputs-02/input.json" || exit 1$inputs02 = Join-Path $installRoot 'inputs-02'
if (Test-Path -LiteralPath $inputs02) { throw 'Choose a fresh input folder' }
New-Item -ItemType Directory -Path $inputs02 -ErrorAction Stop | Out-Null
Copy-Item -LiteralPath .\examples\read-only-custom-api.json -Destination (Join-Path $inputs02 'input.json') -ErrorAction Stop편집기에서 이 사본을 열어 score는 문자열 "88", component는 "my-test-component"로 바꿉니다. 매핑을 유지한 값 변경은 adapter.rs를 바꾸지 않을 수 있습니다. 첫 결과와 수정 결과를 모두 보존합니다.
아래는 기존 설치 경로를 다시 지정하는 명령입니다. 압축을 다시 풀거나 기존 결과를 지우지 않습니다. 앞서 다른 루트명을 사용했다면 그 경로로 바꾸십시오. 다음 실행의 결과 폴더는 다시 새 이름을 선택합니다.
install_root="$HOME/VibePackr-SDK-install-01"
test -f "$install_root/sdk/bin/packr-sdk-engine" || exit 1
cd "$install_root/sdk" || exit 1$installRoot = Join-Path $env:USERPROFILE 'VibePackr-SDK-install-01'
$sdkRoot = Join-Path $installRoot 'sdk'
$depsRoot = Join-Path $installRoot 'dependencies'
$runsRoot = Join-Path $installRoot 'runs'
Set-Location -LiteralPath $sdkRoot -ErrorAction Stop
if (!(Test-Path -LiteralPath '.\bin\packr-sdk-engine.exe' -PathType Leaf)) { throw 'SDK path does not match the prior installation' }복귀 경로: 프로그램 경로를 찾지 못함 → 설치 루트·중첩 해제 폴더 확인, analyze 거부 → 전체 입력/인코딩 확인, build 거부 → 선택 의존성·네이티브 전제 조건 확인, 출력 경로 거부 → 새 이름 선택. 실패한 임시 stage를 성공 결과로 열지 않습니다.
예제의 read_quality 작업은 합성 응답의 component와 문자열 score를 읽습니다. 목표 Contract는 component와 정수 quality_score를 요구합니다. 아래 매핑은 로컬 준비용입니다.
{
"definition": {
"integration_id": "acme-quality-hub",
"operation_id": "read_quality",
"credential_requirements": [],
"execution_boundary": "READ_ONLY_SYNTHETIC_SANDBOX"
},
"mapping": {
"field_mappings": [
{"source": "component", "target": "component", "transform": "IDENTITY"},
{"source": "score", "target": "quality_score", "transform": "STRING_TO_INTEGER"}
]
},
"fixture": {
"scope": "LOCAL_SYNTHETIC_SANDBOX",
"response": {"component": "fixture-component", "score": "97"}
}
}이 발췌는 필드를 설명하기 위한 것입니다. 실행에는 정확한 Contract·어댑터·스키마 지문·권한·증거 범위를 포함한 패키지의 전체 JSON 파일을 사용하십시오. 예제에 암호, 토큰, 개인키 또는 실제 고객 응답을 넣지 마십시오.
조직의 레거시 저장소가 지원되는 MCP 인터페이스를 제공한다면 examples/read-only-mcp-transcript.json부터 확인하십시오. 합성 기록에는 tools/list와 읽기 전용 read_repository 도구가 선언되어 있습니다. 매핑은 name을 repository_id로, sha를 revision으로 복사합니다. Engine은 제공된 기록을 분석하며 MCP 서버에 접속하지 않습니다.
./bin/packr-sdk-engine analyze examples/read-only-mcp-transcript.json unused
./bin/packr-sdk-engine run-offline examples/read-only-mcp-transcript.json ./repository-candidate /absolute/path/dependenciesWindows PowerShell:
.\bin\packr-sdk-engine.exe analyze .\examples\read-only-mcp-transcript.json unused
.\bin\packr-sdk-engine.exe run-offline .\examples\read-only-mcp-transcript.json .\repository-candidate C:\absolute\path\dependencies고객 선언으로 바꾸기 전에 연동 담당자와 작업 ID, 필드 형식, 읽기 전용 권한, Contract 버전, 합성 응답을 정확히 대조하십시오. 실제 MCP 호출과 자격 증명 사용에는 별도의 승인된 연결 절차가 필요합니다.
압축을 푼 디렉터리에서 아직 존재하지 않는 출력 경로를 지정하십시오.
./bin/packr-sdk-engine run-offline examples/read-only-custom-api.json ./quality-candidate /absolute/path/dependenciesWindows:
.\bin\packr-sdk-engine.exe run-offline .\examples\read-only-custom-api.json .\quality-candidate C:\absolute\path\dependencies한 명령이 다음 단계를 순서대로 수행합니다.
adapter.rs를 만듭니다. API 전송·자격 증명·Work 실행 코드는 없습니다.rustc 절대 경로로 생성 소스를 libadapter.rlib로 컴파일합니다.README.md와 manifest.json을 씁니다. 매니페스트에는 입력 지문, 컴파일러 버전, 후보 파일 세 개의 SHA-256과 단계별 입력·출력 지문이 기록됩니다.성공한 출력 디렉터리에는 adapter.rs, libadapter.rlib, README.md, manifest.json만 있어야 합니다. v2 매니페스트의 offline_execution에는 전체 트리의 전후 지문, 컴파일러·네이티브 도구·환경·명령 인자의 최소 공개 지문이 포함됩니다. 이는 미서명 관측 기록이며 독립적인 실행 증명이나 릴리스 서명이 아닙니다. 매니페스트를 확인하십시오. 결과 CUSTOMER_REVIEW_CANDIDATE는 실제 연결이나 실행 승인을 뜻하지 않습니다.
먼저 패키지의 전체 examples/read-only-custom-api.json을 새 입력 작업 폴더의 input.json으로 복사합니다. 제공 예제와 첫 결과는 보존합니다. 편집기에서 다음 두 값만 수정해 UTF-8로 저장하십시오. 파일 전체를 아래 발췌로 교체하지 마십시오.
draft.fixture.response.component = "my-test-component"
draft.fixture.response.score = "88"score는 문자열이므로 따옴표를 유지합니다. 이 예제의 STRING_TO_INTEGER가 결과의 정수 quality_score로 변환합니다. Contract ID, 어댑터 리비전, 스키마 지문, 권한, 증거 항목은 다른 값을 추측해 바꾸지 않습니다. Windows PowerShell 5.1의 기본 Out-File은 UTF-16을 쓸 수 있으므로 JSON 편집기는 UTF-8을 선택하십시오.
예를 들어 앞서 준비한 설치 루트에 inputs-02를 새로 만들고 그 안에 input.json을 저장한 뒤 실행합니다. macOS는 앞서 선택한 Apple 도구 옵션을 그대로 적용하십시오. 첫 결과와 두 번째 결과를 합치지 않습니다.
./bin/packr-sdk-engine analyze "$install_root/inputs-02/input.json" unused
./bin/packr-sdk-engine run-offline "$install_root/inputs-02/input.json" "$install_root/runs/custom-api-candidate-02" "$install_root/dependencies"
# macOS CLT 선택 시 마지막에 다음 인자를 추가: --macos-developer-selection COMMAND_LINE_TOOLS$input02 = Join-Path $installRoot 'inputs-02\input.json'
.\bin\packr-sdk-engine.exe analyze $input02 unused
if ($LASTEXITCODE -ne 0) { throw 'Analyze failed' }
.\bin\packr-sdk-engine.exe run-offline $input02 (Join-Path $runsRoot 'custom-api-candidate-02') $depsRoot
if ($LASTEXITCODE -ne 0) { throw 'Candidate failed' }온라인의 기존 툴체인 경로를 선택했다면 같은 입력과 새 결과 경로로 run을 사용하며 의존성 경로와 macOS 선택 옵션은 넣지 않습니다. 한 후보의 기록에 두 실행 경로의 결과를 섞지 않습니다.
adapter.rs는 필드 매핑 코드입니다. 합성 응답의 값만 바꾸고 매핑 규칙을 유지하면 코드가 같을 수 있습니다. manifest.json은 해당 실행의 입력·산출물·단계 기록이므로 입력 지문, 경로, 관측값 등은 달라질 수 있습니다. 다른 OS·컴파일러 버전의 .rlib 해시를 같아야 한다고 가정하지 않습니다.
cat "$install_root/runs/custom-api-candidate-02/adapter.rs"
cat "$install_root/runs/custom-api-candidate-02/manifest.json"Get-Content -LiteralPath (Join-Path $runsRoot 'custom-api-candidate-02\adapter.rs')
Get-Content -LiteralPath (Join-Path $runsRoot 'custom-api-candidate-02\manifest.json') -Raw
Get-FileHash -LiteralPath (Join-Path $runsRoot 'custom-api-candidate-02\libadapter.rlib') -Algorithm SHA256생성 코드를 직접 편집하면 기존 매니페스트의 지문과 맞지 않습니다. Engine의 재현 가능한 후보를 만들려면 입력 JSON의 지원되는 선언·매핑을 수정하고 새 결과 경로에서 다시 실행합니다. 매니페스트를 고쳐 기존 실행이 검증된 것처럼 만들지 않습니다. 임의 Rust 코드·추가 crate·실제 네트워크 연동은 이 합성 예제의 검증 범위에 포함되지 않습니다.
재현성은 같은 OS·동일 SDK·컴파일러·의존성·전체 입력으로 새 폴더에 실행한 뒤 adapter.rs와 libadapter.rlib의 SHA-256을 비교합니다. 입력을 바꾼 두 실행 비교와 같은 입력의 재현성 비교는 구분하십시오. 매니페스트 전체 해시까지 같아야 하는 것은 아닙니다. 두 출력의 다섯 단계, 파일 지문, 입력 지문과 의존성 전후 지문도 함께 확인합니다.
| 표시 또는 현상 | 가능한 원인 | 조치 |
|---|---|---|
TARGET_MISMATCH, FIXTURE_REJECTED, CREDENTIAL_REQUIREMENT, INVALID_INPUT | 작업·Contract/어댑터 버전·입력 형식·합성 응답이 지원 범위 밖이거나 자격 증명 요구가 있습니다. | 전체 선언을 릴리스의 지원 대상 목록과 대조하십시오. 예제에서 비밀값을 제거하고, 목표 ID를 추측해 바꾸지 마십시오. |
TOOLCHAIN_UNAVAILABLE | 의존성 파일·운영체제·권한·컴파일러 또는 네이티브 도구의 신뢰 검증이 실패했습니다. | 의존성 전체 검증과 OS 전제 조건을 확인하십시오. 신뢰 검사나 권한 검사를 우회하지 말고, 오류와 실패 stage를 보존하십시오. PATH·Rustup 다운로드로 대체하지 않습니다. |
OUTPUT_EXISTS_OR_UNAVAILABLE | 이전 시도의 파일이 남았거나 디렉터리를 만들 수 없습니다. | 내용을 확인하고 쓸 수 있는 새 디렉터리를 지정하십시오. 두 시도의 파일을 합치지 마십시오. |
| 합성 응답 검사 실패 | 선언된 매핑과 응답 형식이 다르거나 값 변환이 불가능합니다. | 선언 또는 합성 응답을 바로잡아 새 출력 경로에서 실행하십시오. 합성 검사 통과를 실제 API 검증으로 해석하지 마십시오. |
| 압축 파일 지문·서명 불일치 | 파일이 다르거나 변경됐습니다. | 설치를 중지하고 릴리스 목록의 파일을 다시 받으십시오. |
| 후보는 컴파일되나 Appliance에 보이지 않음 | 이 도구는 로컬 후보만 준비합니다. | 릴리스의 별도 등록·바인딩·Work 절차를 따르고 인증된 결정과 해당 영수증을 확인하십시오. |
run-offline은 비공개 sibling stage에서 생성·검사하고, 후검사가 끝나면 기존 경로를 덮어쓰지 않는 원자적 이동으로 새 결과를 게시합니다. 실패하면 최종 결과 경로는 없고 비공개 stage·실패 기록이 남을 수 있습니다. 이 stage를 후보 패키지로 사용하지 마십시오. 이전 실패 stage나 결과는 자동으로 재사용하지 않습니다. 지원에 오류 출력을 전달할 때 고객 데이터나 비밀값을 먼저 제거하십시오.
새 SDK는 별도 세대 디렉터리에 해제하고 그 세대의 의존성·지문 목록과 대조합니다. 이전 결과·입력·패키지를 보존한 채 새 위치에서 검증한 다음 작업 경로를 바꿉니다. 되돌릴 때는 기록된 이전 SDK와 그에 맞는 의존성·입력 조합을 선택합니다. 자동 덮어쓰기나 기존 후보의 재사용은 하지 않습니다.
제거 전에 입력 JSON, 수정 내역, 후보 파일·매니페스트와 지원 기록을 보관합니다. 휴대형 설치 디렉터리와 작업 결과 디렉터리를 구분해 관리하십시오. 이 절차는 시스템 서비스나 전역 Rustup·Cargo 설정을 설치하지 않으므로 이를 삭제하거나 시스템 설정을 되돌리는 명령도 필요하지 않습니다. 기존 조직 툴체인을 별도로 제거하지 않습니다.
보안 검토에는 패키지·의존성 지문, 정확한 버전·OS, 파일 목록, LICENSE·NOTICE, 제공된 SBOM·취약점 조회 시점, 실제 검사 결과와 범위를 함께 전달합니다. 서명·공증이 없는 후보와 서명된 릴리스는 구분합니다. 지문 일치는 파일 동일성에 대한 확인이며, 매니페스트는 독립적인 실행 증명이 아닙니다. 알려진 마커 검사는 모든 비밀정보 부재를 보장하지 않으며 공급망·권한·네트워크 격리·최신 취약점 전부를 인증하지 않습니다.
Appliance 등록, 실제 연결, 고객 활성화·전달, Work 실행은 각 릴리스가 별도로 제공한 절차와 승인 범위를 따릅니다. 설치 후 도구 목록으로 돌아가거나, 소스 Document 안내에서 다음 연동 선언을 준비하십시오.
SDK·의존성 패키지 지문과 제공된 서명 유무, 컴퓨터 운영체제, 검증된 컴파일러 버전, 입력 JSON 지문, 대상 Contract·어댑터 버전, 단계 결과, 후보 매니페스트, 연동 담당자를 기록하십시오. 이후 실제 Work가 실행되면 별도의 Appliance 등록 결정과 Work 영수증을 보관하십시오. 지원 기록에는 비밀값과 실제 고객 응답을 넣지 마십시오.
다음은 지원되는 입력·명령·권한 경계를 바탕으로 구성한 교육용 사례입니다. 제품의 실제 상태·사유와 함께 읽고, 자신의 실행 기록 없이 예시의 결과를 성공 이력으로 사용하지 않습니다. 온라인과 오프라인 환경 모두에 적용되는 확인 항목과 선택 의존성 경로에만 해당하는 항목을 구별합니다.
상황: SDK 실행 파일은 열리지만 선택 의존성 경로의 예제 빌드가 시작되지 않습니다. 본체 설치, Rust 세트 검증, OS 네이티브 도구 준비를 한 단계로 합치지 않고 각각 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 선택한 경로의 전제 조건이 충족되고 새 출력에서 다섯 단계가 검증돼야 후보 준비 완료로 기록합니다.
해결되지 않았을 때: 필요 자산 또는 지원 조합이 없으면 정확한 누락 항목을 인계합니다. 임의 다운로드·전역 캐시 혼합으로 빈칸을 메우지 않습니다.
상황: macOS에 Apple 개발 도구가 둘 이상 있습니다. 현재 시스템 선택을 사용하는 실행이 거부됐고, 등록된 Command Line Tools 설치가 별도로 준비돼 있습니다. 설치돼 있다는 사실만으로 신뢰 검증 성공을 가정하지 않습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 해당 실행의 선택된 도구와 후보 검증 결과가 확인돼야 이 경로의 성공으로 기록합니다.
해결되지 않았을 때: CLT가 없거나 신뢰 검증이 거부되면 그 전제 조건을 인계합니다. 이 옵션을 다른 OS에 사용하지 않습니다.
상황: 사용자가 예제의 점수를 88로 바꾸면서 문자열 따옴표를 지웠거나 설명용 JSON 발췌만 input.json에 저장했습니다. JSON 문법이 맞아도 선언된 입력 형식과 전체 요청 구조는 별도로 검사됩니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 수정 입력이 지원 형식으로 받아들여지고 같은 실행의 다섯 단계·산출물 지문이 확인되면 해당 후보만 완료로 기록합니다.
해결되지 않았을 때: 대상·권한·데이터 경계 거부가 남으면 예제 값을 바꾸는 것으로 해결됐다고 표시하지 않습니다.
상황: 두 출력의 adapter.rs는 같지만 libadapter.rlib의 지문이 다릅니다. 출력 경로만 비교하기 전에 실제 입력·OS·컴파일러·SDK·의존성과 선택한 명령이 같은지 확인해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 같은 조건의 새 실행에서 지문이 일치하면 그 OS·버전·입력 범위의 재현성으로만 기록합니다.
해결되지 않았을 때: 조건이 같은데도 다르면 두 패키지·입력·산출물 지문과 최소 실행 기록을 인계합니다. 보안 후검사 실패를 성공으로 바꾸지 않습니다.
해당 패키지와 함께 제공된 매니페스트로 SHA-256 지문을 확인하십시오. 지원 요청에는 패키지 버전·운영체제·입력 지문·오류 원문을 기록합니다. 내부 개발 기록과 과거 시도는 관리자가 보존하며 사용자 매뉴얼에 포함하지 않습니다. 이 문서는 고객 활성화·전달·Apple 서명을 제공하지 않습니다.
관리자가 관찰한 두 실패 유형을 사용자 절차로 정리했습니다. 내부 실행 기록은 관리자가 보존합니다. 이 문서를 여는 것만으로 제품을 실행하지는 않습니다.
증상: 컴파일러 종료 코드는 0이지만 패키지 검사가 candidate private path disclosure libadapter.rlib를 보고합니다.
기대 결과: 명령과 모든 필수 후검사가 성공합니다. 다음 단계 후보가 없으면 미완료입니다.
증상: adapter.rs는 같지만 libadapter.rlib는 다릅니다.
미해결 시: 두 산출물 지문과 최소 버전·오류 정보를 제공합니다. 추가 crate·타깃·네이티브 도구에는 별도 검사가 필요합니다.
문서 탐색: 설치·첫 사용 · 설치 후 도구 · 사용 용례 · 문제 해결 사례
모든 도구를 순서대로 설치할 필요는 없습니다. 다음 표에서 오늘 하려는 일을 하나 고르고 해당 안내부터 시작하십시오. 이 페이지를 여는 데에는 브라우저만 필요합니다. SDK 합성 예제를 실행하는 데에는 어플라이언스 계정·고객 활성화·실제 API 접속이 필요하지 않습니다.
| 오늘의 목적 | 필요한 준비 | 읽고 실행할 순서 | 이번 연습의 완료 |
|---|---|---|---|
| SDK 예제를 내 PC에서 실행 | 지원 OS용 SDK, 선택한 Rust 경로, 네이티브 전제 조건 | SDK Engine의 압축 해제 → 분석 → Custom/MCP 예제 → 결과 열기 | 새 후보 폴더의 4개 파일과 다섯 단계 기록 |
| 회사가 이미 설치한 VM에 연결 | 관리자가 준 호환 GUI, 연결 정보와 내 기기 등록 절차 | PackrGUI·헤드리스 용례의 일반 사용자 경로 | 인증된 동일 고객·설치 연결; Work는 별도 |
| 회사 VM을 처음 설치 | 배포 권한, 정확한 이미지, 호환성·초기 관리자 절차 | 이 문서 1–6절 → 첫 Work 용례 | 준비 상태부터 승인된 Work와 영수증까지 |
| 연동 문서·후보만 준비 | 합성 입력, 제공된 대상 참조, 필요한 도구 | Document → Helper, 또는 SDK Engine | 문법·의미·준비 결과를 각각 확인 |
| 아키텍처를 검토 | 승인된 snapshot/뷰어 또는 GAPE 실행 파일·매니페스트 | GAPE의 첫 관찰 실습 | 같은 리비전의 검증된 관찰과 한계 |
| Pack 후보를 준비 | 제공된 Builder, 연결·역할, 지원 Pack/Contract | Builder의 첫 후보 실습 | 후보와 검증·인계 기록 |
각 도구의 상세 절은 설치 후 도구 목록에 있습니다. 도구가 필요한 단계에서만 설치합니다. 실제 연결·등록·Work가 필요한 시점에는 해당 릴리스의 승인된 경로가 따로 필요합니다.
arm64/aarch64와 x86_64/AMD64는 서로 다른 패키지입니다. 현재 SDK의 기록된 조합은 macOS ARM64, Debian 13 AMD64, Windows AMD64입니다. 다른 Linux 배포판이나 Windows ARM을 같은 조합으로 간주하지 않습니다.# macOS 터미널에서만
sw_vers
uname -m
# Linux 터미널에서만
cat /etc/os-release
uname -m# Windows PowerShell
$PSVersionTable.PSVersion
(Get-CimInstance Win32_OperatingSystem).Caption
(Get-CimInstance Win32_ComputerSystem).SystemType| 받은 파일 | 해야 할 일 | 완료 확인 |
|---|---|---|
.tar.gz 또는 .zip 휴대형 SDK | SDK 안내의 새 개인 폴더에 해제; 본체와 의존성은 별도 | 본체의 bin/docs/examples, 세트의 DEPENDENCIES.json/FILES.json |
.app, .dmg, .pkg, .msi, .exe, .deb 등 클라이언트 | 실제 전달 목록의 형식과 설치 안내를 확인; 형식을 추측해 바꾸지 않음 | 정확한 앱 버전과 실행 경로; 연결은 그다음 |
| VM 이미지 또는 이미지 참조 | 지원 가상화/클라우드의 해당 릴리스 절차 | 이미지 ID, 새 인스턴스와 제품 준비 상태 |
.json Document/요청/매니페스트 | UTF-8로 읽고 종류·버전을 확인 | 소스 발췌, 전체 요청, GAPE 매니페스트를 구별 |
이 문서의 범용 .pkg/.exe/.deb 파일명은 해시 명령 설명용입니다. 실제 SDK 파일을 그 이름으로 찾지 마십시오. 현재 로컬 운영자판에서는 현재 SDK 패키지 표가 본체·의존성의 실제 파일 링크와 지문을 제공합니다. 다른 구성요소는 별도의 해당 릴리스 제공 목록을 확인합니다. 존재하지 않는 포털·다운로드 링크·서명 상태를 추측하지 않습니다.
bash 예시를, Windows PowerShell에는 powershell 예시를 사용합니다. $나 PS C:\> 같은 프롬프트는 명령이 아니며 복사하지 않습니다./absolute/path/..., C:\absolute\path\..., 대괄호 입력란은 내가 받은 실제 값으로 먼저 바꿀 자리입니다. 따옴표는 유지합니다. 경로에 공백이 있으면 특히 필요합니다. Unix의 ./bin/...과 Windows의 .\bin\...을 바꾸어 쓰지 않습니다.install_root, $installRoot 같은 변수는 해당 준비 절을 실행한 같은 셸에서만 존재합니다. 터미널을 새로 열면 아래의 재개 절차로 다시 지정합니다. 폴더명·대소문자·파일 확장자 .json.txt를 확인합니다.> 또는 Out-File은 UTF-16일 수 있습니다. JSON 입력은 UTF-8 편집기를 사용하고 저장 인코딩을 확인합니다.VibePackr-SDK-install-01/
sdk/ 압축 해제한 본체; bin, docs, examples
dependencies/ 선택 의존성 세트; 원본 검증 입력 유지
inputs-02/ 수정할 전체 input.json 사본
runs/
custom-01/ 첫 성공 후 생기는 결과
mcp-01/ 별도 MCP 결과
custom-api-candidate-02/ 수정 입력의 새 결과위는 폴더 관계 설명입니다. 실제 생성 명령은 SDK 절에 있습니다. runs 부모는 준비하되 custom-01 같은 최종 후보 폴더는 SDK가 만들게 둡니다. GAPE도 새 출력 경로를 사용합니다. Helper의 로그 보관 폴더와 Builder의 제품 관리 후보는 별개입니다.
설치·연결·후보 생성·실제 Work를 한 번에 “완료”라고 적지 않습니다. 각 연습이 끝날 때 날짜, 도구 버전·경로, 입력 지문, 실제 명령 또는 화면 작업, 결과 위치, 마지막 성공 단계와 남은 담당자를 적습니다. 문제 해결에는 이 기록이 출발점입니다.
| 결과 종류 | 직접 확인할 것 | 다음 작업 |
|---|---|---|
| SDK 후보 | adapter.rs, libadapter.rlib, README.md, manifest.json과 단계 기록 | 입력 사본 수정 또는 승인된 별도 통합 절차 |
| Helper 준비 | 단계별 status/reason/next_required_actions와 후보 지문 | 거부 원인 해결 또는 등록 담당자 인계 |
| GAPE 관찰 | snapshot ID, 리비전, validate 결과, 공유 등급 | 승인 범위에서 관계 검토 |
| Document | 완전한 JSON, 문법 결과, 대상·매핑 참조 | Helper 의미 검증 |
| Builder 후보 | 후보 ID·리비전, 검증 결과, 승인·사용 권한 상태 | 승인 담당자 인계; 허용될 때만 Work |
| GUI 연결/Work | 같은 고객·설치 신원, 인증 상태, 실행했다면 해당 Work의 결과·영수증 | 허용된 업무 또는 관리자 문의 |
다시 시작할 때 받은 패키지와 보관된 결과를 지우지 마십시오. SDK의 경로 재개 예시는 SDK 절에 있고, 다른 도구도 입력·출력의 절대 경로를 다시 선택합니다. 애매한 실행 결과가 남으면 먼저 기존 Work/요청 ID를 조회하고, 중복 실행을 새 시도로 해결하지 않습니다. 막힌 단계는 문제 해결 색인의 시작 분류표로 이동합니다.
이 문서는 고객의 담당자가 파일 수령부터 첫 Work 결과 확인까지 직접 진행하도록 돕습니다. 제품이 표시하는 상태와 해당 릴리스의 서명된 매니페스트가 최종 기준입니다. 예시와 일반 운영체제 명령이 제품의 거부 결정이나 릴리스 문서를 대신하지 않습니다.
setup.vibepackr.com에서 시작합니다. 오프라인 설치라면 전달받은 Start_Setup.html을 엽니다. 포털과 오프라인 안내의 릴리스 식별자와 구성요소 목록이 같은지 확인합니다. 포털이 열리지 않는 상황은 제품 VM 장애와 구별하십시오.shasum -a 256 파일명, Linux의 sha256sum 파일명, Windows PowerShell의 Get-FileHash -Algorithm SHA256 파일명입니다. 파일명이 공백을 포함하면 각 셸의 인용 규칙을 따릅니다.다음 단계로 진행할 조건: 전달 목록에 있는 정확한 파일의 서명과 지문이 맞고 대상 환경이 지원 목록 안에 있습니다.
이번 릴리스의 서명된 목록에 있는 파일명과 SHA-256을 사용하십시오. 아래 명령은 운영체제의 읽기 전용 파일 확인 예시입니다. 예시 파일명을 받은 파일명으로 바꾸고, 별도로 릴리스의 서명 확인 절차도 완료하십시오. 이전 안내서의 지문을 재사용하지 마십시오.
# macOS 터미널
shasum -a 256 "VibePackr-installer-for-this-platform.pkg"
# Linux 셸
sha256sum "VibePackr-installer-for-this-platform.deb"# Windows PowerShell
Get-FileHash -Algorithm SHA256 "VibePackr-installer-for-this-platform.exe"판정 예시: 매니페스트에는 A1..., 로컬 명령 결과에는 B2...가 표시됩니다. 설치 전에 멈추고 정확한 파일명과 두 지문을 남겨 전달 담당자에게 올바른 서명 파일을 요청하십시오. 파일명을 바꿔도 지문은 바뀌지 않습니다.
실행 중은 VM 전원이 켜졌다는 뜻입니다. 제품의 서비스 준비는 제품 상태 화면 또는 릴리스별 진단으로 별도 확인합니다. 초기화 중에는 접속을 반복하기보다 공식 대기·상태 절차를 따르십시오.다음 단계로 진행할 조건: 첫 부팅이 완료되고 제품 서비스가 준비 상태이며, 이 인스턴스의 고유 설치 신원과 인증된 접근 경로가 확인됩니다.
Permission denied가 나오면 임의로 소유권·권한·잠금 파일을 고치지 말고 정확한 오류를 지원 경로로 전달합니다.다음 단계로 진행할 조건: 제품이 현재 설치 신원에 대해 관리자 역할·허용 범위·유효기간을 확인합니다.
다음 단계로 진행할 조건: 제품이 현재 설치에 대해 지원 런타임과 모델의 바인딩을 검증된 상태로 표시합니다.
연결 이후의 작업은 설치 후 도구 안내서를 따르십시오. Builder, GAPE, Integration Helper, SDK Engine, Contract & Document의 설치 위치와 사용 순서를 확인할 수 있습니다. 전체 관계를 보여주는 Non-SI 아키텍처 그림도 포함돼 있습니다.
다음 단계로 진행할 조건: 사용할 각 클라이언트 경로의 인증·설치 신원·허용 기능을 제품에서 확인합니다.
바인딩됨으로 보이거나 모델이 응답 가능해도 Work 호출이 없을 수 있습니다.확인 안 됨은 실패와 구별해 적되 완료로 표시하지 않습니다.| 확인 항목 | 확인할 기록 |
|---|---|
| 전달 파일 | 서명·지문과 릴리스 ID |
| 어플라이언스 | 새 설치 신원과 서비스 준비 상태 |
| 관리자 | 해당 설치의 역할·범위·유효기간 |
| 클라이언트 | 인증된 연결과 일치하는 고객·설치 신원 |
| 런타임 | 현재 모델의 검증된 바인딩 |
| Work | 승인된 실행, 최종 상태, 결과 검증과 영수증 |
설치를 마친 뒤 어떤 기능을 어떤 순서로 확인할지는 사용 용례 색인에서 시작하십시오. 새 설치, 런타임 변경과 자동 재바인딩, PackrGUI·헤드리스 분리, Builder 후보, 첫 Work를 각각 담당자·선행 조건·증거·실패 분기까지 풀어 설명합니다. 사례 A~J는 증상이 발생했을 때 찾아보는 문제 해결 문서입니다.
다음은 설치와 사용 중 나타날 수 있는 상황별 안내입니다. 제품의 실제 오류 문구는 버전과 플랫폼에 따라 다를 수 있습니다. 각 사례의 안전한 조치까지만 직접 수행하고, 신원·권한·상태 무결성 오류는 지원 경로로 넘기십시오. 각 제목의 링크에서 상황 예시, 순서별 확인, 결과별 분기, 지원 요청 예시와 완료·중지 기준을 자세히 확인하십시오. 증상에 맞는 사례를 고르기 어렵다면 문제 해결 색인부터 보십시오.
Permission denied 또는 저장소 접근 오류로 멈춥니다.감지됨 또는 거부됨만 표시합니다.BOUND로 표시하지 마십시오.준비됨을 실행 허가로 해석하지 마십시오.설치 담당자는 릴리스 ID, 이미지 ID, 실제로 설치한 플랫폼별 파일명과 지문, 지원 환경 확인 결과, 최초 관리자 범위, 인증된 연결 상태와 현재 런타임 바인딩을 기록하십시오. Work를 실행했다면 같은 설치·Work ID에 연결된 최종 상태, 결과 검증과 영수증 위치도 남깁니다.
macOS·Windows·Linux 클라이언트와 헤드리스 경로는 각각 별도로 확인하십시오. 한 플랫폼에서 연결됐더라도 다른 플랫폼의 설치·인증·권한을 확인해야 합니다. 화면과 명령이 이 안내서의 예시와 다르면 전달된 릴리스별 지침을 따르고, 제품의 실제 메시지와 수행한 단계를 지원 요청에 적으십시오. 고객 데이터와 비밀값은 제외합니다.
온라인 환경은 승인된 네트워크·제공자 경로를 사용하는 구성이고, 폐쇄형 온프렘은 필요한 설치 자산·모델·문서 등을 사전에 반입하는 구성입니다. 어느 쪽도 이 안내서가 제품의 기본값으로 고정하지 않습니다. SDK의 선택 Rust 의존성 세트는 SDK 어댑터 빌드의 Rust 범위를 준비하며 어플라이언스 이미지·모델 가중치·제공자 자격 증명·모든 OS 개발 도구를 대신하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 어플라이언스 | 같은 릴리스 이미지·서비스 준비·고유 설치 신원 | 첫 설치는 용례 1, 준비 문제는 사례 A, 이전 상태 흔적은 사례 J를 사용합니다. |
| PackrGUI·헤드리스 | 각 경로의 플랫폼 파일·인증·같은 설치 ID | 용례 3에서 두 경로를 별도로 확인하고 접속 문제는 사례 C로 분리합니다. |
| Builder·추가 Pack | 정확한 후보·검증·승인·사용 권한·사전 조건 | 지원 Pack을 먼저 확인합니다. 새 후보는 용례 4, 거부는 사례 H, 실제 실행은 용례 5입니다. |
| GAPE | 승인 매니페스트·소스 리비전·공개 등급 | 현재 리비전의 관찰을 검토하고 미확인 동적 동작은 별도 증거로 확인합니다. |
| Integration Helper·소스 Document | 전체 요청·게시 대상·매핑·각 단계 판정 | 문법·발견·정규화·후보 준비를 나누고 승인된 등록 경로가 있을 때만 인계합니다. |
| SDK Engine | OS·컴파일러·선택 의존성·입력·산출물 지문 | 온라인 기존 툴체인 또는 선택 의존성 경로로 후보를 만들고 각각의 검증 범위를 기록합니다. |
클라이언트 업데이트는 해당 클라이언트의 연결·인증·설치 신원을, 런타임 변경은 새 관찰·검증·바인딩을, Pack 변경은 정확한 버전·신뢰·현재 사용 권한·사전 조건을 다시 확인합니다. 변경 전 기록과 복구 대상은 보존합니다. 문제가 생기면 처음 달라진 관찰을 기록하고 그 구성요소의 절차로 돌아갑니다.
추가 Pack은 제공된 릴리스·고객·설치 범위에 맞는 파일과 등록 절차를 사용합니다. 임의 폴더 복사나 후보 파일명 변경으로 등록·승인을 대신하지 않습니다. 처음 적용할 때도 승인된 계획과 후조건 검증·영수증을 확인합니다. 제거·되돌림은 해당 Pack이 선언한 복구 절차와 현재 권한을 따릅니다.
같은 증상이라도 실패한 단계가 다르면 조치가 달라집니다. 먼저 아래 표에서 마지막으로 직접 확인한 단계를 고릅니다. 한 번 실패한 전체 설치를 처음부터 반복하거나 기존 결과를 삭제할 필요는 없습니다.
| 현재 상황 | 먼저 직접 확인 | 이어갈 위치 |
|---|---|---|
| 링크를 눌러도 파일이 없음 | 안내 파일만 옮겼는지, 원래 상대 폴더·받은 목록을 함께 보관했는지 | 전달 담당자에게 정확한 누락 경로 요청; 다른 URL 추측 금지 |
| command not found / 명령을 찾을 수 없음 | 현재 폴더와 실행 파일 절대 경로, OS용 ./ 또는 .\ 형식 | 해당 도구 첫 실습의 경로 지정; PATH 변경 전 파일 존재 확인 |
| No such file / 경로를 찾을 수 없음 | 압축이 한 폴더 더 중첩됐는지, 공백 인용, .json.txt, 변수 재지정 | 설치 루트·입력 사본 준비; 제품 검증 실패와 구별 |
| 앱이 열리지 않거나 DLL/라이브러리 경고 | OS·CPU·동봉 런타임·리소스, 정확한 경고·보안 상태 | GUI 기동 또는 릴리스 패키지 안내; 네트워크 설정부터 바꾸지 않음 |
| JSON 파싱 오류 | UTF-8, 전체 객체, 따옴표·쉼표, 발췌/전체 요청 구분 | Document DOC-1/2 또는 SDK-3 |
| SDK 네이티브 도구·의존성 거부 | 선택한 실행 경로, 본체와 세트의 OS/지문, OS 개발 도구 | SDK-1/2와 실제 오류 stage |
| 결과 폴더가 이미 존재 | 기존 결과·실패 stage·현재 지정 경로 구분 | 새 출력 이름 사용; 원본 보존 |
| VM 전원은 켜졌으나 서비스 미준비 | 이미지 ID·첫 부팅·제품 준비 상태 | 사례 A |
| 주소·서버 신원 경고 또는 다른 조직 | 기대 endpoint/설치와 실제 표시 | 사례 B/J; 신뢰 갱신 전 확인 |
| 시간 초과·로그인·등록·권한 거부 | 서비스 준비 → 네트워크 → 인증 → 역할/범위 | 사례 C/D/E |
| 모델이 안 보이거나 실행 안 됨 | 감지·검증·바인딩·자원·실제 호출 분리 | 사례 F/G |
| 후보나 결과는 있지만 실제 실행/영수증 없음 | 후보 검증·승인·사용 권한·Work/receipt 각각 | 사례 H/I와 도구별 준비 결과 |
다음은 작성 양식입니다. 대괄호를 실제 관찰로 바꾸고, 모르는 값은 미확인이라고 적습니다. 제품이 반환하지 않은 오류 코드·성공 시각을 만들지 않습니다.
목적: [예: SDK Custom 합성 후보 처음 생성]
OS/CPU와 도구 버전: [실제 조회값]
선택 경로: [기존 툴체인 run / 선택 세트 run-offline / GUI 등]
마지막 성공: [예: analyze까지 실제 확인]
실패 단계/시각: [실제 단계, 현지 시간과 시간대]
관찰: [원문 status/reason 또는 OS 오류; 비밀값 제거]
입력/패키지 참조: [버전과 SHA-256; 고객 내용 제외]
기존 결과: [있음/없음, 새 시도와 구분]
다음 확인 요청: [예: 승인된 네이티브 전제 조건 확인]원본 전체 로그·고객 응답·키·토큰·프로필 원문을 일괄 전송하지 않습니다. 공유 전 민감 정보를 제거한 최소 메시지·식별자만 조직의 지원 경로로 보냅니다. 문제가 해결된 뒤에는 처음 실패했던 단계와 그 영향을 받은 결과를 다시 확인하고 다음 단계로 돌아갑니다.
문제를 “설치가 안 된다” 한 문장으로 묶지 마십시오. 가장 마지막으로 확인된 상태를 먼저 적으면 잘못된 재설치나 권한 변경을 줄일 수 있습니다.
| 마지막으로 확인된 상태 | 다음 확인 | 해당 사례 |
|---|---|---|
| 파일은 받았으나 검증되지 않음 | 본문 1절의 서명·지문·호환성 | 설치·첫 사용 매뉴얼 |
| VM은 실행 중이나 제품 준비가 확인되지 않음 | 첫 부팅·서비스 준비 | A: 서비스 준비 |
| 호스트 신원 경고 | 독립 신원 확인 전에 중지 | B: 호스트 신원 |
| 연결 또는 로그인 실패 | 도달성·인증 분리 | C: 연결과 인증 |
| 관리자 등록 거부 | 대화형 등록·결과 | D: 관리자 등록 |
| 등록 뒤 접근 거부 | 역할·범위·저장소 접근 분리 | E: 관리자 저장소 |
| 런타임 발견, 바인딩 없음 | 새 관찰·검증·범위 | F: 바인딩 |
| 로컬 모델 시작/오프라인 실패 | 지원 자원·로컬 모델·네트워크 | G: 로컬 모델 |
| Builder 후보 실행 거부 | 검증·승인·권한 분리 | H: Pack 후보 |
| 바인딩은 있으나 Work 결과 없음 | 제출·실행·결과·영수증 분리 | I: Work 영수증 |
| 새 VM에 이전 사용자 흔적 | 사용 중단·이미지 출처 | J: 이미지 잔여 |
“릴리스 [ID]의 새 VM을 배포했습니다. VM은 실행 중이고 제품은 아직 준비되지 않았습니다. 관리자 등록과 Work는 시작하지 않았습니다. 처음 보인 메시지는 [원문]이며 시각은 [시간대 포함]입니다.” 이 경우에는 A부터 확인합니다. 클라이언트 연결 오류가 동시에 보이더라도 제품 준비가 증명되기 전에는 C의 인증 설정을 바꾸지 않습니다.
반대로 제품 준비와 네트워크 도달성은 확인됐는데 로그인만 거부되면 C에서 인증을 봅니다. 바인딩 화면만 있고 Work 영수증이 없다면 I로 갑니다. 이 순서가 원인을 확정해 주지는 않지만, 아직 증명되지 않은 다음 단계를 성공으로 표시하지 않게 합니다.
서명·파일 지문 불일치, 예상 밖 호스트 신원, 다른 고객·설치 ID, 권한 확대 의심, 이전 사용자 데이터, 상태 무결성 경고가 있으면 다음 조치를 직접 실행하지 말고 해당 사례의 지원 자료만 최소한으로 모읍니다. 암호, 토큰, 개인키, passkey 응답, 고객 데이터, 전체 로그는 일반 지원 요청에 넣지 않습니다.
온라인 환경은 승인된 네트워크·제공자 경로를 사용하는 구성이고, 폐쇄형 온프렘은 필요한 설치 자산·모델·문서 등을 사전에 반입하는 구성입니다. 어느 쪽도 이 안내서가 제품의 기본값으로 고정하지 않습니다. SDK의 선택 Rust 의존성 세트는 SDK 어댑터 빌드의 Rust 범위를 준비하며 어플라이언스 이미지·모델 가중치·제공자 자격 증명·모든 OS 개발 도구를 대신하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 어플라이언스 | 같은 릴리스 이미지·서비스 준비·고유 설치 신원 | 첫 설치는 용례 1, 준비 문제는 사례 A, 이전 상태 흔적은 사례 J를 사용합니다. |
| PackrGUI·헤드리스 | 각 경로의 플랫폼 파일·인증·같은 설치 ID | 용례 3에서 두 경로를 별도로 확인하고 접속 문제는 사례 C로 분리합니다. |
| Builder·추가 Pack | 정확한 후보·검증·승인·사용 권한·사전 조건 | 지원 Pack을 먼저 확인합니다. 새 후보는 용례 4, 거부는 사례 H, 실제 실행은 용례 5입니다. |
지원 인계 양식의 예: 릴리스·구성요소·OS, 시각과 시각대, 마지막 확인 단계, 최초 거부 원문, 수행한 변경, 현재 결과, 다음 담당자. 미확인·거부·대기·실패·완료를 같은 상태로 합치지 않습니다. 비밀값과 고객 내용은 첨부하지 않습니다.
하나의 큰 문제 유형 안에서도 증상과 조치가 다릅니다. 아래 링크의 세부 예시 ID를 찾아 상황·관찰·조치·복귀 조건을 순서대로 읽으십시오. 예시는 교육용이며 실제 장애 이력은 별도 근거가 있어야 합니다.
| 사례 | 첫 번째 예시 | 두 번째 예시 | 세 번째 예시 |
|---|---|---|---|
| A | A-1 VM은 실행 중인데 첫 부팅은 진행 중 | A-2 프로세스는 있지만 필수 초기화가 실패함 | A-3 어제의 준비 화면은 정상인데 오늘 연결은 실패함 |
| B | B-1 VM 교체 후 같은 주소에서 호스트 키 경고 | B-2 잘못 저장된 접속 대상과 올바른 서버를 구별하기 | B-3 같은 인스턴스라고 하는데 키가 다시 바뀜 |
| C | C-1 접속 시간 초과와 서비스 미준비를 분리하기 | C-2 서버는 응답하지만 세션이 만료됨 | C-3 GUI는 되는데 자동화 서비스만 접속 실패 |
| D | D-1 원격 파이프에서 관리자 확인이 거부됨 | D-2 OS 관리자로 로그인했지만 제품 관리자 역할이 없음 | D-3 등록은 끝났지만 고객·런타임 범위가 다름 |
| E | E-1 등록 성공 뒤 첫 상태 조회에서 접근 거부 | E-2 조회는 되지만 범위 밖 작업만 거부됨 | E-3 업데이트 이후 처음 나타난 저장소 접근 오류 |
| F | F-1 모델 파일은 있지만 런타임 관찰이 없음 | F-2 별칭만 바꿨는데 이전 바인딩이 계속 보임 | F-3 여러 모델이 감지돼 대상 선택이 모호함 |
| G | G-1 모델 로딩 중 종료되지만 메모리 부족은 아직 미확인 | G-2 폐쇄망에 모델 파일을 반입하지 않아 다운로드 대기 | G-3 온라인 메타데이터 확인 실패와 로컬 사용을 구별하기 |
| H | H-1 후보 구조 검사는 통과했지만 승인은 대기 | H-2 승인은 있지만 다른 설치의 사용 권한 | H-3 승인 뒤 후보를 수정해 지문이 달라짐 |
| I | I-1 모델 시험 응답은 있으나 Work ID가 없음 | I-2 제출한 Work의 결과가 늦게 보임 | I-3 보고서는 있지만 영수증의 설치·Work가 다름 |
| J | J-1 새 VM의 첫 설정에 이전 조직이 표시됨 | J-2 서로 다른 VM의 설치 신원이 동일함 | J-3 교체 VM에서도 이전 상태가 반복됨 |
SDK·Builder·GAPE·Integration Helper·소스 Document의 개별 오류는 각 설치 후 도구 안내에 추가한 상세 예시도 함께 확인하십시오. 한 도구의 준비 성공을 다른 도구나 실제 Work의 성공으로 복사하지 않습니다.
| 하고 싶은 일 | 담당자와 선행 조건 | 용례 | 확인해야 할 마지막 증거 |
|---|---|---|---|
| 새 VM을 설치하고 최초 관리자를 등록 | 설치 관리자, 정확한 서명 이미지 | 1. 새 설치 | 새 설치 신원·서비스 준비·관리자 범위 |
| 로컬 모델이나 런타임을 바꾼 후 계속 사용 | 런타임 관리자, 기존 승인 범위 | 2. 자동 재바인딩 | 변경 이후 새 Core 바인딩 |
| GUI와 자동화 클라이언트를 함께 사용 | 각 경로의 인증 주체 | 3. GUI와 헤드리스 | 경로별 인증·설치 신원·권한 |
| Builder에서 Pack 후보를 준비 | Builder 운영자와 별도 승인 주체 | 4. Pack 후보 | 후보 검증과 승인 상태의 구분 |
| 첫 Work를 실행하고 결과를 닫음 | 승인된 Pack·Work 권한 | 5. 첫 Work | 최종 상태·검증 결과·일치하는 영수증 |
각 용례는 상황 → 선행 조건 → 실제 진행 순서 → 실패 분기 → 완료 증거로 구성했습니다. 여러 증상이 동시에 보이면 마지막으로 확인된 상태부터 선택하십시오. 오류 해결은 사례 색인에서 증상별로 찾을 수 있습니다. 지원 요청에는 오류 원문과 릴리스·설치 신원처럼 최소 정보만 넣고 고객 데이터·비밀값은 제외하십시오.
온라인 환경은 승인된 네트워크·제공자 경로를 사용하는 구성이고, 폐쇄형 온프렘은 필요한 설치 자산·모델·문서 등을 사전에 반입하는 구성입니다. 어느 쪽도 이 안내서가 제품의 기본값으로 고정하지 않습니다. SDK의 선택 Rust 의존성 세트는 SDK 어댑터 빌드의 Rust 범위를 준비하며 어플라이언스 이미지·모델 가중치·제공자 자격 증명·모든 OS 개발 도구를 대신하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 어플라이언스 | 같은 릴리스 이미지·서비스 준비·고유 설치 신원 | 첫 설치는 용례 1, 준비 문제는 사례 A, 이전 상태 흔적은 사례 J를 사용합니다. |
| PackrGUI·헤드리스 | 각 경로의 플랫폼 파일·인증·같은 설치 ID | 용례 3에서 두 경로를 별도로 확인하고 접속 문제는 사례 C로 분리합니다. |
| Builder·추가 Pack | 정확한 후보·검증·승인·사용 권한·사전 조건 | 지원 Pack을 먼저 확인합니다. 새 후보는 용례 4, 거부는 사례 H, 실제 실행은 용례 5입니다. |
지원 인계 양식의 예: 릴리스·구성요소·OS, 시각과 시각대, 마지막 확인 단계, 최초 거부 원문, 수행한 변경, 현재 결과, 다음 담당자. 미확인·거부·대기·실패·완료를 같은 상태로 합치지 않습니다. 비밀값과 고객 내용은 첨부하지 않습니다.
아래 각 도구 안내서의 첫 실습부터 읽으십시오. 명령줄 도구는 받은 실행 파일의 절대 경로를 지정하므로 전역 PATH 등록이 필수는 아닙니다. GUI 앱은 제공된 설치 방법으로 열고 릴리스별 화면 이름을 사용합니다. 없는 메뉴나 다운로드 주소를 추측하지 않습니다.
| 도구 | 실습에 반드시 필요한 파일·상태 | 처음 확인할 결과 | 없을 때 진행할 수 있는 일 |
|---|---|---|---|
| SDK | 본체의 전체 예제 + 선택 툴체인/네이티브 전제 조건 | analyze 결과 → Custom/MCP 후보 | Document를 읽고 합성 입력 사본 준비 |
| Document | 이 안내의 전체 소스 JSON, UTF-8 편집기·문법 검사 도구 | 문법이 맞는 파일과 required 일치 | 편집·검토 가능; Helper 의미 검증은 따로 |
| Helper | 해당 릴리스 실행 파일 + 완전한 request.json + 게시 대상 | 발견 후 단계별 타입 결과 | 소스 선언 검토; 대상 미제공이면 준비 완료 아님 |
| GAPE | 승인 snapshot/뷰어 또는 실행 파일 + 승인 manifest | 선택 리비전의 snapshot와 검사 결과 | 제공된 안전한 뷰어 자료 검토 |
| Builder | 제공 앱 + 제품 연결·역할 + 지원 후보 입력 | 저장된 후보 ID/리비전과 검증 결과 | 목표·입출력·롤백을 작성; 검증 PASS를 가정하지 않음 |
| GUI·헤드리스 | 호환 클라이언트 + 각 경로의 관리자가 준 연결 자료 | 인증된 같은 설치 신원 | 앱 파일 준비; 서버 연결 완료로 기록하지 않음 |
SDK의 선택 Rust 세트는 다른 앱의 설치 프로그램이 아닙니다. 모든 도구에 Rust 설치를 요구하지 않습니다. 기존 구성의 연결을 확인하는 사람은 새 VM 생성·초기 관리자 등록을 반복하지 않습니다.
이 그림은 고객이 환경과 운영을 소유하고, 연동 도구가 이해·준비·선언을 도우며, 제품이 실행을 통제하는 관계를 보여줍니다. 이미지를 별도 탭으로 열면 확대할 수 있습니다. 실제로 설치할 수 있는 도구와 지원 버전은 전달받은 구성요소 목록에서 확인하십시오.
필요한 도구를 아래 표에서 고르십시오. 로컬 SDK·문서 준비만 할 때는 어플라이언스 설치가 선행 조건이 아닙니다. 각 구성요소의 제공 여부, 플랫폼, 버전과 설치 파일은 함께 전달된 목록을 기준으로 확인합니다. 목록에 없는 도구는 다른 릴리스의 파일로 대체하지 마십시오.
| 구성요소 | 사용하는 곳 | 설치 전에 확인할 것 |
|---|---|---|
| 어플라이언스·헤드리스 | 고객 환경의 VM 및 지원 명령줄 | 이미지·지원 환경·설치 절차 |
| PackrGUI·Builder | 고객 워크스테이션 | 운영체제별 설치 파일·연결 주소·권한 |
| GAPE·Integration Helper | 승인된 연동 작업 환경 | 도구 설치 파일·지원 입력·대상 버전 |
| SDK Engine·인터페이스 | 고객 연동 작업대 | 플랫폼별 설치 파일·어플라이언스 호환 버전 |
| Contract & Document·이 안내서 | 연동 설계 및 오프라인 설치 | 제공된 템플릿·문서 버전 |
| 필요한 일 | 안내서 | 확인할 결과 | 그 결과만으로 증명되지 않는 것 |
|---|---|---|---|
| Pack 후보 준비 | Builder | 후보 식별자와 검증 결과 | 승인·사용 권한·실행 |
| 소스 아키텍처 파악 | GAPE | 리비전에 묶인 관찰 결과와 한계 | 실제 실행 동작·권한 |
| 외부 연동 계획 | Integration Helper | 타입이 정해진 준비 상태와 다음 조치 | 제공자 연결·기능 등록 |
| 지원 SDK 확장 경로 확인 | SDK Engine과 인터페이스 | 제공된 SDK로 생성한 로컬 후보·다섯 단계·패키지 신원 | 실제 API 연결·등록·Work 실행 권한 |
| 작업과 대상 설명 | Contract & Document | 소스 문서와 공급자가 게시한 대상 참조 | 새 제품 Contract·실제 요청 |
Non-SI 설치 세트에서는 고객이 Start_Setup.html에서 이 안내서까지 온라인 환경과 오프라인 환경 모두에서 이동하고, 어플라이언스·고객 워크스테이션 플랫폼·Builder·GAPE·Integration Helper·SDK 인터페이스 또는 Engine·Contract & Document 템플릿의 정확한 설치 구성요소를 확인할 수 있어야 합니다. 하나의 버전 세트 안에 플랫폼별 설치 파일을 분리해 제공할 수 있지만, 각 항목의 지문·호환성·선행 조건·설치 담당자를 표시해야 합니다. 해당 릴리스에서 제공되지 않는 항목은 그 사실과 대체 절차를 분명히 안내합니다. 문서 링크나 과거 구현만으로 설치 가능한 제품을 대신하지 않습니다.
SDK Engine은 고객의 연동 작업대에 별도로 설치합니다. 해당 운영체제용 설치 파일, 지원 어플라이언스 버전과 설치·제거 방법은 SDK Engine 안내서와 전달 목록에서 확인하십시오.
받은 파일이 목록과 다르거나 서명 검증이 실패하면 설치를 멈추고 공급자의 지원 경로에 문의하십시오. 플랫폼별 목록에 있는 검증된 파일만 설치합니다.
릴리스·구성요소 버전, 고객·설치 신원, 입력 리비전 또는 후보 ID, 표시된 상태·사유, 마지막으로 증명된 단계와 다음 조치를 기록하십시오. 개인키·자격 증명·고객 내용·원문 프롬프트·내부 엔지니어링 내보내기는 제외합니다. 신원·서명·권한·상태 무결성이 다르면 중지합니다.
온라인 환경은 승인된 네트워크·제공자 경로를 사용하는 구성이고, 폐쇄형 온프렘은 필요한 설치 자산·모델·문서 등을 사전에 반입하는 구성입니다. 어느 쪽도 이 안내서가 제품의 기본값으로 고정하지 않습니다. SDK의 선택 Rust 의존성 세트는 SDK 어댑터 빌드의 Rust 범위를 준비하며 어플라이언스 이미지·모델 가중치·제공자 자격 증명·모든 OS 개발 도구를 대신하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 어플라이언스 | 같은 릴리스 이미지·서비스 준비·고유 설치 신원 | 첫 설치는 용례 1, 준비 문제는 사례 A, 이전 상태 흔적은 사례 J를 사용합니다. |
| PackrGUI·헤드리스 | 각 경로의 플랫폼 파일·인증·같은 설치 ID | 용례 3에서 두 경로를 별도로 확인하고 접속 문제는 사례 C로 분리합니다. |
| Builder·추가 Pack | 정확한 후보·검증·승인·사용 권한·사전 조건 | 지원 Pack을 먼저 확인합니다. 새 후보는 용례 4, 거부는 사례 H, 실제 실행은 용례 5입니다. |
| GAPE | 승인 매니페스트·소스 리비전·공개 등급 | 현재 리비전의 관찰을 검토하고 미확인 동적 동작은 별도 증거로 확인합니다. |
| Integration Helper·소스 Document | 전체 요청·게시 대상·매핑·각 단계 판정 | 문법·발견·정규화·후보 준비를 나누고 승인된 등록 경로가 있을 때만 인계합니다. |
| SDK Engine | OS·컴파일러·선택 의존성·입력·산출물 지문 | 온라인 기존 툴체인 또는 선택 의존성 경로로 후보를 만들고 각각의 검증 범위를 기록합니다. |
클라이언트 업데이트는 해당 클라이언트의 연결·인증·설치 신원을, 런타임 변경은 새 관찰·검증·바인딩을, Pack 변경은 정확한 버전·신뢰·현재 사용 권한·사전 조건을 다시 확인합니다. 변경 전 기록과 복구 대상은 보존합니다. 문제가 생기면 처음 달라진 관찰을 기록하고 그 구성요소의 절차로 돌아갑니다.
추가 Pack은 제공된 릴리스·고객·설치 범위에 맞는 파일과 등록 절차를 사용합니다. 임의 폴더 복사나 후보 파일명 변경으로 등록·승인을 대신하지 않습니다. 처음 적용할 때도 승인된 계획과 후조건 검증·영수증을 확인합니다. 제거·되돌림은 해당 Pack이 선언한 복구 절차와 현재 권한을 따릅니다.
클라우드 콘솔에는 VM이 실행 중으로 보여도 어플라이언스는 아직 초기화 중일 수 있습니다. 클라이언트를 연결하거나 Work를 시작하기 전에 설정 화면에서 제품 준비 상태를 확인하십시오.
새 어플라이언스를 만들었고 클라우드 콘솔은 실행 중입니다. 그러나 PackrGUI 연결은 거부되고 제품 상태는 초기화 중 또는 서비스 준비 안 됨입니다. 이때 클라우드 상태와 제품 상태를 별도로 기록합니다.
이번 릴리스가 packrctl과 정식 로컬 운영 경로를 제공한다면 아래 읽기 전용 명령으로 VM 전원과 제품 준비를 구분해 확인할 수 있습니다. 반환된 준비 상태와 사유를 읽으십시오. health의 0이 아닌 종료 상태는 UNKNOWN이나 NOT_READY일 수 있으며 무작정 VM을 재시작하라는 뜻이 아닙니다.
packrctl status --json
packrctl health --json| 확인 결과 | 다음 조치 |
|---|---|
| 공식 첫 부팅 절차가 아직 진행 중 | 릴리스의 대기·상태 확인 절차를 따르고 Work를 시작하지 않습니다. |
| 첫 부팅은 끝났으나 제품이 준비되지 않음 | 최초 거부 사유와 이미지 ID를 보존하고 지원 경로로 전달합니다. |
| 필요한 초기화 구성요소가 없다고 표시됨 | 고객 VM에 임의 패키지를 추가하지 않고 정확한 릴리스 이미지의 지원 절차를 요청합니다. |
| 제품 준비와 설치 신원까지 확인됨 | 관리자 등록 단계로 진행합니다. |
운영자가 10:00에 새 VM을 만들고 10:02에 콘솔의 실행 중을 확인했지만, 제품 상태가 계속 초기화 중이라고 가정합니다. 이 기록으로 말할 수 있는 것은 VM 전원 상태뿐입니다. 서비스 준비, 관리자 등록 가능, 클라이언트 접속 가능은 각각 아직 확인되지 않았습니다. 이미지 ID와 첫 부팅 시각을 적고 릴리스가 지정한 대기·상태 확인을 한 번 수행합니다. 준비 거부가 지속되면 고객이 게스트 패키지나 초기화 파일을 직접 고치지 않고 지원팀으로 넘깁니다.
| 관찰 | 기록할 결론 | 다음 조치 |
|---|---|---|
| VM 실행 중, 제품 상태 없음 | 제품 준비 미확인 | 공식 준비 상태 확인 |
| 제품 초기화 진행 중 | 진행 중이며 아직 접속 관문 아님 | 릴리스의 대기 기준 적용 |
| 제품 준비 완료 | 서비스 관문 통과 | 새 설치 신원 확인 |
“릴리스 ID [값], 인스턴스 생성 시각 [시간대 포함], VM 상태 [실행 중], 제품 상태 [화면에 보인 그대로], 첫 부팅 단계 [값], 최초 오류 [원문]입니다. 고객 Work는 시작하지 않았습니다.”
고객 데이터나 전체 시스템 로그 대신, 릴리스가 지정한 최소 상태 출력만 전달합니다.
완료: 제품이 이 설치 신원에 대해 서비스 준비를 표시합니다. 중지: 초기화 누락, 상태 무결성 경고, 릴리스 불일치, 반복되는 준비 실패가 있으면 복구 파일 삭제·재설치·서비스 강제 시작을 하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| VM 실행 표시만 있음 | 첫 부팅 완료와 제품 준비 결과의 최신 시각 | 릴리스의 대기·상태 절차를 사용하고 준비 전 관리자·클라이언트 단계를 진행하지 않습니다. |
| 서비스는 응답하나 제품이 미준비 | 실제 제품 준비 사유와 이미지·릴리스 일치 | 부족한 구성요소 또는 초기화 거부 메시지를 보존하고 릴리스 지원 경로로 인계합니다. |
| 준비 상태가 다시 사라짐 | 직전 변경 시각과 처음 확인한 준비 기록 | 상태 변화를 기록하고 현재 준비 결과를 재확인합니다. 과거 준비 화면을 현재 증거로 재사용하지 않습니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 설치 담당자는 새 VM의 전원 상태를 확인한 직후 GUI를 엽니다. GUI는 연결 시간 초과를 보이고 제품의 첫 부팅 화면은 아직 초기화 중입니다. 계정이 틀렸다고 판단하기 전에 제품 준비 상태를 따로 확인해야 하는 상황입니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 동일한 새 설치가 준비 상태를 보이고 신원이 맞으면 관리자 설정으로 진행합니다. GUI 접속은 별도로 확인합니다.
해결되지 않았을 때: 공식 대기 기준을 넘기거나 진행 상태가 멈추면 첫 오류와 마지막 갱신 시각을 보존하여 이미지·배포 담당자에게 인계합니다.
상황: 관리 화면에서 서비스 프로세스는 실행 중인데 제품 건강도는 준비되지 않음으로 표시됩니다. 첫 오류에는 필수 초기화 구성요소 또는 설정을 사용할 수 없다는 설명이 있습니다. 프로세스를 강제로 다시 시작하면 될 것처럼 보이지만 이미지와 제품 준비를 먼저 대조합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 지원 절차 적용 뒤 현재 이미지·설치 신원과 제품 준비 결과를 다시 대조합니다. 서비스 프로세스만 다시 뜬 상태는 종료 기준이 아닙니다.
해결되지 않았을 때: 초기화 원인이 확인되지 않았거나 이미지가 다른 경우 후속 등록·Work를 보류하고 최소 오류·이미지 신원을 인계합니다.
상황: 사용자는 이전에 저장한 준비 완료 화면을 근거로 서버는 정상이라고 생각합니다. 그 뒤 유지보수나 재부팅이 있었고 오늘의 제품 상태는 아직 읽지 않았습니다. 과거 성공과 현재 관찰을 나누어 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 준비·신원·클라이언트 인증이 각각 확인되면 그 범위만 복구 완료로 기록합니다.
해결되지 않았을 때: 현재 상태를 조회할 수 없으면 과거 화면으로 빈칸을 채우지 말고 미확인 단계와 관리 경로 장애를 인계합니다.
이미지·인스턴스 출처, 생성 시각, 현재 status·health, 초기화 단계, 첫 거부와 마지막 갱신 시각.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: A-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
인스턴스를 교체하거나 설정을 바꾸면 호스트 키가 달라질 수 있습니다. 경고는 목적지의 신원이 아직 확인되지 않았다는 뜻이므로 검사를 끄고 재접속하지 마십시오.
어제 접속한 주소로 다시 연결했는데 SSH 또는 앱이 서버 신원이 변경됨을 알립니다. 사용자는 같은 VM이라고 생각하지만 실제로는 새 인스턴스, 재생성된 키, 잘못된 주소, 또는 확인되지 않은 다른 호스트일 수 있습니다.
| 확인 결과 | 다음 조치 |
|---|---|
| 새 인스턴스이며 독립 경로의 신원이 일치 | 릴리스의 새 호스트 등록 절차를 따릅니다. |
| 같은 인스턴스에서 키만 변경됐다고 보임 | 변경 원인과 현재 키를 독립적으로 확인할 때까지 접속을 멈춥니다. |
| 지문·설치 ID·대상 주소 중 하나라도 불일치 | 신뢰를 갱신하지 않고 지원 경로로 즉시 전달합니다. |
| 독립 확인 경로가 제공되지 않음 | 추측으로 승인하지 않고 중지합니다. |
주소는 그대로인데 접속 도구가 다른 호스트키를 표시했다고 가정합니다. 새 인스턴스가 같은 주소를 재사용했을 수도 있고, 원래 인스턴스에서 키가 다시 생성됐을 수도 있습니다. 경고 메시지만으로 어느 쪽인지 확정할 수 없습니다. 접속을 멈춘 상태에서 관리 콘솔의 인스턴스·디스크 신원과 릴리스가 제공하는 독립 인증 경로의 현재 키를 대조합니다. 둘 중 하나라도 확인되지 않으면 저장된 신뢰 항목을 지우거나 교체하지 않습니다.
| 확인한 사실 | 아직 확인되지 않은 것 |
|---|---|
| 주소가 이전과 같음 | 서버가 같은 인스턴스인지 |
| 공개키 경고가 발생함 | 정당한 키 교체인지 |
| 콘솔의 인스턴스 ID가 일치함 | 접속 채널의 공개키가 그 인스턴스의 것인지 |
“릴리스 ID [값], 예상 설치 ID [값], 접속 대상 [공식 별칭], 경고 시각 [시간대 포함], 경고 유형 [원문], 인스턴스 교체 여부 [확인 결과]입니다. 경고 뒤 연결은 진행하지 않았습니다.”
완료: 현재 호스트 신원, 설치 신원, 공식 접속 대상이 독립 증거와 일치합니다. 중지: 신원 차이가 해소되지 않으면 호스트 검사 해제, 경고 무시, 저장된 키 임의 삭제·교체를 하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 같은 주소인데 키가 달라짐 | 인스턴스 교체 여부와 독립적으로 확인한 현재 호스트 지문 | 접속을 멈추고 신뢰 담당자가 현재 신원을 검증한 뒤 승인된 갱신 절차를 적용합니다. |
| 호스트는 맞는데 설치 ID가 다름 | 호스트 신원과 제품 설치 신원의 별도 기록 | 원하는 설치를 다시 확인하고 다른 고객·설치의 상태를 사용하지 않습니다. |
| 복제 후 두 VM의 신원이 같음 | 이미지 출처와 두 인스턴스 생성 기록 | 복제 상태를 보존하고 사례 J로 인계합니다. 키나 ID를 직접 편집하지 않습니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 운영자가 VM을 교체했고 클라이언트는 어제와 같은 주소로 접속합니다. 경고에는 서버 키가 달라졌다고 표시됩니다. 주소 재사용은 가능한 설명이지만 접속 채널의 현재 신원이 검증된 것은 아닙니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 호스트와 제품 설치 신원이 모두 예상 값과 일치해야 접속 단계로 돌아갑니다.
해결되지 않았을 때: 독립 지문이 없거나 불일치하면 신뢰 기록 삭제·검사 해제 없이 보류하고 신원 담당자에게 인계합니다.
상황: 북마크나 클라이언트 프로필의 별칭은 맞아 보이는데 연결된 제품은 예상 설치가 아닙니다. 서버 키가 유효하더라도 원래 작업 대상이 잘못 선택됐을 수 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 올바른 대상에 인증됐다는 현재 기록을 확인하면 원래 절차를 계속합니다.
해결되지 않았을 때: 공식 엔드포인트와 설치 신원이 연결되지 않으면 접근을 중단하고 주소·신원 담당자가 확인합니다.
상황: 정당한 키 갱신을 한 번 확인했는데 이후 같은 인스턴스에서 다시 경고가 납니다. 재부팅이나 설정 변경이 있었다는 설명만으로 반복 갱신을 승인하지 않습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 담당자가 현재 호스트·설치와 변경 이력을 확인한 뒤 지정한 접속 경로만 재확인합니다.
해결되지 않았을 때: 원인 미확인의 반복 키 변경은 사용자 설정 정리로 처리하지 않고 신원 문제로 인계합니다.
예상 대상 별칭, 경고 시각, 인스턴스 교체 여부, 독립 호스트 지문 확인 여부, 제품 설치 신원 일치 여부.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: B-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
시간 초과와 로그인 거부는 확인할 지점이 다릅니다. 시간 초과는 네트워크나 서비스 준비 상태를, 서버에 도달한 뒤의 거부는 인증이나 접근 범위를 먼저 확인하십시오.
PackrGUI가 연결을 못 합니다. 한 번은 연결 시간 초과, 다음에는 로그인 거부가 보입니다. 앞의 오류는 도달성 또는 준비 상태이고, 뒤의 오류는 인증 또는 신원 범위일 수 있습니다. 두 메시지를 별개로 기록합니다.
| 화면/현상 | 우선 확인 | 안전한 다음 단계 |
|---|---|---|
| 부팅 직후 시간 초과 | 서비스 준비와 공식 네트워크 경로 | 릴리스의 대기·상태 절차 |
| 주소에 도달하지만 로그인 거부 | 계정명·인증 방법·허용 범위 | 현재 계정의 관리자 또는 지원 경로 |
| 로그인 성공, 제품은 미인증 | 앱의 고객·설치 신원과 세션 상태 | 제품 거부 사유 보존 |
| 인증 후 다른 고객/설치가 보임 | 신원 불일치 | 즉시 사용 중단 |
문제가 해결되면 서비스 준비 → 도달성 → 인증 → 제품 설치 신원을 다시 순서대로 확인합니다. 지원 요청에는 첫 오류와 이후 오류를 각각 원문·시각으로 적고, 접속 대상은 공개 가능한 공식 별칭으로만 적습니다. 암호, 토큰, 개인키를 보내지 않습니다.
완료: 인증된 클라이언트가 예상 고객·설치 신원을 보여 줍니다. 중지: 신원 불일치나 인증 경로 미확인은 다른 계정·키를 빌리거나 호스트 검사를 끄는 방식으로 넘기지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 연결 시간 초과 | 서비스 준비·대상 주소·승인된 네트워크 경로 | 어느 구간까지 도달했는지 기록하고 주소·정책 담당자가 확인합니다. |
| 신원 또는 TLS 경고 | 요청 대상과 독립적으로 확인한 서버 신원 | 인증 재시도보다 먼저 신원을 검증하고 검증 옵션을 끄지 않습니다. |
| 서버 도달 뒤 인증 거부 | 사용 계정·인증 방식·세션 유효기간·설치 범위 | 제품이 지정한 현재 계정의 인증 절차를 사용하고 정확한 거부를 기록합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 같은 사용자 계정으로 어제는 접속됐지만 오늘은 응답이 없습니다. 로그인 화면조차 나오지 않았습니다. 이때 암호 오류를 가정하기보다 서버 준비와 승인된 경로를 순서대로 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 같은 승인 경로로 응답·인증·신원이 확인돼야 연결 복구로 기록합니다.
해결되지 않았을 때: 어느 경로에서 멈추는지 확인할 수 없으면 마지막 도달 지점과 시간 초과를 네트워크 담당자에게 인계합니다.
상황: GUI에서 서버 신원은 확인되지만 로그인 거부가 나오고 헤드리스 조회도 현재 계정에서는 거부됩니다. 네트워크가 응답했다는 사실과 세션이 유효하다는 사실을 분리합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 사용할 경로의 현재 세션이 인증됐고 올바른 설치를 보여 주면 그 경로의 연결 단계가 끝납니다.
해결되지 않았을 때: 재인증해도 권한 거부가 지속되면 계정 담당자에게 정확한 범위·사유를 인계합니다. 암호·토큰은 보내지 않습니다.
상황: 워크스테이션 GUI는 정상인데 서버의 정기 작업은 접속 거부를 받습니다. GUI 화면을 성공 증거로 복사하지 않고 서비스의 실행 위치와 신원으로 조회합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: GUI 성공과 별도로 헤드리스의 인증·신원·허용 기능을 확인한 경우에만 해당 자동화 경로가 준비됐다고 기록합니다.
해결되지 않았을 때: 서비스 인증이 제공되지 않거나 범위 승인이 없으면 사용자 자격 증명 복사로 대체하지 말고 미제공·미승인으로 인계합니다.
사용 경로, 현재 서버 준비, 시간 초과·신원·인증 중 실패 단계, 세션 상태, 고객·설치 범위.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: C-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
관리자 등록에는 실제 대화형 확인이 필요할 수 있습니다. 스크립트나 파이프로 보낸 값은 거부될 수 있으므로, 관리자 기능을 사용하기 전에 제품의 성공 기록을 확인하십시오.
설치 담당자가 자동화 스크립트에서 관리자 등록을 실행했습니다. 출력에는 사용자 확인이 필요하다는 거부가 있고, 뒤이어 바인딩 위자드는 관리자 범위를 찾지 못합니다. 여기서 임의로 “등록된 것으로 간주”하면 후속 오류를 만듭니다.
| 상태 | 조치 |
|---|---|
| 비대화형 입력 거부, 등록 없음 | 공식 대화형 절차를 진행합니다. |
| 등록은 있으나 다른 설치 ID | 권한을 사용하지 않고 지원팀에 전달합니다. |
| 등록은 있으나 범위가 좁음 | 관리자에게 필요한 범위 변경 절차를 요청합니다. |
| 등록 결과가 읽히지 않음 | 사례 E의 저장소 오류 확인으로 이동합니다. |
“릴리스 [값], 관리자 등록 단계 [값], 입력 방식 [대화형/비대화형], 제품 거부 메시지 [원문], 등록 상태 [없음/있음/확인 불가]입니다. 비밀 입력은 첨부하지 않았습니다.”
완료: 실제 관리자의 제품 역할과 이 설치의 허용 범위가 기록되어 읽힙니다. 중지: 확인 절차를 자동 입력으로 흉내 내거나 OS 관리자 권한을 제품 권한으로 대체하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 파이프 입력에서 거부 | 해당 등록 절차의 대화형 요구와 현재 세션 종류 | 지정된 실제 터미널 또는 Customer Setup UI에서 관리자가 확인합니다. |
| OS 로그인은 되지만 역할이 없음 | OS 계정과 제품 관리자 등록 상태 | 제품 등록 결과를 읽어 확인합니다. OS 권한 상승으로 역할을 대체하지 않습니다. |
| 등록 후 범위가 예상과 다름 | 고객·설치·런타임 범위와 유효기간 | 현재 범위를 보존하고 제품의 승인된 변경 절차로 조정합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 설치 스크립트에 관리자 등록 명령을 넣었더니 실제 터미널 또는 사용자 확인이 필요하다는 거부가 나옵니다. 등록 결함으로 단정하기 전에 제공된 절차의 대화형 요구를 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 사용자 확인과 제품의 등록 결과가 모두 있어야 관리자 설정 완료로 기록합니다.
해결되지 않았을 때: 대화형 경로를 사용할 수 없다면 자동 입력·확인 토큰 조작 없이 해당 조건을 담당자에게 인계합니다.
상황: 운영체제 관리 권한으로 로그인한 사용자가 제품 관리 화면에서도 관리자일 것으로 기대합니다. 제품은 현재 설치의 관리자 역할이 없다고 표시합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 설치에 대한 제품 관리자 결과가 확인된 뒤 그 범위 안의 관찰을 수행합니다.
해결되지 않았을 때: 관리자 지정 권한이 없으면 등록을 시도해 넓히지 않고 권한 담당자에게 인계합니다.
상황: 등록 완료 화면을 본 뒤 런타임 연결을 시도했지만 범위 거부가 나옵니다. 실제 기록에는 의도와 다른 고객·설치 또는 제한된 런타임 범위가 들어 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 요청이 기록된 허용 범위 안에 있고 제품이 재검증한 결과가 있어야 진행합니다.
해결되지 않았을 때: 원래 승인 범위를 확인할 수 없으면 기존 기록을 직접 편집하지 않고 보류합니다.
등록 경로·대화형 여부, 현재 설치 신원, 실제 관리자 확인 여부, 제품 역할·범위·유효기간.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: D-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
관리자 등록이 완료돼도 제품이 정책을 읽을 때 접근 거부가 나올 수 있습니다. 등록 성공과 후속 접근 성공을 따로 확인하고 표시된 거부 사유에 따라 조치하십시오.
관리자 등록은 성공으로 보였습니다. 그러나 런타임을 관찰하려는 순간 Permission denied 또는 저장소 접근 오류가 뜹니다. 관리자 권한을 여러 번 다시 등록하기보다 첫 오류를 보존합니다.
| 관찰 | 안전한 조치 |
|---|---|
| 역할 자체가 없음 | 사례 D의 등록 결과를 확인합니다. |
| 역할은 있으나 범위 밖 | 관리자 범위 변경 절차를 요청합니다. |
| 역할은 있으나 저장소 접근 거부 | 사용을 멈추고 릴리스 버전·최초 오류를 지원팀에 전달합니다. |
| 서비스도 준비되지 않음 | 사례 A의 준비 상태부터 확인합니다. |
릴리스·설치 ID, 최초 거부 메시지, 관리자 등록 성공 여부, 서비스 준비 상태, 발생 시각을 보내십시오. 잠금 파일, 내부 데이터베이스, 관리자 정책 원본, 비밀키, 전체 로그는 첨부하지 않습니다.
완료: 제품이 해당 관리자 상태를 읽고 허용 범위 안의 관찰을 정상 처리합니다. 중지: 재등록 반복, 파일 권한 확대, 잠금 파일 삭제, 서비스 계정 변경을 하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 역할 조회 자체가 실패 | 등록 완료 기록과 최초 저장소 오류 | 재등록보다 먼저 최초 오류와 설치 ID를 지원 경로로 전달합니다. |
| 역할은 있으나 요청만 거부 | 현재 요청의 고객·설치·기능 범위 | 역할 존재와 허용 범위를 분리하고 필요한 변경은 담당자가 승인합니다. |
| 업데이트 뒤 접근 오류 | 업데이트 전후 버전과 서비스·설치 신원 | 허용된 복구 안내를 확인합니다. 데이터베이스·잠금·파일 권한을 직접 수정하지 않습니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 관리자 등록은 완료됐지만 이후 정책·상태를 읽는 단계에서 Permission denied가 표시됩니다. 같은 등록을 반복하기 전에 최초 등록 결과와 후속 접근 오류를 따로 보존합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 지원 절차 적용 후 같은 설치에서 관리자 상태를 읽고 허용 관찰이 성공하는지 확인합니다.
해결되지 않았을 때: 내부 저장소 접근이 계속 거부되면 최초 오류와 버전을 인계하고 데이터베이스 원본은 일반 티켓에 첨부하지 않습니다.
상황: 관리자 상태는 정상적으로 읽히지만 특정 런타임 또는 기능 요청만 거부됩니다. 모든 접근 거부를 파일 권한 문제로 묶으면 실제 범위 거부를 놓칠 수 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 허용된 범위의 요청이 성공하면 그 기능까지만 복구 완료로 기록합니다.
해결되지 않았을 때: 범위 승인이 없으면 파일 권한 확대나 서비스 계정 교체로 해결하지 않습니다.
상황: 기존 환경을 업데이트한 뒤 관리자 상태 조회가 실패합니다. 예전 정상 결과는 있지만 업데이트 이후 접근 성공은 아직 없습니다. 수정된 버전·현재 신원·실패 단계를 묶어 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 복구한 버전·현재 설치·정상 조회가 함께 확인돼야 해당 접근 문제가 해결됐다고 기록합니다.
해결되지 않았을 때: 복구 절차가 없거나 상태 무결성 경고가 있으면 작업을 보류하고 최소 오류·변경 내역을 인계합니다.
등록 완료 기록, 최초 접근 거부 단계·시각, 서비스 상태, 현재 역할·범위, 변경 전후 버전.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: E-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
로컬 모델을 찾는 단계와 현재 설치에 바인딩하는 단계는 별개입니다. 모델 별칭이나 런타임 주소를 바꾼 뒤에는 새 바인딩 결과를 확인하고 Work에 사용하십시오.
관리자는 로컬 모델이 설치된 것을 확인했습니다. PackrGUI에는 런타임이 감지됨으로 보이지만 바인딩됨은 아닙니다. 전날 모델 별칭 또는 런타임 주소를 바꿨다면 과거 상태와 현재 관찰을 구별해야 합니다.
| 상태 | 해석과 조치 |
|---|---|
| 감지되지 않음 | 런타임 실행·지원 범위·공식 연결 경로를 확인합니다. |
| 감지됐으나 검증 거부 | 제품 거부 사유를 보존하고 범위 또는 신원 문제를 해결합니다. |
| 검증됐으나 대상 모델이 모호함 | 관리자에게 정확한 모델 선택을 요청합니다. |
| 새 관찰 뒤 바인딩됨 | 설치 ID와 모델 참조를 확인한 뒤 Work 준비로 이동합니다. |
11:00에 런타임 별칭이 바뀌었는데 제품에는 10:30의 바인딩됨 기록이 남아 있다고 가정합니다. 10:30 기록은 변경 전 상태입니다. 11:00 이후 새 감지, Core 검증, 바인딩의 각 시각과 모델 참조가 이어져야 변경 후 자동 재바인딩을 확인할 수 있습니다. 새 감지만 있고 바인딩이 없다면 사례의 분기표로 원인을 좁힙니다.
| 관문 | 관찰 예 | 결론 |
|---|---|---|
| 감지 | 변경 후 새 모델 참조가 보임 | 후보 발견 |
| 검증 | 현재 설치·범위와 일치 | 적용 자격 확인 |
| 바인딩 | 변경 후 새 기록·시각 | 새 런타임 선택 확인 |
이 표의 시각은 가상 예시입니다. 제품이 실제로 반환한 상태·거부 코드를 기록하고, 내부 저장소를 직접 편집하지 마십시오.
“릴리스 [값], 설치 ID [값], 런타임 종류 [공개 가능한 이름], 기대 모델 [이름], 변경 시각 [값], 감지/검증/바인딩 상태 [각각], 거부 메시지 [원문]입니다. Work는 실행하지 않았습니다.”
완료: 현재 관찰과 승인 범위에 연결된 새 바인딩이 제품에 표시됩니다. 중지: 데이터베이스를 직접 고치거나 거부된 이전 바인딩을 복사하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 모델 파일만 존재 | 프로세스·관찰·검증·바인딩 각각의 상태 | 지원 런타임을 준비한 뒤 제품이 새 관찰을 검증했는지 확인합니다. |
| 별칭 변경 뒤 과거 바인딩이 보임 | 관찰 시각과 현재 모델·런타임 참조 | 변경 뒤의 새 관찰과 검증 결과를 확인하고 과거 바인딩을 복사하지 않습니다. |
| 현재 범위 밖이라 거부 | 정확한 거부 사유와 승인 범위 | 관리자가 지원되는 대상과 범위를 결정한 뒤 제품 경로로 재검증합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 운영자는 모델 파일을 준비했으므로 바인딩도 완료될 것으로 기대합니다. 제품에는 현재 런타임 관찰이 없거나 감지 단계만 표시됩니다. 파일 준비·프로세스·제품 관찰을 각각 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 설치의 런타임·모델 참조가 검증·바인딩됐을 때만 바인딩 완료로 기록합니다.
해결되지 않았을 때: 지원 대상이나 관찰 경로를 확인할 수 없으면 바인딩 상태 파일을 직접 만들지 않고 담당자에게 인계합니다.
상황: 모델 별칭을 바꾼 뒤 화면에는 여전히 이전 바인딩이 보입니다. 화면 캐시인지, 새 관찰이 아직 없는지, 새 대상이 거부됐는지를 먼저 구분해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 새 관찰에 묶인 대상과 바인딩이 일치해야 새 환경 적용으로 기록합니다.
해결되지 않았을 때: 새 관찰이 없거나 사유가 미확인이면 이전 바인딩을 근거로 새 Work를 시작하지 않습니다.
상황: 한 환경에 둘 이상의 모델이 있고 제품이 런타임은 감지했지만 자동 바인딩을 적용하지 않습니다. 사용 가능한 첫 모델을 임의로 골라 성공 처리할 수 없는 상황입니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 의도한 단일 대상과 검증된 바인딩이 기록된 뒤 해당 범위의 사용을 계속합니다.
해결되지 않았을 때: 대상 선택 권한이나 지원 조합이 없으면 임의 기본값을 만들어 바인딩하지 않습니다.
현재 런타임·모델 참조, 변경 전후 값, 관찰 시각, 검증 결과·거부 사유, 관리자 허용 범위.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: F-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
로컬 모델 시작 실패는 모델 부재, 자원 부족, 네트워크 확인 실패 등 원인이 다를 수 있습니다. 네트워크 정책을 바꾸기 전에 정확한 메시지와 제공된 오프라인 설정 절차를 확인하십시오.
고객은 오프라인 환경에서 로컬 모델을 쓰려 합니다. 런타임이 모델 다운로드를 기다리거나 메타데이터 확인이 시간 초과됩니다. 또는 모델 시작이 실패하지만 화면만으로 메모리 부족인지 모델 부재인지 구분되지 않습니다.
| 결과 | 다음 단계 |
|---|---|
| 모델 파일이 없음 | 릴리스가 허용한 오프라인 모델 준비 경로를 사용합니다. |
| 지원 자원이 부족하다고 제품이 표시 | 호환성 표와 고객 변경 승인에 따라 자원을 준비합니다. |
| 외부 메타데이터만 시간 초과 | 로컬 모델·바인딩·Work 상태를 별도로 확인하고 정책에 맞는 설정을 적용합니다. |
| 런타임은 실행되나 바인딩 거부 | 사례 F로 이동합니다. |
“릴리스 [값], OS/아키텍처 [값], 모델 [값], 로컬 모델 준비 여부 [값], 실패 단계 [시작/발견/검증/Work], 최초 오류 [원문], 외부 통신 정책 [허용/차단]입니다. 프롬프트와 고객 데이터는 첨부하지 않았습니다.”
완료: 지원되는 로컬 모델이 준비되고 현재 런타임이 검증·바인딩됩니다. 실제 추론과 Work는 별도 확인이 필요합니다. 중지: 요구 사양 미확인, 비승인 인터넷 연결, 외부 추론이 없었다는 근거 없는 주장.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 모델 시작 시 종료 | 지원 모델·아키텍처·메모리·디스크와 실제 오류 | 자원 변경은 조직의 환경 변경 절차로 수행하고 다시 관찰합니다. |
| 폐쇄망에서 다운로드 대기 | 모델이 로컬에 있는지와 사전 반입 목록 | 허용된 모델 준비 경로를 사용합니다. SDK의 Rust 의존성 세트가 모델 파일까지 제공하는 것은 아닙니다. |
| 온라인 확인만 실패하고 로컬 상태는 정상 | 메타데이터 요청·로컬 추론·바인딩·Work의 각각 결과 | 실패한 확인과 성공한 로컬 단계의 증거를 각각 기록하고 정책을 유지합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 모델을 시작하면 곧 종료됩니다. 사용자는 무조건 메모리를 늘리려 하지만 실제 오류는 아직 확인하지 않았습니다. 자원·아키텍처·모델 준비 상태를 함께 확인해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 모델이 지원 조건에서 시작되고 현재 관찰·검증·바인딩까지 확인되면 준비 완료로 기록합니다.
해결되지 않았을 때: 정확한 실패 사유가 없으면 크기 변경·모델 교체를 반복하지 않고 종료 관찰과 지원 조건을 인계합니다.
상황: 폐쇄형 온프렘에 클라이언트와 SDK 의존성 세트는 반입했지만 모델은 없습니다. 런타임은 모델 다운로드를 기다립니다. Rust 의존성이 준비됐다는 사실은 모델 가중치가 준비됐다는 뜻이 아닙니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 필요한 모델이 검증된 로컬 자산으로 준비되고 런타임 바인딩이 확인돼야 해당 준비가 끝납니다.
해결되지 않았을 때: 반입 경로나 권리가 미확인이면 임의 저장소에서 모델을 가져오지 않고 공급·라이선스 담당자에게 인계합니다.
상황: 로컬 모델은 준비돼 있지만 외부 메타데이터 조회가 시간 초과됩니다. 이 한 결과를 전체 로컬 추론 실패 또는 외부 통신이 전혀 없었다는 증거로 사용할 수 없습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 확인한 로컬 단계의 결과만 성공으로 기록하고 외부 조회 실패는 별도로 남깁니다.
해결되지 않았을 때: 통신 범위나 모델 선택을 확인할 수 없으면 무외부 통신·로컬 Work 완료를 주장하지 않고 인계합니다.
OS·아키텍처, 모델·런타임 버전, 요구·현재 자원, 로컬 모델 준비, 최초 종료·외부 조회 상태.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: G-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
Pack Builder는 Pack을 준비하고 검증하도록 돕습니다. 후보 생성, 파일 저장, 화면의 준비 상태, passkey 등록은 각각 별도 상태입니다. 어느 하나도 고객의 Pack 승인·사용 권한·실행 권한을 자동으로 만들지 않습니다.
운영자가 Builder에서 Pack 후보를 만들었습니다. 미리보기와 구조 검사는 통과했지만 PackrGUI의 실행 목록에 나타나지 않거나 Work 요청이 거부됩니다. “Builder에서 만들었으니 실행할 수 있다”는 결론은 성립하지 않습니다.
| 상태 | 다음 단계 |
|---|---|
| 후보의 검증 자체가 실패 | Builder가 표시한 결함을 수정하고 같은 후보를 재검증합니다. |
| 검증됐으나 승인되지 않음 | 릴리스가 정한 Pack 승인 담당자에게 넘깁니다. |
| 승인됐으나 고객 권한이 없음 | 권한 담당자에게 정확한 설치·Pack 범위를 확인받습니다. |
| 승인·권한은 있으나 사전 조건 실패 | 제품의 조건과 환경을 확인한 뒤 안전한 절차로 해결합니다. |
“릴리스 [값], Builder 버전 [값], 후보 ID/버전 [공개 가능한 값], 검증 상태 [값], 승인 상태 [값], 고객 권한 상태 [값], 최초 Work 거부 [원문]입니다.” Pack 소스, 내부 계약 원문, passkey 응답은 첨부하지 않습니다.
완료: 정확한 Pack이 이 고객 설치에 대해 검증·승인·권한 부여됐고 사전 조건을 충족합니다. 중지: 후보를 승인 Pack으로 바꿔 표시하거나 거부된 실행을 우회하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 후보 검증 PASS, 승인 대기 | 같은 후보 리비전·지문에 대한 승인 상태 | 검증 결과를 승인 담당자에게 인계하고 실행 완료로 표시하지 않습니다. |
| 승인됨, 사용 권한 없음 | 현재 고객·설치·Pack 버전에 대한 사용 권한 | 정확한 권한 거부를 담당자가 해결한 뒤 사전 조건을 다시 확인합니다. |
| 실행 전 사전 조건 불일치 | 현재 대상과 계획의 사전 조건 | 대상 상태를 보존하고 지원되는 변경 절차를 사용합니다. 후보 파일 복사로 등록을 대체하지 않습니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: Builder가 후보 검증 PASS를 표시해 사용자가 실행 목록에서 찾습니다. 하지만 정확한 후보 리비전에 대한 승인 기록은 아직 없습니다. 준비와 사용 승인 사이의 단계가 남아 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 정확한 후보에 대한 승인·권한·사전 조건이 확인되면 실행 준비 단계로만 이동합니다.
해결되지 않았을 때: 승인이 없으면 후보를 Pack 폴더로 복사하거나 다른 계정으로 실행하지 않습니다.
상황: 한 설치에서 승인한 Pack을 다른 설치에서도 사용할 수 있을 것으로 기대합니다. 제품은 현재 설치의 사용 권한을 거부합니다. 승인 기록의 존재와 적용 범위를 나누어 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 설치를 대상으로 한 권한과 계획이 확인돼야 해당 Pack의 실행 절차를 진행합니다.
해결되지 않았을 때: 권한 담당자의 확인이 없으면 승인 파일의 이름·설치 ID를 바꿔 재사용하지 않습니다.
상황: 검토자가 승인한 뒤 입력 선언이나 후보 파일을 수정했습니다. 이전 승인 화면은 남아 있지만 새 후보의 지문은 달라졌습니다. 새 바이트가 승인됐는지 다시 확인해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 바이트를 대상으로 한 결과가 확인돼야 새 후보로 진행합니다.
해결되지 않았을 때: 이전 승인을 새 후보에 복사하거나 매니페스트 지문만 바꿔 일치시키지 않습니다.
후보 ID·리비전·지문, 검증 대상, 승인 목적·범위, 현재 사용 권한, 사전 조건과 실제 Work 유무.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: H-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
로컬 런타임이 바인딩돼 있어도 Work가 제출되지 않았을 수 있습니다. 런타임 준비와 Work 완료는 각각 다른 기록으로 확인합니다.
PackrGUI에 런타임 바인딩됨이 보입니다. 운영자는 첫 작업이 완료됐다고 생각하지만 Work 목록에는 결과가 없고 영수증도 없습니다. 또는 작업은 제출됐으나 상태가 대기/중단/롤백입니다.
설치 목록에 packrctl이 있고 해당 설치에 인증됐다면, 상태가 불확실한 Work를 다시 실행하지 말고 조회하십시오. 자리표시자는 반환된 Work ID로 바꿉니다.
packrctl work list --limit 10 --json
packrctl work show "PASTE_RETURNED_WORK_ID" --json허용된 계정의 목록이 비어 있어도 다른 계정이 Work를 제출한 적 없다고 증명되지는 않습니다. 보고서 파일이나 모델 응답은 제품의 타입이 정해진 Work·영수증 기록을 대신하지 못합니다.
| 마지막으로 입증된 상태 | 말할 수 있는 것 | 다음 확인 |
|---|---|---|
| 런타임 바인딩 | 실행 준비의 일부 | Work 제출 여부 |
| Work 제출 | 요청이 접수됨 | 승인·사전 조건 |
| Work 실행 시작 | 실행이 시작됨 | 모델 호출·결과 |
| 결과 검증 완료 | 결과가 검사됨 | 최종 상태와 영수증 |
| 성공 영수증 확인 | 그 Work의 완료 증거 | 설치·릴리스 신원 일치 |
로컬 모델 별칭을 바꾼 뒤 어플라이언스에는 새 BOUND가 보이지만 Work 준비 상태는 UNKNOWN이라고 가정합니다. 설치·릴리스, 바인딩 시각, 권한과 런타임의 별도 상태, 제품이 표시한 정확한 사유, Work ID 유무를 기록하십시오. 준비가 계속 UNKNOWN이면 제출 전에 멈추고 그 값을 지원 경로로 전달합니다. 명령 반복, 상태 파일 수정, 바인딩 기록을 영수증으로 취급하는 방식은 Work 완료를 입증하지 못합니다.
운영자가 모델 시험 질문에 응답을 받고 GUI에서 바인딩됨을 본 뒤 첫 Work 완료라고 보고하려 한다고 가정합니다. 이때 Work ID가 없다면 제출도 확인되지 않았습니다. ID가 있더라도 승인·실행 시작·모델 호출·결과 검증·종료와 영수증을 각각 확인해야 합니다. 아래 표는 자신의 설치에서 수행한 Work에 사용하십시오.
| 확인된 마지막 기록 | 아직 주장할 수 없는 것 |
|---|---|
| 모델 일반 응답 | 해당 Work의 모델 호출 |
| Work ID와 제출 | 승인과 실행 |
| 실행 시작 | 성공 결과와 영수증 |
| 결과 검증 | 최종 성공과 동일 Work 영수증 |
첫 누락 관문을 기록해 지원팀에 전달하십시오. 다른 Work의 영수증이나 수동 파일 생성으로 빈칸을 채우지 마십시오.
“릴리스 [값], 설치 ID [값], Work ID [있으면], Pack/작업명 [공개 가능한 값], 마지막 확인 상태 [값], 최초 거부/누락 [원문], 모델 호출 확인 [예/아니요/확인 불가], 영수증 상태 [없음/있음]입니다.” 프롬프트·결과 원문은 보내지 않습니다.
완료: 승인된 같은 Work의 성공 최종 상태, 검증된 결과와 영수증이 일치합니다. 중지: 바인딩 화면, 추정 호출, 다른 Work의 영수증으로 빈 기록을 채우지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 모델 응답만 있음 | 제품 Work ID·실행 요청·승인 상태의 존재 | 해당 결과를 모델 응답으로 기록하고 제품 Work가 시작됐는지 따로 확인합니다. |
| Work ID는 있으나 종료 상태 없음 | 동일 ID의 현재 상태와 갱신 시각 | 릴리스의 조회·대기 절차를 사용하고 새 Work를 중복 제출하지 않습니다. |
| 영수증이 다른 Work·설치를 가리킴 | Work ID·고객·설치·결과 지문의 일치 | 완료 판정을 보류하고 불일치한 최소 기록을 지원 경로로 전달합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 운영자는 모델 시험 응답과 바인딩됨 화면을 보고 첫 Work가 끝났다고 생각합니다. 제품 Work 목록에는 해당 요청이 없습니다. 모델 시험과 제품 실행을 구별할 필요가 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 실제 Work의 승인·실행·검증·최종 상태·영수증을 확인하기 전에는 첫 Work 완료로 표시하지 않습니다.
해결되지 않았을 때: 제출 권한이나 지원 Pack이 없으면 모델 응답으로 영수증을 만들지 말고 준비 상태를 인계합니다.
상황: Work 제출 후 실제 ID를 받았지만 클라이언트 연결이 끊어졌습니다. 사용자는 같은 요청을 다시 실행하려 합니다. 먼저 반환된 ID로 현재 상태를 조회해야 중복 실행을 피할 수 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 동일 Work의 종료와 결과·영수증이 확인된 뒤 그 결과로만 처리합니다.
해결되지 않았을 때: 조회가 불가능하거나 상태가 미확인이면 다시 제출하지 않고 ID·최초 연결 오류·마지막 상태를 인계합니다.
상황: 공유 폴더에서 결과 파일과 영수증을 찾았지만 여러 실행 결과가 함께 있습니다. 파일 이름이 비슷하다는 이유로 현재 Work의 완료 증거로 사용할 수 없습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 같은 실행의 기록·결과·검증된 영수증이 일치한 경우에만 완료를 기록합니다.
해결되지 않았을 때: 영수증의 ID나 해시를 직접 고쳐 맞추지 않고 현재 Work의 미확인 상태를 유지합니다.
반환된 Work ID, 현재 고객·설치, 마지막 상태·갱신 시각, 결과 지문, 영수증 참조·검증 결과.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: I-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
새로 배포한 VM에는 고유한 설치 신원과 호스트 신원이 있어야 합니다. 첫 설정에서 기존 조직명·관리자·접근 키가 보인다면 사용 전에 원인을 확인해야 합니다.
공식 이미지로 새 고객 VM을 만들었는데 설정 화면에 이전 조직 이름이나 이미 등록된 관리자처럼 보이는 항목이 있습니다. 또는 예상하지 못한 사용자 홈·접근 키·이미 사용된 설치 ID가 보입니다. 이 상태를 “초기 샘플”로 추정하고 계속 작업하지 않습니다.
| 결과 | 조치 |
|---|---|
| 이전 고객·사용자 흔적 또는 중복 설치 ID가 확인됨 | 인스턴스 사용 중지와 지원 경로로 즉시 전달 |
| 이미지 ID가 공식 전달 목록과 다름 | 설치 중단; 공식 이미지 확인 |
| 표시 내용이 예시 데이터인지 불명확 | 데이터에 접근하지 않고 지원팀에 판정 요청 |
| 독립 검증 결과 새 설치 신원이 정상 | 문서에 기록하고 관리자 설정을 새로 진행 |
새 VM에서 의도하지 않은 사용자 홈이나 이전 설치 ID가 보이면, 그것이 비어 있는지 또는 고객 정보가 실제로 들어 있는지 직접 탐색하지 않습니다. 발견 자체가 새 이미지의 신원·접근 상태를 재검토해야 할 신호입니다. Work와 추가 사용자 등록을 중단하고 배포 이미지 ID, 새 인스턴스 ID, 발견 시각, 제품이 표시한 설치 신원만 최소한으로 기록합니다.
| 해야 할 일 | 피해야 할 일 |
|---|---|
| 공식 이미지와 새 인스턴스 출처 확인 | 이전 사용자 파일 내용 열기·복사 |
| 배포 담당자에게 신원 불일치 전달 | 고객 VM에서 임의 삭제 후 사용 재개 |
| 검증된 교체 이미지가 나올 때까지 보류 | 원본 이미지를 직접 재봉인 |
“릴리스 [값], 공식 이미지 ID [값], 새 인스턴스 생성 시각 [시간대 포함], 예상 설치 ID [값], 실제 표시된 신원 종류 [고객/사용자/설치], 최초 발견 화면의 최소 설명 [값]입니다. Work나 추가 등록은 하지 않았습니다.”
다른 고객의 이름·파일 내용·키·전체 디스크 이미지는 일반 지원 티켓에 첨부하지 않습니다.
완료: 공식 담당자가 이미지와 새 설치 신원을 독립적으로 검증하고 사용 재개를 명시합니다. 중지: 고객이 이전 파일을 삭제하거나 키를 바꿔 이미지를 정상으로 표시하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 이전 사용자나 설치 신원 표시 | 서명 이미지 출처·현재 인스턴스·설치 신원 | 사용과 고객 데이터 입력을 중단하고 이미지 담당자에게 증거를 인계합니다. |
| 이전 제공자 연결이 남아 보임 | 표시된 연결 상태와 현재 릴리스의 초기화 요구 | 자격 증명·내부 저장소를 직접 열지 말고 화면의 최소 상태만 보존합니다. |
| 새 VM에서도 동일 현상 반복 | 각 VM의 이미지·생성 시각·고유 신원 | 반복 생성으로 지우려 하지 말고 원본 이미지와 설치 절차를 담당자가 검증합니다. |
처음 거부된 단계와 수정한 항목을 기록하고 그 단계의 현재 결과를 확인합니다. 이전에 검증한 단계는 변경의 영향을 받았을 때 다시 확인합니다. 다음 단계는 필요한 현재 증거가 있을 때만 진행합니다. 지원 요청에는 정확한 버전·시각대 포함 시각·실패 단계·사유·마지막 확인 상태·수정 내용과 재확인 결과를 넣습니다. 예시 표는 실제 원인 확정이나 실행 이력이 아닙니다.
아래 세 사례는 실제 현장에서 마주칠 수 있는 조건을 단계별로 설명한 교육용 현장 시나리오입니다. 예시 상태는 제품의 실제 오류 코드나 고객 장애 이력으로 취급하지 않습니다. 원인은 자신의 설치에서 관찰한 값으로 구별하십시오. 실제 실행 근거가 함께 제공된 기록은 그 기록의 범위에서만 인용합니다.
각 예시에는 상황, 관찰, 구별을 위한 확인·조치, 재개 조건과 해결되지 않았을 때의 인계를 담았습니다. 하나의 현상에 여러 원인이 가능하므로 첫 거부 뒤에 다음 단계를 무조건 수행하지 않습니다.
상황: 새 설치라고 전달받았지만 첫 설정 화면에 예상하지 않은 조직이나 관리자 표시가 있습니다. 예시 데이터일 것이라고 가정해 고객 정보를 입력하기 전에 출처를 확인해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 담당자가 이미지와 새 설치 신원을 독립 검증하고 사용 재개를 명시해야 설정으로 돌아갑니다.
해결되지 않았을 때: 이전 표시를 지우거나 사용자 디렉터리를 삭제해 새 설치처럼 만들지 않습니다.
상황: 팀이 두 VM을 만들었는데 제품 설치 ID가 같습니다. 주소와 인스턴스 이름은 서로 다릅니다. 복제·출처 문제인지 아직 확정되지 않았더라도 두 독립 설치가 맞는지 확인해야 합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 각 새 설치의 고유 신원과 승인된 사용 재개를 확인한 뒤에만 독립 환경으로 사용합니다.
해결되지 않았을 때: 두 환경을 번갈아 사용하며 문제를 숨기거나 기존 승인·권한 파일을 나눠 복사하지 않습니다.
상황: 문제가 있던 VM 대신 새 인스턴스를 만들었는데 같은 이전 상태가 보입니다. 같은 이미지를 여러 번 생성하는 것만으로 원인이 해결되지는 않습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 문제를 가진 입력과 구별되는 검증된 교체 출처, 고유 신원과 재개 결정이 있어야 종료합니다.
해결되지 않았을 때: 기존 Golden·원본 이미지를 사용자 임의로 수정하거나 재봉인하지 않고 원본 증거를 보존합니다.
공식 이미지·인스턴스 출처, 생성 시각, 표시된 신원 종류, 기대 신원 일치 여부, 중단·인계 상태.
원문 상태와 해석을 분리하고, 시각에는 시간대를 포함합니다. 아래는 기록 양식이며 제품 API 요청이나 실제 실행 영수증이 아닙니다.
case: J-[1/2/3]
release / component / OS: [actual values]
observed_at: [actual time and timezone]
last_confirmed_stage: [actual observation]
first_refusal: [minimal original message, no secrets]
changed_item: [actual change or none]
recheck_result: [observed / refused / not run]
next_owner: [authorized role]지원팀에 전체 로그·고객 데이터·키·토큰·passkey 응답을 붙이지 않습니다. 문의 뒤에도 원본 결과를 보존하고, 조치가 권한·신원·배포 범위를 바꾸면 해당 담당자의 정식 절차로 이어갑니다.
전달받은 어플라이언스 이미지를 새 VM으로 배포하고 제품이 만든 설치 신원에 로컬 Appliance Administrator를 등록합니다. 배포 전에 구성요소 목록, 서명 검증 절차, 지원 환경 표와 조직의 배포 승인을 준비하십시오.
설치 담당자가 “VM 상태가 실행 중입니다. 이제 GUI를 연결해도 되나요?”라고 묻습니다. 관리자는 “제품의 첫 부팅과 서비스 준비가 별도로 확인되어야 합니다. 설치 신원도 새로 생성됐는지 확인하겠습니다”라고 답합니다. 이 구분이 첫 번째 관문입니다.
| 단계 | 담당자가 하는 일 | 다음 단계로 가기 위한 증거 |
|---|---|---|
| 전달 확인 | 릴리스 ID, 이미지, 파일 지문과 서명 대조 | 해당 릴리스의 정확한 파일 확인 |
| 새 VM 생성 | 릴리스가 지정한 환경·절차로 새 인스턴스 생성 | 인스턴스와 이미지 ID, 생성 시각 |
| 첫 부팅 | 릴리스의 초기화 완료 기준 확인 | 제품 서비스 준비 상태 |
| 신원 확인 | 고객·설치·호스트 신원을 각각 대조 | 새 설치의 일치하는 신원 |
| 관리자 등록 | 실제 로컬 관리자가 고객·설치·런타임 범위를 검토·승인 | 제품 역할, 범위, 유효기간 |
이 용례의 성공은 정확한 서명 파일, 새 설치 신원, 준비된 서비스, 실제 관리자의 기록된 범위까지입니다. 런타임 바인딩과 Work 영수증은 다음 용례에서 확인해야 합니다. 다른 고객 신원, 이전 사용자 흔적, 상태 무결성 경고가 있으면 사용을 중단하고 이미지 잔여 사례를 따릅니다.
예를 들어 배포 담당자가 09:00에 VM을 생성했고 클라우드 화면에 09:02부터 실행 중이 보이지만, 제품 위자드에는 아직 준비 완료가 보이지 않는다고 가정합니다. 이때 기록에는 VM 생성 시각, 이미지 ID, 제품 상태를 마지막으로 확인한 시각을 분리해 적습니다. 서비스가 준비되지 않은 동안 관리자 등록이나 GUI 인증을 시도해 나온 오류는 첫 부팅 실패의 근거가 아닐 수 있습니다. 릴리스의 대기·상태 절차를 한 번 수행하고, 준비가 계속 확인되지 않으면 사례 A로 넘깁니다.
관리자 등록은 배포 담당자와 권한 소유자가 서로 다른 조직에서도 성립해야 합니다. 배포 담당자는 설치 ID와 이미지 출처를 넘기고, 권한 소유자는 고객·설치·런타임 허용 범위를 실제 제품 화면에서 검토합니다. 이후 읽기 전용 결과에 범위와 유효기간이 표시될 때만 이 단계를 닫습니다.
| 항목 | 기록 예시 | 의미 |
|---|---|---|
| 이미지·릴리스 | [릴리스 ID]와 [이미지 ID] | 정확한 입력을 대조하기 위한 자리 |
| 제품 준비 | [시각]에 준비됨 또는 확인 안 됨 | VM 실행 상태와 별도 |
| 설치 신원 | [설치 ID] | 이후 클라이언트·Work와 대조 |
| 관리자 범위 | [고객/설치/런타임 범위], [만료] | 자동 바인딩의 한계 |
위 대괄호 값은 예시 입력란이며 실제 릴리스 값을 만들어내지 않습니다. 다른 고객 또는 이전 설치의 값이 보이면 다음 단계로 넘기지 마십시오.
운영 인계는 VM 생성자와 제품 관리자 사이에서 이루어질 수 있습니다. 온라인 설치는 승인된 포털·전달 경로에서 파일을 준비하고, 폐쇄망 설치는 동일 세대의 이미지·클라이언트·필요 모델·지문·문서를 반입 전에 준비합니다. 두 환경 모두 실제 신원과 관리자 범위 확인은 설치된 제품에서 수행합니다.
인계 전 같은 설치 ID에 묶인 서비스 준비·관리자 역할·범위·만료와 다음 클라이언트 담당자를 기록합니다. 관리자 등록이 미완료이면 그 상태로 인계하며 런타임·Work를 완료 처리하지 않습니다.
계획한 절차, 실제 수행한 동작, 확인된 결과와 남은 단계를 구분해 기록하십시오. 위 상황은 이해를 위한 예시이며 이 문서 갱신에서 고객 환경의 실행이 이루어진 것은 아닙니다.
고객이 이미 승인한 설치·런타임 범위 안에서 로컬 모델의 별칭 또는 런타임 관찰값이 바뀌었을 때, Core가 새 관찰을 검증해 바인딩을 갱신하는 흐름입니다. 현재 설치 신원, 관리자 범위, 지원 모델과 변경 전 바인딩 상태를 먼저 확보합니다.
운영자가 로컬 모델의 별칭을 바꿉니다. 모델 서버는 실행 중이지만 PackrGUI는 과거 바인딩 시각을 보여 줍니다. 이 시점의 “모델이 응답한다”는 사실만으로 새 모델의 바인딩을 완료했다고 말할 수 없습니다.
| 관찰 항목 | 변경 전 | 변경 후 반드시 다시 확인할 것 |
|---|---|---|
| 고객·설치 ID | 기존 승인 범위 | 같은 설치의 현재 신원 |
| 런타임·모델 참조 | 이전 바인딩 | 새 별칭 또는 모델 참조 |
| 관찰 시각 | 이전 상태 시각 | 변경 이후의 새 관찰 |
| 검증·바인딩 | 기존 상태 | Core의 새 검증과 새 바인딩 |
| Work | 별도 기록 | 새 바인딩 뒤 실행된 Work만 해당 |
감지되지 않으면 런타임 실행·공식 연결 경로를 확인합니다. 검증이 거부되면 바인딩 사례에 따라 범위·신원·모호성을 분리합니다. 지원 요청에는 변경 전후 상태·시각·설치 ID·제품 거부 문구만 전달하고 내부 저장소나 고객 프롬프트는 보내지 않습니다.
현재 변경에 대한 새 관찰과 Core의 새 바인딩이 같은 설치 신원으로 기록돼야 합니다. 이것은 Work 결과 또는 macOS·Windows 자동 바인딩 검증을 뜻하지 않습니다.
예를 들어 10:00에 로컬 런타임의 별칭을 모델-A에서 모델-B로 바꿨다고 가정합니다. 09:40의 바인딩됨 기록은 변경 전의 증거입니다. 운영자는 10:00의 변경 기록과 이후 새 감지 시각을 나란히 놓고, Core가 같은 설치 ID와 승인 범위로 새 모델 참조를 검증했는지 봅니다. 별칭만 변경돼도 여러 후보가 동시에 보이면 임의로 하나를 선택하지 않습니다.
새 바인딩이 나오지 않는다면 단계별로 분류합니다. 런타임 자체가 발견되지 않으면 서비스 준비와 공식 연결 경로를 확인합니다. 발견은 됐으나 범위 밖이면 승인 소유자에게 넘깁니다. 검증은 됐으나 모델 대상이 모호하면 정확한 모델 선택을 요구합니다. 이전 바인딩 화면의 시각만 갱신돼 보인다면 새 바인딩으로 선언하지 않습니다.
| 시각 | 관찰 | 허용되는 결론 |
|---|---|---|
| 09:40 | 모델-A 바인딩 기록 | 변경 전 상태 |
| 10:00 | 별칭 변경 수행 | 환경이 변경됨 |
| 10:03 | 모델-B 발견 | 검증·바인딩은 아직 별도 |
| 10:05 | 같은 설치의 새 검증·바인딩 기록 | 변경 후 바인딩 확인 |
시각과 모델명은 절차 설명용 가상 값입니다. 실제 Work는 해당 바인딩 이후의 별도 기록으로 확인하십시오.
예를 들어 유지보수 창에서 모델 별칭과 런타임 주소 중 하나만 바꿉니다. 변경 전 지원 버전, 바인딩 참조와 마지막 상태를 보관하고 변경 후 새 관찰이 어느 값에 연결됐는지 대조합니다. 온라인 확인 성공이나 로컬 프로세스 재시작만으로 새 바인딩이 적용된 것으로 판단하지 않습니다.
변경 전후 런타임·모델 참조, 관찰 시각, 검증 사유, 적용된 바인딩과 이후 별도로 수행한 승인 Work를 구분합니다. 되돌림도 제품이 다시 관찰·검증한 결과를 확인합니다.
계획한 절차, 실제 수행한 동작, 확인된 결과와 남은 단계를 구분해 기록하십시오. 위 상황은 이해를 위한 예시이며 이 문서 갱신에서 고객 환경의 실행이 이루어진 것은 아닙니다.
목표: 이미 준비된 회사 VM에 내 클라이언트로 연결하고 같은 고객·설치 신원을 확인합니다. 이 실습은 Work를 자동 실행하지 않습니다. 회사에 VM이 아직 없다면 배포 담당자는 설치 안내 1–4절부터 진행하고, 일반 사용자는 설치 신원·준비 상태·접속 자료를 인계받습니다.
호환 클라이언트의 실제 파일·지문·서명 상태, 고객·설치·릴리스 참조, 접속 endpoint와 TLS 서버명, 내 계정·기기 등록 방식, 허용 역할, 등록 만료/갱신 문의 경로를 받습니다. 릴리스가 기기별 프로필을 제공하면 조직의 안전한 전달 경로로 받습니다. 설명 페이지에 비밀키를 붙여넣거나 공통 설치 ZIP에 넣지 않습니다. 자동 등록 포털은 이 릴리스가 실제 제공할 때만 사용합니다.
| OS | 파일 준비와 실행 | 연결 전 확인 |
|---|---|---|
| macOS | 제공 형식이 앱이면 안내된 개인 Applications/Applications 위치에 보관; 설치 패키지면 동봉 절차 사용 | Finder에서 여는 앱과 받은 릴리스가 같은지 확인 |
| Windows | 설치형과 휴대형을 구별; 휴대형이면 실행 파일과 동봉 런타임·리소스 폴더를 함께 유지 | EXE만 다른 폴더로 복사하지 않고 원래 패키지 위치에서 실행 |
| Linux | 제공된 배포판·CPU용 패키지의 안내 사용; 함께 제공된 실행 스크립트/라이브러리 유지 | 다른 배포판용 임의 라이브러리 설치로 대체하지 않음 |
앱이 열리지 않으면 연결 실패가 아니라 앱 기동 단계로 기록합니다. OS의 정확한 경고, 앱 경로·버전·CPU와 동봉 파일을 확인하십시오. 운영체제 보안 설정 해제나 관리자 실행을 일반 해결책으로 사용하지 않습니다.
기대 결과: 실행한 클라이언트의 버전·경로, 같은 고객/설치 참조, 실제 인증 상태를 기록할 수 있습니다. 일반 사용자 등록이나 운영 연결이 해당 후보에서 아직 검증되지 않았다면 그 단계는 미확인으로 남습니다. 성공 화면을 가정해 채우지 않습니다.
막히면: 앱 기동 오류 → 패키지·OS 준비, 시간 초과/인증 거부 → 사례 C, 신원 변경 → 사례 B, 관리자 등록 문제 → 사례 D/E로 이동합니다. 실제 첫 Work는 별도의 첫 Work 용례를 따릅니다.
고객의 워크스테이션에서 GUI로 어플라이언스에 접속하고, 운영 자동화가 필요할 경우 릴리스가 제공한 별도의 헤드리스 경로를 확인합니다. 두 경로는 같은 고객 어플라이언스를 사용하더라도 설치 파일, 인증, 세션, 허용 기능과 결과 증거가 다를 수 있습니다.
운영자는 Mac의 PackrGUI에서 상태 화면을 볼 수 있습니다. 팀은 “그러면 Linux 서버의 헤드리스 작업도 준비됐다”고 말합니다. 이 결론은 검증되지 않았습니다. 각 클라이언트에서 직접 인증·설치 신원·기능을 확인해야 합니다.
| 항목 | PackrGUI | 헤드리스 |
|---|---|---|
| 설치 파일 | 해당 OS의 서명·지문 검증 | 릴리스가 지정한 CLI/서비스 파일 검증 |
| 네트워크 | 공식 어플라이언스 주소·경로 | 해당 경로의 공식 주소·정책 |
| 인증 | GUI에 표시된 현재 세션 | 헤드리스 계정/서비스의 현재 인증 |
| 제품 신원 | 고객·설치 ID 일치 | 같은 고객·설치 ID의 별도 확인 |
| 기능 | 화면에 허용된 기능 | 릴리스가 허용한 명령·작업 범위 |
| 결과 | GUI 상태·기록 | 헤드리스 기록·영수증의 직접 확인 |
packrctl을 제공할 때의 읽기 전용 확인설치 담당자로부터 승인된 로컬 접근 경로를 받은 뒤, 설치 목록에 packrctl이 있는 경우 아래 명령으로 상태와 건강도를 읽으십시오. 권한 있는 어플라이언스 또는 관리 클라이언트에서만 실행합니다. 이 명령으로 GUI 세션을 인증하거나 Work를 승인할 수는 없습니다.
packrctl status --json > headless-status.json
packrctl health --json > headless-health.json셸 종료 상태뿐 아니라 JSON의 준비 상태와 사유를 읽으십시오. UNKNOWN은 READY가 아닙니다. 정확한 전달 목록에 packrctl이 없으면 개발용 바이너리를 가져오지 말고 헤드리스 경로를 미제공으로 기록합니다.
한 경로만 실패하면 성공한 경로의 설정을 복제하기 전에 연결·인증 사례로 실패 지점을 분류합니다. 호스트 신원 경고는 신원 사례에서 즉시 중지합니다.
각 경로의 설치 파일·연결·인증·설치 ID·사용할 기능을 직접 확인한 뒤에만 해당 경로를 검증됨으로 기록하십시오.
플랫폼마다 전달 목록의 설치 파일 이름·서명·지원 버전·연결 방식을 확인하십시오. 설치 후에는 서버 신원, 인증 세션, 일치하는 고객·설치 ID를 기록합니다. 해당 플랫폼의 설치 파일이나 헤드리스 클라이언트가 목록에 없다면 다른 패키지를 사용하기 전에 공급자가 제공하는 지원 경로를 확인하십시오.
Mac의 PackrGUI가 같은 설치 ID를 보여 주지만 서버 자동화 작업은 접속하지 못한다고 가정합니다. GUI의 인증 계정, 토큰 유효기간, 네트워크 경로는 자동화 서비스의 것과 다를 수 있습니다. GUI 화면을 캡처해 헤드리스 인증 성공으로 제출하지 마십시오. 헤드리스가 해당 릴리스의 제공 목록에 있는지부터 확인하고, 있다면 그 경로의 계정·주소·거부 사유를 별도로 기록합니다.
반대로 헤드리스 상태 조회가 성공해도 GUI 화면이 열리고 현재 세션에 같은 권한이 있는지 알 수 없습니다. 두 경로의 마지막 확인 단계가 다르면 가장 뒤처진 경로를 정확히 표시합니다. 예를 들어 GUI는 인증·신원 일치, 헤드리스는 네트워크 도달만 확인으로 적습니다.
| 플랫폼·경로 | 설치 파일·서명 | 연결 | 인증·설치 ID | 바인딩 | 실제 Work·영수증 |
|---|---|---|---|---|---|
| macOS GUI | [확인 값] | [상태] | [상태] | [상태] | [상태] |
| Windows GUI | [확인 값] | [상태] | [상태] | [상태] | [상태] |
| Linux GUI | [확인 값] | [상태] | [상태] | [상태] | [상태] |
| 헤드리스 | [확인 값] | [상태] | [상태] | [상태] | [상태] |
실증 전에는 미확인으로 적습니다. 한 칸의 성공을 다른 운영체제나 경로에 복사하지 마십시오.
예를 들어 데스크톱 GUI는 정상인데 예약 자동화가 거부됩니다. GUI 사용자 세션과 자동화 서비스의 실행 위치·사용 계정·네트워크 경로·설치 범위가 각각 같은지 확인합니다. GUI의 토큰이나 키를 자동화에 복사하지 말고 해당 릴리스가 제공하는 서비스 인증 절차를 사용합니다.
GUI와 헤드리스의 설치 파일·버전·인증 결과·설치 ID·허용 기능·상태 조회 결과를 한 표의 별도 행으로 남깁니다. 어느 한 경로가 미제공이면 그대로 기록하고 실제 Work 영수증은 실행한 경로에 연결합니다.
계획한 절차, 실제 수행한 동작, 확인된 결과와 남은 단계를 구분해 기록하십시오. 위 상황은 이해를 위한 예시이며 이 문서 갱신에서 고객 환경의 실행이 이루어진 것은 아닙니다.
고객이 필요한 기능을 Pack 후보로 준비·검증하고, 정식 권한 담당자가 승인·사용 권한을 별도로 확인할 수 있도록 인계합니다. 기존 Pack으로 해결 가능한지 먼저 확인하며, 새로운 후보를 만들었다는 이유만으로 실행 경로를 열지 않습니다.
Builder 사용자가 “검증 통과 표시가 떴으니 지금 실행하겠습니다”라고 말합니다. 관리자는 “그것은 후보 검증 결과입니다. 고객 설치의 Pack 승인, 사용 권한, 계약 범위, 사전 조건을 각각 확인해야 합니다”라고 답합니다.
| 상태 | 의미 | 확인 담당 |
|---|---|---|
| 후보 작성 | Pack 초안이 존재 | Builder 사용자 |
| 후보 검증 | 선언과 구조를 검사 | 제품 검증 경로 |
| 승인 | Pack이 정식 사용 대상으로 결정 | 승인 권한자 |
| 사용 권한 | 이 고객·설치가 사용할 수 있음 | 권한 담당자 |
| 실행 전 확인 | 계약·범위·사전 조건 충족 | 제품과 작업 승인자 |
| Work 실행·영수증 | 승인된 작업의 실제 결과 | 제품 실행 기록 |
Builder 후보 사례의 검증·승인·권한·사전 조건 분기로 이동합니다. 후보를 직접 배포 디렉터리에 복사하거나 거부된 명령을 다른 계정으로 실행하지 않습니다.
이 용례의 준비 완료는 후보 검증과 정식 승인·사용 권한 상태가 각각 확인됨입니다. 이것은 Work 성공을 뜻하지 않습니다.
Builder에서 후보의 구조 검증이 통과했는데 실행 버튼 또는 Work 제출이 거부됐다고 가정합니다. 이것은 곧바로 제품 고장을 의미하지 않습니다. 후보의 구조·계약 검증, 승인 주체의 판단, 설치별 사용 권한, 실행 시점의 사전 조건은 서로 다른 관문입니다. 어느 관문에서 멈췄는지 제품의 원문 상태로 분류합니다.
예를 들어 후보 검증 PASS와 승인 대기 상태가 함께 표시되면 후보 준비 완료, 실행 권한 없음으로 기록합니다. 승인된 Pack이어도 현재 고객·설치 범위나 사전 조건이 맞지 않으면 이 실행은 진행하지 않습니다. 거부 상태를 바꾸려고 후보 파일이나 정책 저장소를 직접 수정하지 마십시오.
| 항목 | 인계에 필요한 값 |
|---|---|
| 후보 식별 | [후보 ID], [생성 시각], [검증 상태] |
| 계약 범위 | [허용 기능], [대상 환경], [사전 조건] |
| 승인 상태 | [승인 주체], [결정 상태], [결정 시각] |
| 실행 자격 | [고객·설치 ID], [권한 상태] |
대괄호는 실제 제품 기록을 채우기 위한 자리입니다. 검증 PASS를 승인 상태 칸에 복사하지 마십시오.
예를 들어 기존 점검 Pack의 입력을 새 대상에 맞게 변경합니다. 기존 Pack의 지원 범위를 먼저 확인하고, 필요한 후보만 새 리비전으로 생성합니다. 승인 검토를 받은 뒤 후보를 다시 수정했다면 이전 승인과 새 후보를 같은 것으로 취급하지 않습니다.
후보 생성·검증, 승인, 설치별 사용 권한, 사전 조건과 Work 영수증을 각각 별도 상태로 적습니다. 인계에는 실행하지 않은 단계와 다음 권한 담당자도 포함합니다.
계획한 절차, 실제 수행한 동작, 확인된 결과와 남은 단계를 구분해 기록하십시오. 위 상황은 이해를 위한 예시이며 이 문서 갱신에서 고객 환경의 실행이 이루어진 것은 아닙니다.
고객이 지원되는 Pack 또는 릴리스가 지정한 시험 작업 한 건을 제품의 통제된 경로로 실행하고, 같은 설치·Work ID의 최종 결과와 영수증을 확인합니다. 서비스 준비, 인증된 연결, 관리자 범위, 현재 런타임 바인딩이 먼저 확인돼야 합니다.
운영자가 “Qwen이 바인딩됐으므로 첫 Work가 끝났습니다”라고 보고합니다. 검토자는 “Work ID, 실행 승인, 모델 호출, 결과 검증, 영수증이 같은 작업에 연결됐습니까?”라고 확인합니다. 아직 Work를 제출하지 않았다면 보고할 수 있는 상태는 런타임 준비까지입니다.
| 단계 | 확인 질문 | 없을 때 기록할 상태 |
|---|---|---|
| 작업 선택 | 지원 Pack/작업·계약·범위가 맞습니까? | 대상 미확정 |
| 사전 조건 | 환경·권한·사용 권한이 충족됩니까? | 실행 전 거부 |
| 실행 승인 | 실제 계획과 대상에 대한 승인이 있습니까? | 승인 대기 또는 거부 |
| 제출·시작 | 같은 설치에서 Work ID와 시작 기록이 있습니까? | 미제출 또는 미시작 |
| 모델 호출 | 로컬 모델을 쓴다면 그 Work의 호출이 있습니까? | 호출 미증명 |
| 결과 검증 | 결과 상태와 검증 기록이 있습니까? | 검증 대기 또는 실패 |
| 영수증 | 같은 Work ID의 최종 영수증이 있습니까? | 완료 미증명 |
전달받은 릴리스가 packrctl과 CREATE_AUDIT_ARTIFACT 작업을 제공한다면, 이 Work 한 건의 승인과 어플라이언스의 권한·사전 조건을 확인한 뒤에만 아래 예시를 사용하십시오. 키는 승인받은 미사용 값으로 바꿉니다. 이 작업은 로컬 감사 산출물을 만들며 첨부 고객 문서를 감사하거나 Qwen 모델을 호출하지 않습니다.
packrctl work run CREATE_AUDIT_ARTIFACT "create audit artifact" \
"REPLACE_WITH_ONE_UNUSED_APPROVED_KEY" --json > work-run.json
# 반환된 result.work.work_id를 복사합니다. Work ID를 만들지 마십시오.
packrctl work show "PASTE_RETURNED_WORK_ID" --json > work-show.json반환 기록에서 타입 결과·최종 상태·검증·영수증 참조·사람의 최종 인수 상태를 따로 확인하십시오. 종료 코드나 JSON 파일 생성만으로 성공 영수증이 되지 않습니다. 결과가 불확실하면 work run을 다시 내지 말고 원래 요청을 제품이 지원하는 경로로 대조하십시오.
지원 요청에는 릴리스·설치·Work ID, 사용 Pack/작업의 공개 가능한 이름, 마지막 확인 단계, 최초 오류, 영수증 상태만 적습니다. 프롬프트·고객 데이터·원시 결과는 일반 티켓에 넣지 않습니다. 완료: 승인된 같은 Work의 성공 최종 상태, 검증된 결과, 영수증이 함께 확인됩니다.
운영자가 로컬 모델의 응답을 확인하고 “첫 Work 성공”이라고 보고하려 한다고 가정합니다. 먼저 Work ID가 있는지 확인합니다. ID가 없다면 제품에 Work가 접수됐다는 증거부터 없습니다. ID가 있어도 승인, 시작, 모델 호출, 결과 검증, 최종 상태가 각각 기록됐는지 읽습니다. 모델의 일반 응답은 특정 Work에 묶인 호출을 대신하지 않습니다.
예를 들어 로컬 모델 별칭을 바꾼 뒤 GUI에는 새 BOUND가 보이지만 Work 준비는 UNKNOWN일 수 있습니다. 현재 설치가 보여 주는 권한·런타임·Work 준비 상태와 정확한 사유 코드를 기록하십시오. 필요한 준비 상태가 확인될 때까지 Work를 제출하지 말고, UNKNOWN이 계속되면 그 값을 릴리스 지원 경로로 전달하십시오. 아래 표에는 자신의 첫 Work 기록을 채웁니다.
| 관문 | 기록할 값 | 빠졌을 때의 판단 |
|---|---|---|
| 제출·식별 | [Work ID], [제출 시각] | 접수 미확인 |
| 승인·사전 조건 | [결정], [범위] | 실행 권한 미확인 |
| 실행·모델 호출 | [실행 상태], [호출 연결] | 추론 여부 미확인 |
| 결과 검증 | [검증 상태] | 결과 품질 미확인 |
| 종료·영수증 | [최종 상태], [영수증 ID] | 완료 미확인 |
실패·중단·롤백 결과를 영수증 파일의 존재만으로 성공 처리하지 않습니다. 문제를 전달할 때는 처음 빠진 관문을 보고하고 원문 프롬프트와 결과물은 일반 지원 요청에 포함하지 마십시오.
예를 들어 승인된 읽기 작업 한 건을 계획합니다. 실행 직전 동일 설치·Pack·입력·현재 권한과 계획을 확인하고 반환된 실제 Work ID를 보관합니다. 연결 문제로 결과가 늦게 보이더라도 같은 ID의 조회 경로를 사용하며, 결과를 얻기 위해 새 Work를 중복 실행하지 않습니다.
최종 상태, 후조건 검증, 결과 지문, Work 기록과 영수증이 모두 같은 실행을 가리키는지 확인합니다. 실패·롤백·대기·미확인은 각각 기록하고 모델의 독립 응답을 제품 영수증으로 대체하지 않습니다.
계획한 절차, 실제 수행한 동작, 확인된 결과와 남은 단계를 구분해 기록하십시오. 위 상황은 이해를 위한 예시이며 이 문서 갱신에서 고객 환경의 실행이 이루어진 것은 아닙니다.
목표: 해당 릴리스가 제공한 읽기 전용 연습 Pack/후보를 새 리비전으로 준비하고 검증 결과를 읽습니다. 기존 운영 Pack을 수정하거나 서비스 변경 Work를 처음 연습으로 사용하지 않습니다. 제공된 연습 입력이 없으면 아래 목표 작성까지만 진행하고 지원 담당자에게 호환 예제를 요청합니다.
목적: 합성 점검 결과 한 건 / 입력: 제공된 합성 자료 / 출력: 검토용 결과 / 변경: 고객 서비스 변경 없음 / 실패: 선언된 복구 상태 확인을 적고, 제품이 지원하는 입력 필드에 제공 템플릿의 형식으로 입력합니다.예상 산출물: 제품이 반환한 후보 참조와 검증 기록입니다. SDK의 adapter.rs나 GAPE snapshot이 생성될 것으로 기대하지 않습니다. 후보를 제품이 관리한다면 임의 파일 경로를 찾아 복사하는 대신 릴리스의 내보내기 절차를 사용합니다.
다음 연습: 승인된 후보의 실제 사용은 승인·현재 사용 권한·사전 조건이 갖춰졌을 때 첫 Work 용례로 진행합니다. 검증은 통과했지만 승인이 대기라면 이번 실습은 후보 준비/인계 완료, Work 미실행으로 남깁니다. 아래 BLD 사례와 사례 H에서 상태별로 이어갑니다.
아래는 작성 예시이며 Builder API 입력이나 실제 영수증이 아닙니다. 설치된 릴리스의 실제 값을 넣고 검증과 거부를 분리해 기록하십시오.
릴리스: [서명 릴리스 ID]
설치: [고객이 허용한 참조]
후보: [Builder 후보 ID와 리비전]
검증: PASS (구조만)
승인: PENDING
사용 권한: NOT_CHECKED
Work: NOT_STARTED
다음 담당자: Pack 승인 담당자후보가 감사 산출물을 선언하고 구조 검증에서 PASS를 받았는데 Work 제출은 “승인 대기”를 반환합니다. 이 상태는 후보 검증 완료 / 실행 권한 없음으로 기록합니다. 다음 조치는 승인 담당자의 몫입니다. 반복 제출, 다른 계정 사용, Pack 디렉터리로 후보 복사는 상태를 바꾸지 못합니다. 승인 후 사용 권한이 없다면 권한 담당자가 정확한 고객·설치 범위를 확인해야 합니다.
passkey 페이지가 열렸다 Builder로 돌아왔지만 Core에 동일 세션·계획·후보의 검증된 승인이 없습니다. Work는 거부 또는 대기 상태로 유지합니다. 표시된 correlation ID와 릴리스의 자격 증명 등록 상태를 확인하고, passkey 응답 원문을 지원 요청에 넣지 않습니다.
후보 준비는 검증된 후보와 인계 기록까지입니다. 승인된 Pack 사용에는 별도 승인·사용 권한·현재 사전 조건·실제 Work·검증 결과·일치하는 영수증이 필요합니다. 후보 거부 사례와 첫 Work 안내를 참고하십시오.
예를 들어 주간 점검 산출물을 만드는 기존 Pack을 팀의 입력 형식에 맞게 준비한다고 가정합니다. 먼저 기존 승인 Pack의 지원 입력으로 해결되는지 확인합니다. 새 후보가 필요하면 원래 Pack 참조, 변경한 입력 선언, 후보 리비전과 검증 결과를 함께 남깁니다. 승인 담당자는 정확히 그 후보 지문을 검토하고, 운영 담당자는 현재 설치의 사용 권한과 사전 조건을 별도로 확인합니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 후보 수정 뒤 이전 검증 결과만 보임 | 현재 후보 리비전·지문과 검증 대상이 같은지 | 수정된 후보를 해당 검증 절차로 검사하고 새 결과를 승인 요청에 묶습니다. |
| 승인은 있으나 실행이 거부됨 | 승인 목적·후보·설치 범위와 현재 사용 권한 | 현재 거부 사유를 기록하고 해당 범위의 담당자가 해결한 뒤 계획을 재확인합니다. |
| 변경 작업 실패 후 일부 파일이 남음 | 실행 기록의 변경·롤백 상태와 검증 결과 | 현재 상태를 보존하고 릴리스가 정한 복구 절차를 적용합니다. 결과 파일만 삭제해 성공으로 표시하지 않습니다. |
인계 항목: 원본 Pack 참조, 후보 ID·리비전·지문, 변경 목적, 지원 플랫폼, 검증 결과, 승인 상태, 사용 권한 상태, 사전 조건, 롤백 처리와 다음 담당자. 실제 Work가 없으면 후보 준비 완료까지만 기록합니다.
다음은 지원되는 입력·명령·권한 경계를 바탕으로 구성한 교육용 사례입니다. 제품의 실제 상태·사유와 함께 읽고, 자신의 실행 기록 없이 예시의 결과를 성공 이력으로 사용하지 않습니다. 온라인과 오프라인 환경 모두에 적용되는 확인 항목과 선택 의존성 경로에만 해당하는 항목을 구별합니다.
상황: 사용자는 passkey 페이지에서 앱으로 돌아왔으므로 후보가 승인됐다고 생각합니다. 제품에는 같은 후보·계획·세션의 검증된 승인 기록이 보이지 않습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 제품이 정확한 대상의 승인을 확인한 뒤 사용 권한·사전 조건을 별도로 대조합니다.
해결되지 않았을 때: passkey 응답 원문·다른 계정의 자격 증명으로 빈 승인 기록을 채우지 않습니다.
상황: 후보 또는 승인 Pack 작업이 실패했는데 출력 파일 일부가 보입니다. 파일 존재만으로 성공으로 보거나, 파일만 지우고 재실행하기 전에 제품의 실패·롤백 상태를 확인합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 검증된 복구 상태와 이후 승인된 실행의 결과를 구분해 기록합니다.
해결되지 않았을 때: 원본 결과 삭제·수동 성공 표시·다른 경로 실행으로 실패 상태를 숨기지 않습니다.
먼저 받은 파일을 확인합니다. 승인된 snapshot과 뷰어만 받은 사람은 제공된 HTML 뷰어를 브라우저에서 열어 snapshot ID·소스 리비전·공개 등급을 읽고 노드 하나를 선택합니다. 소스나 매니페스트를 새로 만들 필요가 없습니다. 실행 파일과 승인 manifest를 받은 담당자는 아래 로컬 관찰을 진행할 수 있습니다. 일반 소스 Document나 SDK input.json을 GAPE 매니페스트로 사용하지 않습니다.
gape_exe/$gapeExe는 제공된 실행 파일, manifest/$gapeManifest는 실제 승인 매니페스트의 절대 경로로 바꿉니다. 그 매니페스트가 지정한 소스 위치와 리비전도 존재해야 합니다. 새 출력의 부모 폴더만 준비하고 gape-observation-01은 만들지 않습니다. 경로를 추측해 소스 범위를 넓히지 않습니다.
gape_exe="/absolute/path/packr-gape"
gape_manifest="/absolute/path/approved-manifest.json"
gape_output="$HOME/gape-observation-01"
test -f "$gape_exe" && test -f "$gape_manifest" || exit 1
test ! -e "$gape_output" || exit 1
"$gape_exe" snapshot "$gape_manifest" "$gape_output" || exit 1
"$gape_exe" validate-snapshot "$gape_output/gape-architecture-snapshot.json" || exit 1
ls -la "$gape_output"$gapeExe = 'C:\absolute\path\packr-gape.exe'
$gapeManifest = 'C:\absolute\path\approved-manifest.json'
$gapeOutput = Join-Path $env:USERPROFILE 'gape-observation-01'
if (!(Test-Path -LiteralPath $gapeExe -PathType Leaf) -or !(Test-Path -LiteralPath $gapeManifest -PathType Leaf)) { throw 'Executable or approved manifest missing' }
if (Test-Path -LiteralPath $gapeOutput) { throw 'Choose a fresh output path' }
& $gapeExe snapshot $gapeManifest $gapeOutput
if ($LASTEXITCODE -ne 0) { throw 'Snapshot failed' }
& $gapeExe validate-snapshot (Join-Path $gapeOutput 'gape-architecture-snapshot.json')
if ($LASTEXITCODE -ne 0) { throw 'Snapshot validation failed' }
Get-ChildItem -LiteralPath $gapeOutput무엇을 읽나: snapshot 명령의 JSON에는 snapshot ID와 노드·관계·finding 수, execution_authority: NONE이 표시됩니다. finding 수가 0일 것이라고 가정하지 않습니다. 검사 결과와 실제 생성 파일을 보존하고, 동봉된 뷰어가 있으면 그 파일을 엽니다. 뷰어가 없다면 snapshot JSON을 편집기에서 읽습니다. HTML 파일 이름을 임의로 추측하지 않습니다.
짧은 과제: 노드 하나의 이름·소스 리비전·연결된 관계·관찰 한계를 기록합니다. 이전 snapshot과 비교하려면 두 원본을 보존하고 제공된 compare before.json after.json 명령의 지원 여부를 릴리스에서 확인합니다. 관찰 밖의 동작은 추정하지 않습니다. 내부 엔지니어링 snapshot은 외부 공유하지 않고 승인된 PUBLIC_SAFE 투영을 사용합니다.
막히면: 실행 파일 없음은 설치 준비, 소스 경로/리비전 없음은 승인 입력 준비, snapshot 검사 실패는 관찰 검사 단계로 기록합니다. 아래 GAPE-1/2로 이동하며 임의 manifest 작성으로 관찰 범위를 확대하지 않습니다.
연동 담당자가 제안한 작업이 어느 구성요소와 인터페이스에 의존하는지 파악할 때 사용합니다. 해당 릴리스가 GAPE 도구와 승인된 입력 매니페스트를 제공하는지 확인하십시오. 일반 소스 폴더·스크린샷·아키텍처 인포그래픽은 매니페스트가 아닙니다.
packr-gape와 승인된 매니페스트가 있다면 새 출력 폴더에서 packr-gape snapshot manifest.json new-output-folder를 실행합니다. 둘 중 하나가 없다면 지원되는 관찰 절차를 문의하십시오.packr-gape validate-snapshot gape-architecture-snapshot.json으로 생성 결과를 확인합니다. 이는 snapshot의 구조·출처 검사이지 실제 런타임 동작 검증이 아닙니다.UNRESOLVED·STALE은 그대로 이슈로 남기며 뷰어를 고쳐 일치처럼 표시하지 않습니다.아래 명령은 설치 목록에 packr-gape와 조회 권한이 있는 소스용 승인 매니페스트가 모두 있을 때만 사용하십시오. 출력 폴더는 새로 만들어야 합니다. validate-snapshot은 snapshot 검사이며 실행 중인 어플라이언스 검사가 아닙니다.
packr-gape snapshot approved-manifest.json new-observation-folder
packr-gape validate-snapshot new-observation-folder/gape-architecture-snapshot.json실제 릴리스가 생성한 파일명이 다르면 그 이름을 사용합니다. 매니페스트 지문·소스 리비전·snapshot ID·검사 결과와 execution_authority: NONE을 기록하십시오. 실행 파일이나 승인 매니페스트가 없으면 이 경로를 중지하고 이번 릴리스에서 미제공으로 기록합니다.
운영자가 GAPE snapshot에서 PackrGUI와 연동 어댑터 사이의 관계를 봅니다. 이 관계는 STATIC_SOURCE입니다. 실제 고객 런타임은 다른 기능 구성으로 동작할 수 있고 동적 호출은 저장된 소스 관찰 범위 밖일 수 있습니다. snapshot에 표시된 정확한 소스 버전을 기록하고 담당자에게 제공된 Contract와 연결 증거를 확인하십시오. 배포 기록에 “연결됨”이나 “승인됨”이라고 쓰지 않습니다.
snapshot에 인터페이스 연관은 있지만 예상 소유자 규칙이 없거나 다른 리비전의 규칙입니다. GAPE는 UNRESOLVED 또는 STALE을 표시합니다. 매니페스트 신원·snapshot 지문·판정·정확한 리비전을 보존하십시오. 담당자가 Contract와 소스를 별도로 대조해야 하며 그림을 새로 그리는 일은 복구가 아닙니다.
매니페스트, snapshot 검증 결과, 선택한 투영, 리비전, 공개 등급, 관찰 한계와 미해결 판정이 기록되면 관찰이 끝납니다. 연동 등록과 Work는 별도 절차입니다. Integration Helper 또는 Contract & Document 안내로 이어가십시오.
예를 들어 새 연동 요청 전에 담당자가 데이터가 어느 구성요소를 거치는지 검토합니다. 승인된 매니페스트의 저장 리비전을 고정하고 노드 하나와 그 관계를 추적합니다. 관찰 출처와 확인되지 않은 동적 경로를 함께 적고, 다른 리비전의 문서와 비교할 때는 두 리비전을 모두 표시합니다. 운영 장애 원인을 이 그림만으로 확정하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 소스가 바뀌었는데 이전 snapshot을 보고 있음 | snapshot 생성 시점·소스 리비전·매니페스트 지문 | 승인된 새 입력으로 새 출력 위치에 관찰을 만들고 이전 snapshot과 구분합니다. |
| 노드가 보이지 않음 | 매니페스트 범위·제외 규칙·지원 언어와 선택한 필터 | 검색 범위를 확인하고 관찰 범위 밖 또는 미확인으로 기록합니다. 기능 부재로 단정하지 않습니다. |
| 공유 자료에 내부 경로가 포함됨 | 선택한 투영의 공개 등급과 승인된 내보내기 | 공유를 중단하고 PUBLIC_SAFE 자료가 제공되는지 확인합니다. 원본 상세 내보내기를 전달하지 않습니다. |
인계 항목: 소스 리비전, 매니페스트 지문, snapshot 지문, 관찰 범위, 공개 등급, 선택한 노드·관계, 미해결 항목과 다음 확인 담당자. snapshot 검증 결과와 실제 런타임 증거는 별도로 기록합니다.
다음은 지원되는 입력·명령·권한 경계를 바탕으로 구성한 교육용 사례입니다. 제품의 실제 상태·사유와 함께 읽고, 자신의 실행 기록 없이 예시의 결과를 성공 이력으로 사용하지 않습니다. 온라인과 오프라인 환경 모두에 적용되는 확인 항목과 선택 의존성 경로에만 해당하는 항목을 구별합니다.
상황: 담당자가 현재 설계와 다르다고 보고한 그림은 이전 저장 리비전의 snapshot입니다. 현재 소스, 승인 매니페스트와 관찰 결과의 리비전을 먼저 구별합니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 현재 검토 대상 리비전과 검증된 snapshot이 맞으면 그 범위의 관찰 검토를 계속합니다.
해결되지 않았을 때: 매니페스트나 리비전이 미확인이면 그림을 고쳐 일치시키지 않고 해당 관찰을 미확인으로 남깁니다.
상황: 검색에서 구성요소가 나오지 않아 기능이 없다고 생각합니다. 하지만 선택한 필터·매니페스트 제외 규칙·지원 언어에 따라 표시와 관찰 범위가 달라질 수 있습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 해당 리비전과 범위의 관계를 확인한 경우에만 그 관찰을 인용합니다.
해결되지 않았을 때: 소스 근거가 없으면 미구현·기능 없음으로 단정하지 않습니다.
준비물: 버전이 맞는 Helper 실행 파일, 완전한 request.json, 공급자가 게시한 대상 참조. SDK와 Helper는 별도 실행 파일입니다. SDK의 발췌 JSON만 저장해 이 요청을 대신하지 않습니다. SDK 전체 예제를 재사용하려면 그 Helper 릴리스에서도 동일한 대상·envelope를 지원하는지 먼저 확인합니다.
request_id, correlation_id, draft 전체와 그 안의 definition/source/mapping/fixture를 확인합니다. 실제 API 토큰은 넣지 않습니다.helper-first-01은 새 로그 폴더입니다. 첫 명령만 실행하고 결과를 읽습니다.status, reason, lifecycle_stage, next_required_actions, 후보 지문을 확인합니다. next_action이라는 단일 필드가 있다고 가정하지 않습니다. 이 CLI는 타입 거부 결과를 출력하면서 종료 코드 0일 수 있으므로 `$LASTEXITCODE`/종료 코드만으로 다음 단계에 가지 않습니다.DENIED, 구현 필요, 권한 필요 또는 모르는 상태면 해당 결과를 보존하고 다음 조치를 읽습니다. 첫 연습에 r2-submit은 필요하지 않습니다. 요청을 수정할 때는 새 사본·새 로그 폴더를 사용합니다.helper_exe="/absolute/path/packr-integration-helper"
helper_request="/absolute/path/request.json"
helper_logs="$HOME/helper-first-01"
test -f "$helper_exe" && test -f "$helper_request" || exit 1
test ! -e "$helper_logs" || exit 1
mkdir "$helper_logs" || exit 1
"$helper_exe" r2-discover "$helper_request" > "$helper_logs/01-discover.json" 2> "$helper_logs/01-discover.stderr.txt"
helper_exit=$?
cat "$helper_logs/01-discover.json"
cat "$helper_logs/01-discover.stderr.txt"
# helper_exit와 JSON의 status/reason을 별도로 기록합니다.$helperExe = 'C:\absolute\path\packr-integration-helper.exe'
$helperRequest = 'C:\absolute\path\request.json'
$helperLogs = Join-Path $env:USERPROFILE 'helper-first-01'
if (Test-Path -LiteralPath $helperLogs) { throw 'Choose a fresh log folder' }
New-Item -ItemType Directory -Path $helperLogs -ErrorAction Stop | Out-Null
& $helperExe r2-discover $helperRequest 2> (Join-Path $helperLogs '01-discover.stderr.txt') | Out-File -LiteralPath (Join-Path $helperLogs '01-discover.json') -Encoding utf8
$helperExit = $LASTEXITCODE
Get-Content -LiteralPath (Join-Path $helperLogs '01-discover.json') -Raw -Encoding UTF8
Get-Content -LiteralPath (Join-Path $helperLogs '01-discover.stderr.txt')위 파일은 로그이며 그 자체를 새 요청으로 제출하지 않습니다. 후속 결과도 02-normalize, 03-validate, 04-prepare, 05-status처럼 구분해 저장합니다. 예상 연습 결과는 단계 판정과 후보 준비 기록이며 실제 API 연결·등록·Work가 아닙니다. 게시된 대상이 없다면 TARGET_NOT_PROVIDED는 담당자의 진행 기록으로 쓰고, 제품이 실제 출력한 reason과 구분하십시오. 아래 IH-1/2에서 거부와 인계 예를 확인합니다.
| 입력 | 담당자 | 사용 전 확인 |
|---|---|---|
| 소스 Document 또는 제한된 MCP 기록 | 고객 연동 담당자 | 지원 리비전·데이터 최소화 |
| 대상 Contract·기능·어댑터 리비전 | 공급자가 게시한 릴리스 패키지 | 정확한 식별자·호환성 |
| 요청 envelope | 릴리스 절차 | 요청·상관관계 신원과 완전한 draft |
| 등록 승인 | 권한 있는 제품 담당자 | 정확한 후보 지문·목적·고객·설치 범위 |
status.read의 입력 service 문자열과 출력 service·healthy. 실제 토큰이나 고객 응답은 문서에 붙여넣지 않습니다.TARGET_NOT_PROVIDED로 기록하십시오. 비슷해 보이는 표시 이름은 유효한 대상 매칭이 아닙니다.r2-discover, r2-normalize, r2-validate, r2-prepare, r2-status를 제공한다면 request.json으로 이 순서대로 진행합니다. 매 단계의 상태·사유·다음 조치를 보존하십시오.REQUIRES_IMPLEMENTATION scaffold에는 실제 어댑터 구현이 추가로 필요합니다.r2-submit을 사용합니다. 신뢰된 등록 전송 경로가 없는 CLI는 REQUIRES_AUTHORITY를 반환합니다. 정식 등록에는 정확한 후보·목적에 묶인 별도의 유효한 승인이 필요합니다. 등록되어도 Work 바인딩·승인이 자동으로 생기지 않습니다.전달 목록에 Helper 실행 파일과 버전에 맞는 완전한 request.json이 있다면 아래 단계를 하나씩 실행합니다. 각 JSON에서 status·reason·단계·다음 조치를 읽고 진행하십시오. 셸 종료 코드만으로 통과를 판단하지 않습니다. 요청에는 위의 status.read 설명 대신 릴리스가 제공한 지원 대상 참조가 필요합니다.
packr-integration-helper r2-discover request.json > 01-discover.json
packr-integration-helper r2-normalize request.json > 02-normalize.json
packr-integration-helper r2-validate request.json > 03-validate.json
packr-integration-helper r2-prepare request.json > 04-prepare.json
packr-integration-helper r2-status request.json > 05-status.json판정 예시: 발견 결과가 status=PASSED, reason=NONE, lifecycle_stage=DISCOVERED라도 정규화가 DENIED / CONTRACT_INCOMPATIBLE을 반환할 수 있습니다. 두 결과를 모두 보존하고 prepare 전에 멈춰 게시된 올바른 대상을 확보하십시오. 앞 단계가 거부됐는데 다섯 명령을 무조건 연속 실행하지 마십시오.
합성 status.read 문서에 대해 r2-discover가 status=PASSED, reason=NONE, lifecycle_stage=DISCOVERED를 반환합니다. 게시된 대상이 묶이지 않아 r2-normalize는 DENIED / CONTRACT_INCOMPATIBLE을 반환합니다. 소스 문서 구조는 받아들여졌지만 연동은 준비되지 않았습니다. 공급자 또는 연동 담당자에게 정확한 대상 참조를 요청하십시오. Contract ID를 임의로 만들거나 표시 이름만 맞춰 통과시키지 않습니다.
검증된 후보의 제출 결과가 REQUIRES_AUTHORITY입니다. 후보 지문과 요청한 승인 목적을 기록합니다. 권한 담당자가 정확한 후보를 native 등록 경로에서 평가해야 합니다. CLI 반복 실행이나 옵션 추가로 준비 상태를 등록으로 바꿀 수 없습니다.
입력·대상 리비전, 요청 신원, 단계별 타입 결과, 후보 지문, 미해결 문제와 다음 담당자가 기록되면 준비 단계가 끝납니다. 실제 제공자 연결·등록·바인딩·승인된 Work·영수증에는 각각 별도 증거가 필요합니다. 소스 선언은 Contract & Document를 참고하십시오.
예를 들어 서비스 상태를 읽는 소스 Document와 공급자가 게시한 대상 참조를 연결합니다. 첫 시도는 합성 데이터로 준비하고 단계마다 상태·사유·다음 조치를 읽습니다. 정규화가 거부되면 그 뒤 prepare·submit으로 넘기지 않습니다. 입력을 고쳤다면 요청 리비전과 지문을 새로 기록하여 이전 거부와 새 결과를 구별합니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| 발견 PASS 뒤 정규화 거부 | 소스 파싱 결과와 정확한 대상 Contract·어댑터 리비전 | 게시된 호환 대상을 확인하고 변경된 요청을 처음 영향을 받는 단계부터 검증합니다. |
| 필드 매핑이 일부만 채워짐 | required 목록·타입·지원 변환과 누락된 필드 | 미지원 변환은 구현 필요 상태로 보존하고 지원 범위의 선언만 수정합니다. |
| prepare 결과는 있으나 등록은 없음 | 후보 지문·제출 경로·정확한 승인 목적 | 준비 완료와 등록 대기를 구분하고 승인된 등록 담당자에게 인계합니다. |
인계 항목: 전체 요청 지문, 소스·대상 리비전, 요청·상관관계 ID, 각 단계의 타입 결과, 후보 지문, scaffold의 구현 필요 여부, 제출·등록 상태와 다음 담당자. 실제 API 연결 시험은 준비 결과와 구분합니다.
다음은 지원되는 입력·명령·권한 경계를 바탕으로 구성한 교육용 사례입니다. 제품의 실제 상태·사유와 함께 읽고, 자신의 실행 기록 없이 예시의 결과를 성공 이력으로 사용하지 않습니다. 온라인과 오프라인 환경 모두에 적용되는 확인 항목과 선택 의존성 경로에만 해당하는 항목을 구별합니다.
상황: 합성 소스 Document의 read_quality는 발견됐지만 전체 요청은 다른 Contract·어댑터 리비전을 가리킵니다. 발견 PASS 뒤 prepare까지 무조건 실행하면 첫 거부를 놓칩니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 해당 요청이 정규화·의미 검증을 통과한 뒤에만 후보 준비 결과를 확인합니다.
해결되지 않았을 때: 게시된 대상이 없으면 ID·스키마 지문을 만들어 맞추지 않고 대상 미제공으로 인계합니다.
상황: 후보 준비 결과가 만들어졌지만 CLI 제출은 REQUIRES_AUTHORITY를 반환합니다. 로컬 후보 파일을 서버 등록 위치에 복사하면 해결되는 문제가 아닙니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 등록 담당자의 실제 결과를 확인한 경우에만 등록으로 기록하고 Work는 따로 확인합니다.
해결되지 않았을 때: CLI 반복 제출이나 자격 증명 복사로 준비 상태를 등록 상태로 바꾸지 않습니다.
목표: 아래의 완전한 소스 Document를 quality-document.json으로 저장하고 문법을 확인합니다. 이 파일은 소스 선언만 담습니다. SDK/Helper의 전체 요청이나 GAPE 매니페스트가 아닙니다.
{부터 마지막 }까지만 복사합니다. 코드 울타리와 json 표시는 파일에 넣지 않습니다.quality-document.json, 인코딩을 UTF-8로 저장합니다. Word/서식 문서 형식이 아닌 일반 텍스트를 사용하고 .json.txt가 붙지 않았는지 확인합니다. 저장한 파일을 다시 열어 operations.read_quality가 있는지 읽습니다.properties의 resource/component/score와 각 required 목록을 대조합니다. 이 검토와 JSON 파싱은 제품의 의미 검증을 대신하지 않습니다.draft.source에 문서 객체를 넣습니다. 파일 경로 문자열이나 JSON을 이중 인코딩한 문자열을 넣지 않습니다. 대상 참조·매핑·fixture는 제공된 요청에서 별도로 확인하고 Helper 첫 준비 실습으로 이동합니다.document_path="/absolute/path/quality-document.json"
python3 -m json.tool "$document_path"$documentPath = 'C:\absolute\path\quality-document.json'
Get-Content -LiteralPath $documentPath -Raw -Encoding UTF8 -ErrorAction Stop | ConvertFrom-Json -ErrorAction Stop | Format-List
Get-FileHash -LiteralPath $documentPath -Algorithm SHA256기대 결과: JSON 파서는 객체를 표시하고 파싱 오류를 내지 않습니다. 문법 오류라면 줄/열과 쉼표·따옴표·중괄호를 확인합니다. 이 파서는 중복 키나 제품 미지원 스키마 전체를 판정하지 않습니다. 문법 확인 완료 / Helper 의미 검증 미실행으로 기록하고, 실제 Helper 결과가 나왔을 때 별도 추가합니다.
작은 수정 연습: 새 사본에서 입력 이름을 바꾸려면 properties, required, 요청의 명시적 매핑과 지원 대상 영향을 함께 검토합니다. 처음에는 제공된 원본으로 한 번 확인한 뒤 바꾸십시오. DOC-1/2 사례는 이름 불일치와 전체 요청 누락을 다룹니다.
| 산출물 | 예시 필드 | 의미 |
|---|---|---|
| 계획 요약 | “서비스 상태 한 건 읽기” | 사람이 읽는 목표; 파서 입력이 아님 |
| 소스 Document | document_kind: CUSTOM_API | 소스 작업과 입출력 형태의 선언 |
| 대상 참조 | contract_id, contract_revision, adapter_id | 지원되는 공급자 릴리스에서 가져온 값 |
| 완전한 요청 envelope | request_id, correlation_id, draft | 기계 요청; draft.source에 소스 Document 포함 |
| 타입 결과 | status, reason, next_required_actions | 제품 준비 판정; 실행 권한이 아님 |
read_quality는 리소스 이름을 받아 구성요소 이름과 품질 점수를 문자열로 반환합니다. 리소스를 변경하지 않습니다.document_kind는 CUSTOM_API, protocol_revision은 지원되는 값으로 하고 operations 아래에 read_quality를 둡니다. input_schema는 필수 resource 문자열을 가진 object, output_schema는 필수 component와 score 문자열을 가진 object로 선언합니다. 문장 속 필드 이름은 설명이며 완전한 JSON 파일이 아니므로 구두점과 중첩은 아래의 완전한 예시를 사용하십시오.required 목록을 일치시킵니다. 제한된 예시는 지원되는 기본 자료형만 받습니다. 중첩 object·배열·추가 JSON Schema 키워드·중복 키·주석이 묵시적으로 허용되지는 않습니다. 자격 증명이나 실제 운영 응답을 schema의 기본값·설명에 넣지 않습니다.아래 CUSTOM_API 예시는 읽기 전용 read_quality 작업을 선언합니다. 실제 API를 호출하거나 제품 Contract를 만들지 않습니다. JSON을 quality-document.json으로 저장하고 해당 릴리스가 제공한 완전한 요청의 draft.source에 넣은 뒤 호환되는 지원 대상 참조를 지정하십시오.
{
"document_kind": "CUSTOM_API",
"protocol_revision": "1",
"operations": {
"read_quality": {
"input_schema": {
"type": "object",
"properties": {"resource": {"type": "string"}},
"required": ["resource"]
},
"output_schema": {
"type": "object",
"properties": {
"component": {"type": "string"},
"score": {"type": "string"}
},
"required": ["component", "score"]
}
}
}
}python3 -m json.tool quality-document.json > /dev/null
sha256sum quality-document.json첫 명령은 JSON 문법만 확인합니다. macOS는 shasum -a 256 quality-document.json, Windows PowerShell은 Get-FileHash -Algorithm SHA256 quality-document.json을 사용하십시오. 완전한 envelope·대상·매핑의 적합성은 Helper의 타입 판정으로 별도 확인해야 합니다.
소스 Document가 파싱되고 발견 단계에서 read_quality가 받아들여졌지만 요청은 다른 릴리스의 어댑터 리비전을 참조합니다. 정규화 단계는 대상을 거부합니다. 릴리스 매니페스트와 공급자 참조를 대조하고, 승인된 호환 값이 실제로 있을 때만 새 요청의 대상 리비전을 바로잡습니다. 소스 작업 이름만 바꿔 우연히 맞추면 불일치를 숨기게 됩니다.
편집자가 입력 속성 resource를 resource_name으로 바꾸고 required: ["resource"]는 그대로 둡니다. JSON 문법은 유효하지만 선언 의미가 일치하지 않습니다. 속성을 되돌리거나 required 목록을 고친 뒤 같은 로컬 파서와 Helper 검증을 다시 수행하십시오. 문법 검사 통과를 Contract 검증으로 해석하지 않습니다.
소스 Document의 리비전·지문, 게시된 대상 참조, 요청 신원, 타입이 정해진 Helper 결과와 남은 승인 담당자를 보관합니다. 실제 인증·등록·런타임 증거 전에는 “연결됨”, Work와 영수증 전에는 “실행됨”이라고 표시하지 않습니다.
예를 들어 읽기 전용 품질 조회에 출력 필드 하나를 추가하려고 합니다. 사람용 목표, 소스 스키마, 대상 참조와 전체 요청 envelope를 각각 구분합니다. 출력 속성과 required 목록, 실제 합성 응답, 명시적 매핑을 함께 검토하고 지원되지 않는 스키마 확장은 그대로 별도 구현 요구로 남깁니다. 제품이 발행한 Contract를 고객 문서로 대체하지 않습니다.
| 증상 또는 상황 | 분리해서 확인할 사실 | 조치와 다시 확인할 결과 |
|---|---|---|
| JSON 문법은 유효하지만 의미 검증 거부 | 속성·required 일치, 필드 자료형과 지원 스키마 범위 | 문법 검사와 의미 검증을 각각 기록하고 정확히 거부된 선언을 수정합니다. |
| 소스 필드 변경 뒤 매핑 지문이 맞지 않음 | 소스 문서 리비전·스키마 지문·매핑 대상 | 릴리스가 제공한 정규화·검증 절차로 새 요청을 준비합니다. 지문만 임의로 고치지 않습니다. |
| 문서에 실제 토큰이나 고객 응답이 들어감 | 기본값·설명·예제·첨부 파일의 민감 정보 | 공유를 멈추고 합성 자료로 새 입력을 작성합니다. 노출 대응은 조직 절차를 따릅니다. |
인계 항목: 소스 Document 리비전·지문, 요청 envelope 리비전, 게시된 Contract·어댑터 참조, 매핑 규칙, 합성 입력·예상 출력, 문법·의미 검증 결과와 변경 이유. 실제 값이 없는 템플릿과 실행 가능한 전체 요청을 구분합니다.
다음은 지원되는 입력·명령·권한 경계를 바탕으로 구성한 교육용 사례입니다. 제품의 실제 상태·사유와 함께 읽고, 자신의 실행 기록 없이 예시의 결과를 성공 이력으로 사용하지 않습니다. 온라인과 오프라인 환경 모두에 적용되는 확인 항목과 선택 의존성 경로에만 해당하는 항목을 구별합니다.
상황: 입력 속성 resource를 resource_name으로 바꿨지만 required에는 resource가 남아 있습니다. JSON 문법 검사는 통과해도 선언의 의미는 일치하지 않습니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 문법과 의미 검증이 모두 확인된 새 요청을 후속 준비에 사용합니다.
해결되지 않았을 때: 지원되지 않는 스키마 확장은 임의로 허용하지 않고 추가 구현 요구로 남깁니다.
상황: 사용자는 안내서의 짧은 CUSTOM_API 예시만 저장해 Helper 또는 SDK 입력으로 보냅니다. 소스 설명은 맞지만 요청·대상·매핑·합성 응답을 포함한 전체 envelope는 아닙니다.
관찰을 이렇게 나눠 읽습니다.
확인·조치 순서:
다음 단계로 돌아갈 조건: 완전한 요청과 게시된 대상이 지원 범위 안에서 검증됐을 때 후보 준비로 진행합니다.
해결되지 않았을 때: 필수 대상 참조가 없으면 설명용 값을 실제 식별자로 추측해 사용하지 않습니다.
AI를 이용한 설정은 릴리스 설치 → 에이전트 연결 → 실제 불러오기 확인 순서입니다. 도구 전체에 공통 Skill 세트를 사용합니다. 관리자·설정 에이전트가 연결을 준비하고 일반 작업자는 승인된 환경에서 업무 목표를 제시합니다.
이 문서 ZIP에는 매뉴얼·공개 에이전트 지침·참고 코드가 포함되며 제품 실행 파일이나 완성된 OS 설치 파일은 포함되지 않습니다. 사용 가능한 구성요소·형식·실제 경로는 제공된 릴리스 목록을 따르십시오. 아래의 패키지 배치 예시는 해당 설치 파일이 전달되었다는 증거가 아닙니다.
| 실행 위치 | 진입점·용도 | 확인할 결과 |
|---|---|---|
| Linux 어플라이언스 VM | install.sh는 서버 릴리스를 설치하며 setup.sh는 최초 설정·이후 승인된 변경을 제공 네이티브 명령으로 전달합니다. 데스크톱 OS와 관계없이 SSH로 같은 서버에 접속합니다. | 대상 VM·릴리스 신원·서비스 상태·실제 바인딩을 확인합니다. 설치만으로 이를 입증할 수 없습니다. |
| Windows·macOS·Linux 클라이언트 | 제공된 OS 설치 파일·클라이언트 setup 진입점을 사용합니다. MSI/EXE·DMG·DEB는 릴리스 목록에 따른 클라이언트 제공 형식입니다. 서버 설치 파일을 워크스테이션에서 실행하지 않습니다. | OS·CPU·패키지 해시를 확인하고 완전한 로컬 Manuals 폴더와 Part.1을 엽니다. |
| AI 런타임 호스트 | 에이전트가 실제 실행되는 OS에 맞는 네이티브 MCP 어댑터와 공통 Skills를 설치·가져옵니다. TOML은 계획 워크시트입니다. | 실제 프로토콜·도구 응답과 호스트가 읽은 Skill 파일을 기록합니다. 파일 존재만으로는 충분하지 않습니다. |
./packr-agent-mcp --version
./packr-agent-mcp register /absolute/private/setup-request.json검증된 지원 플랫폼에서 실제 제공 바이너리 폴더·개인 경로·승인 입력으로 사용하는 구문입니다. 즉시 실행 가능한 설치 파일이 아닙니다. 호스트가 MCP를 지원하지 않으면 같은 Skills·권한 경계를 유지하며 허용된 공개 CLI 경로를 사용합니다. 임의 터널·셸 콜백을 만들지 않습니다.
MCP 연결: 일치하는 릴리스 어댑터·카탈로그, 개인 설정 요청과 새 설정 결과 폴더를 사용합니다. 생성된 설명자를 런타임에 가져온 뒤 initialize·도구 13개·setup.status를 확인하십시오. 기존 등록은 보존하며 입력 변경·범위 확대에는 새로 검토한 등록을 사용합니다.
release / OS / CPU: [actual values]
adapter and catalog digest: [actual values]
manual path: [actual local path]
registration output: [private reference, never secret contents]
MCP handshake / tool IDs / setup status: [observed or not run]
Skills read by the AI host: [exact names or not proven]
appliance identity and health: [observed or not configured]
first refusal and next owner: [reason code or none]설정 후 다음 순서로 제품을 사용합니다. 정확한 명령과 지원 구성요소는 해당 서명 릴리스 문서를 따르십시오.
Part.1 설치 → Part.2 GAPE → Part.3A Helper 계획 → Part.4 Document·Contract 연결 → Part.3B Helper 검증 → 필요 시 Part.5 SDK·별도 등록 → 필요 시 Part.6 Builder → Part.7 GUI·헤드리스 → Part.8 운영. 기존 승인 Pack으로 해결되면 SDK·Builder 작성은 생략하고 현재 권한·사전 조건을 확인합니다.
순서도·Helper 전후 단계·SDK·Builder 생략 조건 보기영어가 기본 버전이며 한국어를 선택할 수 있습니다. 이전 파일 주소와 절 링크도 계속 사용할 수 있습니다.
단계별 실습·입력·출력·문제 해결
매뉴얼 열기A: 선언 전 계획 · B: 선언 후 검증
매뉴얼 열기단계별 실습·입력·출력·문제 해결
매뉴얼 열기이미 구현·등록된 호환 연동을 쓰면 작성 생략
매뉴얼 열기기존 승인 Pack으로 해결되면 작성 생략
매뉴얼 열기단계별 실습·입력·출력·문제 해결
매뉴얼 열기단계별 실습·입력·출력·문제 해결
매뉴얼 열기이 단일 페이지는 오프라인 묶음에 포함하거나 HTTPS로 제공할 수 있습니다. 서버에 접속하거나 외부 자산을 불러오거나 설정 데이터를 전송하지 않습니다. 온라인 포털은 고객 VM의 실행 권한을 소유하지 않습니다.
릴리스별 설치 파일, 호환성 목록, 지원 경로는 서명된 릴리스와 함께 전달된 문서를 확인하십시오. 문서나 패키지가 없다면 해당 구성요소의 설치 준비는 완료되지 않은 것입니다.
가이드에서 목적을 고른 뒤 해당 Part에서 정확한 도구 단계를 확인합니다. 두 문서는 같은 순서·용어·자료 역할을 사용합니다.
질문을 정하고 범위에 맞는 관찰을 모아 결과를 검토합니다. 보존 기록 독해에는 신규 설치가 필요하지 않습니다.
정확한 심사 전달물과 기준 증거를 연결합니다. Cloud 접근·문서 범위·실제 Google 승인은 각각 구분합니다.
정확한 OS·패키지·네트워크 선택·도구 체인을 준비합니다. 로컬 SDK 준비 요건이 제공된 뒤에만 해당 단축 경로를 사용합니다.
지원 작업을 선택합니다. 소스 문서 준비·전체 SDK 후보·실제 Work 및 보고서 확인을 서로 다른 경로로 구분합니다.
Helper B는 구현·새 Pack 필요 여부를 결정하기 전에 완성된 선언을 확인합니다. 구현·선언 변경 후에는 영향을 받은 지원 검사를 다시 수행하고 별도 구현·등록·Pack 승인 경로를 마친 뒤 사용합니다. 생성 후보는 운영 권한을 부여하지 않습니다.
목표에 필요한 경로만 선택합니다. 보존 PoC 독해는 설치 없이 시작할 수 있습니다. 제공된 로컬 SDK 실습은 Part.1 → Part.5를 따르며 새 GAPE 관찰·어플라이언스 계정이 필요하지 않습니다. 기존 승인 Pack은 현재 준비 요건 확인 후 Part.1 → Part.7 → Part.8을 따를 수 있습니다. 새 연동·Pack 작성은 조건부 전체 순서를 따릅니다.
| Part | 역할과 기대 범위 |
|---|---|
| Part.1 · 설치·초기 연결 | OS 준비·제공 패키지·초기 연결입니다. 설치는 실행된 Work가 아닙니다. |
| Part.2 · GAPE 관찰·비교·공유 | 리비전에 고정된 구조 관찰입니다. 워크시트는 승인된 GAPE 입력 매니페스트가 아닙니다. |
| Part.3 · Integration Helper 사용 | A는 Document 작성 전 계획, B는 완성된 전체 요청 확인입니다. 단계마다 타입이 있는 status·reason을 읽습니다. |
| Part.4 · Contract·Document 작성 | 소스 Document·매핑을 작성하고 제공된 대상 Contract·리비전을 사용합니다. JSON 구문만으로 의미상 호환성이 확인되지 않습니다. |
| Part.5 · SDK Engine 실습·연동 후보 | 로컬 SDK 구현 후보를 생성합니다. 기존 구현·등록·릴리스 호환 연동이 요구를 충족하면 재사용합니다. |
| Part.6 · Builder·추가 Pack 사용 | 새 Pack이 필요할 때 Pack 후보를 준비합니다. 목표·설치 범위에 맞는 기존 승인 Pack은 재사용합니다. |
| Part.7 · PackrGUI·헤드리스 사용 | 현재 권한·사전 조건에 따라 제공 GUI·헤드리스 경로를 사용합니다. 반환된 Work 식별·결과를 확인합니다. |
| Part.8 · 운영·문제 해결·지원 | 동일 Work 산출물·영수증·종결을 비교하며 사람 인수은 실제 기록될 때까지 대기로 유지합니다. |
status.read 소스 전용 예제와 read_quality SDK 실습은 서로 다른 예제입니다. 일치하는 전체 요청을 사용하고 status 소스 파일을 quality SDK 전체 요청으로 제출하지 않습니다. 아래 매핑 값은 설명을 위한 기대값이며 새 실행 캡처가 아닙니다.
| 파일 / 역할 | 입력 | 출력 / 확인 |
|---|---|---|
status-document.jsonstatus.read의 소스 전용 CUSTOM_API 선언입니다. 제공된 전체 준비 요청 안에서 사용합니다. | service: string | service: string·healthy: boolean을 선언합니다. 스키마이며 관찰된 서비스 응답이 아닙니다. |
read-only-custom-api.json / custom-api-01.json유지관리되는 전체 SDK 기준 요청이며 가이드 사본은 같은 JSON입니다. | fixture.response.component = "fixture-component"; score = "97" (문자열) | STRING_TO_INTEGER는 score를 기대 정수 quality_score 97로 매핑합니다. 문서의 SDK 결과는 로컬 후보입니다. |
custom-api-02.jsonfixture 응답 값 두 개만 바꾼 두 번째 전체 SDK 요청입니다. | component = "my-test-component"; score = "88" (문자열) | 기대 매핑 component는 "my-test-component", quality_score는 정수 88입니다. 실제 매니페스트·단계를 확인하며 매핑 소스는 같을 수 있습니다. |
custom-api-score-number.json정상 기준 예제가 아닌 의도적 오류 입력입니다. | 선언된 문자열 스키마에 fixture.response.score = 88 (JSON 숫자) 사용 | 실제 타입 오류 결과를 보존하며 이 예제를 성공 후보로 기록하지 않습니다. |
Worksheet / SDK artifacts / Work reports사람 기록·로컬 컴파일 후보·실제 Work 및 보고서·영수증이라는 서로 다른 산출물 종류입니다. | 해당 도구·현재 타깃을 사용하며 워크시트·이전 결과를 다음 전체 요청으로 제출하지 않습니다. | 실제 입력·버전·후보 또는 Work 식별에 출력을 연결합니다. 파일 존재·종료 0만으로는 충분하지 않습니다. |