네이티브와 npm CLI 명령

네이티브는 Core IR, 검증 바이트코드, 명시적 Rust VM과 정확한 설치형 Topaz VM, 이미지, 바우치를 제공하며 npm은 문서화된 부분집합만 제공합니다.

이 순서로 생각하세요

  • lispex [FILE|-]는 소스를 평가하고 receipt는 네이티브 실행 envelope를 기록하며 lower·eval-graph는 검사 부분집합에서 동작합니다.
  • 네이티브 lispex fmt [FILE|-]는 결정적으로 포매팅한 소스를 stdout에 씁니다. --check는 출력 없이 변경이 필요 없으면 0, 필요하면 1로 끝납니다. --write는 이름 있는 일반 파일 하나를 안전하게 교체합니다. 먼저 검증하며 주석·프라그마·토큰·리터럴 철자를 정확히 보존합니다.
  • 네이티브 core-ir build는 정확한 소스를 해석된 정규 lispex.core-ir/v1로 만들고, core-ir validate는 엄격히 읽어 재인코딩하며, core-ir inspect는 읽기 쉬운 normalized projection까지 보여줍니다. 세 명령은 모두 실행하지 않는 integrity-only 도구입니다. 기존 lower는 별도 Meaning Graph 명령으로 남습니다.
  • 네이티브 bytecode build는 strict Core IR을 받아 정규 lispex.bytecode/v1를 씁니다. inspectvalidate는 실행 없이 엄격히 읽고, bytecode run은 검증 뒤 lispex-rust-vm/v1에서 실행합니다. run --backend rust --engine vm은 소스에서 바로 가는 메모리 내 경로이며 기본값은 tree입니다. VM 오류를 tree 재시도로 숨기지 않습니다.
  • 네이티브 vouch compiled build|inspect|validate는 별도 이름의 소스나 증명된 이미지에서 .lpxvca를 만들고 구조를 검사하거나 정확히 다시 유도합니다. 세 명령은 JSON을 stdout에 쓰고 실행하지 않으며 권한을 integrity-only로 표시합니다. 실행 소비자는 명시적 verify --reexecute --compiled-artifactgate --compiled-artifact뿐입니다.
  • compare-engines --receipt REPORT SOURCE는 두 Rust 엔진을 실행하고 덮어쓰지 않는 lispex.rust-engine-comparison/v1 보고서를 씁니다. 의미 불일치 축이 있으면 종료 1입니다. 같은 계보의 회귀 근거이지 독립 영수증이나 권한이 아닙니다.
  • bytecode run --engine topaz --topaz-vm ROOT는 macOS ARM64용 정확한 Topaz 5.11 설치 제품만 고릅니다. compare-vms --topaz-vm ROOT --receipt REPORT SOURCE는 바이트코드를 한 번 만들고 두 VM 관측을 기록합니다. 제품·요청·결과·full-u64 자원·fallback을 검사하며 Topaz 실패를 다른 엔진으로 재시도하지 않습니다.
  • 네이티브 aot build는 정확한 소스를 Core IR·바이트코드·읽을 수 있는 Topaz로 내리고 절대경로의 정확한 Topaz/Rust 도구와 새 출력 디렉터리를 요구합니다. aot inspect|validate는 실행하지 않고 aot run은 컴파일하지 않습니다. 소스 없는 macOS ARM64 제품과 모든 결과는 폴백이 없고 execution-material-only입니다.
  • compare-routes --topaz-vm TVM --aot-product AOT --receipt REPORT SOURCE는 Core IR·바이트코드 요청을 한 번 만들고 AOT 제품이 정확히 일치함을 확인한 뒤 tree·Rust VM·Topaz VM·AOT를 명시적으로 실행합니다. 덮어쓰지 않는 진단 영수증은 의미 불일치와 비교 가능한 자원 차이를 나누며 Vouch로 들어가지 못합니다.
  • 네이티브는 vouch issue, flag 없는 vouch verify, vouch verify --reexecute, vouch gate --require-decision, vouch inspect의 전체 namespaced 체인을 제공합니다. npm은 인증 flag 없는 vouch verify, 구조 vouch inspect, 코퍼스 vouch replay를 제공하며 issue, --reexecute, gate를 아티팩트 I/O 전에 거부합니다.
  • flag 없는 인증 verify의 종료값은 인증 및 진단 promotion eligible이면 0, 인증됐지만 진단 promotion ineligible이면 10, 거부면 1, 아티팩트 I/O 전 사용법 오류면 2, 입출력 또는 보고서 게시 실패면 3입니다. 0과 10 모두 인증 결과이며 어느 것도 권한을 grant하지 않습니다.
  • flat npm lispex verify RECEIPT는 비서명 구조 호환 명령으로 남습니다. namespaced 인증 lispex vouch verify의 별칭이 아닙니다.
  • 성공한 --reexecute 보고서는 authentication.statusauthenticated, reexecution.statusexecution-agreed, 고정 observation_scopecsk.vouch-complete-transcript/v0, comparison.current_vs_signedagree로 기록합니다.
  • vouch gate는 모든 원시 컨텍스트 경로와 --require-decision approve|deny|review|invalid-input, --report-out을 요구합니다. csk.native-gate-report/v0은 인증·재실행·gate 상태를 분리하고 고정 basis csk.current-native-agreement/v0을 기록합니다.
  • 아티팩트 계약이 요구하는 곳에서는 파일·표준입력 동일성을 명시적으로 기록합니다.
  • 이름 있는 SPKI 파일 하나, 반복 가능한 명시적 engine/source flag, 새 출력으로 lispex vouch policy create를 사용한 뒤 정확한 바이트에 policy check를 사용하세요. 성공 시 stdout은 없습니다. 종료 2는 usage, 3은 I/O·resource·publication 실패, 1은 유효하지 않은 설정입니다.
  • 네이티브 bundle 권한에는 vouch verify --reexecutevouch gate--source RULE·--input INPUT을 모두 요구합니다. 없거나 일부만 제공하면 이름 있는 artifact를 열기 전에 usage 종료 2입니다. flag 없는 vouch verify --bundle은 네이티브와 npm에서 인증 전용 동작으로 계속 지원됩니다.
  • 네이티브와 npm 이미지 명령은 이름 있는 경로를 사용합니다. image encode --source SOURCE --out IMAGE, image inspect --image IMAGE, image decode --image IMAGE --out SOURCE, run --image IMAGE이며, encode는 한 페이지에 .lspx.png, 페이지 묶음에 .lspx-images.zip을 요구합니다. usage 오류는 종료 2, 검증·접미사 실패는 종료 1, I/O·자원·덮어쓰기 방지 출력 실패는 종료 3입니다.
  • Vouch 명령이 소스 컨텍스트를 받는 곳에서는 --source RULE 또는 --source-image IMAGE 중 정확히 하나를 고릅니다. 소스 이미지는 이미지 상한 안에서 읽고 완전히 증명한 뒤에야 복원 바이트가 identity·policy·발행·인증·요청 결속·재실행·gate 평가에 들어갑니다.
  • pinned bundle verify·네이티브 재실행·gate에서 --source-image IMAGE도 별도 --input INPUT을 요구합니다. unpinned bundle은 계속 인증 전용이며 실행이나 grant에 도달할 수 없습니다.

