From a7d31c87521b3efaca6568e3334eb9be4f8a6176 Mon Sep 17 00:00:00 2001 From: Arashi Haishima Date: Sun, 10 May 2026 00:52:05 +0900 Subject: [PATCH] =?UTF-8?q?cleanup(requirements/user-stories):=20historica?= =?UTF-8?q?l=20residue=20=E3=82=92=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #12 と同じ役割分離方針で、requirements/ + user-stories/ 配下 4 文書から historical residue を整理。 主な変更: - requirements.md: 冒頭注記を「最新版+現在の事業フレーム/投稿スコープ」に圧縮、「(新規)」サフィックスを全 FR/NFR タイトルから削除、「変更点(旧 → 新)」表削除、「3回目サイクルで Cognito 一本化」段落削除、Post モデル inline 注記の旧 stamps 言及削除、技術スタック表現に Auth.js + Cognito を追加(JWT を訂正) - stories.md: 冒頭注記から「Issue #5 帰着」「旧フレーム」「ダメ全振り」言及・PR レビュー対応注記を削除、US-006/US-009 の「(新規)」サフィックス削除、「旧版からの主な変更点」セクション全削除、stamps 削除済み inline 注記を削除 - personas.md: 冒頭注記から「Issue #5 帰着」「旧フレーム」「ダメ全振り」言及を削除し、「最新版+投稿スコープ」のみに圧縮 - requirement-verification-questions.md: process record の性質を尊重し最小限のみ(「PR #9 までの2回目サイクル成果物」notation を削除) requirements-questions.md は明示的に「1回目サイクル・履歴文書」として保持されている性質のため touch せず。 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../requirement-verification-questions.md | 2 +- .../inception/requirements/requirements.md | 38 ++++++++----------- aidlc-docs/inception/user-stories/personas.md | 5 ++- aidlc-docs/inception/user-stories/stories.md | 30 ++++----------- 4 files changed, 27 insertions(+), 48 deletions(-) diff --git a/aidlc-docs/inception/requirements/requirement-verification-questions.md b/aidlc-docs/inception/requirements/requirement-verification-questions.md index b97b957..c4c748a 100644 --- a/aidlc-docs/inception/requirements/requirement-verification-questions.md +++ b/aidlc-docs/inception/requirements/requirement-verification-questions.md @@ -1,7 +1,7 @@ # 要件検証質問 — Sloth Feed(3回目サイクル) > **本ドキュメントの位置づけ** -> AI-DLC 3回目サイクル(2026-05-09 開始・正式再構成・各ステージで人間レビュー)の Stage 2: Requirements Analysis における**検証記録**。既存 `requirements.md`(PR #9 までの2回目サイクル成果物)を入力として、6軸(機能要件 / 非機能要件 / ユーザーシナリオ / ビジネスコンテキスト / 技術コンテキスト / 品質属性)で完全性を評価し、修正・追加判断を行った。 +> AI-DLC 3回目サイクル(2026-05-09 開始・正式再構成・各ステージで人間レビュー)の Stage 2: Requirements Analysis における**検証記録**。既存 `requirements.md`を入力として、6軸(機能要件 / 非機能要件 / ユーザーシナリオ / ビジネスコンテキスト / 技術コンテキスト / 品質属性)で完全性を評価し、修正・追加判断を行った。 > > AI-DLC ルール(`.aidlc-rule-details/inception/requirements-analysis.md` ステップ6)に従い `requirement-verification-questions.md` 命名規約で作成。 > diff --git a/aidlc-docs/inception/requirements/requirements.md b/aidlc-docs/inception/requirements/requirements.md index f5ac9ab..81d2d46 100644 --- a/aidlc-docs/inception/requirements/requirements.md +++ b/aidlc-docs/inception/requirements/requirements.md @@ -4,9 +4,10 @@ > **『仕事じゃないけど、、、』が世の中を変える** > 副スローガン:ダメだけど、世の中を変える -> **本ドキュメントの前提(2026-05-09 更新・3回目サイクル検証済)** -> Issue #5 の帰着により、Sloth Feed は IP事業として位置づけ直された。アプリは IP の入口・体験装置・コミュニティ装置として機能する。技術選定(Next.js / **Amazon Bedrock 経由の Claude** / DynamoDB / JWT)は維持しつつ、機能要件を**動的IP × AI技術**観点で再構築している。 -> 投稿対象は **真の怠惰・無為・サボり** と **小さな善行** の両方を等しく扱う。AIナマケモノが**5経路**のいずれかに紐付けて肯定する。 +> 最新版:2026-05-09 / 改訂履歴は [`audit.md`](../../audit.md) と [`aidlc-state.md`](../../aidlc-state.md) を参照。 +> +> **事業フレーム**:Sloth Feed は **IP事業 × 動的IP × AI技術**。アプリは IP の入口・体験装置・コミュニティ装置。技術スタックは Next.js / **Amazon Bedrock 経由の Claude** / **Auth.js + AWS Cognito** / DynamoDB。 +> **投稿スコープ**:**真の怠惰・無為・サボり** と **小さな善行** の両方を等しく扱う。AI ナマケモノが**5経路**のいずれかに紐付けて肯定する。 --- @@ -53,10 +54,6 @@ - 投稿前に AI フィルタリングを通過する - フィルタリングに引っかかった場合(仕事の成果・キラキラ充実投稿)は「**ここは仕事じゃないあなたの場所です**」旨のメッセージを返す -**変更点(旧 → 新)**: -- 旧:「仕事じゃないけど」prefix を**強制** -- 新:prefix 強制を**撤回**。任意の文章で投稿可能。UI のサンドイッチ構造で「仕事じゃないけど〜世の中を変える」フレーミングを担保 - ### FR-002: AIフィルタリング - **Amazon Bedrock 経由で Claude モデル** を呼び出し、投稿内容を判定する @@ -70,7 +67,6 @@ ### FR-003: AI ナマケモノ対話(コア機能) -**旧 FR-003「AIコメント機能」を、動的IP として再定義**: - 投稿がフィルタリングを通過した直後、AI ナマケモノが**個別化された肯定コメント**を生成する - コメントは「**5経路**」のいずれかに**必ず紐付けて**生成される(経路の詳細は `project-overview.md` 「ビジョンを支える5経路」参照): @@ -92,10 +88,10 @@ - **引用源の取り扱い(PoC)**: PoC では **LLM の学習済み知識を信用**する。引用の正確性検証は LLM 自体に委ねる(ハルシネーションリスクを受容) - **Phase 2 構想**: 引用検証は **S3 + Agentic Search** で実装予定(FR-007 参照) - コメントは投稿とセットで DB に保存し、タイムラインに表示する -- スタンプ・いいね・リアクション機能は**一切設けない**(旧 Post モデルの `stamps` フィールドは削除) +- スタンプ・いいね・リアクション機能は**一切設けない** **有料/無料の整合**: -- AI ナマケモノコメントは**基本機能として無料**で提供される(旧 commercialization で「プレミアム」と記述されていたが訂正) +- AI ナマケモノコメントは**基本機能として無料**で提供される - プレミアム(任意の年会費 ¥3,000)は**運動への賛同**であり、機能差別化ではない ### FR-004: タイムライン @@ -109,7 +105,7 @@ - 自分のこれまでの投稿(怠惰系・善行系問わず)と AI コメントを一覧で振り返ることができる - スタンプ数等は**表示しない**(存在しないため) -### FR-006(新規): AI ナマケモノの個別化記憶 +### FR-006: AI ナマケモノの個別化記憶 - ユーザーごとに過去の投稿履歴を AI が参照する - 「先週、3時間スマホを見ていたあなたへ」のような**継続性のある対話**を可能にする @@ -162,7 +158,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する 3. 取得した実テキストから引用を抽出 4. **出典の正確性が事実と合致**することを保証して応答生成 -### FR-008(新規): サンドイッチUI構造 +### FR-008: サンドイッチUI構造 - 投稿カードは以下の構造で表示される: ``` @@ -179,7 +175,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する - ブランドフレーム上下が「仕事じゃないけど〜世の中を変える」を保証する - 投稿内容(怠惰系・善行系問わず)は**ブランドの構文で包まれる** -### FR-009(新規): 依存防止機能(切り上げ提案) +### FR-009: 依存防止機能(切り上げ提案) - AI ナマケモノは、ユーザーの**継続使用時間・連続投稿数**を検知する - 一定の閾値を超えた場合、AI から**達観した怠惰の老師**(FR-010 参照)の口調で**切り上げ提案**を返す @@ -192,7 +188,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する - 連続滞在 30分 → 切り上げ提案 - これは「ダメ礼賛が依存を生む」ダーク・パターンへの構造的回避(NFR-005の倫理性を**機能レベル**で担保) -### FR-010(新規): AI ナマケモノ人格設計 ―「達観した怠惰の老師」(Wise Lazy Elder) +### FR-010: AI ナマケモノ人格設計 ―「達観した怠惰の老師」(Wise Lazy Elder) #### 人格イメージ @@ -252,7 +248,7 @@ AI ナマケモノは**動的IPの本体**であり、単なる応答ツール ユーザーごとの**個別化記憶**(FR-006)と組み合わせて、**唯一無二の関係性**を生む。キャラクターのビジュアル・名称・声色は IP 拡張時に統一(PoC ではテキスト中心)。**FR-009(依存防止)の切り上げ提案・FR-002(フィルタリング)の除外メッセージ**も、すべてこの老師人格で統一する。 -### FR-011(新規): タイムライン投稿への経路ラベル表示 +### FR-011: タイムライン投稿への経路ラベル表示 - 各投稿の AI コメント部分に、紐付けられた経路(①〜⑤)のラベルを表示する - ラベル表示例: @@ -306,26 +302,26 @@ AI ナマケモノは**動的IPの本体**であり、単なる応答ツール - AWS上にデプロイ(Amplify または EC2 + DynamoDB) - ローカル開発環境での動作確認が可能 -### NFR-005(新規): AI 出力の倫理性 +### NFR-005: AI 出力の倫理性 - **PoC では LLM の学習済み知識を信用する**(FR-007 参照):偉人引用の正確性検証は LLM 自体に委ね、ハルシネーションリスクを受容 - 出典明記:AI コメントには必ず**引用元(LLM の自己申告)**を明記する - 「ダメ礼賛が依存を生む」リスク対策:FR-009(依存防止機能)として**機能要件レベルで実装** - **Phase 2 で引用検証を厳格化**:S3 + Agentic Search による出典の事実検証(FR-007 参照) -### NFR-007(新規): 信頼性 +### NFR-007: 信頼性 - PoC ではスキップ(プロトタイプのため) - 実装フェーズでは **Bedrock Runtime API** のスロットリング(ThrottlingException)・タイムアウト時のグレースフルなエラー処理を実装 - AWS リージョン障害時のフェイルオーバーは Phase 2 で検討 -### NFR-008(新規): アクセシビリティ +### NFR-008: アクセシビリティ - PoC ではスキップ(プロトタイプのため) - 実装フェーズでは WCAG 2.1 AA レベルへの準拠を目標とする - スクリーンリーダー対応・キーボードナビゲーション・色覚多様性対応など -### NFR-006(新規): ユーザーをファンとして遇する +### NFR-006: ユーザーをファンとして遇する - ユーザーデータは外部に**販売しない** - 広告は**掲載しない** @@ -338,7 +334,6 @@ AI ナマケモノは**動的IPの本体**であり、単なる応答ツール ### User(ユーザー) -**3回目サイクルで Cognito 一本化**:User データは Cognito User Pool が管理する。Sloth Feed 側 DynamoDB の Users テーブルは **PoC では不要**。 Cognito が管理する属性: @@ -364,7 +359,6 @@ Cognito が管理する属性: | createdAt | String (ISO) | 投稿日時 | **変更点**: -- 旧 `stamps` フィールドを**削除**(スタンプ機能は存在しないため) - `aiCitationSource` を**追加**(出典明記のため) ### FilterResult(フィルタリング結果) @@ -426,7 +420,7 @@ Cognito が管理する属性: - [ ] AI ナマケモノの人格が一貫している(FR-010) - [ ] AI コメントに引用元が明記される(PoC では LLM の自己申告、FR-007・NFR-005) - [ ] 連続使用検知時に切り上げ提案が出る(FR-009) -- [ ] スタンプ機能が**存在しないこと**を確認(旧 stamps フィールド削除確認) +- [ ] スタンプ機能が**存在しないこと**を確認 ### インフラ - [ ] AWS DynamoDB への読み書きが機能する diff --git a/aidlc-docs/inception/user-stories/personas.md b/aidlc-docs/inception/user-stories/personas.md index 0ac92b6..e9cdf05 100644 --- a/aidlc-docs/inception/user-stories/personas.md +++ b/aidlc-docs/inception/user-stories/personas.md @@ -1,7 +1,8 @@ # ペルソナ定義 — Sloth Feed -> **本ドキュメントの前提(2026-05-09 更新)** -> Issue #5 帰着により、投稿対象は **真の怠惰・無為・サボり** と **小さな善行** の**両方を等しく扱う**。「立派な小さな善行だけ称賛」(旧フレーム)と「ダメ全振り」のどちらにも偏らない。詳細は [`docs/ideation/customer_insights.md`](../../../docs/ideation/customer_insights.md) を参照。 +> 最新版:2026-05-09 / 改訂履歴は [`audit.md`](../../audit.md) と [`aidlc-state.md`](../../aidlc-state.md) を参照。 +> +> 投稿対象は **真の怠惰・無為・サボり** と **小さな善行** の**両方を等しく扱う**。詳細は [`docs/ideation/customer_insights.md`](../../../docs/ideation/customer_insights.md) を参照。 --- diff --git a/aidlc-docs/inception/user-stories/stories.md b/aidlc-docs/inception/user-stories/stories.md index 488feaf..51a82fb 100644 --- a/aidlc-docs/inception/user-stories/stories.md +++ b/aidlc-docs/inception/user-stories/stories.md @@ -1,8 +1,9 @@ # ユーザーストーリー — Sloth Feed -> **本ドキュメントの前提(2026-05-09 更新)** -> Issue #5 帰着により、投稿対象は**「真の怠惰・無為・サボり」**と**「小さな善行」**の**両方を等しく扱う**。「立派な小さな善行だけ称賛」(旧フレーム)と「ダメ全振り」のどちらにも偏らない。AIナマケモノが偉人・科学・歴史引用付きで**5経路のいずれかに紐付けて肯定**する**動的IP × AI技術**を中核に据えている。 -> 認証は **Auth.js (NextAuth v5) + AWS Cognito User Pool** に統一(3回目サイクルで切替、PR レビュー対応)。詳細は `application-design/component-methods.md` の「Authentication & Identity Flow」セクション参照。 +> 最新版:2026-05-09 / 改訂履歴は [`audit.md`](../../audit.md) と [`aidlc-state.md`](../../aidlc-state.md) を参照。 +> +> 投稿対象は **真の怠惰・無為・サボり** と **小さな善行** の両方を等しく扱う。AI ナマケモノが偉人・科学・歴史引用付きで**5経路のいずれかに紐付けて肯定**する**動的IP × AI技術**を中核に据える。 +> 認証は **Auth.js (NextAuth v5) + AWS Cognito User Pool**。詳細は `application-design/component-methods.md` の「Authentication & Identity Flow」セクション参照。 **分解アプローチ**: ユーザージャーニーベース **投稿者識別**: メール+パスワード認証 @@ -112,7 +113,7 @@ --- -### US-006(新規): AI ナマケモノとの関係性が継続する +### US-006: AI ナマケモノとの関係性が継続する **As** 継続して使うユーザーとして **I want** AI ナマケモノが**過去の自分の「仕事じゃないけど」投稿を覚えていて**、継続性のある対話をしてくれること **So that** 「自分専用のナマケモノが育っている」という IP 体験を得られる @@ -158,7 +159,7 @@ - [ ] 自分の投稿のみが新しい順に一覧表示される - [ ] 各投稿にはテキスト・AI ナマケモノコメント・投稿日時・**引用元**が表示される - [ ] 他ユーザーの投稿は表示されない -- [ ] スタンプ数・いいね数は**そもそも存在しない**(旧 `stamps` フィールド削除済み) +- [ ] スタンプ数・いいね数は**そもそも存在しない** **ペルソナ**: ユイ(「こんなに仕事じゃないことをやってこれた」)、ケンタ(「自分の賢明な怠惰と気遣いの歴史」) **INVEST**: Independent ✅ / Negotiable ✅ / Valuable ✅ / Estimable ✅ / Small ✅ / Testable ✅ @@ -167,7 +168,7 @@ ## Journey 6: 健全に離れる -### US-009(新規): AI ナマケモノから「そろそろ寝ましょう」と切り上げ提案を受け取る +### US-009: AI ナマケモノから「そろそろ寝ましょう」と切り上げ提案を受け取る **As** Sloth Feed を連続使用しているユーザーとして **I want** 一定時間使い続けた/連続して投稿した時に、AI ナマケモノから「**そろそろ寝ましょう**」「**ダメで終わるのも美徳です**」のような切り上げ提案を受け取りたい **So that** 「ダメ礼賛」が新たな依存を生むダーク・パターンに陥ることなく、健全に Sloth Feed と距離を取れる @@ -205,20 +206,3 @@ | US-007 タイムライン閲覧 | ✅ 主要(共同体感)| ✅ 副次 | | US-008 自分の「仕事じゃないけど」振り返り | ✅ 主要(蓄積による自己肯定)| ✅ 主要 | | US-009 切り上げ提案を受ける | ✅ 主要(依存防止)| ✅ 副次(理屈正当化への対抗)| - ---- - -## 旧版からの主な変更点 - -| 項目 | 旧版 | 新版 | -|---|---|---| -| 投稿対象 | 「仕事じゃないけど立派な小さな善行」のみ(卵買った、母にLINEした等)| **「真の怠惰・無為・サボり」と「小さな善行」の両方**(布団3時間/彼に洗い物/昼休みに親にLINE 等を等しく扱う)| -| AIコメントの形式 | 「ハーバードの研究では小さな親切が…」(自己啓発系)| **5経路に紐付け**て、偉人・科学・歴史引用付きで「**何が、どう、世の中を変えるのか**」を具体的に言語化 | -| AIコメントの位置づけ | 称賛コメント | **動的IP(AIナマケモノ)からの個別化された5経路肯定** | -| 投稿テンプレート強制 | 「仕事じゃないけど」prefix 強制 | prefix強制を撤回、UI のサンドイッチ構造で担保 | -| US-006(新規)| なし | **AI ナマケモノとの関係性継続**(個別化記憶)| -| US-009(新規)| なし | **AI ナマケモノからの切り上げ提案**(FR-009 依存防止のストーリー化)| -| ストーリー数 | 7(US-001〜007)| **9(US-001〜009、US-006・US-009 新規追加)**| -| **認証スタック** | 自前 AuthService + bcrypt + JWT + localStorage | **Auth.js + Cognito User Pool(OAuth/OIDC)+ HttpOnly Cookie**(3回目サイクルで切替)| -| **登録 UI 形態** | 自前ページ(`/auth/register`)| **PoC 実装時に決定**(Cognito Hosted UI / 自前フォーム)| -| **JWT 保存先** | localStorage | **HttpOnly Cookie**(Auth.js デフォルト、XSS 耐性)|