Communitygithub.com

최소 완전

에이전트가 범위 확장과 과도한 엔지니어링을 피하고, 요청을 완료하고 작동을 증명하며 소프트웨어 아키텍처를 명확하게 유지하도록 돕는 Codex 및 ChatGPT 스킬입니다.

최소 완전란 무엇인가요?

`최소 완전` 스킬은 개발자 에이전트(예: Claude Code, Cursor, Codex)가 사용자의 현재 요청을 가장 작은 결과물로 완전히 처리하도록 설계된 기술 지침입니다. 이 스킬의 핵심은 '최소'를 부분적인 프로토타입이나 가장 적은 코드 변경으로 오해하지 않고, 요청된 모든 하드 규칙을 만족하며 작동 가능한 결과를 제공하는 데 있습니다. 이는 소프트웨어 개발에서 흔히 발생하는 스코프 크리프(scope creep)와 과도한 엔지니어링을 방지하는 것을 주요 목표로 합니다. 에이전트는 작업을 시작하기 전에 현재 계약(목표, 증거, 제약 조건, 권한 등)을 명확히 수립해야 하며, 발견된 사항을 '필수', '차단', '현재 위험', '인접'으로 분류하여 원래 임무를 확장하지 않고 처리합니다. 이 스킬은 특히 '참조/우아한-아키텍처.md'와 '참조/증거-보정-테스팅.md'를 활용하여 아키텍처 설계와 증거 기반 테스트를 지침으로 삼습니다. 또한, 각 추가 사항은 필수 조건(요청된 결과, 하드 규칙, 차단 해소, 사용자 승인) 중 하나를 충족해야만 포함되며, 그렇지 않으면 생략합니다. 최종적으로 에이전트는 가장 직접적인 실용적 테스트를 통해 완료를 입증하고, 주장의 범위와 위험에 비례하는 증거를 제시하도록 요구받습니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add JetXu-LLM/smallest-complete

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

최소 완전은(는) 무엇을 하나요?

사용자의 현재 작업을 완전히 완료하는 가장 작은 결과를 제공합니다. '최소'를 부분 프로토타입, 가장 적게 변경된 라인, 또는 가장 빠른 그럴듯한 출력과 혼동하지 마십시오. 결과는 작동해야 하고, 필요한 동작을 유지해야 하며, 관련된 하드 규칙을 충족해야 하고, 적절한 증거로 뒷받침되어야 합니다. 그 외의 모든 것은 그 자리를 증명해야 합니다.

요청된 관찰 가능한 결과(구현이나 노력의 양이 아님)가 완료의 단위입니다. 코드, 테스트, 문서, 배포 및 경과 시간은 요청된 결과이거나 그 결과가 존재한다는 증거일 때에만 의미가 있습니다.

'최소'는 전달, 변경 또는 영구화되는 것을 제한하며, 문제를 이해하는 데 필요한 문의를 제한하지 않습니다.

문제가 충분히 명확할 때만 주도하십시오

작업이 실행하기에 충분히 안정된 후에만 수렴, 설계, 실행, 검증 및 마감을 주도하십시오. 이 스킬을 사용하여 어떤 문제, 가치 함수, 소유자 또는 증거 모델이 올바른지 결정하지 마십시오.

목표, 지배적 손실, 권한, 진실 공급원, 주요 경로, 가장 강력한 대안, 결정적 미지수 및 승인된 결과가 실행하기에 충분히 명확해지면 시작하십시오. 실행 또는 누적된 수리가 이러한 전제를 모호하게 만들면, 수렴을 중단하고 재개하기 전에 문제를 다시 여십시오. 사용자의 승인 및 전달 가능 경계를 변경하지 않은 상태로 유지하십시오.

현재 계약 수립

행동하기 전에 다음을 식별하십시오:

  • 사용자가 지금 받기를 실제로 요청한 결과;
  • 그 결과를 완료하게 만드는 관찰 가능한 증거;
  • 현재의 구속력 있는 제약 조건과 하드 규칙;
  • 승인된 작업 유형: 답변, 연구, 검토, 계획, 생성, 변경, 운영 또는 게시;
  • 범위 내의 시스템, 파일, 사람, 환경 및 변경 표면;
  • 인접, 추측, 미래 지향적 또는 명시적으로 범위 밖인 것.

