v0.1.0
**基盤の決定と土台。**未決事項を確定し、台詞コーパスを実データとして載せ、Mastodon への投稿が 1 通通るところまで。
⚠ **稼働はしていません。**ステージング検証とデプロイは実施していません(下記)。
決めたこと
| 決定 | |
|---|---|
| スタック(#2) | Ruby + ginseng-* 系 gem。常駐プロセス 1 本 + プロセス内スケジューラ |
| LLM(#3) | Anthropic Claude claude-opus-5。全機能で同じモデル |
| データストア(#4) | SQLite + Sequel |
| CI(#6) | GitHub Actions で rubocop / rake config:lint / rake test |
⚠ 台詞コーパス 561 件(6,969 文字)はシステムプロンプトに収まることを実測で確認したため、ベクトル検索も RAG 基盤も採りません。
作ったもの
- リポジトリの骨組み(#5) —
bin/makoto(Thor の CLI)、bin/makoto_daemon.rb(start / stop / restart / status)、syslog への JSON ログ、スケジューラのハートビート - Mastodon への投稿疎通(#7) —
makoto whoami/makoto post。恒久的な失敗と一時的な失敗を分けて上げる - 台詞コーパスのスキーマと投入(#8) —
makoto corpus import/stat。何度実行しても同じ結果になる
実データの件数
docs/makoto-legacy.md の記載と一致。
quote: 956
応答可: 561(キュアソード 165 / 剣崎真琴 395 / ちびキュアソード 1)
message: 388(morning 237 / template 109 / birthday 23 / calling 13 / holiday 6)
リリース前レビュー
赤 0 件。黄 5 件は #33 へ繰越。セキュリティレビューは bundler-audit・Dependabot ともに脆弱性 0 件。
⚠ ステージング検証とデプロイを省略しています
検証先の環境がまだ存在しないため。bydo はレシピ未適用で、MAKOTO 本体のデプロイレシピも未着手(pooza/chubo2#98)。
環境が無いことによる一度きりの例外で、前例にしません。0.2.0 以降は bydo が整うまでリリースしません。
開発中に塞いだ穴
- ⚠
tmp/db/makoto.dbが git に追跡されていた — そのままコーパスを投入すると、第三者の著作物である台詞 956 件が public リポジトリに乗る経路だった - ⚠ Sequel の例外メッセージは ASCII-8BIT — 台詞を含む SQL が失敗すると
Encoding::CompatibilityErrorになり、エラー処理自体が落ちて本当のエラーが隠れる - ⚠ テストの通信遮断が
super依存だった — サブクラスがsetupを定義した瞬間に無言で外れる。投稿するボットなので、外れるとテストが実サーバーに書き込む - ⚠ 投稿の再送で二重投稿 — Mastodon が受理した後に応答だけ失われると、再送が同じ投稿をもう 1 つ作る。
Idempotency-Keyを全試行で使い回すよう修正
次
0.2.0 は 11/4 バースデーライブ(SONGBIRD PARTY 2026)。予告開始が 11/1 のため、これが機能的な締め切りです。