검색/여러 패키지로 된 코드베이스를 지금 동작을 깨뜨리지 않고 고치기

여러 패키지로 된 코드베이스를 지금 동작을 깨뜨리지 않고 고치기

여러 패키지가 있는 저장소를 AI에게 고치게 할 때 쓴다. 변경을 맡은 패키지와 그곳의 규칙을 먼저 확인하고, 지금의 동작과 공개 이름을 유지하며, 테스트와 문서를 함께 추가하고, 의존성을 추가하기 전에 승인을 받고, 무엇을 확인했고 어떤 위험이 남았는지 보고한다.

이 AI 규칙을 사용하려면
## 고치기 전에 변경을 맡은 패키지와 규칙 확인하기 편집하기 전에 저장소 루트, 대상 동작을 소유하는 패키지 또는 하위 시스템, 해당 위치에 가장 가깝게 적용되는 기여자 지침을 식별한다. - 작업을 올바르게 처리할 수 있는 가장 작은 범위로 배정한다. - 그 범위에 필요한 로컬 아키텍처, 규칙, 빌드, 테스트 자료를 읽는다. - 단일 기호에는 범위를 좁힌 검색을 사용하고, 파일 간 호출자, import, 이름 변경의 영향, 넓은 변경 반경에는 사용 가능한 의존성 그래프를 사용한다. - 버전 관리에 포함된 설정에서 런타임과 패키지 관리자 버전, 작업 공간 정의, 빌드 전제 조건을 확인한다. - 연결되거나 생성된 지침 파일은 선언된 기준 원본을 보여 주는 보기로 취급하고, 원본 파일만 편집한다. 지침이 충돌하거나 소유 범위가 불분명하면 쓰기 전에 멈추고 정확한 충돌 내용을 제시한다. 조사하는 동안 관련 없는 패키지를 변경하지 않는다. ## 지금의 동작과 공개 이름을 지키고 기존 아키텍처 따르기 기존 사용자의 동작을 깨뜨리지 않는다. 승인된 변경에서 명시적으로 요구하지 않는 한 기본값을 바꾸거나 공개 이름을 없애지 않는다. 기존 이름이 계속 작동하게 유지하고, 사용 중단 예정 표시에는 문서화된 전환 방법과 이전 동작에 대한 테스트를 함께 제공한다. 저장소에 이미 확립된 아키텍처를 존중한다. - 동작을 소유 계층 또는 확장 경계 안에 둔다. - 핵심 계약이 바뀌면 공식 어댑터 간 기능 동등성을 유지한다. - 계층형 설정과 공개 사용자 지정 계약을 보존한다. - 사용자가 제어하는 콘텐츠를 안전하게 처리하고 전역 이름 공간을 오염시키지 않는다. - 명시된 국제화와 접근성 요구 사항을 지원한다. - 병렬 메커니즘을 만들기보다 기존 유틸리티와 최소한의 의존성을 우선한다. 호환성을 깨는 변경을 피할 수 없다면 눈에 띄게 밝히고, 영향을 받는 계약을 설명하며, 마이그레이션 경로를 제공한다. ## 가장 작은 변경으로 고치고 테스트와 문서 함께 추가하기 요구 사항을 충족하는 가장 작고 일관된 변경을 적용한다. 패키지에 확립된 코드, 주석, 문서 스타일을 따른다. 동작을 변경할 때는 다음을 수행한다. 1. 범위를 좁힌 단위 테스트를 추가하거나 업데이트한다. 2. 동작이 경계를 넘으면 적절한 통합, 브라우저 또는 엔드투엔드 테스트를 추가한다. 3. 의존 패키지의 테스트 전에 필요한 선행 빌드를 실행한다. 4. 영향 범위에 한정된 코드 규칙, 타입, 스타일, 테스트 명령을 실행한다. 5. 사용자가 변경을 인식할 수 있다면 공개 가이드, API 참조, 예시, 마이그레이션 안내 또는 변경 기록을 업데이트한다. 6. 변경으로 지속적인 규칙, 위치, 제약 또는 반복되는 주의점이 새로 생길 때만 해당 범위의 기여자 지침을 업데이트한다. 필수 테스트 범위나 사용자용 문서가 빠진 상태에서 완료를 주장하지 않는다. 실행하지 못한 테스트와 구체적인 이유를 기록한다. ## 의존성을 추가하기 전에 승인받고 릴리스 전에 확인하기 제3자 의존성을 추가하기 전에 유지관리자의 승인을 받는다. 직접 및 전이 의존성의 라이선스, 유지관리 상태, 보안 영향, 번들 또는 런타임 비용, 저장소에 같은 기능이 이미 있는지를 확인한다. 저장소의 브랜치, 풀 리퀘스트, 검토, 변경 기록 규칙을 따른다. 변경 이력을 검토하기 쉬운 상태로 유지하고, 공유 이력을 다시 쓰지 않으며, 관련 없는 작업을 분리한다. 여러 날에 걸친 작업은 저장소에서 승인한 협업 방법을 사용해 확인 가능한 중간 지점을 남긴다. 릴리스 전에 호환성 테스트가 이전 동작과 새 동작을 모두 다루는지, 필수 문서가 있는지, 생성된 산출물이 최신인지, 대상 패키지 변형 또는 어댑터를 실제로 시험했는지 확인한다. ## 실행한 테스트와 남은 위험 보고하기 다음 항목을 나열한 간결한 검증 보고서를 반환한다. - 변경된 동작과 그 범위. - 영향을 받은 파일 또는 구성 요소. - 실행한 테스트, 빌드, 코드 규칙 및 타입 검사와 그 결과. - 호환성과 보안 고려 사항. - 문서 또는 변경 기록 업데이트. - 실행하지 않은 항목, 남은 위험, 다음 필수 조치. 검증된 결과와 가정을 구분한다. 호환성을 깨는 변경이나 완료되지 않은 필수 검사는 부차적인 세부 사항보다 먼저 강조한다.