명령 경계

명령읽기쓰기 / 세우지 않는 것
lispex [FILE|-]리스펙스 소스 바이트정규 결과·stdout·진단; 영수증 없음
lispex fmt [--check|--write] [FILE|-]유효한 UTF-8 리스펙스 소스포매팅한 소스, 조용한 상태 코드, 또는 안전한 제자리 교체; 실행 없음
lispex receipt FILE소스 바이트네이티브 실행 영수증; Vouch 차등 영수증 아님
lispex core-ir build --source S --out O정확한 소스 바이트해석된 정규 Core IR과 이름 있는 파일 보고서; 실행·권한 없음
lispex core-ir validate --ir IR정규 Core IR 바이트엄격한 검증 요약; 실행 없음
lispex core-ir inspect --ir IR정규 Core IR 바이트읽기 쉬운 해석 projection과 식별자; 보고서는 실행 아티팩트가 아님
lispex bytecode build --ir IR --out O엄격한 정규 Core IR정규 검증된 .lpxbc 바이트와 이름 있는 파일 요약; 실행·권한 없음
lispex bytecode inspect --bytecode BC정규 바이트코드식별자, 개수, 요구사항, opcode, root, source-map 범위; 실행 없음
lispex bytecode validate --bytecode BC정규 바이트코드strict decode·verify·re-encode 결과; 실행 없음
lispex bytecode run --bytecode BC [--input I]검증된 바이트코드와 선택적 단일 datum 입력VM stdout·경고·진단; Vouch 권한 없음
lispex bytecode run --engine topaz --topaz-vm ROOT --bytecode BC [--input I]정확한 Topaz 설치 제품, 검증 바이트코드, 선택 datum상한이 있는 Topaz 관측; discovery·fallback·Vouch 권한 없음
lispex run --backend rust --engine tree|vm FILE리스펙스 소스선택한 Rust 엔진 실행; tree 기본, VM fallback 없음
lispex compare-engines --receipt R FILE리스펙스 소스정확한 같은 계보 tree/VM 비교 보고서; 덮어쓰기·권한 없음
lispex compare-vms --topaz-vm ROOT --receipt R FILE소스와 정확한 Topaz 설치 제품덮어쓰지 않는 Rust/Topaz 비교; 차등 근거 전용
lispex aot build --source S --topaz-compiler T --rust-tool-bin R --out O정확한 소스와 절대경로의 정확한 빌드 도구폐쇄된 소스 없는 네이티브 제품; 덮어쓰기·폴백·Vouch 권한 없음
lispex aot inspect|validate --product P절대경로의 설치 AOT 제품실행 없는 엄격한 파일·식별자 검사 결과
lispex aot run --product P [--input I] [--json]설치된 제품, 선택 datum, 정규 u64 한도실행 파일 직접 관측; 컴파일·탐색·폴백·권한 없음
lispex compare-routes --topaz-vm TVM --aot-product AOT --receipt R [--input I] SOURCE한 정확한 소스·입력 요청과 두 정확한 Topaz 설치 제품덮어쓰지 않는 네 경로 영수증. 의미·자원 검사 축, 계보·fallback을 드러내며 재시도·Vouch 권한 없음
lispex vouch compiled build (--source S|--source-image IMG) --out A정확한 소스 바이트덮어쓰지 않는 정규 .lpxvca와 JSON 요약; 인증·실행·권한 없음
lispex vouch compiled inspect --artifact A정규 컨테이너와 내장 검증 바이트코드무결성 요약; 소스 재유도와 실행은 하지 않음
lispex vouch compiled validate --artifact A (--source S|--source-image IMG)컨테이너와 별도 제공한 정확한 소스정확한 source→Core IR→bytecode 재유도 결과; 인증·실행·권한 없음
lispex vouch verify ... --reexecute --compiled-artifact A인증되고 외부 요청에 고정된 근거와 정확히 유도된 산출물csk.native-compiled-reexecution-report/v1; 현재 tree/Meaning·검증 VM 일치, grant 아님
lispex vouch gate ... --compiled-artifact A같은 살아 있는 컴파일 근거와 요구 결정csk.native-compiled-gate-report/v1; 로컬 grant·거부, 보고서는 권한 객체가 아님
lispex diff-receipt --input I RULE검사 프로필 규칙과 datumcsk.differential-receipt/v0; 진위 아님
lispex verify RECEIPT영수증 JSON과 선택 소스정합성 판정; 정책 재실행 안 함
lispex issue-native ...검사 프로필 규칙, 고정 입력, 프로필, 로컬 PKCS#8 키 핸들원자적 페이로드, DSSE 봉투, 발행 보고서; 네이티브 릴리스 바이너리 전용
lispex verify-native ...DSSE 봉투, 소비자 신뢰 정책, 소스, 입력, 프로필, 예상 엔진 컨텍스트정확한 검사 컨텍스트의 인증 보고서; 신원, 시각, 배포, 정책 정당성 증명 아님
lispex verify-bridge REPORTBridge 보고서와 결합 아티팩트Bridge 정합성 판정; 외부 엔진 실행 없음

