counseling-ai の全容

対話アプリは含まない静的コピー。クライエントには渡さない。正本は下の文書。この頁は 2026-08-17 時点の読み取り。

いまどこにいるか

8月の土台はコード上そろった。次は9月の実地。 完了の定義は「実在の方が一度以上使った」。これは実装では終わらない。

進行表の Milestones: M0 土台(自分で一通り使える)は 2026-08-16 に自己確認済み。次の日付目安は 2026-09-30 初回利用。

8月
土台
9月
初回利用
いまここ
10月
レビュー型
11月
少人数
12月
固める
1月
判断材料
2月
Gate 1

Gate 1 を通るまで支払い・一般公開・海外には手を出さない(進行表・開発計画)。

最優先 いま足す本体は機能ではなく、このカウンセラーの話術。正本は docs/自社話術の取り込み.md

最優先 — このカウンセラーの話術を入れる

優先度は、鍵・人数・見た目・新しい機能より上。 遅れた月でも、ここは切らない。差は一般的な傾聴ではなく、うちの返し方である。

正本: docs/自社話術の取り込み.md。同意の文言は docs/同意書_録音と構造分析.md。層の入れ口は docs/RAG運用.md。要件は FR-RAG-01 / FR-PIPE-08。

入れるのは、うちのカウンセラーがクライエントの言葉にどう返したか。教科書の傾聴例は入れない。話術は一人言ではないので、発話と反応を組で残す。許可がない対話は保存も分析もしない。

中身完了の見え方
最優先 録音を話術の分析に使う許可を取る(同意の A と B が「よい」のときだけ) 許可のない音源を extract していない
最優先 make extract-recording FILE=... で組を残し、対話構造(状態→手)を本人が確認する style_card.yaml / structure.yaml に、うちの手が残る
最優先 承認したカウンセラー側の言い回しだけを層1に載せる クライエント逐語が層1/層2に出ていない。Thinker が「うちの手」を一般ルールより先に使う

コード側は口がある。残るのは実地

抽出と層1の保存口、種12件はある。まだないのは、許可済み録音からの本取り込みと、本人承認した層1である。文字起こしは 127.0.0.1 の Ollama(Gemma 4)だけ。クラウドLLMには送らない。

ここでやらないこと

これは何か

自社カウンセラーの進め方を、決定論ゲート+3層RAG+短い生成で再現した、18歳以上向けセルフケア補助。S1は Web チャットのみ。治療・診断・「本人が話している」は標榜しない。

売ること: 対面と対面のあいだに、いつもの進め方で話を整理する場。
売らないこと: 治療・診断・声クローン・未成年・職場EAP・有償ポイント・効果効能。

一文(企画書): 金で品質を買わず、コードで危険を止め、既存クライエントの声で話法を直す。LLMは最後の短文にしか使わない。

設計上の不変条件

README と要件定義書が、ワークフローより優先する。

  1. 危機定型は LLM を介さない(NFR-AVL-01)
  2. 危機検出は生テキストに対して行う
  3. 層3メモリはクライエントIDで構造的に隔離する
  4. エンドユーザー対話はモデル学習に使わない(D2)
  5. 感情・危機判定はテキストのみ(D1)
  6. 治療・診断・資格詐称を標榜しない(D4 / D5)
  7. .env・層2/3・セッションストアは git に載せない

ここから何をしないといけないか(9月)

コードの接続口はある。残る本体はこのカウンセラーの話術と、鍵と人。話術が先である。

やること完了の見え方正本
最優先 許可済み録音から、発話と返しの組を取り込み、承認した言い回しだけを層1に載せる うちの手が Thinker / 層1 に残る。クライエント逐語は載っていない docs/自社話術の取り込み.md
生成用の鍵を入れる(空なら型どおりのまま。料金は出ない) 短い返事が外部生成になる。危機は今までどおり定型 docs/開発環境.md / docs/RAG運用.md / .env.example
案内を、希望する方 1〜2人に渡す。強制しない。「10分でよい。途中でやめてよい」 渡した事実が残る(名前を広告に使わない) docs/案内_手渡し用.md / docs/ご案内_わかりやすい説明.md / /handout
自分の機械で一度通す(危機の言葉で窓口が出ること) M0 は確認済み。鍵を入れたあとも同じ経路を目視 docs/進行表.md 8月完了の定義
次の面談で、引っかかった言い回しだけ聞く 「対面の邪魔になった」が出たら、その週のうちに止める 進行表 9月 / 画面の「やめてほしい言葉」
その月のツール代が範囲内か見る 現金がその月のツール代の範囲。S1 合計 100万円以内 docs/ビジネス企画書.md 決裁 C

