# journeys.md — PM 軌驗收([專案/組織名]) > **根**:[root.md](root.md)(J-1 對應根卡 **P?**)。本文件**只從人的角度寫**,禁止出現系統/模組名詞。 > **誰能寫**:只有總管(orchestrator)。engineer/subagent **禁改本檔與任何考題**——考生不能改考卷。 > **標記**:🟢 考過即關 / 🔴 考過轉「對帳中」(站上附真實世界判準與對帳日) > **站全域編號**,跨 Journey 共享;同一站在別條旅程重複出現只寫引用,不重抄。 > **考題(Gherkin)的 Then 只准寫「使用者看得到/感覺到什麼」**——「回傳 200」「部署成功」一律不准入題。 > > 立卷 [YYYY-MM-DD]。取代「數任務完成幾條」當進度語言: > 從今天起回報形式是「**J-x 已點亮 n/m 站**」。 --- ## A1 [角色名] - 一句話描述:**[這個角色是誰、他想幹嘛。用他自己會講的話寫,不要用你的話。]** - 他不想知道我們內部長什麼樣。判準: - 每一站都要再問一次——「**用戶需不需要為了過這關,去理解一個屬於我們內部的概念?**」 - 需要 ⇒ 這站沒過。就算對象是工程師也一樣。 ### J-1 [旅程名:用第一人稱寫這個角色的一條情境] - 這條旅程的頭尾:**[起點] → [中間] → [終點]**。 - **驗收只認頭尾**。中間任何一環「做完了」都不算通關。 #### S1 [站名:用戶拿到什麼] 🟢 - [一句話解釋這站在幹嘛。] - **G-1.1** - Given [我是誰/什麼狀況] - When [我做了什麼] - Then [我看到/感覺到什麼] #### S2 [站名] 🟢 - [一句解釋。] - **G-2.1** - Given [...] - When [...] - Then [...] - **G-2.2** - Given [邊界情況——想一個「安靜地什麼都沒發生」的可能] - When [...] - Then [...]——**不准安靜地什麼都沒發生** #### S3 [站名] 🔴 - 【對帳:**[真實世界的判準,要能用數字或事實判真假]**——[低於多少就代表這個設計錯了,要改成什麼]|對帳日 [YYYY-MM-DD]】 - **G-3.1** - Given [...] - When [...] - Then [...] ### J-2 [第二條旅程] > 站全域共享:同一站重複出現只寫引用,不重抄。 #### S1 →(引用,見 J-1) #### S7 [這條旅程才有的新站] 🟢 - **G-7.1** - Given [...] - When [...] - Then [...] --- ## 附:站點索引(回歸考觸發表) > 用途:某一站相關的東西被改動時,查這裡就知道**要重考哪些題**。 > ⚠️ 用巢狀 bullet,**不要用表格**——表格會把層級壓平,讀的人看不出「站 → 被誰經過 → 重考什麼」的從屬關係。 - **S1** [站名] - 被經過:J-1 - 改動時重考:G-1.1 - **S2** [站名] - 被經過:J-1、J-2 - 改動時重考:G-2.1、G-2.2 - **S3** [站名] - 被經過:J-1 - 改動時重考:G-3.1 + 下游 S4~S9(這站變了,後面全部要重考) --- ## 這卷還缺什麼(誠實記,別假裝完備) > 這一段是**防假綠的裝置**,不是免責聲明。刪掉它,這卷看起來就會比實際完整。 - **每一站現在點亮了沒有,刻意留白**。理由:站的狀態要靠實測填, 不是靠對著舊文件推測——那正是「假綠」的來源。第一次點亮由 sprint 收尾時實考填入。 - **目前只有 J-1**。第二條旅程等 J-1 通關再立——規矩是「**需要新站才提案新站**」, 不是先把表格畫滿。 - [其他你知道還缺、但這一版先不做的東西。寫出來,別讓下一個人以為這卷是完整的。] ---