diff
apothem diff 명령에 대한 CLI 참조.
단일 하니스에 대해 대기 중인 구성 변경 사항을 미리 봅니다.
개요
apothem diff --harness NAME [--profile PATH] [--project PATH]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]diff는 읽기 전용 검사 명령입니다. install 명령이 실행할 것과 같은
머티리얼라이즈 과정을 실행하지만 드라이런 모드로 실행하므로, 디스크에는 아무것도
쓰지 않습니다. 대기 중인 각 대상에 대해 쉬운 말로 된 작업(예: Write file,
Merge directory, Install skills, Prune stale files), 대상 경로, 미리보기
상태(would create, would update, would remove, no change), 그리고 병합될
운영자 소유 앵커의 경우 변경 내용의 통합 diff를 렌더링합니다. 상태는 소스를
현재 디스크에 있는 대상과 비교하여 계산되므로, 이미 일치하는 대상은
no change로 표시되고 기본 보기에서 숨겨집니다. 이 명령은 변경을 수행하지 않고
"apothem install이 지금 이 하니스에 무엇을 할까?"라는 질문에 답합니다.
이 계획은 설치가 쓰는 모든 경로를 포함합니다. 매니페스트 항목, 하니스 자체의
구성 파일(예: opencode.json 또는 config.yaml), 공유 프로필이 투영되는 지침
앵커 또는 프로필 문서(예: CLAUDE.md), 그리고 .apothem/ 아래의 공유 데이터
저장소입니다. 설치 직후에는 diff가 대기 중인 변경 사항이 없다고 보고하며,
이어서 다시 설치하면 아무것도 쓰지 않고 새 백업도 만들지 않습니다.
install --dry-run도 같은 계획을 보여 줍니다.
홈 디렉터리에 스킬을 쓰는 어댑터의 경우, 계획은 그 폴더들을 홈 경로와 함께
프로젝트 파일보다 앞에 나열하며, Apothem이 쓰지 않은 스킬 폴더는
skill_conflict 경고로 나타납니다.
운영자 소유 대상, 즉 여러분이 직접 작성한 콘텐츠와 Apothem 관리 블록을 함께 담은 파일의 경우 diff는 변경될 정확한 줄을 보여 줍니다. 그 밖의 대상은 계획된 작업과 미리보기 상태를 요약합니다.
기본 보기는 대기 중인 변경 사항만 나열합니다. 변경되지 않은 대상까지 포함한
전체 계획을 원시 내부 작업 종류와 결과를 주석으로 붙여 보려면 --verbose를
전달하세요. --json 봉투는 표시 계층의 영향을 받지 않습니다. 기계 소비자를 위해
원시 operation 및 outcome 필드를 항상 담습니다.
diff는 단일 하니스에 대해 동작합니다. install이나 verify와 달리 all을
받지 않으므로 하니스 이름 하나를 전달하세요.
옵션
| 옵션 | 설명 |
|---|---|
--harness NAME | 미리 볼 하니스 어댑터(필수, all이 아닌 단일 하니스). |
--profile PATH | 공유 프로필 YAML 경로. 기본값은 ~/.config/apothem/profile.yaml입니다. |
--project PATH | 프로젝트 범위 하니스의 프로젝트 루트. 선택한 하니스가 프로젝트 범위이면 필수입니다. |
--quiet, -q | 정보성 출력을 억제하고 오류만 내보냅니다. |
--verbose, -v | 변경되지 않은 대상까지 포함한 전체 계획을 원시 작업 종류와 결과를 주석으로 붙여 표시합니다. |
--format plain|json | 출력 형식(기본값: plain). |
--json | --format json의 단축형. |
--no-color | 출력에서 ANSI 색상 코드를 비활성화합니다. |
-h, --help | 도움말을 표시하고 종료합니다. |
JSON 출력
--json 봉투는 드라이런 설치 봉투와 같은 형태입니다. status는 dry_run이고,
files_written은 항상 비어 있으며, materialization 블록과 results 목록이
계획된 대상의 전체 세부 정보를 담습니다. 운영자 소유 결과 행마다 detail.diff
필드가 통합 diff 문자열을 담습니다.
{
"schema_version": 1,
"status": "dry_run",
"command": "diff",
"action": "dry_run",
"harness": "claude-code",
"files_written": [],
"results": [
{
"harness": "claude-code",
"outcome": "updated",
"operation": "sentinel_merge",
"path": "C:\\Users\\Example\\.claude\\CLAUDE.md",
"message": "dry run: no filesystem changes made",
"detail": {
"ownership_class": "operator-owned",
"diff": "--- a/CLAUDE.md\n+++ b/CLAUDE.md\n@@ ..."
}
}
],
"warnings": [],
"error": null,
"materialization": { "...": "..." }
}예시
apothem diff --harness claude-code
apothem diff --harness cursor --project .
apothem diff --harness claude-code --json종료 코드
| 코드 | 의미 |
|---|---|
| 0 | diff가 보고됨(대기 중인 변경 사항은 오류가 아니라 보고 대상임) |
| 1 | 예상된 검증, 프로필, 하니스 또는 프로젝트 오류 |
| 64 | 사용법 오류: 알 수 없는 옵션이나 명령, 또는 누락되었거나 잘못된 옵션 값. --json에서는 오류가 코드 cli.usage를 담은 JSON 봉투로 반환됩니다. |
함께 보기
- apothem status — 모든 하니스의 설치/검증/드리프트 상태를 보고합니다
- apothem verify — 하니스 어댑터 설치를 검증합니다
- apothem install — 미리 본 변경 사항을 적용합니다