
Day 8,我用親和圖把 ChatGPT、Claude、Grok Bot 提出的 PRD 建議整理成群組。原本落落長的內容,變成 74 張問題卡片、9 個討論區塊,終於比較知道可以從哪裡開始了 XD。
接下來,就要回到 Day 7 提到的目標:請 AI 協助我看見盲點,再由自己判斷哪些建議適合這個產品。

今天我和 ChatGPT 逐區討論,從第一版範圍、開始練習的流程,一路談到中斷、紀錄、資料保存與驗收。這篇挑幾個有感的例子,分享我怎麼從「這個建議好像不錯」走到「那第一版就這樣做」。
在 Day 7,我請 AI 從產品、設計與工程三種視角檢視 PRD。實際逐區討論後,我發現它提出的問題,主要幫我看見三種不同的缺口。
第一種,是有寫下功能,但還沒有定義清楚它的規則。
例如,我寫了「記錄每次呼吸練習」,卻還沒想清楚:設定十分鐘、只練三分鐘算不算?同一天練三次,累積天數怎麼計算?跨午夜又算哪一天?
AI 沿著這些情境追問,才讓我發現,一句看似清楚的功能描述,實際上還有很多需要回答的問題。
第二種,是想法已經改了,文件卻沒有一起更新。
像是 Day 5 已經改成先選當下感受,PRD 前面的流程仍寫著先選呼吸模式;Day 6 決定採用累積天數,前面的段落卻還留著連續天數。
這些是我自己寫作與設計過程中留下的版本落差。AI 把前後不一致的地方指出來,讓我能重新確認哪一個才是目前的決定。
第三種,是我不熟悉的技術問題,會反過來影響使用體驗。
我原本覺得,閉眼時用震動提示吸氣、吐氣應該就可以了。但接著被問到手機會不會放旁邊、會不會鎖屏,才發現還需要驗證這些情況下能不能跟上節奏。
另外,原稿雖然已經列出來電、切換 App、意外關閉等情境,卻還沒有定義各自要怎麼處理。AI 進一步把問題拆成:計時是否暫停、聲音是否停止、回來後從哪裡繼續,以及紀錄要不要保留。
這一輪讓我更清楚,有些地方是自己沒想到,有些是想到卻還沒決定,也有些只是沒有寫清楚。釐清缺口之後,接下來就能和 AI 一起把它們補齊。
在 Day 1,我希望最後能透過 TestFlight 使用自己做的 App。實際討論第一版的交付目標時,我把它拆成兩個層次:
我預期在鐵人賽第 25 天附近把 App 做出來,但進度還是會受到現實生活的忙碌程度影響。先把最低目標說清楚,後面遇到新的建議,才有判斷是否要放進第一版的依據。
像是 HealthKit 串接,我覺得是個好概念,但目前自己沒有需求,就先放進 backlog。呼吸動畫我也很想做,不過自己有時會閉眼練習,聲音和觸覺的優先度就會更高。
這些取捨都和我當下的使用情境有關。先讓自己真的用起來,之後才有機會知道哪些功能值得繼續投入。
討論時,我補充自己的使用習慣與設計意圖,AI 協助拆解情境、說明選項,再把確認後的答案整理成規則。遇到需要實際操作才能判斷的問題,就先記下要驗證什麼。
我的討論方式很直接:請 AI 每次帶一個區塊,我依照卡片編號回答。不懂的問題就請它解釋,還沒想法的就先保留,避免硬選一個答案。
例如,狀態選擇要不要支援複選?確實有可能焦慮又睡不著,但我目前還沒有明確的使用需求,能支撐後面更複雜的呼吸法對應。因此第一版先單選,讓使用者選最符合當下感受的一項,複選放入 backlog。
討論時,我也請 AI 先記錄,等各區談完後再一起更新 PRD。這樣可以回頭檢查前後是否一致,也比較容易分清楚:哪些是我的決定,哪些只是 AI 提出的選項。
整理成可以重複使用的 Prompt,大概會是這樣:
請依照親和圖的區塊,逐區和我討論。保留問題編號,讓我能對照回答。
每輪整理我的決定、取捨理由,以及尚未確認的事項。沒有回答的地方先標示待確認,不要自行補成規格,也不要把你的建議直接當成我的決定。
等全部討論完成後,再依照確認的內容建立新版 PRD,保留原版與變更紀錄。
Day 6,我已經決定使用累積天數,讓自己看見過去投入的時間。但真正要做統計時,還是得先回答:什麼才算一筆練習?
AI 提出的問題包含:有沒有最低時間?一定要完成設定時長嗎?中途離開,要不要留下紀錄?
我的答案是:有練就算。
如果設定十分鐘,實際只練了三分鐘,就記錄一次、累積三分鐘。暫停時間不計入,但也不會因為沒有完成原先設定,就把這三分鐘刪掉。
因為我在意的是自己有沒有留時間照顧當下的狀態。這個想法也延續到心得:想寫就寫,不想寫可以跳過,不需要為了保存紀錄多完成一道作業。
接著還有一個我原本沒想到的問題:如果晚上 11:58 開始,練到隔天 12:03,要算哪一天?
最後我選擇整筆歸到開始練習的日期,不拆成兩天。同一天練三次,則算三次練習、一個練習日。
這些看起來是計算細節,但它們會直接決定使用者回頭看見什麼。當我說「希望紀錄帶來鼓勵」,就需要把這個意圖繼續落到每一條統計規則裡。
原本 PRD 裡有提到人聲和背景聲,但我對音訊處理不熟,自己錄音也需要另外準備。
回到使用習慣,我比較想保留自然的 ASMR 背景聲,再用不同的觸覺回饋區分吸氣、吐氣。人聲引導就先移到 backlog,呼吸動畫則有時間再處理。
討論到這裡,AI 又追問:閉眼練習時,我會一直握著手機嗎?還是會放旁邊、甚至鎖屏?
我想了一下,好像沒有固定方式。有時握著、有時放旁邊,也可能忘記螢幕開著,讓手機自己鎖屏。
這讓原本看似簡單的「改用震動」多了一個需要驗證的條件:在我實際會使用的情境裡,觸覺能不能讓我跟上節奏?
目前先確認自然背景聲與觸覺的方向,接下來用真機測試握持、放旁邊、鎖屏與切換 App 的情況。還沒測過之前,我不會把這些體驗都當成已經解決。
這也是這輪討論很有幫助的地方。原本我只在選功能,問到具體情境後,才發現要先做一個小實驗。
在 Day 3,我把 Supabase 寫進 PRD 的初步技術想法,原因很單純:在 Vibe Coding 社群裡常看到,自己過去工作也稍微接觸過,所以想知道這次適不適合使用。
但重新檢查需求後,我目前只想先在自己的手機練習、存紀錄和寫心得,也沒有帳號或跨裝置同步的需求。
因此,第一版決定採用:
核心功能離線可用,紀錄與心得存在手機,App 不主動上傳,也不提供雲端同步。
這代表背景聲和 Quote 清單也要預先放在 App 裡,才能在沒有網路時使用。
同時,我也接受這個範圍的限制:第一版先不做 App 自建備份與匯出;如果刪除 App、手機遺失,而且沒有可用備份,紀錄就可能無法找回。這部分先記錄下來,後續有需要再處理。
不過,資料存手機還是要認真處理。前面既然決定中途離開也保留紀錄,就不能只期待使用者正常完成練習後才存檔。保存進度、意外關閉和更新後的舊資料,都要列入實作與驗收。
除了做決策,我也發現需要持續確認 AI 有沒有理解我的畫面。
例如討論首頁時,AI 曾建議把 Quote、累積天數和開始按鈕排出層級。但我的首頁就是先選狀態,接著選呼吸法與時間;Quote 是放在呼吸計時器附近。
如果只看那段建議,確實像是一個合理的首頁設計,但它和我原本的想法有落差。因此我直接把位置與流程重新說清楚,再請它修正紀錄。
這件事也提醒我,要檢查 AI 整理出來的答案,是否仍然對應自己原本想解決的問題。 尤其經過很多輪對話後,一個尚未採納的建議,很容易在下一輪變成「前面已經決定的事」。
九個區塊討論完後,我請 AI 讀取原本的 PRD,保留舊版,另外建立 PRD_Final v1.0,並記錄這次改了什麼。
下面先用表格整理第一版與 Final 版的差異,以及每個調整背後的決策理由。文末再附上 PRD_Final v1.0 全文,方便大家直接對照完整規格。
以下以 Day 3 的 PRD 初稿為起點,摘要整理到 Final 版的主要差異與決策理由。部分調整已在 Day 5、Day 6 逐步形成,這次再一起確認並補齊規則。
| 項目 | 第一版(Day 3 初稿) | PRD_Final v1.0 | 決策理由 |
|---|---|---|---|
| 產品範圍 | 希望專注呼吸,但情境同時提到睡眠/專注/放鬆,邊界未說清楚。 | 焦慮、專注、睡前都是呼吸練習情境,不增加冥想、專注工具或睡眠追蹤。 | 回到最初自用的目的,讓第一版集中在呼吸功能。 |
| 開始流程 | 先選呼吸模式 → 聆聽引導 → 設定時間 → 開始。 | 先選當下感受 → 同一步選對應呼吸法與時間 → 直接開始;固定 5/10/15 分鐘。 | 延續 Day 5 的方向,降低先理解所有方法的負擔,也把時間選項定清楚。 |
| 聲音與引導 | 提到人聲與背景聲,播放與素材方案尚未定案。 | 保留自然 ASMR 背景聲,搭配呼吸觸覺;人聲進 backlog,動畫為選配;鎖屏體驗待驗證。 | 依自己的閉眼習慣安排優先順序,減少目前錄製人聲的準備負擔。 |
| 統計與視覺化 | 列出連續天數、總時間、Heatmap 與每週時間長條圖。 | 採累積天數/實際時間,日曆只標有無練習;增加練習時的狀態統計。原稿週長條圖未納入已確認範圍。 | 延續 Day 6 對累積與鼓勵的思考,讓每個指標對應明確的回顧目的。 |
| 有效紀錄與日期 | 未定義提前結束是否算一次,也沒有同日多次與跨日規則。 | 有練就算;只累積實際時間、不計暫停;同日多次只算一個練習日,跨午夜歸開始日。 | 保留每一次實際投入,也避免不同畫面採用不同統計方式。 |
| 中斷與恢復 | 來電、切 App、滑掉 App 已列為問題,但尚未回答。 | 來電/鬧鐘中斷、耳機斷線時自動暫停;手動從原位置繼續。鎖屏/切 App 期望繼續,須真機驗證;意外關閉後回首頁。 | 逐一釐清使用者會遇到的情境,讓計時、聲音、觸覺與紀錄一致。 |
| 心得與回顧 | 練後寫感受、按日查看紀錄;未定必填與編輯規則。 | 心得可略過,最多 150 字;按日期查看列表,可修改心得、刪除紀錄並重算統計。 | 降低練習結束後的負擔,讓紀錄可以回顧與修正。 |
| 資料與網路 | 單機、不做帳號,但同時考慮 Supabase,擔心斷網遺失紀錄。 | 核心功能離線可用;本機保存,App 不主動上傳、不做雲端同步;自建備份/匯出先進 backlog。 | 目前沒有帳號或跨裝置同步需求,先縮小開發範圍,同時接受資料恢復的限制。 |
| 導覽與 Quote | 尚未定義底部導覽與 Quote 配置。 | 主頁/紀錄/設定三個 Tab;首頁直接選狀態,Quote 放在呼吸計時器附近,使用內建清單。 | 將後續設計探索的意圖正式寫進規格,避免 AI 依其他假設重新安排首頁。 |
| 驗收與未決事項 | 驗收標準空白,預計功能定義後再補。 | 加入狀態對照表、27 個驗收情境、音訊真機清單,以及實作時要確認的事項。 | 讓需求有可檢查的預期結果,也保留尚未驗證的部分,不把假設當作已完成。 |
新版也補上練習狀態對照表與 27 個驗收情境。例如,練習中暫停時,聲音與計時都要停止,等待時間不計入紀錄;中斷結束後,要等使用者手動繼續。
這些目前都是接下來要檢查的項目,還沒有進行實作與真機驗收。把預期結果先寫清楚,之後才能對照功能有沒有照自己的想法運作。
這也呼應 Day 3 提到的 PRD 用途:留下設計意圖,以及當時做這個決定的理由。
有些細節仍留到實作時處理,像是震動模式、聲音素材、日曆一次顯示多長的範圍;這些都有另外標示,沒有因為檔名叫 Final 就突然全部確定。希望之後不要再出現 Final_真的Final XD。
Day 8 最有感的是 AI 幫我節省整理資料的時間。今天進一步討論後,我覺得它的幫助也在於,能把我一句比較模糊的想法,繼續追問成具體情境。
「我想記錄每次練習」會接著遇到提前結束、跨午夜、心得沒寫等問題;「我想用震動引導」則需要考慮手機放在哪裡、螢幕有沒有鎖定。
但問得越完整,也越需要提醒自己這一版的目標。合理的建議可以先留下,現在不需要的放進 backlog,涉及實際體驗的就安排驗證。逐項留下處理方式之後,才比較知道接下來要做什麼。
這次也更能體會,設計師除了畫出畫面,還需要把這些平常不一定看得見的行為定義清楚。等自己真的開始使用,再回頭檢查今天做的判斷。
接下來會逐步進入開發準備與實作與開發環境以及工具的事前準備。ChatGPT、Claude 和 Grok Bot 這次提出建議的差異,我也想另外整理成一篇使用心得,發布日期尚未確定,目前先以產品開發任務為優先項。今天先把產品決策收斂到這裡。明天見,Cheers 🍻
以下直接附上這輪整理後的完整 PRD,方便對照前面的決策過程。這是 2026-09-19 的 v1.0 快照;之後實作若有調整,會另記版本變更。
版本:v1.0 — Day 9 決策整合版
建立日期:2026-09-19
產品負責人:Astro
狀態:已確認需求基準;技術、素材與 UI 細節於實作時處理。尚未進行程式或真機驗收。
原始文件:呼吸放鬆 App - PRD
本頁根據原始 PRD 與 Day 8–9 九區討論整理。原始文件保留,不覆寫;原頁內的 Wireframe、設計探索與研究參考仍可回看。舊圖或舊描述若與本版衝突,以本版已確認需求為準。
「Final」是本輪收斂後的文件名稱,不代表所有實作細節已定案。下文清楚區分已確認規格、待實作決定與開發建議。
| 版本/來源 | 日期 | 用途/變更 |
|---|---|---|
| 原始 PRD(未另加版本號) | 原頁最後修改:2026-09-17 | 保留原文與 Wireframe,作為探索歷程;本次未改寫。 |
| PRD_Final v1.0 | 2026-09-19 | 依九區討論建立獨立新版;補範圍、流程、紀錄規則、狀態對照、驗收與待實作事項。 |
後續規則:文案修正使用 v1.0.x;需求或驗收行為有變動時提升次版本(例如 v1.1),記錄日期、改動、原因與影響的需求/驗收編號。涉及範圍的大改版,先保留前一版獨立快照。Notion 頁面歷程可作輔助,不只靠檔名追蹤。
| 原 PRD 的舊描述/未定處 | 本版決策 |
|---|---|
| 先選呼吸模式,再聆聽引導與設定時間 | 首頁先選當下感受,再於同一步選呼吸法與時間,直接開始練習。 |
| 人聲與背景聲的技術方案未定 | V1 自然 ASMR 背景聲+呼吸節奏觸覺;不做人聲與分軌控制。 |
| Supabase 為候選;網路不穩可能影響紀錄 | 核心功能離線可用;本機持久化,App 不主動上傳、無帳號與自建後端。 |
| 連續與累積天數並存 | 採累積天數;任何有實際練習時間的紀錄都算,未練日不懲罰。 |
| Heatmap 語意與點擊行為未定 | 只顯示有/無練習;點日期看當日列表;版型與顯示範圍留到 UI。 |
| 中斷、背景與提前結束未定 | 來電/鬧鐘中斷與耳機斷線自動暫停;手動接續;鎖屏/切 App 期望繼續;提前或意外結束都存實際時間。 |
| 首頁 Quote 的助理提案 | 已更正:首頁沒有 Quote,Quote 在呼吸計時器附近。 |
| 驗收標準空白 | 本版新增狀態對照表、核心驗收案例與音訊真機驗證清單。 |
產品定位:一個單純做呼吸練習的 iPhone App。
Astro 平時已有使用呼吸放鬆產品的習慣,但其他 App 往往涵蓋太多功能,因此希望做一個可以每天使用、開始練習負擔較低的產品。透過呼吸給自己片刻放鬆,並透過累積紀錄看見有留時間照顧自己的狀態。
交付目標
| V1 必須支援 | 範圍 |
|---|---|
| iPhone 與導覽 | 底部主頁/紀錄/設定三個 Tab。 |
| 感受與呼吸選擇 | 固定三類感受、單選且必選;只顯示對應呼吸法;時長 5/10/15 分鐘。 |
| 呼吸練習 | 計時器、自然 ASMR 背景聲、可區分呼吸階段的觸覺、暫停/繼續/長按停止。 |
| 背景與中斷 | 鎖屏/切 App 繼續的產品需求;系統中斷自動暫停、手動恢復;須先驗證技術可行性。 |
| 紀錄與心得 | 有練就算,保存實際時間;optional 文字心得,150 字上限;修改心得與刪除紀錄。 |
| 回顧 | 累積天數/時間、有無練習的日曆格、每日列表、練習時的狀態次數(週/月/年)。 |
| 提醒 | 每日最多一次、可自訂時間的練習提醒;開關、授權與排程細節實作時確認。 |
| Quote | Astro 建立的內建清單隨機呈現,在呼吸計時器附近顯示。 |
| 資料 | 離線核心功能、本機持久化、不主動上傳;保留必要的中斷事件 log。 |
非 V1/Backlog/選配
底部導覽
練習流程
選狀態 → 同一步選呼吸法與時間 → 開始背景聲與呼吸練習 → 設定時間到,或長按停止提前結束 → 保存實際練習 → 可選填心得。
心得不填也保存。正常結束後的畫面導向與心得呈現方式留待 UI 設計。App 意外關閉後重新開啟則回首頁,不恢復未完成練習。
回顧流程
進入紀錄 Tab → 查看統計與有/無練習的日曆格 → 點日期 → 當日練習列表 → 回顧單次內容、修改心得或刪除紀錄。狀態次數是否另有點擊下鑽,尚未定案。
選擇規則
| 目前狀態語意 | 可選呼吸法 | 備註 |
|---|---|---|
| 焦慮 | 555、4–6、循環呼吸 | 三種都顯示;預選哪一種待定。 |
| 專注 | 箱式呼吸 | 只有對應的一種方法。 |
| 睡 | 4–7–8 | 只有對應的一種方法。 |
以上保留使用者目前的狀態名稱;正式顯示文案留待 UI。狀態與方法的對應是產品決策,不代表已驗證醫療效果。
呼吸節奏
| 方法 | 已確認的完整節奏 | 狀態 |
|---|---|---|
| 555 | 吸氣 5 秒 → 吐氣 5 秒 → 吐氣後停止 5 秒;一輪 15 秒 | 已確認。第三段是吐後停頓,不可改成吸後停頓。 |
| 4–6 | 完整階段順序、停頓與秒數待核對 | 實作該方法前確認,不能只靠名稱自行補完。 |
| 箱式呼吸 | 完整階段順序與每段秒數待核對 | 實作該方法前確認。 |
| 4–7–8 | 完整階段順序與秒數待核對 | 實作該方法前確認。 |
| 循環呼吸 | 方法定義、階段與秒數待核對 | 不可自行替換成某一種熟悉的呼吸技法。 |
使用者不可自行改秒數。設定時間到立即結束,不等待當輪完成。可先用已確認的 555 驗證整條流程,但不能據此將其餘已列方法從 V1 範圍刪除。
下表是依已確認需求整理的實作對照。狀態名稱為內部協作使用,不要求在紀錄頁展示完成/放棄/中斷標籤。確切文案、按鈕位置與樣式仍由 UI 設計決定。
| 狀態/事件 | 畫面與可操作項 | 計時/聲音/觸覺 | 儲存與下一步 |
|---|---|---|---|
| 尚未開始 | 主頁選感受;方法與時間選擇 | 未進行練習、不開始播放 | 未開始不算次數,不增加狀態統計。 |
| 進行中 | 計時器附近顯示 Quote;可暫停、長按停止 | 計入實際練習時間;播放背景聲與對應觸覺 | 過程中保存進度;週期與精度待驗證。 |
| 使用者暫停 | 呈現可繼續或停止的播放器狀態 | 計時、聲音、觸覺一起暫停 | 保存當前階段、階段剩餘時間、總剩餘時間與累積實際時間。 |
| 來電/鬧鐘造成音訊中斷 | 進入暫停;中斷結束後等待手動繼續 | 同步暫停,不計等待時間 | 記錄可觀測中斷事件;不因事件結束而自動續播。 |
| 耳機斷線 | 進入暫停;手動繼續 | 同步暫停,不突然轉喇叭繼續播 | 保存進度;重新連線不自動開始。 |
| 手動繼續 | 回到進行中畫面 | 從原暫停位置接續,不重跑整輪 | 例如吸氣剩 2 秒,繼續後先完成該 2 秒;避免重複建紀錄。 |
| 鎖屏/切 App | 期望使用系統鎖定畫面播放控制;回 App 顯示正確進度 | 需求為繼續練習;背景計時與觸覺須真機驗證 | 繼續保存進度;不可單憑螢幕動畫推算時間。 |
| 設定時間到 | 結束練習,可選填心得;結束提示樣式待定 | 立即停止計時、背景聲與觸覺,不等待輪次完成 | 結算實際時間,同一 session 保存一次;心得可空白。 |
| 長按停止/提前結束 | 長按停止;時長與回饋待 UI,未額外要求確認彈窗 | 停止練習、聲音與觸覺 | 有實際時間就保存並統計;心得呈現方式待 UI。 |
| App 當掉/被滑掉後重開 | 回首頁,不提供接續未完成練習 | 不把關閉至重開期間算成練習 | 保留最後成功保存的實際進度,不重複計次;中斷原因無法確知則記未知。 |
不與其他 App 音樂混音。不禁止使用者開啟其他 App;若其他音訊中斷本 App,依自動暫停與手動恢復規則處理。
鎖定畫面採系統播放器能力。Play/Pause/Resume 的可用操作須驗證;App 內的「長按停止」不直接等同系統鎖定畫面也提供相同操作。
一筆練習的定義
心得與編輯
紀錄頁內容
| 項目 | V1 規則 |
|---|---|
| 累積練習天數 | 有有效練習的日期數量;不使用連續歸零指標。 |
| 累積練習時間 | 所有有效紀錄實際時間總和。 |
| Heatmap/日曆格 | 一天一格,只區分有/無練習;不按次數或時間顯示深淺。正式名稱、單月或多週及一次顯示多久,實際看畫面再定。 |
| 日曆互動 | 點日期看當日列表;各筆顯示開始時間、感受、呼吸法、實際時長與心得(若有)。 |
| 練習時的狀態 | 各狀態對應練習次數;提供週/月/年切換,預設本月。代表練習時選擇,不代表生活中所有情緒發生次數。 |
| 篩選細節 | 週起始日、歷史期間瀏覽、其他圖表是否跟隨切換待 UI;不可自動將週/月/年套用至 Heatmap。 |
| 空狀態 | 無紀錄時顯示 No data 空畫面;不填假資料。 |
| 情緒語意 | 未練日使用中性淡色;不用紅色懲罰、失敗標記或連續中斷壓力文案。 |
V1 核心功能離線可用;紀錄與心得存在手機,App 不主動上傳,不提供 App 雲端同步。
資料模型需要涵蓋的資訊(邏輯需求,非已定 DB schema)
| 資料 | 應支援的資訊 |
|---|---|
| 單次練習 | 唯一識別、選擇的感受與呼吸法、計畫時長、開始/結束時間、固定歸屬日期、實際練習時間、optional 心得。 |
| 進行中狀態 | 同一 session 識別、目前階段及剩餘時間、總剩餘時間、已累積實際時間、最近保存進度;暫停恢復時可正確接續。 |
| 中斷事件 | 建議最小欄位:session 關聯、事件時間、類型與可觀測原因。未知原因記未知;內容與保留期限實作時確認。 |
| 設定/內容 | 提醒時間與必要設定、固定呼吸參數、內建 Quote 與背景聲素材。 |
工程建議:log 不複製心得全文;為資料結構建立版本與遷移機制,測試帶著舊紀錄更新。這些是支援需求的實作建議,不指定 framework。
已知設備與工具
優先做真機小實驗
先用已確認的 555、單一背景聲與最簡控制,驗證下列項目,再擴大 UI 與方法:
紀錄裝置、OS、測試情境、預期、實際、差異與處置。若平台限制與需求衝突,回到產品決策,不以測試失敗為由默默修改規格。
以下均為待執行清單,不代表已測試通過。 行為已定案者可直接驗收;仍待決定參數的案例,先補參數再驗證。
| ID | 情境/操作 | 預期結果 |
|---|---|---|
| AC-01 | 開啟主頁與底部導覽 | 可見主頁/紀錄/設定;主頁開始選感受,首頁沒有 Quote。 |
| AC-02 | 未選狀態嘗試進下一步;切換不同狀態 | 不能跳過;一次單選且固定清單;只顯示狀態對應的方法。 |
| AC-03 | 進入方法/時間步驟 | 同一步提供方法與 5/10/15 分鐘,預設 5 分鐘;每次不沿用上次。焦慮預選方法待定後補檢查。 |
| AC-04 | 選 555 開始 | 依吸 5 → 吐 5 → 吐後停 5 秒循環;背景聲與觸覺依共同練習狀態運作。 |
| AC-05 | 設定時長在呼吸階段途中到期 | 立即結束;不延長至當輪結束;不額外累加時間。 |
| AC-06 | 吸氣剩 2 秒時暫停,等待後手動繼續 | 等待不計入;聲音與觸覺同步暫停;繼續先完成吸氣剩餘 2 秒。 |
| AC-07 | 練到一半來電/鬧鐘造成音訊中斷 | 自動暫停所有練習輸出;事件結束仍維持暫停,直到手動繼續。 |
| AC-08 | 耳機斷線後再連線 | 自動暫停;不突然轉喇叭繼續播;連線恢復也不自動續播。 |
| AC-09 | 手動/自動鎖屏或切換 App | 驗證繼續練習與背景聲、計時同步;鎖定控制連動。觸覺是否成立需真機實驗,未通過不得宣稱符合。 |
| AC-10 | 設定 10 分鐘,實際練 3 分鐘後長按停止 | 保存 1 次、3 分鐘並更新日期與狀態統計,不按 10 分鐘計。 |
| AC-11 | 開始後很快停止,但已有正的實際時長 | 仍算 1 次,不加最低秒數門檻;顯示可四捨五入但不可因此丟掉有效紀錄。 |
| AC-12 | 只選感受、尚未開始就離開 | 不增加次數、時間、練習日或狀態統計。 |
| AC-13 | 同一天練三次 | 3 次、1 個練習日;日曆只顯示有練習,無強度分級。 |
| AC-14 | 23:58 開始,翌日 00:03 結束,無暫停 | 一筆 5 分鐘,全部歸開始日;之後換時區不改歸屬日期。 |
| AC-15 | 略過心得或留空 | 紀錄與統計仍保存;每日列表仍能看到該筆。 |
| AC-16 | 新增或編輯 150 字與超過上限的心得 | 150 字可保存;不保存超過上限的內容;具體計字與超限互動依實作決定後補測。 |
| AC-17 | 在日曆點有紀錄與空白的日期 | 有紀錄顯示當日列表與各筆資料;無紀錄呈現 No data,不顯示假紀錄。 |
| AC-18 | 刪除一筆;再刪某日最後一筆 | 各項統計同步重算;最後一筆刪除後該日恢復無練習。 |
| AC-19 | 切換練習時的狀態週/月/年 | 預設本月;以有效 session 與開始日歸屬計數;週邊界待規則確認後補測。 |
| AC-20 | 首次使用且沒有紀錄 | 呈現 No data;沒有完整 Onboarding 或首次操作提示。 |
| AC-21 | 飛航模式下完成練習、寫心得、重開與回顧 | 核心功能可用;資料留在本機;不以 lost connection 阻擋操作。 |
| AC-22 | 進行中強制關閉/異常終止後重開 | 回首頁、不續跑;保留最後成功保存的已練時間,不計關閉期間且不重複計次;記錄恢復誤差。 |
| AC-23 | 正常結束與系統事件近乎同時到達 | 同一 session 不重複保存或重複累計。 |
| AC-24 | 已有紀錄的 App 更新資料模型 | 舊紀錄與心得仍可讀;遷移失敗不以清空真實資料當修復。 |
| AC-25 | 每日提醒設定與改時間 | 按已選時間每天最多一筆提醒排程;九點不是硬編碼預設。權限/時區策略確認後補測。 |
| AC-26 | 呼吸頁顯示 Quote | 引用內建清單,在計時器附近顯示;不移到首頁。隨機刷新時機待定後補測。 |
| AC-27 | 模擬儲存失敗或裝置空間不足 | 不得把未成功保存說成成功;失敗提示/重試策略與可保留進度於實作時定義並驗證。 |
每列都需記錄「實際結果」,目前全部待測。依驗證結果選音訊 category、背景模式與計時策略,本版不鎖定 API 設定。
| 情境 | 產品預期/需要確認 | 關聯 |
|---|---|---|
| 一般開始、暫停、手動繼續、到時結束 | 背景聲與練習同起停;不漏停、不重播出多條音軌。 | AC-04–06 |
| 來電造成中斷 | 全部自動暫停;掛斷不自動續播,手動從原位置繼續。 | AC-07 |
| 系統鬧鐘造成中斷 | 中斷時暫停;確認實際 OS 事件與畫面,仍由使用者續播。 | AC-07 |
| 有線/藍牙耳機斷線 | 自動暫停,避免突然外放;重新連線不自動開始。 | AC-08 |
| 手動鎖屏與自動鎖屏 | 需求為背景練習繼續;分別檢查聲音、觸覺、階段、總剩餘時間及回前景同步。 | AC-09 |
| 切換 App/長時間背景 | 檢查實際時長、輸出與回前景校正;不能只看前景計時器表面正確。 | AC-09 |
| 另一個 App 播放音樂 | 不混音;若本 App 被中斷則暫停並等待手動繼續。 | 不混音需求 |
| 系統鎖定畫面 Play/Pause/Resume | 可用命令應與 App 內部狀態一致,暫停時間不計入。Stop 可用性與方式實作確認。 | #22、#26 |
| 靜音模式、音量為零、不同輸出裝置 | 尚未決定所有策略;先實測並記錄背景聲/觸覺行為,再確認產品預期,不把靜音一律等同暫停。 | 待實作決定 |
| App 強制關閉/異常終止 | 重開回首頁;保存精度可量測,不承諾收到關閉回呼。 | AC-22 |
| 背景聲循環與整段 5/10/15 分鐘 | 素材可覆蓋練習,循環/淡入淡出策略與接點品質待音訊定義。 | 素材待決 |
以下不是本輪要 Astro 逐題重答的清單;進入相關功能實作時再處理。產品取捨仍由 Astro 決定,AI 不自行補規格。Backlog 與「V1 實作前要補」分開。
| 類別 | 待處理事項 | 處理時機 |
|---|---|---|
| 呼吸設定 | 其他四種方法完整節奏;焦慮預選方法;正式感受文案。 | 實作對應方法/入口前 |
| 引導與平台 | 各階段觸覺模式;鎖屏與手機放旁邊的可用性;若不符合需求的替代方案。 | 先行真機實驗 |
| 時間與儲存 | 背景計時策略、保存頻率、允許遺失精度、恢復標記與異常終止時間資訊、寫入失敗處理。 | 計時與持久化實作 |
| 開發環境 | Mac 具體型號、macOS/Xcode/手機 iOS、最低 iOS、原生或跨平台、本機 DB 選型。 | 建立專案時 |
| 素材 | 自然 ASMR 內容與使用條件、循環策略;Quote 清單、來源、隨機更新時機。 | 素材與內容整合前 |
| UI | 呼吸階段/倒數呈現、長按時長、完成後路徑、列表展開、刪除交互、日曆版型/範圍。 | 畫 UI 與實作時 |
| 回顧與輸入 | 週起始日、歷史期間瀏覽、篩選連動、其他紀錄欄位是否可編輯、150 字計算。 | 紀錄頁實作 |
| 提醒 | 本機通知選型、權限與開關、預設時間、改時間排程替換、旅行時區行為。 | 提醒功能實作 |
| 日誌與備份 | 中斷 log 欄位/保留期限、系統備份實際行為與相關說明。 | 資料功能實作 |
| 舊稿候選 | 每週時長長條圖、狀態次數下鑽等未採納項目,若需要再決策。 | 有具體需求時 |
Astro 已決定使用兩個工具,具體分工尚在詢問。建議先採「Codex 主寫、Claude Code 獨立 review、Astro 真機驗收」:
共用一份 PRD 與驗收清單,避免兩套需求。分工可以交換,這不是宣稱某個模型天生更適合寫或審。小型視覺修正不必每次都做雙重 review,優先用在計時、音訊、中斷與資料。
Codex 官方亦提供針對 diff/commit 的 review;Claude Code 官方說明獨立工作流程及只讀規劃模式,工具角色不必固定。Codex CLI · Claude Code workflows
| 討論區 | 卡片編號 | 本版對應 |
|---|---|---|
| 01 第一版範圍 | #01–06、#70、#73 | 定位、交付、範圍、提醒與流程 |
| 02 快速開始 | #07–12、#62–64 | 感受、方法篩選、預選與時間 |
| 03 呼吸節奏 | #13–20 | 節奏表、聲音/觸覺與計時 |
| 04 中斷 | #21–28 | 狀態 UI 對照與背景行為 |
| 05 有練就算 | #29–35 | 實際時間、日期歸屬與統計 |
| 06 回顧 | #36–43、#66、#68 | 紀錄、日曆、心得與編輯 |
| 07 本機資料 | #44–47、#67、#69、#71 | 離線、資料、Quote 與固定秒數 |
| 08 視覺與導覽 | #48–56、#65 | 三個 Tab、首頁、Quote 位置與延後項 |
| 09 可開發規格 | #57–61、#72、#74 | 版本控制、設備、待決事項、狀態表與驗收 |