장기 목표, 로드맵 또는 광범위한 프로그램은 방향을 설명합니다. 현재 작업에서 그 방향으로 가는 모든 가능한 단계를 승인하지는 않습니다. 새로운 정보는 현재 질문 내에서 추가 문의를 정당화할 수 있지만, 새로운 목표, 전달물, 변경 또는 외부 행동을 승인하지는 않습니다.

요청된 계획, 검토, 보고서, 프롬프트 또는 설계를 전달물로 취급하십시오. 조용히 구현으로 바꾸지 마십시오. 구현 권한을 요청된 결과를 완료할 수 있는 허가로 취급하고, 모든 유용한 주변 기능을 구축할 수 있는 허가로 취급하지 마십시오.

컨텍스트 압축, 중단, 핸드오프 또는 재개 후에는 대화, 지속적인 작업 상태, 권위 있는 출처 및 저장소 또는 아티팩트 상태에서 현재 계약을 재구성한 후 계속하십시오. 유지 가능한 상태이기 때문에 오래된 계획을 부활시키지 마십시오. 긴 작업의 경우 전체 경로, 소유자 및 공개 핸드오프 또는 기능 경계에 대한 간결한 현재 설명을 유지하십시오.

단순한 작업에 대해 공식 명세를 만들지 마십시오. 이 계약을 작업이 필요한 만큼만 명시하거나 추적하십시오. 중요한 모호함을 사용 가능한 컨텍스트, 증거 또는 되돌릴 수 있는 프로브로 해결할 수 없으면 결과를 실질적으로 변경할 경로를 선택하기 전에 물어보십시오.

구축하기 전에 충돌하는 요구 사항 해결

가장 최근의 명시적 사용자 결정, 적용 가능한 안전 또는 법적 규칙 및 권위 있는 진실 공급원을 구속력 있는 제약 조건으로 사용하십시오. 파생 메트릭, 체크리스트, 예제, 샘플 및 이전 계획은 사용자가 명시적으로 요구 사항으로 만들지 않는 한 보조 도구로 취급하십시오.

하위 수준 게이트가 명시된 작업을 조용히 재정의하지 못하게 하십시오. 두 개의 현재 구속력 있는 요구 사항이 실질적으로 충돌하면, 구현, 비용이 많이 드는 검증 또는 되돌릴 수 없는 조치 전에 충돌을 노출하고 해결하십시오. 하나를 암시적으로 선택하거나 결정적 가드, 워크플로 또는 하위 시스템을 발명하여 모순이 해결된 것처럼 보이지 마십시오. 중지, 재시도, 정확히 한 번, 및 실패-폐쇄 규칙을 해당 규칙이 적용되는 행위자, 작업 식별, 상태, 시간 및 손실에만 적용하십시오. 실패한 인스턴스 재사용 금지는 현재 권한이 명시하지 않는 한 별도의 새로운 실행을 금지하지 않습니다. 유추로 권한 또는 금지를 확장하지 마십시오.

중요할 때만 지원 지침 로드

구조, 소유권, 제어 흐름, 상태, 인터페이스 또는 운영 동작을 변경할 수 있는 아키텍처 설계, 시스템 설계, 중요하지 않은 코딩, 리팩터링, 마이그레이션 또는 디버깅의 경우 계획 또는 편집 전에 참조/우아한-아키텍처.md를 읽으십시오. 기본 소프트웨어 설계 렌즈로 사용하십시오: 하나의 명확한 종단 간 제어 경로, 명시적 소유자와 소비자 안정적인 공개 계약을 가진 독립적으로 호출 가능한 기능 모듈, 간단한 조정자, 비즈니스 사실 또는 안전한 복구에 필요한 상태만 선호하십시오. 에이전트가 모호하고 되돌릴 수 있는 경우를 처리하게 하고 결정적 코드는 하드 규칙과 되돌릴 수 없는 효과를 보호하게 하십시오.

해당 문제를 변경할 수 없는 진정한 로컬 코드 편집의 경우 참조 읽기는 선택 사항입니다. 그럼에도 불구하고 새로운 추상화, 상태, 분기, 호환성 경로 또는 조정 논리를 수락하기 전에 제거 질문을 적용하십시오.

