やったこと結果つまずき
HTML1枚の下書き置き場を、リポジトリを正とする棚に作り直した承認済みの投稿がファイルとして残り、機械が読める形になった作り直しの最初の案が、同じ間違いをもう一度していた

欠陥1: 記録が、1台のスマホの中にしかなかった

第1話で作った置き場は、ページ自体はURLでどこからでも開けました。ただし「どれを投稿したか」「下書きをどう手直ししたか」という記録は、開いたそのスマホの中にだけ保存される作りでした。手帳を1冊、スマホの中に置いていたようなものです。PCで同じURLを開くと、棚は空。スマホを替えたら手帳ごと消えます。

困ったのは、棚を増やそうとしたときです。投稿を週3〜4本に増やす、記事を公開したら短報を自動で棚に入れる、いずれは機械に投稿させる。どれも「機械が棚を読める」ことが前提です。でも手帳はスマホの中にあって、機械からは読めない。

初版で回した8月10日から27日までの18日間、何本投稿したかの記録も残っていません。手帳はスマホの中にだけあったので、リポジトリ(コードと記録の保管場所)には何も残らなかった。作り直しを決めた理由の半分は、これです。

欠陥2: 「教えていないURL」は「見えないURL」ではない

もう半分は、非公開のつもりだった置き場が、非公開ではなかったことです。

置き場は自分のサイトの、誰にも教えていない長いURLに置いていました。ぼくの感覚では「知らなければ開けない」だったのですが、実際には「URLを知っている人は誰でも開ける」です。リンクをどこかに貼った瞬間、あるいは推測されただけで、承認前の下書きが全部見える。鍵をかけたつもりで、暗がりに置いただけでした。

作り直しの最初の案は、同じ間違いだった

8月27日、作り直しをAIに相談しました。ここで一度、間違えています。

最初に出てきた案は、見た目を整えて機能を足した「新しいボード」で、記録の置き場所は相変わらずスマホの中でした。承認済みの投稿をファイルにも書くけれど、「済」や手直しはスマホ側の記録を優先する、という設計。欠陥1が直っていない。

ぼくがその日にAIへ送った言葉は、2つです。

おれ以外絶対に見ることができない環境ならそれでいいですが、その点大丈夫ですか?

返事は「いまの案では保証できません」でした。URLを知っていれば誰でも読める、と。これが欠陥2をはっきりさせた瞬間で、ここでCloudflare Accessが出てきます。

[運営中の決済専門メディア]のボードの方が優秀なんですよね。もう一度反証してください。設定に時間ばかりとられていて何もかもが中途半端に思えます。

([ ]は事業名を伏せて置き換えた箇所です)

ぼくは別の事業で、同じ種類のボードを動かしています。そちらは「記録はリポジトリの中のファイルにある。画面はそれを表示するだけ。投稿は機械が定時にやる」という形で、止まらずに動いている。同じ形をなぜ最初から使わなかったのか、という問いでした。

返事は「反証しません。構造として上です」。AIの説明では、こちらの「実況は人が書く・承認は人がする」という中身の決まりを、基盤の作り方の決まりと混同していたとのことでした。中身の規則と、器の規則は別です。器は、別の事業のものと同じでよかった。

その日のうちに、記録の置き場をスマホからリポジトリの中のファイル(shelf.json)に移しました。投稿の登録・承認・投稿済みの記録は、すべてそのファイルへの書き込み。画面はファイルから生成した表示専用のページで、どの端末で開いても同じ棚が見える。画面側からは何も書き換えず、承認はボタンではなく、チャットで番号を指定して記録する形です。「画面で操作する」を、「台帳を書き換えると画面が変わる」に逆転させました。

非公開は、鍵で作る

欠陥2は、Cloudflare Access(クラウドフレア・アクセス)で直しました。サイトとは別の場所に棚のページを置き、開くときにログインを求める。URLを知っていても、鍵がなければ開けない。

置いたあと、3つの経路(ページ本体・ファイル・存在しないパス)で、鍵なしだと弾かれることを確かめました。ここは「たぶん大丈夫」で済ませたくなかったので、AIに確認の手順ごと出させて、結果をそのまま報告させています。

ついでにもう1つ。旧い置き場を消す変更は、送ったのに本番に反映されていませんでした。公開の仕組みが古い版を配信し続けていて、「消したつもりで消えていない」状態。これはぼくが管理画面で最新版に切り替えて直しました。消すのも、確かめるまでは終わっていない。

この日の実測

  • 作り直しにかかった時間: 棚の作り直し(部品A)約2時間。最初の案で使った時間を含む
  • 初版の稼働期間: 8月10日〜27日・18日間。投稿数の記録なし
  • 新しい棚に初日に登録した投稿: 10本。うち7本を8月28日〜9月3日の毎日1本に割当(残りは当日分1本・予定未定2本)
  • 承認の方法: チャットで番号指定。画面からの操作はなし

作り直した棚が「機械が読める」形になったことで、次の話に進めます。第3話は、機械が初めてぼくの代わりに投稿した日です。

連載「毎朝、機械がぼくの代わりにXへ投稿するまで」全6話

  1. 第1話下書きの置き場──X投稿の管理を、HTML1枚で作った日
  2. 第2話隠したURLは、隠れていなかった──棚を作り直した日この記事
  3. 第3話機械が、はじめてぼくの代わりに投稿した朝
  4. 第4話記事のURLを貼る投稿を、棚から5本外した日
  5. 第5話台帳を作った翌朝、台帳が消えた
  6. 第6話X投稿を自動化した──HTML1枚から37日

この記事について

同じところで詰まった、ここが分からなかった、があれば聞かせてください。次の記事の材料にします。

Xで返信する →