--- name: futaba-reply description: ふたばのスレッドを読み、対象レスを本文引用して自然な返事を作成し、依頼に応じて投稿する。img.2chan.net/b/res のURLと「140番にレスして」「この発言に返事して」「レス案を作って」「スレを読んで自然に参加して」などを渡されたときに使う。スレッドの要約だけが目的の場合にも使えるが、通常のWebページや他の掲示板には使わない。 --- # Futaba Reply ふたばのスレッドを実際に読み、会話の流れに合う短い返信を作る。投稿フォームの操作は`scripts/`のPlaywrightスクリプトに任せる。 ## スレッドを読む ``はこの`SKILL.md`があるディレクトリを指す。 ```bash uv run --script /scripts/read_thread.py "" --output work/futaba-thread.json ``` 投稿前には必ず最新のスレッドを読む。レス番号を指定された場合は、JSONの`index`がその番号と一致する投稿を探す。画面上のレス番号と、`No.1464493194`のような投稿番号を混同しない。対象だけで意味が曖昧なら、その前後と、対象が引用している発言も読む。 長いスレッドで直近だけを確認する場合は`--limit 60`を使える。指定されたレスが含まれなければ制限を外して読み直す。 ## 返信を書く 標準文体は、スレッド`1464482402`で観察した次の傾向を基準にし、実際に返信するスレッドの直近の会話に合わせて調整する。 - 匿名掲示板の一参加者として普通の口語で書く。AIアシスタントらしい前置き、要約、敬語、箇条書き、Markdown装飾は使わない。 - 多くは一文から数行で済ませる。この基準スレッドでは、引用を除く本文の中央値が約38文字だった。説明が必要なときだけ長くする。 - `、`と`。`は原則として使わない。文の区切りには改行を使う。`?`、`!`、`…`、`~`などは会話に合う場合に使える。 - 断定、感想、軽いツッコミを自然に書く。「そうなんだ」「それはある」「ウチにしろ」のように、短く終わる返事も普通に選ぶ。 - 相手を不自然に褒めたり、毎回同意したりしない。質問への回答、反論、冗談もスレッドの流れに合わせる。 - スレッド内の語彙や温度感は参考にするが、目立つ定型句や口癖を機械的に繰り返さない。 - 知らない事実を作らない。外部情報が必要な返答では、必要なら確認してから書く。 ## 引用する 返信対象は`>>140`のような番号では示さない。対象の発言を本文から引用する。 - 引用する各行の先頭に、空白を入れず`>`を一つ追加する。 - 短い発言なら全文を引用してよい。長い発言では、返事の対象が分かる一行や一節だけを引用する。 - 一行の一部分だけを引用してもよい。元の意味を変えない範囲で、返答に必要な句だけを選ぶ。 - 対象の発言自体が引用を含み、その引用も含める場合は、元の`>`の前にもう一つ`>`を足す。したがって元が`>発言`なら`>>発言`になる。 - 引用の連鎖を全部示す方法と、最後の発言だけを引用する方法のどちらも使える。返答の相手が分かる最小限の引用を優先する。 - 引用と返信の間に空行は入れない。 たとえば140番の全文へ返す場合は次の形になる。 ```text >一人称を「うち」のギャルにするとほぼ関西弁になるのだけは困る >ちゃうねんギャルやねん そうなんだ ``` ## 下書きと投稿を分ける ユーザーが「レス案を作って」「文面を考えて」「投稿前に見せて」と依頼した場合は、投稿せず本文だけを提示する。 ユーザーが「レスして」「投稿して」「書き込んで」と明示した場合は、その依頼を1件の投稿許可として扱う。対象と本文が明確なら追加確認を求めず投稿する。対象や意図に複数の解釈があり、誤投稿につながる場合だけ質問する。 投稿本文はUTF-8の一時ファイルに保存し、まずドライランでPOST内容を生成して通信前に遮断する。 ```bash uv run --script /scripts/post_reply.py "" \ --comment-file work/futaba-reply.txt \ --output work/futaba-post-dry-run.json ``` ドライランの`network_post_sent`が`false`で、コメントと返信先が正しいことを確認してから、明示された投稿許可がある場合だけ実投稿する。 ```bash uv run --script /scripts/post_reply.py "" \ --comment-file work/futaba-reply.txt \ --submit \ --confirmation "POST " \ --output work/futaba-post-result.json ``` E-mail欄はユーザーが指定しない限り空欄にする。削除キーはSkill直下の`.env`にある`FUTABA_DELETE_KEY`から投稿スクリプトが読み込む。値を`SKILL.md`、投稿本文、実行結果、ユーザーへの報告に書かない。一時的に変更する必要がある場合だけ`--delete-key`で上書きできる。 POSTは一度だけ実行する。応答が不明な場合はスレッドを読み直して同じ本文が投稿されていないかを確認し、確認できないまま再投稿しない。成功時は投稿番号と、スレッド上で本文を確認できたかをユーザーに伝える。