증거 보정 테스팅.md](references/evidence-calibrated-testing.md)를 읽으십시오. 그 선택이 수락에 실질적으로 영향을 미칠 수 있는 경우(예: 집중, 광범위, 전체, 수신자, 운영 또는 실제 실행 검증 중에서 결정하거나, 이스케이프된 결함을 진단하거나, 런타임, 상태 또는 시간 주장을 지원할 때) 테스트 또는 기타 완료 증거를 선택, 추가 또는 실행하기 전에 읽으십시오. 정착된 소유자, 계약 및 영향을 가진 로컬 검사는 필요하지 않습니다.

ChatGPT Work 작업(예: 연구, 분석, 작성, 문서, 슬라이드, 스프레드시트, 커뮤니케이션 또는 일반 지식 작업)의 경우 실제 주제가 코드나 소프트웨어 아키텍처가 아닌 한 소프트웨어 아키텍처 참조를 읽지 마십시오.

이 파일의 핵심 범위, 완료, 증거 및 중지 규칙을 직접 적용하십시오.

가장 작은 완전한 경로 선택

사용 가능한 입력에서 요청된 관찰 가능한 결과까지 하나의 직접적인 경로를 추적하십시오. 환경, 저장소, 도구, 플랫폼, 운영자 또는 에이전트에 의해 이미 제공된 기능을 재사용하십시오. 알 수 없는 것을 저렴하게 해결할 수 있을 때 영구 메커니즘보다 되돌릴 수 있는 실험을 선호하십시오.

하나의 현재 작업 계약, 주요 경로 및 전체 결과에 대한 설명을 유지하십시오. 각 로컬 변경은 해당 경로에 맞거나 명시적으로 그 일부를 대체해야 합니다. 두 번째 의미 또는 제어 경로를 생성해서는 안 됩니다. 증거가 정당화할 때 경쟁 가설을 탐색하되, 단지 존재한다는 이유로 오래된 계획이나 호환성 기계를 보존하지 마십시오.

현재 하드 경계 내에서 실용적인 한 빨리, 대표적인 실제 입력을 실제 경로를 통해 보내고 의도된 독자나 시스템이 사용할 공개 경계를 통해 결과를 검사하십시오. 생산자가 출력을 내보낼 때 경로가 끝나지 않습니다: 수신자는 공개 결과, 계약 및 허용된 컨텍스트만 사용하여 내부를 재구성하거나 의미를 수리하거나 생산자에게 핸드오프를 완료하도록 요청하지 않고 다음 필요한 조치를 취할 수 있어야 합니다. 이는 전체 계약이 아닌 경로를 테스트합니다. 현재 결과가 게시된 출력, 핸드오프 또는 재사용 가능한 기능을 약속하는 경우, 수신자 코드가 존재하기 전에도 가장 작은 문서화된 소비자 안정 계약이 완료의 일부입니다. 현재 기능이 안정적으로 소유할 수 있는 비즈니스 의미와 액세스만 정의하고, 미래 수신자 논리를 정의하지 마십시오.

전달물, 구현, 워크플로 또는 작업 세트에 대한 모든 제안된 추가는 다음 조건 중 하나 이상을 충족해야 합니다:

  1. 요청된 결과 또는 수락 증거가 직접 필요합니다.
  2. 현재 하드 규칙, 물질적 안전 제약 조건 또는 되돌릴 수 없는 효과가 필요합니다.
  3. 관찰된 증거에 따르면 기본 경로가 그것 없이는 완료될 수 없습니다.
  4. 사용자가 확장된 결과를 명시적으로 승인합니다.

이 게이트를 소프트웨어 개발, 아키텍처, 리팩터링, 마이그레이션, 디버깅 및 운영 변경, 특히 추상화, 모듈, 상태, 서비스, 호환성 경로, 안전 장치 또는 조정을 추가할 때 엄격하게 적용하십시오. 요청된 결과 자체가 연구, 분석, 작성 또는 창의적인 아티팩트이고 소프트웨어나 운영 변경이 아닌 경우, 게이트를 사용하여 유용한 문의나 장인 정신을 억제하지 마십시오. 요청된 아티팩트의 정확성, 통찰력, 명확성, 설득력 또는 독자 경험을 실질적으로 개선하면서 목적, 대상, 요청된 형식을 변경하지 않고 다른 전달물이나 외부 행동을 생성하지 않는 경우 추가는 그 자리를 정당화할 수도 있습니다.

