C.W.K.
Stream
Lesson 04 of 04 · published

force 의미론

~11 min · force, escape-hatch, money-boundary, scoped

Level 0Empty Shelf
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"--force 는 네가 의도한 작업을 재실행해야지, 네 돈을 지키는 guard 를 날려버리면 안 돼."

다들 손 뻗는 탈출구

계층 identity 는 시스템이 done 이라 여기는 걸 실제로 재실행하고 싶은 날까지는 훌륭해 — 프롬프트를 개선했고, 새 요약을 원해. 그래서 --force 에 손 뻗어. 그리고 안전한 도구랑 footgun 을 가르는 설계 질문이 여기 있어: --force 가 실제로 뭘 해야 해? 게으르고 위험한 답은 '모든 identity 를 무시하고 문자 그대로 전부 재실행' 이야. 그 '전부' 의 일부가 호출당 돈 드는 파이프라인에선, 그 뭉툭한 force 가 이미 transcript 가진 오디오를 blind 로 재결제해. 탈출구가 실수로 큰돈을 쓰는 방법이 돼.

force 는 범위 지어졌지, 전면이 아냐

Recall 의 --force 는 일부러 수술적이야. 네가 의도한 계층을 정확히 무효화하고 돈 guard 를 온전히 둬:

  • 새 execution identity — 새 batch 랑 job — 를 만들어서, 파이프라인이 'already done' 에 short-circuit 하는 대신 진짜 재실행해.
  • 하류 산물을 재생성 — 요약, 제목 — 그건 재계산이 싸고 보통 네가 force 하는 이유니까.
  • 근데 content-addressed 유료 호출 identity 는 그대로. 동일 config 아래 동일 오디오는 여전히 같은 유료 key 로 hash 되고, 여전히 완료된 ledger 행을 찾고, 여전히 저장된 응답을 재사용해. 새 POST 없음. 새 청구 없음.

그래서 정상 --force 는 네가 실제 원한 걸 줘 — 재실행이랑 새 파생 출력 — 돈 드는 그 하나는 안 건드리고. 동일 콘텐츠의 진짜 유료 재실행은 일반 force 플래그로 도달 불가 야. 별도의 명시적 행위가 필요해: 진짜 설정 lineage 변화(정당하게 새 유료 identity 를 냄) 아니면 사실상 '응, 이거 다시 결제해' 라고 말하는 명시적 operator 승인. 그리고 가장 좁은 force — title-only force — 는 기존 요약에 제목 프롬프트만 재실행해: 영상 안 읽고, 오디오 준비 안 하고, 아무것도 안 써.

원리: force 는 넘으면 안 되는 경계를 존중해

일반 교훈은 '재실행' override 를 애초에 어떻게 설계하냐야. '모든 안전 무시' 를 뜻하는 force 플래그는 나쁜 쪽으로 astonishing 해 — 유저가 그린 것보다 훨씬 많이 하고, 그 놀라움이 비싸. 잘 설계된 force 는 범위 지어졌어: 유저가 재생성 원하는 계층을 정확히 무효화하고, 별도의 더 시끄러운 opt-in 없이는 되돌릴 수 없거나 비싼 경계를 넘길 명시적으로 거부해. 버전 관리 시스템도 이걸 배웠어 — 평범한 force-push 는 남의 작업을 파괴할 수 있어서, 안전한 변형은 예상 못 한 변화를 force 로 지나길 거부해. 같은 정신이야: 흔한 force 는 안전하고 범위 지어지게, 위험한 force 는 실수로 못 빠지는 별도의 명시적 선택으로. override 는 작업을 재실행해야지, guardrail 을 없애면 안 돼.

Code

--force 가 건드리는 것, 일부러 안 건드리는 것·text
recall-archive start --source rekindled-ash --all --force

  재생성 (싸고, 보통 의도):
    - 새 execution identity (새 batch + job)
    - 요약
    - 제목

  보존 (돈 guard, 손 안 댐):
    - 유료 호출 identity = hash(chunk) + hash(config)
      -> 동일 오디오는 여전히 완료된 ledger 행에 맞음
      -> 저장된 응답 재사용, 새 유료 POST 없음

  진짜 유료 재실행은 여기서 도달 불가. 둘 중 하나 필요:
    - 진짜 config 변화 (새 유료 identity), 또는
    - 명시적  --allow-paid-rerun  승인

# title-only force: 기존 요약에 제목 프롬프트만 재실행.
# 영상 안 읽고, 오디오 준비 안 하고, 아무것도 안 씀.

External links

Exercise

네가 쓰거나 유지하는 도구의 'force', 'overwrite', 'redo' 옵션을 찾아. 정확히 뭘 무효화하는지 물어: 보통 재실행 원하는 것에 범위 지어져, 아니면 비싸거나 되돌릴 수 없는 행위 포함 전부를 날려? 단일 플래그가 싼 출력을 재생성하면서 비싸거나 파괴적인 걸 재-trigger 하면, 다시 설계해: 흔한 force 는 범위 짓고, 위험한 동작은 별도의 명시적 opt-in 뒤로 옮겨.
Hint
테스트 질문은 '이 force 가 할 수 있는 최악이 뭐고, 반사로 trigger 하기 얼마나 쉬워?' 야. 반사적 force 가 돈을 쓰거나 데이터를 파괴할 수 있으면, 설계가 틀렸어. 쪼개: 일상 경우엔 안전하고 범위 지어진 force, 되돌릴 수 없는 건 시끄럽고 별도인 승인 — 위험한 경로는 일부러만 선택되게.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.