AIにブログを公開させない。post_draft.pyで下書き保存まで仕組みにした話

ブログを会社化する設計

前の記事「articles.dbで記事を管理する。ブログを感覚ではなく台帳で見る」で、記事をDBで管理できるようになった。
次に見えてきたのは、投稿作業だった。

WordPressを開いて、本文を貼って、タイトルを入れて、下書き保存する。
毎回これをやっていた。

面倒だった。
でも、公開までAIに任せるのは怖かった。

だから post_draft.py を作った。
AIに公開させるためではない。
WordPressに下書き保存するところまでを仕組みにするためだ。


WordPressに直接投稿するのが怖かった

間違ったタイトルで公開されるかもしれない。
カテゴリが違うかもしれない。
SEO情報がまだ確認できていないかもしれない。
内部リンクをまだ確認していないかもしれない。

公開は読者に見える。
下書きなら間違えても直せる。

だから、下書き保存だけを自動化することにした。


post_draft.py は下書き搬入担当

post_draft.py は、公開する道具ではない。
WordPressに下書きを置く道具だ。

AIブログ会社の言葉で言い直すと、post_draft.py は「投稿担当」ではなく「下書き搬入担当」だ。
記事をWordPressの搬入口まで運ぶ仕事。

公開するかどうかの判断は、俺が開いたあとに始まる。

下書き搬入担当。それで十分だった。


ひとつ目のブログでは動いた。でも別のブログでは止まった

ひとつ目のブログで、post_draft.py は止まらなかった。
だから仕組みは完成したと思っていた。

別のブログで同じ仕組みを動かしたとき、止まった。

同じコード、同じ手順で試した。
それでも止まった。

ブログが違えば、カテゴリも違う。
タグの設定も違う。
SEO情報の持ち方も違う。

俺の中では、最初のブログをzumin、次のブログをblog-sekkeiと呼んでいる。
同じ post_draft.py を動かした。
でも止まった。

これが、「一つのブログで動いた=仕組みが完成した」ではないことを教えてくれた。
クライアントが変わっても止まらない。
そこで初めて、仕組みになる。

一つで動いた。でもそれだけでは仕組みではなかった。


止まった原因は、記事ではなく入力待ちだった

最初、何が原因かわからなかった。

SEO情報が悪いのか。
カテゴリが悪いのか。
post_draft.py 自体が悪いのか。

だからログをそのままChatGPTに貼った。
「これ、何が起きたのですか?」と聞いた。

そこから、原因が分かれていった。
SEO情報の自動登録は動いていた。
止まっていたのは、カテゴリとタグの入力待ちだった。

質問をうまく作ったわけじゃない。
起きたことを貼っただけだ。

原因がわかって、問題がはっきりした。
自動化したつもりでも、途中で人間の入力を待つなら仕組みではない。


下書き保存を最優先にした

原因がわかったあと、post_draft.py の目的を整理した。

目的は、完璧な投稿データを作ることではない。
WordPressに下書き保存することだ。

SEOタイトルがなくても、本文とタイトルがあれば下書きにできる。
カテゴリが未登録でも、あとで直せる。
タグが足りなくても、あとで足せる。
Yoast SEO、要するにWordPressのSEO管理ツールへの反映に失敗しても、本文の下書きが残っていれば確認できる。

だから、下書き保存を最優先にした。
止まる前に、保存する。

保存が先。確認はあとでいい。


SEO情報の欠如では止めない

SEO情報は大事だ。
タイトルタグ、メタディスクリプション、フォーカスキーワード。

でも、SEO情報がないからといって下書き保存を止める必要はない。
あとから確認できるからだ。

SEO情報が足りないたびに処理が止まると、投稿工程が進まない。
だから、SEO情報の欠如では止めない。

SEO情報がなくても、下書きは保存できる。


止まってよい理由を3つだけにした

では、何があれば止まってよいのか。
整理したら、3つになった。

1. WP API通信エラー:WordPressに繋がらなければ、下書きに保存できない
2. ファイル未存在:投稿する本文がなければ、下書きに入れるものがない
3. CLIENT_NAME未設定:要するに「どのブログに入れるか」の設定値がなければ、動かしようがない

この3つは、本当に止まってよい。

逆に、止めないものはこうなった。

  • SEO情報の欠如
  • カテゴリ未登録
  • タグ未登録
  • Yoast SEO反映失敗
  • メタ情報の不足

これらは下書き保存後に確認できる。
だから止めない。

止まる理由を3つにした。それ以外では止めない。


AIには公開させない

公開ボタンだけは、人間が押す。

post_draft.py は、その境界線だ。
WordPressの下書きに記事を置く。
そこで止まる。

公開するかどうかを決めるのは俺だ。


仕組み化とは、止まる理由を決めることだった

自動化というと、何でも自動で進むことだと思っていた。

でも実際には、何でも進めればいいわけではない。

止まってよい場所を決める。
止まってはいけない場所を決める。
人間が見る場所を残す。

post_draft.py でやったのは、投稿の自動化ではなかった。
投稿工程の設計だった。

AIには公開させない。
下書き保存で止める。
SEO情報では止めない。
本当に止まってよい理由だけを残す。

この線引きができて、ようやく安心して使える仕組みになった。


サイト全体を設計する。目次と内部リンクでブログを回す

コメント