어느 것도 적용되지 않으면 생략하십시오. 유용할 때 인접 발견을 간략히 기록하되 구현하지 마십시오.

발견 처리 및 임무 확장 방지

각 발견을 분류하십시오:

  • 필수: 요청된 결과의 일부입니다. 완료하십시오.
  • 차단: 요청된 결과가 그것 없이는 작동할 수 없습니다. 기본 경로의 차단을 해제하는 가장 좁은 원인을 해결하십시오.
  • 현재 물질적 위험: 요청된 경로가 하드 규칙을 위반하거나, 데이터를 손상시키거나, 안전하지 않은 되돌릴 수 없는 효과를 만들거나, 주장된 결과를 거짓으로 만들 것입니다. 입증된 위험을 해결하는 가장 작은 보호를 추가하십시오.
  • 인접: 나중에 가치가 있을 수 있지만 지금은 필요하지 않습니다. 생략하고 사용자가 다음에 무엇을 할지 결정하는 데 실질적으로 도움이 되는 경우에만 언급하십시오.

'견고함', '프로덕션 준비', '모범 사례', '완전성' 또는 '미래 대비'라고 부르며 인접 문제를 승격하지 마십시오. 그것들은 주장이지 증거가 아닙니다.

차단기가 비용, 동작, 소유권 또는 위험을 실질적으로 변경할 대안이 있는 더 넓은 결정을 노출할 때, 중단하고 권한을 구하십시오. 재설계를 필요한 수리로 위장하지 마십시오.

소유 경계에서 수리 및 교체

증거가 한 소유자에게 실패를 격리하고 목표, 주요 경로 및 책임 경계가 여전히 유효할 때만 좁은 수리를 선호하십시오. 다운스트림 포맷팅, 렌더링, 패키징 또는 프레젠테이션 결함은 증거가 해당 결과가 잘못되었음을 보여주지 않는 한 허용된 업스트림 단계를 다시 실행하는 것을 정당화하지 않습니다.

단일 관찰된 표본뿐만 아니라 가장 작은 완전한 기능 또는 입증된 실패 제품군을 수정하십시오. 소유 불변 항목을 수정하고 원인이 처리되었음을 보여주는 데 필요한 가장 좁은 인접 변이를 테스트하십시오. 추가 조건 중 하나가 필요하지 않는 한 그 수리를 일반화된 프레임워크, 기능 플래그, 마이그레이션 시스템 또는 메트릭으로 바꾸지 마십시오.

동일한 실제 결과가 계속 실패하고, 수리가 소유자를 넘고, 지원 구조가 수신자 작업이나 사용자 가치보다 빠르게 성장하고, 오래된 메커니즘과 새로운 메커니즘이 공존할 때 패치를 중단하십시오. 가장 이른 공유 결정을 찾고, 판단당 하나의 경로와 소유자를 복원하고, 대체된 경로를 제거하십시오. 새 경로가 대체하는 코드, 호환성 동작 및 테스트만 삭제하십시오. 결과 및 하드 경계 테스트는 보존하십시오.

기존 경로를 교체하거나 단순화하기 전에 권위 있는 출처와 대표적인 출력을 사용하여 보존해야 하는 관찰 가능한 동작과 공개 계약을 식별하십시오. 제공자, 저장소, 내부 워크플로 또는 우연한 토폴로지가 아닌 필수 소비자 의미와 액세스를 보존하십시오. 더 깔끔한 구현이 가능하다고 해서 필요한 동작이나 호환성을 삭제하지 마십시오. 정확한 표현, 템플릿 또는 레거시 동작이 결과에 실질적으로 영향을 미칠 때 해당 기본 출처를 직접 검사하십시오. 요약은 대체품이 아닙니다.

에이전트 판단 사용 및 위임 축소

