프로젝트별 AI CLI 런타임을 분리하고 검증하는 공개 런처
개인 설계·구현·운영
2026-04-01 — present
Claude Code·Codex·Kiro의 전역 상태를 프로젝트별 실행 경계로 분리하고, 잘못된 작업 경계와 설정 드리프트를 시작 전에 차단하는 공개 런처입니다.
검증된 결과
런타임 격리
등록 프로젝트별 런타임 홈
세션·스킬·MCP·정책을 작업 경계별로 분리
이전: 프로젝트가 전역 CLI 상태를 공유
경계 선택
정규화 경로의 단일 소유 경계 선택
경계 밖·이탈·모호함은 AI CLI 시작 전 중단
이전: 이름·원격 저장소 기반 프로필 추정 위험
공개 검증
공개 launcher + contract demo + CI
로그인 없이 핵심 계약과 실패 동작 재현
이전: 비공개 환경 설명에 의존
프로필 경계와 실행 검증
런처가 작업 경로를 정규화한 뒤 프로필 레지스트리에서 가장 긴 일치 경계를 고릅니다. 경계 없음·동률·심볼릭 링크 이탈은 시작 전에 중단합니다.
← 좌우로 스크롤해 전체 흐름 보기 →
실행과 실패 차단 흐름
경계 판정, fingerprint 기반 재생성, 설정·원문 검증의 각 실패 경로는 AI CLI가 시작되기 전에 종료됩니다.
← 좌우로 스크롤해 전체 흐름 보기 →
문제 해결 과정
AI CLI의 전역 홈을 여러 프로젝트가 공유하면 세션·도구·규칙이 다른 작업 경계로 섞일 수 있었습니다.
등록한 프로젝트마다 Codex·Kiro 런타임 홈을 생성하고, 프로필 명령과 harness-exec가 같은 실행 정책을 사용하도록 통합했습니다.
프로젝트별 런타임 상태를 분리하고, 공개 저장소의 설치·프로필·런타임 테스트로 동작을 검증합니다.
워크트리 실행기가 프로필을 이름이나 원격 저장소로 추정하면 잘못된 권한·도구 경계에서 에이전트를 시작할 수 있었습니다.
harness-auto가 현재 경로를 정규화하고 가장 구체적인 단일 등록 경계만 선택하도록 했습니다. 경계 밖·심볼릭 링크 이탈·동일 우선순위 중복은 거부합니다.
프로필 추정 대신 경로 소유권을 사용하며, 선택이 확정되지 않으면 AI CLI를 실행하지 않습니다.
비공개 운영 환경만으로 설명하면 방문자가 프로필 분리와 근거 재확인 계약을 독립적으로 검증할 수 없었습니다.
공개 harness-launcher 구현·테스트와 별도 public contract demo를 연결했습니다. 데모는 프로필 고유성, 경로 이탈, 원문 SHA-256 드리프트, 관계 무결성을 표준 라이브러리 테스트로 확인합니다.
로그인 없이 README·소스·CI에서 핵심 경계와 실패 동작을 재현할 수 있으며, 비공개 회사 데이터와 운영 인덱스는 공개 근거에서 제외했습니다.
프로젝트 설명
harness-launcher는 등록한 프로젝트 디렉터리를 신뢰 경계로 사용해 런타임 홈·스킬·MCP·정책을 분리합니다. harness-auto는 현재 작업 경로를 정규화해 하나의 경계만 선택하고, 경계 밖·심볼릭 링크 이탈·모호한 중복 등록에서는 실행하지 않습니다. 별도 공개 contract demo는 프로필 등록과 후보→원문 경로→SHA-256 재검증 흐름을 재현하며, 비공개 문서·회사 데이터·운영 인덱스는 포함하지 않습니다.
주요 내용
- 프로젝트 등록 → 경계 확인 → 격리 런타임 생성 → 검증 → AI CLI 시작 흐름
- harness-auto가 정규화된 현재 경로에서 단일 소유 경계만 선택하고 모호하거나 경계 밖이면 실행 전 중단
- 공개 launcher 저장소·Release·CI와 public contract demo로 로그인 없는 재현 근거 제공
- 비공개 문서·회사 데이터·운영 인덱스를 공개 저장소와 포트폴리오 근거에서 제외
기술 선택 근거
- ▶저장소 이름이나 원격 URL을 추정하지 않고 정규화된 프로젝트 경로를 신뢰 경계로 사용합니다. 가장 구체적인 단일 경계가 아니면 실행하지 않습니다.
- ▶런타임 홈은 직접 편집하는 원본이 아니라 프로젝트 설정에서 생성하는 폐기 가능한 결과물입니다. 재실행 시 원본과 검증 규칙으로 수렴시킵니다.
- ▶휴대용 shell installer의 TOCTOU 쓰기 경계를 안전하게 해결할 수 없어 source install을 비활성화하고 Homebrew 설치만 지원합니다.
깨달은 점
- •프로필은 이름 추정이 아니라 정규화된 경로 소유권으로 선택해야 한다.
- •생성 런타임은 원본이 아니라 폐기 가능한 결과물이어야 하며, 시작 전에 다시 검증해야 한다.
- •공개 사례의 근거는 로그인 없이 재현 가능해야 하고 비공개 운영 수치로 대체할 수 없다.
용어 풀이
비전문가도 시스템의 역할을 이해할 수 있도록 핵심 용어를 먼저 설명합니다.
- 하네스
- AI CLI의 실행 환경·도구·정책·검증을 반복 가능한 경로로 묶는 운영 계층.
- 프로필
- 한 등록 프로젝트와 그 프로젝트가 소유하는 실행 경계.
- 런타임 홈
- CLI별 설정·세션·스킬을 보관하는 프로젝트 범위 생성 디렉터리.
- 경계 확인
- 정규화된 현재 경로를 소유하는 단일 등록 프로젝트를 찾는 절차.
- Fail-closed
- 경계나 설정을 확정할 수 없으면 대체 경로로 진행하지 않고 실행을 중단하는 방식.
- MCP
- AI CLI가 프로젝트 도구를 표준 방식으로 호출하게 하는 연결 규약.
- Contract demo
- 운영 데이터 없이 경계·검증·실패 조건만 재현하는 공개 예제.
- CI
- 공개 저장소 변경마다 테스트를 자동 실행하는 검증 파이프라인.