흔한 오해

fmt는 리터럴 값을 정규화하지 않고 프로그램을 실행하지도 않습니다. 2/4, 1.00, 주석, ;! 프라그마는 원래 철자를 유지합니다. 잘못된 소스는 stdout 출력이나 파일 교체 전에 진단합니다. 포매팅은 네이티브 전용이며 에디터 확장은 npm, WASM, 플레이그라운드로 fallback하지 않습니다.

Core IR 명령의 종료 0은 요청한 build 또는 엄격한 읽기가 성공했다는 뜻일 뿐 규칙을 실행했다는 뜻은 아닙니다. 사용법 오류는 2, 검증·소스 오류는 1, 상한·입출력·게시 실패는 3입니다.

바이트코드에서 종료 0은 build·strict 검증·inspection 또는 실행 성공입니다. 잘못된 Core IR, malformed bytecode, 잘못된 입력, 일반 runtime 진단은 1, 사용법과 엔진·자원 실패는 2, 아티팩트·입력 I/O와 입력 상한, 이름 있는 출력·보고서 게시 실패는 3입니다. 실행 결과를 쓰는 terminal 출력 실패는 2입니다. 아티팩트 stdout은 순수 바이트이며 이름 있는 출력은 덮어쓰지 않습니다. 바이트코드와 입력이 표준입력을 동시에 쓸 수도 없습니다.

