Masterは「これでいいすすめろ」と回答し、投稿メニュー[告知/予告]から始まる共通Bot DMの画面を承認した。選択UIは横2列を基本とし、1行目[📢 告知][📅 予告]、2行目[📝 本文編集][📅 日時・受付]、3行目[🔗 プロフ連携][📍 投稿先]、4行目[✅ 投稿][下書き保存]、最終行[キャンセル]。別画面での種別強制質問を増やさず、1通本文入力→同じメッセージでプレビュー・編集・宛先指定→最後の[投稿]で共通MPBに渡す。プロフィールは本人の許可済み公開カードリンクのみ、既存本人情報の再入力・変更を要求しない。予告時だけ開催日時必須。相手募集・ROOMの既決機能は変更しない。
Source実施:GateApp-Bot Draft PR #11 の chat/tgtumbler-profile-a05-20261104、HEAD a81c37a2f9ebbd77d46fd190d0bbc9e36a953e31。共通 postingHandlers.ts に同一画面編集・種類切替・日時入力・部分本文修正・プロフ連携・Topic選択後の同じ画面への復帰・1回投稿導線・本人とrevision/宛先検証・キャンセルを接続。publicPostRepository.ts の共通下書き表に非公開保存、再開は最新入力を保持。MPBの投稿・冪等・Feature Gate・認可と既存プロフィール閲覧処理を再利用。UI行配置と告知/予告状態・保存復帰・古いrevision拒否は gaybbsMigrationIntegration.ts に追加し、既存DB/Bot回帰試験へ組み込んだ。
CI readback:Source/DM/PostgreSQL/Build #42265984839 SUCCESS、CM #42265984815 SUCCESS。どちらも上記PR HEADに一致。途中でテスト変数名衝突が発生したが修正して再実行PASS。GitHub A06 Current #5の記録も保存済み。
未完了と境界:[📅 日時・受付]の日時入力はSource接続済みだが、受付条件・応募の専用画面は未決定で未実装(ラベルだけで機能完成とは扱わない)。公開済み投稿の4操作(編集/コピー/共有/削除)の本番E2Eも別受入。実Telegram・Topic IDs/権限・Gserver配備・iOS/Android/PC・実際のFeature Gateは未検証。PR Draftは維持し、本番Bot起動/配備・実グループ投稿はしていない。前の案や既存A06相手募集の別仕様は履歴として維持。
今回の相手募集セクションは、プロフィール未登録者の「タイトル/ニックネーム/身長 体重 年齢/4行目以降すべて募集本文」と、登録済み者の「タイトル/2行目以降すべて募集本文」をそれぞれ1通で受信し、Botが回収して項目別整形プレビューを提示する。本文横📝編集(Telegram Rich Text Button方式、非対応時通常InlineKeyboard)、本人だけの[投稿]、3列基本・2/4列適応、今回の作成下書きのみ消す[キャンセル]は最終決定として固定。公開プロフィールを勝手に新規作成・変更しない。
現行Source追加監査:取消済み募集がDM入力を横取りしない修正。/recruitに加えて、既存DBで検証済みの告知トークンを使用するr_メニュー入口をGayBBS botの/startへ接続し、旧m_告知・予告入口を変更しない。プロフィール必須ポジションが未設定なら登録済み用の短縮形式を使わず、公開前にプロフィールrevisionが変化したら新しい内容の再プレビューと本人による再[投稿]を要求する。募集タイトル・入力本文・一時的な基本情報または共通プロフィールの参照版を既存announcement_postsのconditions/profile_snapshotに保持し、新DBは作らない。MPBのVerified Topic、公開Feature Gate、二重送信防止経路を変更しない。
Source実績:GateApp-Bot Draft PR #11、HEAD 8eb29738801c167a33b8cc07c12065c0c147f538。Source/DM/PostgreSQL/Build CI #42111156577 SUCCESS、CM CI #42111156579 SUCCESS。独立DBで下書き取消・入力所有権解放・再開始、正常/不正r_入口、募集詳細保存・読戻しを確認。GitHubのIssue #5最終Currentと31機能マッピングIssue #7に連結し、共通UI契約はGitHub正本。
未実行の境界:実Telegram Rich表示・操作/各端末・実Topic権限・Gserver本番配備・公開Feature Gate・既存投稿メニュー全体からのURL配線は未検証。独立した応募・承認、ROOM、検索の構築はこのセクションの完成判定へ混ぜない。Draft PRは未マージ。既存の決定・旧記録は削除しない。
採用決定:プロフィール未登録は1行目タイトル、2行目ニックネーム、3行目身長・体重・年齢、4行目以降は改行を含む募集本文全文。登録済は1行目タイトル、2行目以降が本文全文。Botが1通を回収して項目ごとに保持し、本人の整形プレビュー、テキスト横📝編集(RichTextButton・未対応時は通常InlineKeyboard)、ポジション・目的・場所の選択、最後に[投稿]。選択ボタンは3列基本、ポジション3+4、目的3+3+3+2+2、場所3。[戻る]は作成中の[キャンセル]に変更し今回の下書きだけ破棄、プロフィールと公開済み投稿は保護。これ以外の旧案を復活しない。
Source実装(2026-11-06):GateApp-Bot Draft PR #11 branch chat/tgtumbler-profile-a05-20261104。recruitmentCompose.ts(1通解析・本文改行保持・欄別編集・登録済プロフィールを実表示)、recruitmentRichPreview.ts(本人基本情報をRich上にも表示)、recruitmentButtonLayout.ts(3/2/4列)、recruitmentHandlers.ts(Bot DM受信/原文削除試行、本人下書き、プレビュー、選択、キャンセル、本人による明示投稿、既存Verified TopicとMPBゲート)、publicPostRepository.ts(既存 announcement_posts.conditions にタイトル/未登録者の今回限り情報、profile_snapshot に登録済みプロフィールの基本値を保管)、gaybbsBot.ts(専用入口)。プロフィール本体・ROOM・既存告知を勝手に書き換えない。
CI証拠:GitHub commit 27c482c279caea4cb8b96c57ced2fe059a1a22aa、PostgreSQL移行・Source・DM・テスト・Botビルド run #42103388868 SUCCESS、CM run #42103388708 SUCCESS。いずれもSource CI限定。実TelegramのRich表示/投稿・Gserver本番起動/ゲート解除は未実施、未検証。
正本マッピング:GitHub共通UI契約 → A06 Current Issue #5 → Notion 02・告知/予告/募集設計 → 本UI変更議事録。後続の応募/ROOM/検索機能との接続完了は今回のSource確認の対象外。
選択列は3列が基本。ポジション7件=3+4、目的13件=3+3+3+2+2、場所3件=3。空白ボタンは設けない。
作成画面の「戻る」は「キャンセル」に変更。今回の募集下書きだけを破棄し、プロフィールと過去の公開投稿は保持。選択ページの「プレビューに戻る」は単なる画面移動として維持。
記録正本:GitHub UI契約。