은퇴와 삭제는 다른 말이야
pipeline 은 new work 를 그만 받으면서도 history 에 계속 존재할 수 있어. archive 가 그 상태야. compose picker 에서는 빠지고, old delegation 은 name, version, description 을 계속 resolve 할 수 있어야 해.
delete 는 identity 를 다시 해석할 일이 없다고 말해. brief, stage, review, landing record 중 하나라도 row 를 참조하면 거짓말이야. cascade 로 깨끗하게 만들면 workshop 이 지키려던 proof 를 지워서 데이터 정돈을 사는 셈이고.
archive 는 timestamp 달린 transition 으로 남겨. 누가, 언제, 어느 version 을 retire 했는지 기록하면 new intake 중단 시점을 설명할 수 있어. restore 를 허용한다면 오래된 name 과 evolved template 를 다시 쓰는 위험까지 review 해야 해.
view 마다 projection 이 달라. compose 는 숨기고 admin/history/show 는 state marker 와 함께 보여. 모든 곳에서 숨기면 old record 가 broken 처럼 보이고, active 옆에 표시 없이 두면 accidental reuse 를 부르지.
가시성 양쪽을 시험해
archive 뒤 compose 에서 빠지는 assertion 과 historical delegation 에서 계속 resolve 되는 assertion 을 따로 써. list test 하나로는 반대 방향 약속 둘을 증명할 수 없어.
과거 착지 기록에서 archived pipeline 이름을 눌렀다고 해보자. “없는 항목”이 아니라 당시 title, version, archive 시각을 읽을 수 있어야 해. 반면 새 compose picker 에서는 선택 자체가 안 보여야 하고. 같은 행을 화면마다 다르게 투영하는 게 데이터 불일치가 아니라 생애주기 의미야. view 별 약속을 테스트 이름에도 그대로 박아두면 나중 정리 작업이 archive 를 delete 로 바꾸기 어려워져.