Topaz 모드는 절대 제품 경로가 필요하며 승인된 macOS ARM64 제품에서만 동작합니다. identity·timeout·malformed result·resource·mismatch 실패는 Rust/tree/LIL/LIT나 다른 Topaz 설치를 실행하지 않고 그대로 보입니다. npm은 core-ir, bytecode, aot, compare-engines, compare-vms, compare-routes를 소스 파일로 오해하지 않고 네이티브 전용 명령으로 명시적으로 거부합니다.

vouch gate에서 종료 0은 살아 있는 grant가 요구 결정과 일치함, 10은 인증은 성공했지만 grant가 생성되지 않음, 1은 인증 거부, 2는 사용법 오류, 3은 I/O·실행·보고서 게시 실패를 뜻합니다. 보고서는 진단 출력이며 gate 입력으로 재사용할 수 없습니다.

vouch compiled에서 종료 0은 build·정규 inspection·정확한 재유도 검증 성공입니다. 잘못된 소스·프로필·컨테이너·바이트코드나 재유도 불일치는 1, 중복·누락·충돌·알 수 없는 flag는 아티팩트 작업 전 2, 제한 입출력과 덮어쓰기 방지 게시 실패는 3입니다. build는 기존 출력을 덮지 않습니다. inspect는 소스 재유도를 검사하지 않으므로 복구할 때는 정확한 소스와 validate를 사용하세요. --reexecute 없는 --compiled-artifact는 사용법 오류 2입니다.

다음으로

코드를 작성할 때 이 페이지를 곁에 두세요. 안내식 설명이 필요하면 문법 지도나 관련 매뉴얼로 돌아가면 됩니다.

바이트코드와 Rust VM · Core IR 계약 · 실행 표면 선택하기