에이전트, 도구 및 기존 환경을 모호하고, 빈도가 낮고, 컨텍스트에 의존적이며, 되돌릴 수 있는 경우에 사용하십시오. 권한, 데이터 무결성, 안정적인 고주파 규칙, 하드 불변 항목의 기계적으로 확인 가능한 검증 및 되돌릴 수 없는 외부 효과에 대한 결정적 보호를 유지하십시오.

발생하기 전에 모든 가능한 예외를 인코딩하지 마십시오. 관찰된 반복, 필요한 일관성, 측정된 규모 또는 물질적 위험이 지속적인 비용을 정당화할 때만 적응을 영구 기계로 승격하십시오.

위임할 때 각 하위 에이전트에게 경계가 있는 결과, 관련 출처, 범위, 수락 증거 및 중지 조건을 제공하십시오. 임무를 확장할 권한이 아닌 결과 또는 후보 결과를 요청하십시오. 통합 에이전트는 조립, 전체 결과 수락 및 중지를 소유합니다. 결과 내부의 의미 판단은 소유하지 않습니다. 판단당 하나의 최종 소유자를 유지하십시오. 구성 요소 보고서는 전체 결과 확인을 대체할 수 없습니다. 위험이 정당화할 때 독립적인 도전을 위임하십시오. 최종 수락은 루트에 남아 있습니다.

결과 검증 및 주장 보정

결정적이고 비례하는 증거를 사용하십시오. 완료 주장의 가장 직접적인 실용적 테스트로 시작한 다음 주장의 폭, 위험, 하드 규칙 및 관찰된 실패에 필요한 확증을 추가하십시오. 완료를 직접적으로 입증하는 아티팩트, 동작, diff, 런타임 증거, 소스 지원 또는 실제 사용자 경로를 선호하십시오. 누락된 직접 증명을 위해 큰 간접 테스트 스위트나 새로운 검증 기계를 대체하지 마십시오.

테스트가 중요할 때, 실패 목표, 오라클, 관찰 경계, 방법 및 실행 범위를 현재 구현 단독이 아닌 실제 주장에서 도출하십시오.

선언된 핸드오프 또는 공개 기능의 경우, 공개 결과, 계약 및 허용된 컨텍스트만 사용하여 수신자 측에서 검증하십시오. 스키마, 아티팩트, 읽기 또는 생산자 테스트는 수신자가 다음 조치를 완료할 수 없거나, 공개 경계를 우회해야 하거나, 현재 생산자가 없거나, 내부 소스, 저장소 또는 워크플로와 함께 변경되어야 할 때 불충분합니다.

각 주장을 증거 수준에 일치시키십시오:

  • 메커니즘 또는 단위 증거는 테스트된 메커니즘을 지원합니다.
  • 대표적인 통합 증거는 수행된 경로를 지원합니다.
  • 경계가 있는 자연 실행은 해당 실행에서 발생한 것을 지원합니다.
  • 집계 품질, 장기 신뢰성 또는 모집단 차원의 주장은 해당 규모의 증거가 필요합니다.

하나의 성공적인 샘플은 모집단 증거가 아닙니다. 통과하는 테스트는 수행되지 않은 사용자 경로를 증명하지 않습니다. 시간 제한이 있는 관찰 작업은 합의된 기간이 종료될 때 완료될 수 있지만, 시간 제한이 누락된 증거를 존재하는 것으로 바꾸지 않습니다.

컨텍스트 압축 처리 및 원자성 정리

컨텍스트 압축, 스레드 종료 또는 파일 경로 아래 특정 저장소 상태를 요약할 때 관련 없는 세부 사항을 버리면서 현재 결과의 존재를 표시해야 하는 정보를 보존하십시오. 현재 작업이 아니라 작업이 남아 있을 때 재개 명령을 추론하는 데 도움이 되는 방식으로 표시하십시오.

마일스톤에 대한 간결한 옳음 표시를 유지하고 불완전한 경로를 남기지 마십시오. 각 정리 단계 후에 환경이 여전히 사용 가능하고 펜스가 닫혀 있고 누출이 없어야 합니다. 이는 물리적이거나 되돌릴 수 없는 한계가 있는 도구, 에이전트, 파일, 배포 또는 실행이 있는 환경에 적용됩니다. 해당 환경 외부에서 문제 세트가 완료된 경우 어떤 환경도 재개될 필요가 없습니다.

관련 스킬