改修ガイド
ワンだふる (apps/suteki-bot) を変更するときに必ず守るルール。
- このページ群を最初に読む。仕様の前提を踏まえてから着手する。
- 層の責務を破らない。domain / application から Slack / KV の SDK を直接呼ばない。新しい外部依存は port を切ってから infrastructure で実装する。
TeamConfigのスキーマを変えるときは KV の互換性を考える。既存キーをマイグレーションするか、emptyTeamConfigで安全に default を返せる形にする。- Slack の権限を増やすときは README とこのドキュメント群の "Bot Token Scopes" を必ず更新する。Slack App 側の scope 追加 → 既存ワークスペースで再インストールが必要になる点も注意。
- 署名検証を外さない・弱めない。公開 Worker なので
/slack/eventsと/slack/commandsは必ずverify-signature.tsを通す。検証前に副作用を起こさない。 - 3 秒 ack を守る。イベント処理を fetch ハンドラで同期実行しない。重い処理は
ctx.waitUntilに逃がし、event_idの重複排除を経由する。 - プライベートチャンネルのスキップを外さない。
notify-reaction.tsのchannel?.isPrivateガードはプライバシー上の不変条件。 - シークレットを増やすときは 4 箇所:
.dev.vars.example,wrangler.tomlのコメント,index.tsのEnv, そして 運用ページ の環境変数表。 - テストを必ず書く。各層に対応する
*.test.tsがある。 - 改修後はこのドキュメント群を更新する。仕様変更がドキュメントに反映されないと改修ガイドが嘘になる。