필요한 범위의 맥락
GCN·MCL은 로컬 CPU에서 셀·레인·선행 조건·모듈별 변경 범위를 다룹니다. 선택형 Repository 팩은 경량 인덱스와 필요한 모듈의 Markdown을 조회하며 기존 history.html과 원본 해시 체인을 보존합니다.
PoC에서 확인한 VibePackr를 팀이 이미 사용하는 워크벤치에 연결합니다.
기본 설치·Work 실행 흐름과 고객 앱 연동 절차를 구분해 안내하는 하위 섹션입니다.
CALF 예제를 따라 연결한 뒤, 고객 앱에 맞게 MCP·Adapter·SDK 바인딩을 적용합니다.
CALF(Controlled Agent Lifecycle Framework)는 Rust 실행 코어와 Tauri 워크벤치로 구성된 경량 로컬 AI 하네스입니다. 작업 조건·권한 경계부터 실행·검증·복구·기록까지 연결합니다. 실행 기록과 필수 검사 결과를 근거로 완료 여부를 확인하고, 이전 결과와 실패 기록도 보존해 검토와 복구에 활용합니다.
문서화된 CLI·SDK·MCP로 Codex·Antigravity·Claude 등의 에이전트 호스트를 연결하며 특정 AI 모델에 종속되지 않습니다. 반복 작업은 기존 도구와 정해진 절차로 재사용하고, AI는 새로운 판단에 집중하도록 설계했습니다. 불필요한 모델 호출·문맥 로딩·재작업을 줄이는 것이 목표입니다.
현재 참조 클라이언트 · 2026년 11월 11일: Harness 1.8.13·Workbench 1.9.9·SDK 0.2.6입니다. 창 없이 쓰는 하네스와 Workbench는 같은 코어와 기록을 사용하며, 화면을 열어도 별도 실행 엔진이 생기지 않습니다.
Codex·Antigravity는 네이티브 훅으로 연결합니다. Claude CLI와 앱의 로컬 Code 모드는 macOS 어댑터를 사용하며, Windows·Linux 코어 검증과는 별개입니다. 각 호스트의 계정·모델·승인 정책은 유지합니다.
GCN·MCL은 로컬 CPU에서 셀·레인·선행 조건·모듈별 변경 범위를 다룹니다. 선택형 Repository 팩은 경량 인덱스와 필요한 모듈의 Markdown을 조회하며 기존 history.html과 원본 해시 체인을 보존합니다.
Attention·결과 요약·요청 도움으로 다음에 확인할 일을 찾습니다. Task Flow·Git Graph·Diff·Evidence에서 실행과 변경을 살펴보고, CJK 검색·단축키·중앙 Day/Night 테마·모니터 접기로 화면을 정리합니다.
저장된 완료와 현재 판정을 구분합니다. 파일 버전과 필수 검사 근거를 대조하며 UNKNOWN·VIOLATED를 완료로 처리하지 않습니다. 작은 수정은 Light Edit나 외부 에디터로 이어가고 기존 검사 흐름을 유지합니다.
선택형 Tool MCP 경로는 계약·도구 선택·호출 인수·결과를 검사합니다. 검증 범위는 검토된 로컬 stdio 읽기, 기존 호스트 승인 경로를 거친 새 후보 생성, 원래 정책에 정한 로컬 복구입니다. 통제는 CALF가 중재하는 호출에 적용됩니다.
확장을 연결하기 전에 최신 다운로드·호스트 안내·Tool MCP 검증 범위를 확인하세요. 추가 모델·상주 서비스·GPU 제어 연산·멀티 에이전트 스케줄러는 필요하지 않습니다.
PoC 패키지는 AWS·Azure·GCP 또는 자체 인프라의 호환 VM에 설치합니다. 클라우드 마켓플레이스 등록이나 구독은 필요하지 않습니다. 현재 서버 대상은 systemd를 사용하는 Debian 13 amd64/x86_64이며, 고객이 설치 권한·저장소·네트워크를 준비합니다. 다운로드 포털의 Google 로그인은 GCP 사용 조건이 아닙니다. 이는 배포 방식 안내이며 모든 클라우드 구성의 실검증을 뜻하지는 않습니다.
고객이 사용하는 워크벤치는 그대로 두고 VibePackr의 네이티브 기능을 연결합니다. CALF는 로컬 실행 기록과 파일 검수를 담당하는 예시이며, 다른 고객 앱도 같은 경계를 따라 연결할 수 있습니다.
실습은 네이티브 분석과 로컬 보고서 작업이라는 두 연결 단계로 실행되며 AI 에이전트가 필요하지 않습니다. 실제 제품 Work는 보고서 실습 이후 별도의 제품 Work 연결 절차를 따릅니다.
| 인터페이스 | 이 예제의 역할 |
|---|---|
| VibePackr Local MCP | 네이티브 packr-agent-mcp stdio 서버가 등록된 제품 도구를 제공합니다. 참조 Adapter가 이 서버의 클라이언트입니다. |
| CALF Work MCP | calf work-mcp RECORDS로 MCP 호스트에서 CALF 작업을 조회합니다. 작업 제어는 --control로 명시적으로 켭니다. |
| CALF Local Sources MCP | calf local-mcp ROOT는 선택한 로컬 파일을 읽습니다. VibePackr 도구 연결과는 별도입니다. |
| SDK + 런타임 Adapter | SDK는 기존 코어를 호출합니다. 등록된 런타임 Adapter가 파일 후보를 생성하면 코어가 필수 검사를 수행합니다. |
PoC 공통 설치와 작업공간 준비를 마친 뒤 이 절부터 시작합니다. 연결 담당자가 아래 설치별 정보를 한 번 인계하면 사용자는 다운로드·연결·검수를 이어갑니다. 실제 값은 공개 가이드가 아닌 개인 PoC 인계 기록에 보관합니다.
| PoC 인계 항목 | 준비 완료 조건 |
|---|---|
| 네이티브 패키지 신원 | 제공받은 VibePackr 릴리즈·빌드 ID, OS·아키텍처, 신뢰할 수 있는 공급 출처와 카탈로그 해시를 기록하고 해당 패키지의 MCP_SETUP.md를 사용합니다. |
| 개인 연결 정보 | 생성된 descriptor, 검토된 등록 정보, 확인된 실행 파일·descriptor 해시가 동일 패키지와 작업공간을 가리킵니다. |
| 등록된 실습 입력 | 실습할 입력 ID·형식·파일 해시가 등록돼 있고 연결 담당자가 허용된 분석을 지정했습니다. |
| 로컬 실습 위치 | Python 3.10 이상, 새 개인 실습 폴더와 CALF 기록 위치 하나를 정했습니다. 기존 기록·계약·설정은 원래 위치에 유지합니다. |
CALF Workbench와 SDK를 받습니다. 개인 실습 폴더와 기록 위치를 정합니다. 예제에는 Python 3.10 이상이 필요하며 AI 구독이나 로컬 모델은 필요하지 않습니다.
호환되는 네이티브 MCP 실행 파일·카탈로그, 검토된 등록 정보, 생성된 descriptor, 확인된 해시, 허용된 입력 ID를 준비합니다. 이 설치별 파일은 CALF 다운로드에 포함되지 않습니다.
integration-lab/
VibePackr-Workbench-Examples/ # extracted companion
CALF-SDK-0.2.6/ # separately downloaded SDK
private/connection.json # your verified native descriptor pins
capture-01/ # created by capture_analysis.py
binding-01/ # created by bind_report.py prepare
records/ # shared CALF records for this exercise파일 관리자에서 integration-lab과 그 안의 private 폴더를 먼저 만듭니다. 본인만 접근할 수 있는 위치를 선택합니다. 예제가 capture·binding 출력 폴더를 생성하며 기존 폴더는 덮어쓰지 않습니다.
처음에는 새 기록 폴더로 실습합니다. 나중에 기존 작업을 보려면 해당 기록 위치를 정확히 선택합니다. history.html·계약·설정·보존 런타임은 유지하고, 앱 연결을 위해 내부 상태 파일을 복사하거나 편집하지 않습니다.
아래 안내는 현재 배포 중인 클라이언트와 SDK를 사용합니다. 정확한 배포 파일을 확인하고 이전 버전·기록·계약·설정은 보존하세요. 과거 네이티브 연결 검증은 참고 절에서 날짜를 구분해 안내합니다.
https://www.vibepackr.com/poc/workbench/install.md 를 읽어줘.
내 실제 운영체제에서 이 PoC 참조 실습용 CALF 클라이언트(Workbench 1.9.9 또는 Harness 1.8.13, SDK 0.2.6)를 준비해줘.
기존 기록·계약·설정·runtimes는 보존하고 새 폴더에서 다운로드 검증·실제 버전·도움말·SDK import를 확인해줘.
실제 경로·결과와 누락된 준비 사항을 알려줘. 이번 첫 설치에 호스트 설정 변경·모델 호출·기존 작업 실행은 포함하지 마.| 플랫폼 | Workbench 1.9.9 | 실행 조건 |
|---|---|---|
| macOS · ARM64 | ZIP 다운로드 ↗ | Apple Silicon · macOS 14 이상 |
| Windows · x64 | ZIP 다운로드 ↗ | WebView2 설치 필요 |
| Linux · x64 | tar.gz 다운로드 ↗ | glibc · GTK 3 · WebKitGTK 4.1; Debian 13 검증 |
SDK 0.2.6, 릴리즈 SHA256SUMS, SDK-SHA256SUMS도 받으세요. 창 없이 사용한다면 Harness 1.8.13을 선택합니다.
shasum -a 256 CALF-Workbench-1.9.9-macos-arm64.zip
shasum -a 256 CALF-SDK-0.2.6.zip
unzip CALF-Workbench-1.9.9-macos-arm64.zip
unzip CALF-SDK-0.2.6.zip
# Set actual absolute paths after extraction:
CALF="/absolute/CALF-Workbench-1.9.9-macos-arm64/CALF Workbench.app/Contents/MacOS/calf"
SDK="/absolute/CALF-SDK-0.2.6"
EXAMPLES="/absolute/VibePackr-Workbench-Examples"
LAB="/absolute/integration-lab"
export CALF_WORK_HOME="$LAB/records"
"$CALF" --version
# Start from this terminal so this window receives the same records home:
"/absolute/CALF-Workbench-1.9.9-macos-arm64/CALF Workbench.app/Contents/MacOS/calf-terminal"Get-FileHash .\CALF-Workbench-1.9.9-windows-x86_64.zip -Algorithm SHA256
Get-FileHash .\CALF-SDK-0.2.6.zip -Algorithm SHA256
Expand-Archive .\CALF-Workbench-1.9.9-windows-x86_64.zip -DestinationPath .\workbench-199
Expand-Archive .\CALF-SDK-0.2.6.zip -DestinationPath .\sdk-026
# Set actual absolute paths after extraction:
$Calf = 'C:\absolute\CALF-Workbench-1.9.9-windows-x86_64\calf.exe'
$Sdk = 'C:\absolute\CALF-SDK-0.2.6'
$Examples = 'C:\absolute\VibePackr-Workbench-Examples'
$Lab = 'C:\absolute\integration-lab'
$env:CALF_WORK_HOME = Join-Path $Lab 'records'
& $Calf --version
& 'C:\absolute\CALF-Workbench-1.9.9-windows-x86_64\calf-terminal.exe'sha256sum CALF-Workbench-1.9.9-linux-x86_64.tar.gz
sha256sum CALF-SDK-0.2.6.zip
tar -xzf CALF-Workbench-1.9.9-linux-x86_64.tar.gz
unzip CALF-SDK-0.2.6.zip
# Set actual absolute paths after extraction:
CALF="/absolute/CALF-Workbench-1.9.9-linux-x86_64/calf"
SDK="/absolute/CALF-SDK-0.2.6"
EXAMPLES="/absolute/VibePackr-Workbench-Examples"
LAB="/absolute/integration-lab"
export CALF_WORK_HOME="$LAB/records"
"$CALF" --version
"/absolute/CALF-Workbench-1.9.9-linux-x86_64/calf-terminal"아래 예제를 받아 풉니다. 연결 Adapter는 Python 표준 라이브러리만 사용하며 필요할 때 네이티브 stdio 자식 프로세스 하나를 실행합니다. 실제 도구 목록을 확인하고 사용 후 종료하며 HTTP 포트나 상주 서비스를 만들지 않습니다.
예제 내려받기 ↗mcp-server.json과 확인된 SHA-256, 동일 패키지의 packr-agent-mcp SHA-256을 받습니다. descriptor가 참조하는 등록 정보·카탈로그는 원래 개인 경로에 유지합니다.connection.example.json을 private/connection.json으로 복사하고 아래 세 값을 채웁니다. 직접 계산한 해시는 파일 비교용이며 그 자체가 배포자 신뢰를 증명하지는 않습니다.{
"descriptor": "/absolute/private/vibepackr-setup/mcp-server.json",
"descriptor_sha256": "REPLACE_WITH_VERIFIED_DESCRIPTOR_SHA256",
"adapter_sha256": "REPLACE_WITH_VERIFIED_NATIVE_EXECUTABLE_SHA256"
}python3 -B "$EXAMPLES/calf_vibepackr.py" \
--connection "$LAB/private/connection.json" \
--tool vibepackr.setup.status --operation-ref guide:setup-001 \
--request "$EXAMPLES/empty-request.json"py -3 -B "$Examples\calf_vibepackr.py" `
--connection "$Lab\private\connection.json" `
--tool vibepackr.setup.status --operation-ref guide:setup-001 `
--request "$Examples\empty-request.json"python3 -B "$EXAMPLES/calf_vibepackr.py" \
--connection "$LAB/private/connection.json" \
--tool vibepackr.setup.status --operation-ref guide:setup-001 \
--request "$EXAMPLES/empty-request.json"product_result.status: null·product_evidence: false·execution_authority: NONE도 정상적으로 보존할 관측값입니다. appliance 준비 완료나 Work 완료를 뜻하지 않습니다.해당 VibePackr 패키지의 manuals/agent-integration/MCP_SETUP.md를 따릅니다. 새 출력 폴더, GENERIC_STDIO_DESCRIPTOR, 정확한 카탈로그 해시, 작업공간 ID·경로, 허용된 입력 ID·해시·형식을 담은 개인 packr.agent-mcp.setup-request.v1 요청을 준비합니다. packr-agent-mcp register /absolute/private/setup-request.json을 실행하고 등록 정보·descriptor·setup receipt를 보관합니다.
로컬 분석만 할 때는 control-plane·owner socket이 null일 수 있습니다. appliance 작업에는 실제 지원 채널과 런타임 바인딩이 필요합니다. 신원 불일치를 우회하려고 카탈로그를 새로 만들지 않습니다. 네이티브 패키지나 공개된 대상 계약이 없으면 먼저 공급받습니다.
담당자가 제공한 입력 ID를 사용합니다. 완전한 등록 통합 요청에 vibepackr.sdk.analyze를 호출하는 예제입니다. 임의의 파일 경로·프롬프트·토큰을 보내지 않습니다. 원본 응답·호출 ID·연결 관측값을 UTF-8 파일로 저장합니다.
python3 -B "$EXAMPLES/capture_analysis.py" \
--connection "$LAB/private/connection.json" \
--input-id YOUR_REGISTERED_INPUT_ID \
--operation-ref guide:analysis-001 --output "$LAB/capture-01"py -3 -B "$Examples\capture_analysis.py" `
--connection "$Lab\private\connection.json" `
--input-id YOUR_REGISTERED_INPUT_ID `
--operation-ref guide:analysis-001 --output "$Lab\capture-01"python3 -B "$EXAMPLES/capture_analysis.py" \
--connection "$LAB/private/connection.json" \
--input-id YOUR_REGISTERED_INPUT_ID \
--operation-ref guide:analysis-001 --output "$LAB/capture-01"| 확인할 항목 | 의미 |
|---|---|
transport_status | 네이티브 응답 관측 상태이며 업무 성공 판정은 아닙니다. |
product_result.payload.native_return | 분석의 Ok 또는 Err입니다. reason과 null 필드도 보존합니다. |
reconciliation | 새 관측·보존된 캐시 결과·불확실한 작업을 구분합니다. |
product_evidence | 이 Adapter 응답에서는 false입니다. 제품 완료 영수증으로 바꾸지 않습니다. |
intent.json·error.json을 읽고 동일 operation reference를 조회·조정합니다. 폴더나 ID를 새로 만드는 것이 불확실한 네이티브 작업의 반복 실행을 허용하지는 않습니다.다음은 별도의 CALF 보고서 작업입니다. 저장된 네이티브 응답을 입력으로 사용합니다. 런타임 Adapter는 VibePackr를 다시 호출하지 않고 native.json·report.json을 만듭니다. 코어의 7개 검사는 원본 바이트·정확한 보고서 필드·분석 성공·appliance Work 및 승인 주장 부재를 확인합니다.
SATISFIED는 보고서 계약 통과이며 고객 업무 완료를 뜻하지 않습니다.python3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" prepare \
--input "$LAB/capture-01/native-result.json" --output "$LAB/binding-01"py -3 -B "$Examples\bind_report.py" --sdk "$Sdk" `
--calf "$Calf" --records "$env:CALF_WORK_HOME" prepare `
--input "$Lab\capture-01\native-result.json" --output "$Lab\binding-01"python3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" prepare \
--input "$LAB/capture-01/native-result.json" --output "$LAB/binding-01"work-spec.json을 만듭니다. 아직 후보를 실행하지 않습니다.verified: true·outcome: SATISFIED와 명세·검사 해시의 일치를 확인합니다. 작업 접수나 실행기 exit 0만으로 완료되지 않습니다.python3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" run \
--spec "$LAB/binding-01/work-spec.json" --result "$LAB/run-01.jsonl"py -3 -B "$Examples\bind_report.py" --sdk "$Sdk" `
--calf "$Calf" --records "$env:CALF_WORK_HOME" run `
--spec "$Lab\binding-01\work-spec.json" --result "$Lab\run-01.jsonl"python3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" run \
--spec "$LAB/binding-01/work-spec.json" --result "$LAB/run-01.jsonl"출력된 작업 ID와 명세 해시를 보관합니다. bind_report.py ... inspect --work WORK_ID는 현재 기록·파일 신원을 확인하며 전체 검사를 다시 실행하지 않습니다. bind_report.py ... adopt --work WORK_ID --digest MANIFEST_DIGEST로 명시적 채택을 수행합니다. 생략한 공통 인수는 위의 SDK·코어·기록 위치와 같습니다. 전체 조회 명령은 재개 안내에서 확인합니다.
CALF_WORK_HOME으로 Workbench를 열고 Runtime Work를 선택합니다.binding-01/work-spec.json → Add work 후 표시된 실행 동작을 선택합니다. SDK로 이미 실행했다면 Refresh 후 기존 작업을 선택합니다.11월 11일 배포 기능을 정리한 공개용 안내입니다. 터미널 그림은 이 연동 실습의 캡처가 아닌 설명용 구성도입니다. 원본 이미지를 열면 전체 크기로 읽을 수 있습니다.


채택 후에는 현재 outcome과 함께 adoptedValid를 확인합니다. 나중에 파일 변경으로 무효화되어도 adopted 객체에는 과거 선택 이력이 보존됩니다.
work-v1 기록을 사용합니다. 기존 훅 이력과 고급 calf run 상태가 Runtime Work 목록으로 자동 가져오기되지는 않습니다. 작업이 보이지 않으면 먼저 기록 위치를 확인하고 파일을 수동 이식하지 않습니다.생성된 binding-01/work-mcp.json은 실행 descriptor입니다. 사용 중인 호스트의 MCP 설정 방식으로 이름 있는 항목을 추가합니다. 전체 설정 파일이 아니며 SDK가 자동 설치하지 않습니다. CALF Workbench 1.9.9는 임의 외부 MCP 서버 등록 화면을 제공하지 않습니다.
{
"command": "/absolute/path/to/calf",
"args": ["work-mcp", "/absolute/integration-lab/records"]
}Windows에서는 calf.exe 절대 경로와 JSON의 이스케이프된 역슬래시를 사용합니다. 기록 위치는 하나로 맞춥니다. 호스트에 작업 접수·실행·취소·재시도·재검수·채택을 허용할 때만 args에 "--control"을 추가합니다. Adapter 등록은 로컬 API·SDK로 수행합니다.
| 엔드포인트 | 연결 협상과 기능 |
|---|---|
| CALF Work MCP | 2025-11-25; initialize → initialized → tools/list; 기본 조회 도구는 work_list·work_inspect·work_adapters입니다. |
| VibePackr 네이티브 MCP | 참조 클라이언트는 2025-06-18을 요청하고 협상을 확인합니다. vibepackr_sdk_analyze처럼 실제 탐색된 wire 이름을 사용합니다. |
MCP를 지원하는 워크벤치는 네이티브 descriptor를 사용합니다. 로컬 프로세스·API 확장이 가능한 워크벤치는 SDK를 사용합니다. 싱글 에이전트와 공유 기록 위치를 유지하며 별도 에이전트 스케줄러·벡터 DB·상주 모델은 필요하지 않습니다. 얇은 연결 계층은 화면과 ID를 다루고 판정은 각 네이티브 제품이 담당합니다.
import json
from pathlib import Path
from calf_sdk import CalfClient
# Run with the extracted CALF-SDK-0.2.6 on Python's module path.
client = CalfClient("/absolute/calf", "/absolute/records", timeout=35)
spec = json.loads(Path("work-spec.json").read_text(encoding="utf-8"))
accepted = client.work("submit", spec=spec) # frozen; not executed
client.work("step", work=accepted["work"])
result = client.work("inspect", work=accepted["work"])
if result.get("verified") is True and result.get("outcome") == "SATISFIED":
digest = result["manifest"]["digest"]
print("Ready for explicit adoption:", accepted["work"], digest)
# After the user's explicit adoption action:
# client.work("adopt", work=accepted["work"], digest=digest)import {CalfClient} from './CALF-SDK-0.2.6/node/index.mjs';
const client = new CalfClient('/absolute/calf', '/absolute/records');
const result = await client.work('inspect', {work: 'work-<actual ID>'});
console.log(JSON.stringify({
verified: result.verified,
outcome: result.outcome,
manifest: result.manifest,
adopted: result.adopted,
adoptedValid: result.adoptedValid
}, null, 2));
// A transport exception has unknown effects; do not auto-retry a mutation.from calf_vibepackr import Connection
with Connection.from_config("/absolute/private/connection.json") as native:
result = native.call("vibepackr.sdk.analyze", "analysis:stable-001",
{"input_id": "registered-input"})
# Keep these separate in your application:
transport = result["transport_status"]
product = result["product_result"]
reconciliation = result["reconciliation"]
# Persist the complete result, including null and false values.
# No automatic retry and no manufactured PASS/receipt.| 고객 UI 동작 | 연결 대상 |
|---|---|
| 연결 / 기능 새로고침 | 네이티브 descriptor → MCP 협상 → 실제 tools/list. |
| 등록 입력 분석 | 고정 operation reference + 등록 입력 ID → 원본 VibePackr 결과. |
| 로컬 보고서 실행 / 조회 | CALF SDK submit·step·inspect 또는 제어 허용 Work MCP; 동일 기록 위치. |
| 증거 표시 / 채택 | 현재 명세·검사 증거의 유효성 확인 → 정확한 해시의 명시적 채택. |
| 중단 후 재개 | 원래 작업·operation ID를 조회하고 새 시도 전에 상태를 조정합니다. |
다른 런타임은 등록된 argv 기반 Adapter에서 calf.runtime.v1을 구현합니다. 요청 파일 경로 하나를 받고 제한된 JSON 응답 하나를 반환합니다. 독립 검사가 수락 기준을 정의합니다. SDK에는 Python·Node·loopback HTTP 예제가 있으며 비동기 런타임은 제출 상태가 불확실할 때 원래 요청 ID를 조회해야 합니다.
실습은 검수된 분석 보고서에서 끝납니다. 실제 VibePackr Work 실행에는 담당자가 지원되는 설치 연결·등록 런타임·정확한 계약 및 승인 경로를 제공해야 합니다. SDK가 만든 매핑 후보나 CALF에서 채택한 보고서가 이 조건을 대신하지 않습니다.
BOOTSTRAP.md·Work 가이드에서 입력 형식·런타임 바인딩·허용된 단계 진행을 확인합니다. 각 네이티브 reason·다음 동작을 보존합니다.| 관측 | 다음 조치 |
|---|---|
| 핀·카탈로그 불일치 | 일치하는 확인된 패키지·descriptor를 사용합니다. 업데이트에는 검토된 새 등록이 필요합니다. |
INPUT_NOT_REGISTERED / INPUT_DIGEST_DRIFT | 담당자에게 해당 파일·버전 등록을 요청합니다. 이전 입력·등록 정보는 보존합니다. |
CONTROL_PLANE_NOT_CONFIGURED | 로컬 분석은 가능할 수 있습니다. appliance 조회에는 실제 허용된 로컬 채널이 필요합니다. |
| 시간 초과 / EOF / 상태 조정 필요 | 원래 operation reference를 유지해 조회·조정합니다. 저널 삭제나 강제 재제출은 하지 않습니다. |
네이티브 Err, 프로세스 exit 0 | 제품 reason을 확인합니다. 전송은 완료됐지만 제품이 거절했습니다. CALF 보고서 검수를 통과시켜서는 안 됩니다. |
| Runtime Work 목록이 비어 있음 | 정확한 기록 위치·버전·작업 종류를 확인하고 Refresh합니다. 저널 파일을 복사하지 않습니다. |
| CALF UNKNOWN / 오래된 증거 | 현재 입력·Adapter 신원·후보 해시·필수 검사를 확인하고 원인을 이해한 뒤 재검수합니다. |
| MCP 호스트의 도구가 0개 | 프로토콜 협상과 tools/list를 확인합니다. “Enabled”만으로 연결이 검증되지 않습니다. |
먼저 기존 capture 파일을 읽습니다. 아래 명령은 로컬 JSON만 표시하며 VibePackr를 호출하지 않습니다. 두 번째 명령은 error.json이 있을 때만 실행하며, 파일이 없다는 사실만으로 성공을 판단하지 않습니다. 설치 절과 동일한 터미널 변수를 사용합니다.
python3 -m json.tool "$LAB/capture-01/intent.json"
# Only if error.json exists:
python3 -m json.tool "$LAB/capture-01/error.json"py -3 -m json.tool "$Lab\capture-01\intent.json"
# Only if error.json exists:
py -3 -m json.tool "$Lab\capture-01\error.json"python3 -m json.tool "$LAB/capture-01/intent.json"
# Only if error.json exists:
python3 -m json.tool "$LAB/capture-01/error.json"| 보존된 네이티브 상태 | 재개 판단 |
|---|---|
| 일치하는 예약과 결과 존재 | 담당자가 설치 패키지에서 지원하는 경로로 보존 결과를 확인합니다. 동일한 호출은 ADAPTER_LOCAL_CACHED_RESULT_NOT_NEW_PRODUCT_EXECUTION을 반환하며 캐시에서 가져왔다는 출처도 보존합니다. |
| 예약은 있지만 결과 없음 | RECONCILIATION_REQUIRED_NO_REINVOKE: 재제출을 중단하고 담당자와 원래 작업 상태를 확인합니다. 해당 저널을 삭제하지 않습니다. |
| 예약 부재 또는 신원 변경 | 호출 반복은 읽기 전용 조회가 아닙니다. 새 실행이 발생하거나 OPERATION_IDENTITY_CONFLICT가 반환될 수 있습니다. 새 시도 전에 원래 결과와 허용된 다음 동작을 확인합니다. |
이 예제에는 범용 상태 조정 명령이 없습니다. 원래 operation ID·도구·입력 ID·보존 오류를 연결 담당자에게 전달합니다. 실제 제품 Work는 설치 카탈로그와 원래 product reference가 지원하는 조회만 사용합니다. 새 capture 폴더는 확인된 결과를 보관할 위치이며 재시도의 근거가 아닙니다.
run-01.jsonl 첫 줄의 accepted.work 또는 같은 기록 위치의 Workbench Runtime Work에서 기존 작업 ID를 찾습니다. 아래 WORK_ID를 바꾸세요. 실행 파일이 없거나 일부만 기록됐다면 먼저 기존 목록을 조회하며, 재제출하려고 파일을 삭제하지 않습니다.
python3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" inspect --work WORK_IDpy -3 -B "$Examples\bind_report.py" --sdk "$Sdk" `
--calf "$Calf" --records "$env:CALF_WORK_HOME" inspect --work WORK_IDpython3 -B "$EXAMPLES/bind_report.py" --sdk "$SDK" \
--calf "$CALF" --records "$CALF_WORK_HOME" inspect --work WORK_ID조회는 보고서 Adapter를 다시 실행하지 않고 현재 기록·파일 신원을 확인합니다. 실행 중이거나 busy인 작업은 현재 상태가 확인될 때까지 미확정으로 둡니다. 증거가 오래됐으면 입력·Adapter·후보 변경 원인을 해결한 뒤 기존 작업에서 지원하는 Recheck를 사용하며 과거 통과 영수증으로 대신하지 않습니다. 현재 결과가 verified·SATISFIED이고 정확한 현재 해시가 일치할 때만 채택합니다. 이 보고서 계약은 시도 1회이며 무제한 재시도를 허용하지 않습니다.
2026년 11월 11일 macOS ARM64에서 배포된 Harness 1.8.13·SDK 0.2.6으로 클라이언트 호환성을 확인했습니다. 합성 분석 응답의 보고서가 7개 검사를 통과했고, Err 입력 거부·정확한 해시의 채택·Python·Node·읽기 전용 Work MCP 조회를 확인했습니다. 후보 변경 시 채택 이력을 유지하면서 UNKNOWN·adoptedValid=false를 반환했습니다. 새 VibePackr 네이티브 분석이나 AI·프로바이더 호출, 고객 어플라이언스 Work 실행을 한 시험은 아닙니다.
2026년 11월 6일 CALF 1.8.7·Workbench 1.9.2·SDK 0.2.1로 실제 VibePackr 네이티브 MCP 분석, 결과 보존, 보고서 Adapter 실행, 7개 검사, 정확한 해시의 채택과 읽기 전용 Work MCP를 확인했습니다. 네이티브 Err는 거부했고, 후보 변경 시 채택 이력을 유지하며 UNKNOWN·adoptedValid=false를 표시했습니다. 새 합성 입력과 격리된 개발 카탈로그를 사용했으며 실제 고객 어플라이언스 Work는 실행하지 않았습니다.
현재 CALF 코어와 SDK 배포판은 macOS ARM64·Windows x64·Linux x64에서 별도로 검증했습니다. 이것이 VibePackr 참조 연동까지 세 운영체제에서 검증됐다는 뜻은 아닙니다. 운영체제별 명령을 제공하므로 호환되는 네이티브 VibePackr 패키지로 실제 설치 환경을 확인하세요.
예제 내려받기 ↗VibePackr는 제공된 MCP_SETUP.md·BOOTSTRAP.md·기존 CALF 로컬 Adapter 규약을 기준으로 작성했습니다. 고객 워크벤치를 연결하는 선택형 PoC 하위 매뉴얼입니다. 실제 고객 데이터·개인 연결 파일·비공개 코어 소스는 포함하지 않습니다.
과거 검증을 재현할 수 있도록 원래 예제 압축파일도 보존합니다. 이 안내에는 최신 버전별 예제를 사용하고 기존 예제 폴더에 합치지 마세요.이전 ZIP