### SetupSelectionViewModel Methods Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Methods for loading breed options, preset dogs, and managing user selection for dog setup. ```APIDOC ## SetupSelectionViewModel ### Methods - **loadBreedOptions()** - **Input**: None - **Output**: `List` - **Description**: Retrieves a list of selectable dog breeds and temperaments. - **loadPresetDogs()** - **Input**: None - **Output**: `List` - **Description**: Retrieves a list of preset dogs. - **updateDogName(name: String)** - **Input**: `name: String` - **Output**: `SetupSelectionState` - **Description**: Updates the dog's nickname. - **selectTemperament(temperamentId: String)** - **Input**: `temperamentId: String` - **Output**: `SetupSelectionState` - **Description**: Selects a temperament type. - **selectPresetDog(dogId: String)** - **Input**: `dogId: String` - **Output**: `SetupSelectionState` - **Description**: Selects a preset dog. - **saveSelection()** - **Input**: None - **Output**: `UserConfig` - **Description**: Saves the nickname, breed, temperament, and preset dog. ``` -------------------------------- ### SettingsViewModel Methods Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Methods for managing user settings and navigation to setup screens. ```APIDOC ## `loadSettings()` ### Description Retrieves the current settings and the enabled status for each settings screen. ### Method `loadSettings()` ### Input None ### Output `SettingsState` ``` ```APIDOC ## `openProfileSetup()` ### Description Navigates to the screen for reconfiguring name, dog breed, and temperament. ### Method `openProfileSetup()` ### Input None ### Output `Navigation` ``` ```APIDOC ## `openAvatarSetup()` ### Description Navigates to the photo/avatar setup screen. ### Method `openAvatarSetup()` ### Input None ### Output `Navigation` ``` ```APIDOC ## `openRhythmSettings()` ### Description Navigates to the life rhythm settings screen. ### Method `openRhythmSettings()` ### Input None ### Output `Navigation` ``` ```APIDOC ## `updateNotificationPreference(preference)` ### Description Updates the notification preferences. ### Method `updateNotificationPreference(preference)` ### Input - **preference** (NotificationPreference) - The new notification preference. ### Output `SettingsState` ``` -------------------------------- ### Flowchart for App Launch and Initial Flow Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/ui-design/wireframe-and-flow.md This flowchart illustrates the initial user journey, from app launch to setup or direct access to the dashboard. ```mermaid flowchart TD Launch["S-00 Splash"] --> Gate{"初回 or 既存"} Gate -->|初回| Setup["S-01 Setup 名前・犬種・気質"] Gate -->|既存| Home["S-02 Dashboard"] Setup -->|この子に決める| Home Setup -.->|決勝候補: 写真から作る| SetupPhoto["S-01b 写真/アバター"] SetupPhoto --> Home ``` -------------------------------- ### HouseModeConfirmViewModel Methods Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Methods for confirming and starting house mode, including managing actions and settings. ```APIDOC ## HouseModeConfirmViewModel ### Methods - **loadConfirmation()** - **Input**: None - **Output**: `HouseModeConfirmation` - **Description**: Retrieves planned actions, precautions, and current status. - **toggleAction(actionId: String, enabled: Boolean)** - **Input**: `actionId: String, enabled: Boolean` - **Output**: `HouseModeConfirmation` - **Description**: Toggles the execution target action. - **openCarryOverPreview()** - **Input**: None - **Output**: `Navigation` - **Description**: Navigates to the Jira carry-over confirmation screen. - **openSilentModeSettings()** - **Input**: None - **Output**: `Navigation` - **Description**: Navigates to notification silent settings (candidate for final). - **openReplyDraftPreview()** - **Input**: None - **Output**: `Navigation` - **Description**: Navigates to the reply draft preview (candidate for final). - **startHouseMode()** - **Input**: None - **Output**: `HouseModeSession` - **Description**: Starts house mode and proceeds to the Active screen. ``` -------------------------------- ### Morning Dog Command Example Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/okaeri-wan-two-concept.md Simulates the dog appearing on screen in the morning, assessing the user's condition based on previous day's return time and calendar density, and suggesting three tasks for the day. User confirmation allows the dog to reschedule. ```text 07:30 - 犬が画面に現れる 「昨日の帰宅が23時。今日のカレンダーは会議5本。今日は省エネモードで飼います」 今日のやること(犬が選ぶ): ✅ 12時に昼食をとる ✅ 17時に30分散歩する ✅ 21時にハウスする →「OK、任せる」を押すと犬がスケジュールを組み直す ``` -------------------------------- ### User Story Dependencies Visualization Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/user-stories/stories.md This diagram illustrates the dependencies between various user stories, showing the flow from initial setup to advanced features. It helps understand the project's structure and which stories build upon others. ```text US-03(名前・犬種・気質選択) └──▶ US-08(疲弊検知) └──▶ US-09(検知理由) └──▶ US-11(ハウスモード開始) ├──▶ US-12(Jira繰越プレビュー) └──▶ US-15(ハウス解除) ``` ```text US-01(写真アップロード) └──▶ US-02(アバター選択) └──▶ US-03(名前・犬種・気質選択) └──▶ [全後続ストーリーのトーンが確定] US-04(モード判定) └──▶ US-05(コマンド承認) ├──▶ US-06(リマインド) │ └──▶ US-07(完了報告) └──▶ US-08(疲弊検知) └──▶ US-09(検知理由) └──▶ US-11(ハウスモード開始) ├──▶ US-12(Jira繰越) ├──▶ US-13(サイレントモード) ├──▶ US-14(返信文案) └──▶ US-15(ハウス解除) US-16(帰宅歓迎) └──▶ US-17(一日のサマリ) US-20(生活リズム設定) └──▶ US-21(コマンド反映) US-18(話しかける) └──▶ US-19(文脈返答) ``` -------------------------------- ### House Mode Actions Example Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/okaeri-wan-two-concept.md Illustrates the actions taken when 'House Mode' is activated, including generating a 'cannot work overtime' reply for Teams, moving non-essential Jira tasks to the next day, and switching notifications to silent mode. The screen visually changes to a 'dog curled up' state. ```text 「ハウス」を選ぶと(すべてユーザーの確認後に実行): - Teamsの「残業できません」返信文案を生成(送信はユーザーが行う) - Jiraの残りの非必須タスクを翌日リストに移動 - 通知をサイレントモードに切り替え(ユーザー設定の範囲内) - 画面が「犬が丸くなっている」状態に変わる 夜:帰宅を検知して犬が全力で歓迎する 「何もできなかったけど、帰ってきてくれた。よく生きてた」 → スコアに関わらず褒められる ``` -------------------------------- ### HouseModeManager API Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Endpoints for managing house modes, including starting, ending, and checking status. ```APIDOC ## POST /api/house-mode/start ### Description Starts the house mode. ### Method POST ### Endpoint /api/house-mode/start ### Request Body - **StartHouseModeRequest** (object) - Required - Request payload to start house mode. ### Response #### Success Response (200) - **HouseModeSession** (object) - Information about the initiated house mode session. ``` ```APIDOC ## POST /api/house-mode/end ### Description Ends the house mode. ### Method POST ### Endpoint /api/house-mode/end ### Request Body - **EndHouseModeRequest** (object) - Required - Request payload to end house mode. ### Response #### Success Response (200) - **HouseModeSession** (object) - Information about the ended house mode session. ``` ```APIDOC ## GET /api/house-mode/status ### Description Retrieves the current status of the house mode. ### Method GET ### Endpoint /api/house-mode/status ### Parameters #### Query Parameters - **userId** (string) - Required - The ID of the user. ### Response #### Success Response (200) - **HouseModeStatus** (object) - The current status of the house mode. ``` ```APIDOC ## GET /api/house-mode/actions ### Description Retrieves a list of available actions for a given session. ### Method GET ### Endpoint /api/house-mode/actions ### Parameters #### Query Parameters - **sessionId** (string) - Required - The ID of the house mode session. ### Response #### Success Response (200) - **List** (array) - A list of available house mode actions. ``` ```APIDOC ## GET /api/house-mode/logs ### Description Retrieves logs for actions performed within a session. ### Method GET ### Endpoint /api/house-mode/logs ### Parameters #### Query Parameters - **sessionId** (string) - Required - The ID of the house mode session. ### Response #### Success Response (200) - **List** (array) - A list of action logs for the session. ``` -------------------------------- ### WelcomeHomeGreetingViewModel Methods Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Methods for handling welcome home greetings. ```APIDOC ## `getWelcomeMessage()` ### Description Retrieves the welcome home message. ### Method `getWelcomeMessage()` ### Input None ### Output `WelcomeMessage` ``` ```APIDOC ## `continueToSummary()` ### Description Proceeds to the daily summary. ### Method `continueToSummary()` ### Input None ### Output `Navigation` ``` ```APIDOC ## `closeGreeting()` ### Description Returns to the home screen. ### Method `closeGreeting()` ### Input None ### Output `Navigation` ``` -------------------------------- ### MVP Demo Scenario: Night - Welcome Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/okaeri-wan-two-concept.md Shows the 'Welcome Home' feature. Upon detecting the user's return, the dog provides an enthusiastic welcome, acknowledging the day's efforts regardless of productivity, and expressing continued companionship. ```text 場面3:夜(歓迎) 1. 帰宅を検知して犬が全力で歓迎 2. 「今日のスコア:外に出た ✅ 水を飲んだ ✅ それだけで十分」 3. 「よく生きてた。また明日も一緒にいるよ」 ``` -------------------------------- ### Scenario 3: Barking at Late-Night Posts Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/ideas/service-concept-proposals.md This example shows how the bot prevents late-night Slack posts by prompting the user to reconsider and schedule the message for the next morning. It provides a gentle nudge rather than a strict block. ```text 22時以降の Slack 投稿に対して番犬が反応 「まだ起きてたの? 送るなら明朝にしない? 🐕」 → 「明日の朝8時に送る」ボタンが出る → 本人が断っても吠えた記録は残る(自分で気づける) ``` -------------------------------- ### MVP Demo Scenario: Morning - Dog Command Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/okaeri-wan-two-concept.md Demonstrates the 'Morning Dog Command' feature. The system reads mock calendar data, the dog assesses the day's condition, declares an 'energy-saving mode', presents three tasks, and awaits user confirmation to proceed. ```text 場面1:朝(犬コマンド) 1. カレンダー(モックデータ)を読み込み、犬が今日の状態を判定 2. 「今日は省エネモードで飼います」と犬が宣言 3. 今日やること3つを犬が提示。ユーザーが「任せる」を押す ``` -------------------------------- ### Impossible Day Judgment Example Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/concepts/okaeri-wan-two-concept.md Demonstrates the dog's intuitive 'sensing' of the user's fatigue. When a 'fatigue score' exceeds a threshold, the dog signals a 'house mode' is needed, suggesting the user might be too tired to continue. ```text 14:00 - タスクが溜まり、返信が遅れ始める 犬が鼻を鳴らす演出で通知を出す 「においがする。今日はもう無理の日かもしれない」 「ハウス に戻りますか?」 ``` -------------------------------- ### AvatarSetupViewModel Methods Source: https://github.com/kouhaizuka/okaeriwantwo-aws-summit-hackathon2026/blob/main/aidlc-docs/inception/application-design/component-methods.md Methods for uploading photos, generating avatar candidates, and selecting avatar styles. ```APIDOC ## AvatarSetupViewModel ### Methods - **uploadPhotos(photos: List)** - **Input**: `photos: List` - **Output**: `UploadResult` - **Description**: Uploads photos of the dog. - **generateAvatarCandidates()** - **Input**: None - **Output**: `List` - **Description**: Generates avatar candidates. - **selectAvatarStyle(styleId: String)** - **Input**: `styleId: String` - **Output**: `UserConfig` - **Description**: Selects and saves the avatar style. - **skipAvatarSetup()** - **Input**: None - **Output**: `Navigation` - **Description**: Proceeds to the next step, keeping the preset dog. ```