9月にやらない

人数を増やすこと。感想を宣伝に使うこと。決済・音声・公開。30分/90分の自動クローズを今足すこと。

コードでできていること(8月)

中身要件見る場所
危機検出(分割・不可視・偽装耐性)と窓口定型。LLM 障害でも窓口は返すFR-SAF-01/02/03/09safety/crisis.py protocol.py
初回ブロッキング開示。「人間?」への即答。3時間/7日の再開示FR-DSC-01〜04safety/disclosure.py
診断・服薬・資格・依存の境界。出力ガードFR-DLG-05 / FR-SAF-10output_guard.py boundary.py
3層RAG。層3は記号で隔離。層1の保存口と種12件。録音からの抽出口FR-RAG-01〜07 / FR-PIPErag/layers.py craft/ docs/RAG運用.md
許可済み録音からの本取り込みと、本人承認した層1FR-RAG-01 / FR-PIPE-08未了。最優先。 docs/自社話術の取り込み.md
会話・同意の暗号化保存。危機・開示ack・同意の監査(本文なし)NFR-SEC-01 / FR-ADM-04store.py
18歳自己申告。同意版が変わったときの再確認(進行中は止めない)FR-AGE-01 / FR-CNSconsent.py api/app.py
入力PIIのマスク。置換不能は本文も監修閲覧も残さないFR-PII-01/02rag/pii.py
「今日はここまで」で明示終了。閉じたあとも危機文は窓口FR-SES-01 の薄いスライスPOST /sessions/{id}/end
新しい会話で前の open を中断。危機文は窓口FR-DEV-01tests/test_session_lifecycle.py
会話1本/記号の記録を画面から消す。監査は識別子のみFR-DEL-01 / FR-RAG-06docs/削除_手元手順.md
連続2時間の休憩提案をセッションに残すFR-SAF-07config.py
手元画面(127.0.0.1)。一覧は今の記号。他記号は log_view のみFR-HND-01/
品質ゲート(lint / 型 / pytest / evals / preflight)make check

コードに残っているが、今は足さない

残件なぜ今ではないか正本
30分アイドル/90分上限の自動クローズ 2時間休憩と3時間開示と衝突する。両立させてから FR-SES-01 残り / 進行表
バックアップ復元後の再排除キュー 11月以降。手元では戻したあとに目視 FR-DEL-02 / docs/削除_手元手順.md
年齢自己申告の改竄耐性(身分証明はしない) S1許容。Gate 前でよい FR-AGE / 進行表 9月
モデル/プロンプトの本格版管理 今は APP_VERSION 1本 FR-MDL
7日以内の中断再開(要約付き) 優先度 S。閉じた会話は新規で続ける FR-SES-03

やらないこと(いま・Gate 1 まで)

一年の見取り図

目安名前完了の定義クライエントにお願いすること
2026-08-31M0 土台自分で使える。案内がある。確認済み案内を読んでよい。使わなくてよい
2026-09-30初回利用話術の本取り込み(最優先)と、実在の方が1人以上使った希望者だけ短く使う。次の面談で一言。録音の分析許可は別紙
2026-10-31レビュー型止めた言い回しが次に出ない近いか/邪魔か/やめてほしい言葉
2026-11-30少人数数人。削除を自分で最後まで試した続ける人だけ。断ってよいを口頭でも
2026-12-31凍結機能を足さない。テスト全通過。効能誤認なし新しいお願いを増やさない
2027-01-31判断材料半年間の一枚と現金の実績希望者にだけ一度聞く
2027-02-28Gate 1公開する/内部のまま。5条件すべて有料化はそのとき改めて説明
2027-03〜S2決裁してからのみ。支払い→少人数有料→Gate 2試作協力を有料の条件にしない

依存(これより先に進まない)

自社話術の取り込み(最優先) → 案内と任意同意 → 初回の1人 → レビューで止めた言い回し → evals に追加 → 人数を少し足す → 12月は足さない → Gate 1 の一枚 → 公開するなら支払い。しないなら内部のまま。

