Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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` 命名規約で作成。
>
Expand Down
38 changes: 16 additions & 22 deletions aidlc-docs/inception/requirements/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -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経路**のいずれかに紐付けて肯定する。

---

Expand Down Expand Up @@ -53,10 +54,6 @@
- 投稿前に AI フィルタリングを通過する
- フィルタリングに引っかかった場合(仕事の成果・キラキラ充実投稿)は「**ここは仕事じゃないあなたの場所です**」旨のメッセージを返す

**変更点(旧 → 新)**:
- 旧:「仕事じゃないけど」prefix を**強制**
- 新:prefix 強制を**撤回**。任意の文章で投稿可能。UI のサンドイッチ構造で「仕事じゃないけど〜世の中を変える」フレーミングを担保

### FR-002: AIフィルタリング

- **Amazon Bedrock 経由で Claude モデル** を呼び出し、投稿内容を判定する
Expand All @@ -70,7 +67,6 @@

### FR-003: AI ナマケモノ対話(コア機能)

**旧 FR-003「AIコメント機能」を、動的IP として再定義**:

- 投稿がフィルタリングを通過した直後、AI ナマケモノが**個別化された肯定コメント**を生成する
- コメントは「**5経路**」のいずれかに**必ず紐付けて**生成される(経路の詳細は `project-overview.md` 「ビジョンを支える5経路」参照):
Expand All @@ -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: タイムライン
Expand All @@ -109,7 +105,7 @@
- 自分のこれまでの投稿(怠惰系・善行系問わず)と AI コメントを一覧で振り返ることができる
- スタンプ数等は**表示しない**(存在しないため)

### FR-006(新規): AI ナマケモノの個別化記憶
### FR-006: AI ナマケモノの個別化記憶

- ユーザーごとに過去の投稿履歴を AI が参照する
- 「先週、3時間スマホを見ていたあなたへ」のような**継続性のある対話**を可能にする
Expand Down Expand Up @@ -162,7 +158,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する
3. 取得した実テキストから引用を抽出
4. **出典の正確性が事実と合致**することを保証して応答生成

### FR-008(新規): サンドイッチUI構造
### FR-008: サンドイッチUI構造

- 投稿カードは以下の構造で表示される:
```
Expand All @@ -179,7 +175,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する
- ブランドフレーム上下が「仕事じゃないけど〜世の中を変える」を保証する
- 投稿内容(怠惰系・善行系問わず)は**ブランドの構文で包まれる**

### FR-009(新規): 依存防止機能(切り上げ提案)
### FR-009: 依存防止機能(切り上げ提案)

- AI ナマケモノは、ユーザーの**継続使用時間・連続投稿数**を検知する
- 一定の閾値を超えた場合、AI から**達観した怠惰の老師**(FR-010 参照)の口調で**切り上げ提案**を返す
Expand All @@ -192,7 +188,7 @@ PoC で受容したハルシネーションリスクを将来的に解消する
- 連続滞在 30分 → 切り上げ提案
- これは「ダメ礼賛が依存を生む」ダーク・パターンへの構造的回避(NFR-005の倫理性を**機能レベル**で担保)

### FR-010(新規): AI ナマケモノ人格設計 ―「達観した怠惰の老師」(Wise Lazy Elder)
### FR-010: AI ナマケモノ人格設計 ―「達観した怠惰の老師」(Wise Lazy Elder)

#### 人格イメージ

Expand Down Expand Up @@ -252,7 +248,7 @@ AI ナマケモノは**動的IPの本体**であり、単なる応答ツール

ユーザーごとの**個別化記憶**(FR-006)と組み合わせて、**唯一無二の関係性**を生む。キャラクターのビジュアル・名称・声色は IP 拡張時に統一(PoC ではテキスト中心)。**FR-009(依存防止)の切り上げ提案・FR-002(フィルタリング)の除外メッセージ**も、すべてこの老師人格で統一する。

### FR-011(新規): タイムライン投稿への経路ラベル表示
### FR-011: タイムライン投稿への経路ラベル表示

