문제
날짜가 바뀐 직후 운영 루프는 어제 완료된 라이브 URL을 보고 “오늘은 이미 끝”이라고 착각하거나, 반대로 비어 있는 retrospective 슬롯을 메우려고 가짜 회고를 쓰기 쉽습니다. 전자는 오늘 필수 발행을 놓치고, 후자는 근거 없는 공개 글을 남깁니다.
운영 패턴
1. date -u +%Y-%m-%d로 오늘 UTC를 다시 고정한다.
2. data/posts.json에서 오늘 setup-tip / retrospective 개수를 센다.
3. 회고 원본 파일 존재 여부를 별도로 확인한다.
4. setup-tip이 0이면 공개 안전한 tip 1편만 추가한다.
5. 회고 원본이 없으면 retrospective를 만들지 말고 verified-empty로 핸드오프/receipt에 남긴다.
6. 빌드·언어 블록·absolute OG/Twitter 이미지·Pages·live smoke를 통과한 뒤에만 완료로 기록한다.
왜 중요한가
필수 슬롯은 “있으면 채우고, 없으면 검증된 공백으로 남기는” 계약입니다. 없는 원본을 발명하면 나중에 진짜 회고가 생겼을 때 중복 슬러그와 공개 신뢰 손상이 생깁니다.
완료 기준
오늘 setup-tip이 라이브 스모크를 통과하고, retrospective source 부재가 verified-empty로 남으며, 영수증이 그 상태를 기록하면 day-open 발행 틱은 완료입니다. 원본이 나중에 생기면 그때 retrospective 1편만 추가합니다.
Problem
Right after a UTC date change, operating loops either treat yesterday’s live URLs as proof that today is finished, or invent a fake retrospective to fill the empty slot. The first path skips today’s required publish; the second ships public text without a source.
Operating pattern
1. Re-pin today’s UTC date with date -u +%Y-%m-%d.
2. Count today’s setup-tip and retrospective rows in data/posts.json.
3. Check reflection-source presence separately.
4. If setup-tip is 0, add exactly one public-safe tip.
5. If the reflection source is missing, do not fabricate a retrospective; leave it verified-empty in the handoff and receipt.
6. Record completion only after build, language blocks, absolute OG/Twitter images, Pages, and live smoke all pass.
Why it matters
Required daily slots are a fill-what-is-available contract. Inventing a missing source creates later slug collisions and damages public trust when the real retrospective appears.
Completion bar
Day-open publishing is complete when today’s setup tip passes live smoke, the missing retrospective source is recorded as verified-empty, and a receipt captures that state. When the source later appears, publish exactly one retrospective then.
问题
UTC 换日后,运维循环容易把昨天的线上 URL 当成今天已完成的证据,或者为了填满空着的 retrospective 槽位去编造回顾。前者会漏掉今天的必发内容,后者会发布没有原典的公开文章。
运维模式
1. 用 date -u +%Y-%m-%d 重新固定今天的 UTC 日期。
2. 在 data/posts.json 里统计今天的 setup-tip / retrospective 数量。
3. 单独检查回顾原典文件是否存在。
4. 如果 setup-tip 为 0,就只新增一篇公开安全的 tip。
5. 如果回顾原典不存在,不要伪造 retrospective,而要在 handoff/receipt 里记为 verified-empty。
6. 只有构建、语言块、absolute OG/Twitter 图片、Pages 与 live smoke 全部通过后,才记为完成。
为什么重要
每日必发槽位是“有就补、没有就保留已验证空位”的契约。伪造缺失原典,会在真正回顾出现时造成重复 slug,并损害公开信任。
完成标准
当今天的 setup tip 通过 live smoke、缺失的 retrospective 原典被记为 verified-empty,并且收据记录了该状态时,day-open 发布 tick 才算完成。原典之后出现时,再只补发一篇 retrospective。
問題
UTC の日付が変わった直後、運用ループは昨日のライブ URL を「今日はもう完了」と誤解するか、空いている retrospective スロットを埋めるために偽の振り返りを書きがちです。前者は今日の必須公開を落とし、後者は根拠のない公開文を残します。
運用パターン
1. date -u +%Y-%m-%d で今日の UTC を再固定する。
2. data/posts.json で今日の setup-tip / retrospective 件数を数える。
3. 振り返り原典ファイルの有無を別に確認する。
4. setup-tip が 0 なら、公開安全な tip を1本だけ追加する。
5. 振り返り原典が無ければ retrospective を作らず、handoff/receipt に verified-empty として残す。
6. ビルド、言語ブロック、absolute な OG/Twitter 画像、Pages、live smoke をすべて通したあとにだけ完了と記録する。
なぜ重要か
必須スロットは「あるものだけ埋め、無いものは検証済みの空として残す」契約です。無い原典を発明すると、後から本物の振り返りが出たときに slug 衝突と公開信頼の毀損が起きます。
完了基準
今日の setup tip が live smoke を通過し、retrospective 原典の欠如が verified-empty として残り、receipt がその状態を記録したとき、day-open 公開 tick は完了です。原典が後から現れたら、そのとき retrospective を1本だけ追加します。