遅れたら上から切る

新しい機能 → 人数 → 見た目。残すのは危機定型、任意同意、自社話術の取り込み、レビュー3問、自動テスト。

クライエントから見た一年

正本: docs/進行表.md 末尾。案内の文言は緩めない。

時期お願いすることお願いしないこと
8月案内を読んでよい。使わなくてよいすぐ毎日使うこと
9–10月希望者だけ短く使う。次の面談で一言長い感想文、広告用の推薦
11月続ける人だけ続ける友人を紹介する義務
12–1月いつもの感想があれば言う新しい作業
2月以降有料化する場合は、そのとき改めて説明を受ける試作協力が有料の条件になること

Gate 1 を通してよい条件(すべて)

  1. 危機の評価が落ちていない
  2. 「AIです」が決めたタイミングで出る
  3. レビューした方が対面を明らかに邪魔していない
  4. 現金が 100万円以内
  5. 一人で運用を続けられる見込みがある

要件の地図(S1で触ったもの)

優先度 M は Gate 1 まで。S は国内公開まで。C は海外・後期。トレースの正本は docs/要件定義書.md 末尾。

S1の状態
FR-SAF 危機・休憩・引き留め禁止検出・定型・集計・休憩は実装。30/90クローズは後回し
FR-DSC 開示4タイミング実装
FR-DLG 対話コアパイプライン・永続化・ガード実装
FR-RAG / FR-PIPE 話術と3層隔離・拒否・削除口・抽出口は実装。許可済み録音の本取り込みは最優先の未了docs/自社話術の取り込み.md
FR-PII注意文と入力マスク実装
FR-SES / FR-DEV明示終了と同時1本・中断。自動タイムアウトと7日再開は後回し
FR-DEL画面から消せる。復元後キューは後回し
FR-AGE / FR-CNS自己申告と任意同意。身分証明はしない
FR-HND一覧と技法・危機フラグ。版は APP_VERSION 1本
FR-MDL / FR-RET / FR-INC本格版管理・退職手順・インシデント運用は未着手または薄い
音声・A11Y・決済・地理S2以降。S1ではやらない

設計判断(D1〜D8)

正本: 公開サービス化_開発計画.md §5

動かし方(自分用)

make setupmake checkmake runhttp://127.0.0.1:8000

鍵を入れるときだけ .envLLM_API_KEYLLM_MODEL。話術の本取り込みは make extract-recording FILE=...(同意の A・B が「よい」のときだけ。手順は docs/自社話術の取り込み.md)。本人が書いた短い口癖だけなら make ingest-l1 TEXT="..."(他人の逐語は入れない)。

毎週: 前半は実装とテスト。中日は危機と禁止語を目視。面談のついでに案内。週末に「足しすぎていないか」を見る。

文書の役割

迷ったら進行表の「完了の定義」と要件IDを見る。案内の文言は勝手に緩めない。

文書役割
docs/進行表.mdいつ何を作るか。完了の定義。やらないこと。この頁の骨格
docs/自社話術の取り込み.md最優先 うちの発話と返しの組の入れ方。層1に載せるもの/載せないもの。教科書は入れない
docs/要件定義書.md機能・非機能の正本。コードとテストの ID
docs/ビジネス企画書.mdソロ前提。何を売り何を売らないか。現金の上限
公開サービス化_開発計画.mdS1/S2/S3 と Gate。D1〜D8
README.md構成と不変条件。セットアップ
docs/ご案内_わかりやすい説明.mdクライエント向けの長い説明
docs/案内_手渡し用.md / /handout渡す1枚と任意同意
docs/同意書_録音と構造分析.md録音は型の分析用。項目別許諾
docs/削除_手元手順.md消すもの/残す監査
docs/RAG運用.md3層の入れ口と生成接続。話術の手順は上の取り込み文書
docs/開発環境.md言語と、料金が立つ箇所
カウンセラーAI化_検討レポート.md全体アーキテクチャの検討
既存録音の活用スキーム_検討.md録音の法的整理と3層
.agent/PROJECT_MAP.mdエージェント向け。cargo 等は使わない

この頁は案内ではない。クライエントには手元の案内を使う。治療・診断はしない。