- 各投稿の AI コメント部分に、紐付けられた経路(①〜⑤)のラベルを表示する
- ラベル表示例:
Expand Down Expand Up @@ -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: ユーザーをファンとして遇する

- ユーザーデータは外部に**販売しない**
- 広告は**掲載しない**
Expand All @@ -338,7 +334,6 @@ AI ナマケモノは**動的IPの本体**であり、単なる応答ツール

### User(ユーザー)

**3回目サイクルで Cognito 一本化**:User データは Cognito User Pool が管理する。Sloth Feed 側 DynamoDB の Users テーブルは **PoC では不要**。

Cognito が管理する属性:

Expand All @@ -364,7 +359,6 @@ Cognito が管理する属性:
| createdAt | String (ISO) | 投稿日時 |

**変更点**:
- 旧 `stamps` フィールドを**削除**(スタンプ機能は存在しないため)
- `aiCitationSource` を**追加**(出典明記のため)

### FilterResult(フィルタリング結果)
Expand Down Expand Up @@ -426,7 +420,7 @@ Cognito が管理する属性:
- [ ] AI ナマケモノの人格が一貫している(FR-010)
- [ ] AI コメントに引用元が明記される(PoC では LLM の自己申告、FR-007・NFR-005)
- [ ] 連続使用検知時に切り上げ提案が出る(FR-009)
- [ ] スタンプ機能が**存在しないこと**を確認(旧 stamps フィールド削除確認)
- [ ] スタンプ機能が**存在しないこと**を確認

### インフラ
- [ ] AWS DynamoDB への読み書きが機能する
Expand Down
5 changes: 3 additions & 2 deletions aidlc-docs/inception/user-stories/personas.md
Original file line number Diff line number Diff line change
@@ -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) を参照。

---

Expand Down
30 changes: 7 additions & 23 deletions aidlc-docs/inception/user-stories/stories.md
Original file line number Diff line number Diff line change
@@ -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」セクション参照。

**分解アプローチ**: ユーザージャーニーベース
**投稿者識別**: メール+パスワード認証
Expand Down Expand Up @@ -112,7 +113,7 @@

---

### US-006(新規): AI ナマケモノとの関係性が継続する
### US-006: AI ナマケモノとの関係性が継続する
**As** 継続して使うユーザーとして
**I want** AI ナマケモノが**過去の自分の「仕事じゃないけど」投稿を覚えていて**、継続性のある対話をしてくれること
**So that** 「自分専用のナマケモノが育っている」という IP 体験を得られる
Expand Down Expand Up @@ -158,7 +159,7 @@
- [ ] 自分の投稿のみが新しい順に一覧表示される
- [ ] 各投稿にはテキスト・AI ナマケモノコメント・投稿日時・**引用元**が表示される
- [ ] 他ユーザーの投稿は表示されない
- [ ] スタンプ数・いいね数は**そもそも存在しない**(旧 `stamps` フィールド削除済み)
- [ ] スタンプ数・いいね数は**そもそも存在しない**

**ペルソナ**: ユイ(「こんなに仕事じゃないことをやってこれた」)、ケンタ(「自分の賢明な怠惰と気遣いの歴史」)
**INVEST**: Independent ✅ / Negotiable ✅ / Valuable ✅ / Estimable ✅ / Small ✅ / Testable ✅
Expand All @@ -167,7 +168,7 @@

## Journey 6: 健全に離れる

### US-009(新規): AI ナマケモノから「そろそろ寝ましょう」と切り上げ提案を受け取る
### US-009: AI ナマケモノから「そろそろ寝ましょう」と切り上げ提案を受け取る
**As** Sloth Feed を連続使用しているユーザーとして
**I want** 一定時間使い続けた/連続して投稿した時に、AI ナマケモノから「**そろそろ寝ましょう**」「**ダメで終わるのも美徳です**」のような切り上げ提案を受け取りたい
**So that** 「ダメ礼賛」が新たな依存を生むダーク・パターンに陥ることなく、健全に Sloth Feed と距離を取れる
Expand Down Expand Up @@ -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 耐性)|