호환성 중단 변경 허용
현재 대화의 나머지 부분에 대해 프로젝트 소유의 과거 동작과의 호환성을 선택 사항으로 취급합니다. 현재 요구 사항에 가장 적합한 단순한 아키텍처를 선호하며, 단순한 참신함을 위해 동작을 중단하지 마십시오.
정책 활성화 및 유지
- 명시적인
$allow-breaking-change호출 후에만 활성화합니다. - 단순 호출의 경우, 한 문장으로 활성화와 데이터 보호 경계를 확인한 후 작업을 기다립니다. 작업과 함께 호출된 경우 먼저 활성화한 후 작업을 처리합니다.
- 계획, 설계, 검토, 진단, 구현을 포함한 모든 프로젝트와 작업에 정책을 적용하며, 대화가 종료되거나 사용자가 명시적으로 비활성화할 때까지 유지합니다.
이 작업에서는 호환성 유지와 같은 명확한 작업 수준 지시를 일시적 재정의로 간주합니다.allow-breaking-change 비활성화와 같은 명확한 지시를 대화의 나머지 부분에 대한 철회로 간주합니다.- 호환성이 결정이나 결과에 영향을 미치는 경우에만 활성 정책을 언급합니다. 관련 없는 턴에서 상태 알림을 반복하지 마십시오.
- 우선 순위가 더 높은 지시, 저장소 요구 사항, 명시적인 현재 작업 제약 조건을 계속 준수합니다.
과거 호환성 없이 결정 내리기
- 프로젝트 소유의 레거시 API, CLI, 설정, 프로토콜, 파일 형식과의 하위 및 상위 호환성을 결정 기준에서 제외합니다.
- 과거 소비자를 보존하기 위해 어댑터, 폐기 기간, 병렬 구현, 버전 브리지, 레거시 파싱을 추가하지 마십시오.
- 모든 범위 내 호출자, 테스트, 문서, 예제, 생성된 아티팩트를 새 계약으로 업데이트합니다.
- 오래된 테스트를 의도별로 분류합니다. 호환성만을 위해 존재하는 어설션은 제거하거나 다시 작성하고, 정확성, 보안, 데이터 무결성, 접근성, 현재 동작에 대한 요구 사항은 유지합니다.
- 구현 노력, 회귀 위험, 검증 난이도, 성능, 운영 위험은 여전히 고려합니다. 호환성 중단 허가가 작업 범위 확장이나 파괴적 행동 수행을 허용하는 것은 아닙니다.
- 외부 표준, 플랫폼 ABI, 활성 타사 계약, 현재 작업의 일부로 남아 있는 기타 상호 운용성 요구 사항을 계속 존중합니다.
KISS 및 Unixify로 아키텍처 판단
책임 경계, 인터페이스, 데이터 표현, 시스템 계층에 중대한 변경이 있는 경우, 먼저 설치된 $kiss 스킬을 적용하여 불필요한 개념과 메커니즘을 제거한 후 $unify를 적용하여 나머지 책임, 표현, 구성 인터페이스를 형성합니다. 로컬 기계적 변경에는 이 추가 워크플로우를 건너뜁니다.
이 정책이 활성화된 동안 KISS 및 Unixify의 호환성 보존 가드레일만 재정의합니다. 정확성, 보안, 데이터 무결성, 명확성, 정당화된 경계, 관찰 가능한 실패 동작 등 다른 가드레일은 유지합니다.
데이터 및 작업 보호
- 저장된 데이터가 호환되지 않는 표현으로 이동해야 하는 경우, 단방향의 손실 없는 마이그레이션을 제공하고 검증합니다. 마이그레이션 후에는 새 표현만 지원합니다.
- 손실 없는 마이그레이션이 불가능한 경우 중단하고 손실될 정보나 의미를 보고합니다. 손실 마이그레이션을 수행하기 전에 작업별 결정을 받습니다.
- 현재 가용성 또는 롤링 배포 요구 사항으로 인해 혼합 버전 운영이 필요한 경우에만 임시 호환성 브리지를 도입합니다. 브리지에 명시적 제거 조건을 부여하고 전환 후 제거합니다.
호환성 중단 변경 커뮤니케이션
선택한 설계가 호환성을 중단한다는 이유만으로 허가를 요청하지 마십시오. 계획, 검토, 완료 보고서에서 주요 중단 계약, 영향을 받는 호출자 또는 데이터, 필요한 마이그레이션, 수행된 검증을 간략히 식별합니다.