CLI 설계 체크리스트
도움말 및 버전
- CLI는 반드시
--help및-h플래그를 제공해야 하며, 명확한 사용법, 옵션, 예시를 포함해야 합니다. 예시에는 모든 필수 매개변수가 포함되어야 합니다. - CLI는 반드시
--version및-V플래그를 제공해야 합니다. 에이전트는-v를--verbose용도로 예약해야 합니다.
입출력
- CLI는 반드시 stdin/stdout 파이핑을 지원해야 하며, 출력 리디렉션(예: 파일 생성을 위한
--output)을 허용해야 합니다. - 구조화된 데이터를 출력하는 CLI는 반드시 기계가 읽을 수 있는 출력(예:
--json)을 제공해야 합니다.
안전 및 제어
- 데이터를 수정하거나 삭제하는 CLI는 반드시
--dry-run과 명시적인 우회 플래그(--yes또는--force)를 제공해야 합니다. - CLI는 반드시 제어 가능한 로깅(
--quiet,--verbose또는--trace)을 제공해야 합니다. - CLI는 반드시 결정적인 종료 코드를 사용해야 합니다. 성공 시 0, 실패 시 0이 아닌 값을 반환합니다. 에이전트는 무음 fallback을 도입해서는 안 됩니다.
- CLI는 반드시 CI/CD 환경을 위한 엄격한 비대화형 모드를 구현해야 합니다.
설정
- JSON 설정을 사용하는 CLI는 반드시 JSON 스키마를 정의하고 업데이트해야 하며, 로드 시 설정의 유효성을 검증해야 합니다.
- CLI는 반드시 민감하거나 환경별 데이터를 위해 환경 변수를 통한 설정을 지원해야 합니다.
대화형 프롬프트
- 대화형 프롬프트는 질문 전에 필요한 문맥을 반드시 제공해야 합니다. 예/아니오 프롬프트에서 Enter는 "예"를 의미하고 "n"은 "아니오"를 의미해야 합니다.