Skip to content
Apothem
CLI 참조

doctor

apothem doctor 명령에 대한 CLI 참조.

설치된 항목의 상태를 점검합니다. apothem verify가 사용자가 선택한 하니스를 점검하는 반면, doctor는 설치된 모든 하니스와 공유 프로필을 한 번에 점검합니다.

개요

apothem doctor [--project PATH] [--quiet|-q] [--verbose|-v]
               [--format plain|json] [--json] [--no-color]

점검 항목

  • 공유 프로필. 프로필이 있으면 패키지에 포함된 스키마로 검증하며, 형식이 잘못된 프로필은 해당 진단 코드와 함께 실패합니다. 프로필이 없으면 실패가 아니라 보고로 처리합니다(install이 프로필을 만듭니다).
  • 설치된 하니스만. 설치되지 않은 하니스는 not_installed로 보고되며 실패가 아니므로, 정상 하니스가 하나뿐인 머신도 통과합니다. 프로젝트 범위 하니스는 --project가 그 루트를 지정할 때 점검되며, 지정하지 않으면 needs_project로 보고됩니다.
  • 검증. 설치된 각 하니스는 verify와 같은 점검을 통과해야 합니다.
  • 훅 런타임. 검증된 각 하니스에 대해 doctor는 최신 설치가 쓴 파일을 읽고, Apothem이 그곳에 등록한 훅 명령을 찾은 다음, 각 인터프리터와 훅 스크립트를 아무 작업도 하지 않는 페이로드(등록된 인수에 --help를 더한 것, stdin의 {}, 임시 작업 디렉터리, 그리고 PYTHONPATH 제거)로 한 번씩 시작합니다. 아무것도 쓰지 않습니다. 인터프리터 누락, 스크립트 누락, 또는 임포트 시점의 크래시는 점검 실패로 처리됩니다.

실패한 모든 점검은 해결 방법을 제시합니다. 실패한 점검이 없으면 0으로, 그렇지 않으면 1로 종료합니다.

JSON 출력

--json은 기존 필드(version, python, platform, profile_path, profile_exists, profile_valid, harnesses, all_ok, 그리고 프로필이 유효하지 않을 때의 profile_error)를 유지하고 다음을 추가합니다.

  • profile_error_code — 프로필이 유효하지 않을 때의 프로필 진단 코드.
  • project — 해석된 --project 루트, 또는 null.
  • harnesses[].status — ok, not_installed, needs_project, verify_failed, hook_failed, 또는 error. 여기에 verified와 hooks ({"probed": N, "failed": [...]}, 또는 설치 기록이 없을 때 null)가 더해집니다.
  • checks — 점검마다 레코드 하나: code(예: harness.verify_failed, hook.start_failed, ledger.unreadable, 또는 profile.* 코드), status (pass, fail, 또는 info), harness, message, fix.
{
  "schema_version": 1,
  "all_ok": false,
  "checks": [
    {
      "code": "hook.start_failed",
      "status": "fail",
      "harness": "claude-code",
      "message": "claude-code: a registered hook command cannot start: …",
      "fix": "Check that the interpreter in the hook command exists and runs, then …"
    }
  ]
}

옵션

옵션설명
--project PATH프로젝트 범위 하니스의 프로젝트 루트입니다. 지정하지 않으면 이들은 needs_project로 보고됩니다.
--quiet, -q정보성 출력을 억제하고 오류만 출력합니다.
--verbose, -v다른 명령과의 일관성을 위해 허용되며, 이 명령은 추가 출력을 내지 않습니다.
--format plain|json출력 형식(기본값: plain).
--json--format json의 축약형.
--no-color출력에서 ANSI 색상 코드를 비활성화합니다.
-h, --help도움말을 표시하고 종료합니다.

예시

apothem doctor
apothem doctor --project .
apothem doctor --json

기본 plain 형식은 사람이 읽을 수 있는 진단을 출력합니다. --json (--format json과 동등)은 다른 도구로 파이프하기에 적합한 기계 판독 가능 문서를 stdout으로 내보냅니다.

종료 코드

코드의미
0모든 점검 통과(아직 설치된 하니스가 없을 때도 포함)
1설치된 하니스가 검증되지 않거나, 등록된 훅 명령을 시작할 수 없거나, 어댑터를 로드하거나 프로브할 수 없거나, 존재하는 프로필이 스키마 검증에 실패함
64사용법 오류: 알 수 없는 옵션이나 명령, 또는 누락되었거나 잘못된 옵션 값. --json에서는 오류가 코드 cli.usage를 담은 JSON 봉투로 반환됩니다.

함께 보기

On this page