프롬프트 파이프라인

CLI-JAW는 다층 파이프라인을 통해 시스템 프롬프트를 조립합니다: 정적 템플릿(A1/A2), 동적 주입(메모리, 오케스트레이션, 스킬), 디스크 캐싱(B.md/AGENTS.md), 그리고 CLI별 스폰 어댑터.

조립 순서

src/prompt/builder.tsgetSystemPrompt() 함수는 다음 순서로 프롬프트를 조립합니다:

  1. A-1.md -- 시스템 규칙 (브라우저 제어, 메모리, 하트비트, 위임)
  2. A-2.md -- 사용자 설정 (아이덴티티, 바이브, 작업 디렉토리)
  3. 메모리 주입 -- 고급(프로필 + 소울 + 태스크 스냅샷) 또는 레거시 폴백
  4. 오케스트레이션 섹션 -- Employee 디스패치 규칙 + PABCD 가이드
  5. 하트비트 작업 -- heartbeat.json의 예약 작업 설명
  6. 스킬 섹션 -- 활성 스킬 인라인 + 사용 가능한 스킬 목록
  7. Vision-click 힌트 -- 데스크톱 자동화를 위한 Codex 전용 레거시 폴백
  8. 위임 규칙 -- CLI 서브에이전트 vs jaw employee 구분

정적 템플릿

A-1.md (시스템 규칙)

경로: ~/.cli-jaw/prompts/A-1.md. src/prompt/templates/a1-system.md(305줄)로 폴백합니다. 핵심 시스템 동작을 포함합니다: 브라우저 제어 규칙, 메모리/하트비트 지침, jaw employee vs CLI 서브에이전트 구분, 그리고 채널 전송 규칙.

A-1.md는 해시 기반 마이그레이션을 사용합니다. 커스터마이징하지 않았다면 템플릿 업데이트가 자동 적용됩니다. 커스텀 A-1 파일은 보존됩니다.

A-2.md (사용자 설정)

경로: ~/.cli-jaw/prompts/A-2.md. 템플릿: a2-default.md(25줄). 아이덴티티, 사용자 환경설정, 바이브, 작업 디렉토리 힌트를 포함합니다. 파일이 없을 때만 생성되며 절대 덮어쓰지 않습니다.

동적 주입

메모리 주입

인덱스 준비 상태에 따라 두 가지 경로가 있습니다:

주입은 역할에 따라 다릅니다: boss는 전체 스냅샷을 받고, employee/subagent는 축소된 프로필을 받으며, flush 역할은 메모리 주입이 없습니다.

오케스트레이션

하나 이상의 employee가 등록되어 있으면, orchestration.md 템플릿이 cli-jaw dispatch 사용 예시와 함께 주입됩니다. skills/dev-pabcd/SKILL.md가 존재하면 PABCD Orchestration Guide가 뒤따릅니다.

하트비트

~/.cli-jaw/heartbeat.json의 활성 하트비트 작업은 활성화 상태, 사람이 읽을 수 있는 스케줄, 프롬프트 미리보기와 함께 렌더링됩니다.

스킬

활성 스킬(~/.cli-jaw/skills/*/SKILL.md)은 인라인으로 렌더링됩니다. 레퍼런스 스킬(~/.cli-jaw/skills_ref/registry.json)은 탐색 가능한 목록으로 표시됩니다.

디스크 캐시 (B.md)

regenerateB()는 디스크용으로 시스템 프롬프트의 캐시 버전을 생성합니다:

출력용도
~/.cli-jaw/prompts/B.md디버그 및 캐시 파일
{workDir}/AGENTS.mdCodex, Copilot, OpenCode가 자동 읽기

콘텐츠 해시를 확인하여 프롬프트가 실제로 변경되었을 때만 파일을 다시 씁니다. 이를 통해 재개 연속성을 유지합니다.

CLI별 스폰 입력

각 CLI 런타임은 프롬프트를 다른 방식으로 전달받습니다:

CLI시스템 프롬프트사용자 입력
ClaudebuildArgs(..., sysPrompt)stdin: withHistoryPrompt(prompt, historyBlock)
CodexAGENTS.md 자동 로드stdin: [User Message] 블록
GeminiGEMINI_SYSTEM_MD 임시파일인자 수준 프롬프트
AGY시스템 프롬프트 플래그 없음agy -p <prompt>
CursorAGENTS.md / CLAUDE.md 자동 로드인자 수준 프롬프트
GrokCWD 인스트럭션 파일-p <prompt>
CopilotACP + cwd 인스트럭션 파일session/prompt()

히스토리 블록

새 세션(재개가 아닌 경우)에서 buildHistoryBlock()은 최근 대화 컨텍스트를 앞에 추가합니다:

[Recent Context]
assistant: Previous response summary...
user: Previous question...

---
[Current Message]
Your new prompt here

프롬프트 커스터마이징

~/.cli-jaw/prompts/A-2.md를 편집하여 아이덴티티, 환경설정, 작업 디렉토리를 커스터마이징할 수 있습니다. /prompt를 사용하여 현재 A2 내용을 미리 볼 수 있습니다. Web UI 설정 패널에서도 프롬프트 템플릿 편집기를 제공합니다.