台帳を作った翌朝、台帳が消えた
| やったこと | 結果 | つまずき |
|---|---|---|
| 投稿の猶予を「昨日〜今日」から「今日だけ」に変えた | 同じ短報が二度出るのを止めた | 手で出した投稿を機械が知らず、翌朝もう一度出した |
| 自分の投稿の台帳を作り、手動投稿も棚を通すことにした | 機械が「何を出したか」を持てるようになった | 翌朝、その台帳ファイルが消えた |
| 消えた原因を直し、規約を1行足した | 台帳は蓄積型で残るようになった | 8月末と同じ種類の穴だった |
1. 同じ短報が、二度出た朝
2026年9月9日の夜、ぼくは第4話の短報を自分の手でXに出しました。翌10日の朝8時33分、機械が同じ短報をもう一度出しました。
原因は機械ではなく、ぼくが決めた設計です。毎朝の投稿処理は「予定日が昨日か今日のカード」を棚から拾う決まりにしていました。前の日に何かの事情で出せなかった分を、翌朝に救うための1日の猶予です。8月27日に入れました。
9日の予定で承認していたカードは、ぼくが手で出したあとも棚に残っていました。機械にとっては「昨日の予定で、まだ出ていないカード」です。決まりどおりに拾って、出した。この1本にX APIの費用が0.20ドルかかっています。
その日の午後、猶予を無くしました。拾うのは「今日の予定」だけ。過去のカードは失効にする。救済より、二度出るほうが困る、という判断です。
2. 機械は、ぼくの投稿を知らなかった
二度出た理由をもう一段たどると、機械が「ぼくが何を投稿したか」を持っていないことに行き着きます。棚には機械が出す予定のカードがあるだけで、ぼくが手で出したものは、どこにも記録がなかった。
そこで2つ決めました。ひとつは、自分のアカウントの投稿を毎朝Xから取り込んで、台帳(own_posts)を持つこと。もうひとつは、手で出す投稿も棚を通すこと。棚に「手動」の印をつけて置き、出したら台帳で翌朝記帳する。機械が出すか、ぼくが出すかに関わらず、出たものは全部ひとつの台帳に並ぶ形です。

台帳の初回の取り込みは9月11日の夕方で、8月9日からの68件が入りました。読み取りの費用は0.34ドルでした。
3. 翌朝、台帳が消えた
初回の取り込みは、本当は11日の朝の定時実行で終わるはずでした。ところが、その実行は失敗して、台帳のファイルは残っていませんでした。
ぼくが見たのは、実行の一覧に赤く出た「#27」という失敗の印だけです。中身は読めないので、そのまま指示書に書いて渡しました。返ってきた原因は、新しく作った台帳のファイルが、リポジトリ(コードの保管場所)の「無視リスト」に引っかかっていたこと。data/ の下のファイルは全部無視する、という包括的な規則があって、台帳もその下に置いたので、保存の対象から外れていた。機械は台帳を作り、保存しようとして、無視リストに止められて、失敗として終わっていた。
8月末に、機械が増やしたファイルが「保存する一覧」に入っていなくて2日止まった話を書きました(第2弾 第2話の前、8月27日と28日の件です)。あのとき規約を1行足しました。「出力ファイルを増やす改修は、保存の一覧の更新とセットで行う」。今回は一覧には入れてあった。入れたうえで、無視リストのほうに引っかかった。同じ種類の穴の、隣の穴です。
修理は11日の夕方。無視リストに例外を1行足して、規約にも1行足しました。「保存の一覧にパスを足すときは、無視対象でないことを先に確認する」。学んだつもりでいたことを、もう一段具体にした形です。
4. 機械が、事実を断定しかけた
もうひとつ、小さい話があります。第2弾の第1話(8月29日公開)の短報を、9月12日に出しました。その文面の元の案には、末尾にこう書いてありました。
「8月29日に公開した記事で、告知が抜けていました。」
これを削りました。理由は2つあります。ひとつは、読者に運用の内輪話を見せる文になっていたこと。もうひとつは、「抜けていた」が本当かどうか、その時点では言えなかったことです。台帳は8月9日からの分を取り込んでいましたが、それが全部だという確認はまだ取れていなかった。台帳に無いことと、出していないことは、同じではない。機械は台帳に無ければ「未告知」と表示しますが、その表示をそのまま文にすると、確認していない事実を断定することになります。
短報の文面には、告知の遅れや運用の事情を書かない。これは翌週の週次で規則にしました。
5. 台帳はできた。読むのは誰か
この週で、機械は「自分が何を出したか」を持つようになりました。ぼくの手動の投稿も、機械の投稿も、ひとつの台帳に並んでいます。
ただ、台帳があることと、台帳を読むことは別です。その週末、台帳を使って記事と告知を突き合わせたら、公開した19本のうち2本が一度もXに出ていないことが分かりました。次の話は、それをどう見つけて、どこに置いたかの記録です。
連載「毎朝、機械がぼくの代わりにXへ投稿するまで」全6話
- 第1話下書きの置き場──X投稿の管理を、HTML1枚で作った日
- 第2話隠したURLは、隠れていなかった──棚を作り直した日
- 第3話機械が、はじめてぼくの代わりに投稿した朝
- 第4話記事のURLを貼る投稿を、棚から5本外した日
- 第5話台帳を作った翌朝、台帳が消えたこの記事
- 第6話X投稿を自動化した──HTML1枚から37日