architext 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/LICENSE +21 -0
  3. package/README.md +326 -0
  4. package/README.zh-CN.md +326 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +46 -0
  7. package/dist/templates/en/briefs/_base.md +115 -0
  8. package/dist/templates/en/briefs/_modules.md +173 -0
  9. package/dist/templates/en/docs/global/data_snapshot.json +31 -0
  10. package/dist/templates/en/docs/global/design_tokens.json +150 -0
  11. package/dist/templates/en/docs/global/dictionary.json +35 -0
  12. package/dist/templates/en/docs/global/error_codes.json +19 -0
  13. package/dist/templates/en/docs/global/map.json +94 -0
  14. package/dist/templates/en/docs/global/roadmap.json +39 -0
  15. package/dist/templates/en/docs/global/vision.md +82 -0
  16. package/dist/templates/en/docs/prompts/audit.md +150 -0
  17. package/dist/templates/en/docs/prompts/code.md +160 -0
  18. package/dist/templates/en/docs/prompts/edit.md +87 -0
  19. package/dist/templates/en/docs/prompts/fix.md +86 -0
  20. package/dist/templates/en/docs/prompts/help.md +69 -0
  21. package/dist/templates/en/docs/prompts/inherit.md +270 -0
  22. package/dist/templates/en/docs/prompts/map.md +131 -0
  23. package/dist/templates/en/docs/prompts/plan.md +252 -0
  24. package/dist/templates/en/docs/prompts/remove.md +162 -0
  25. package/dist/templates/en/docs/prompts/revise.md +160 -0
  26. package/dist/templates/en/docs/prompts/scope.md +198 -0
  27. package/dist/templates/en/docs/prompts/start.md +258 -0
  28. package/dist/templates/en/docs/templates/plan.template.json +113 -0
  29. package/dist/templates/en/docs/templates/scope-brief.template.md +58 -0
  30. package/dist/templates/en/docs/templates/spec.template.md +51 -0
  31. package/dist/templates/en/docs/templates/ui.template.md +51 -0
  32. package/dist/templates/en/rules/00_system.md +123 -0
  33. package/dist/templates/en/rules/01_workflow.md +93 -0
  34. package/dist/templates/en/rules/02_tech_stack.md +197 -0
  35. package/dist/templates/en/rules/03_data_governance.md +102 -0
  36. package/dist/templates/en/rules/04_cli_tools.md +50 -0
  37. package/dist/templates/en/rules/90_custom_rules.md +22 -0
  38. package/dist/templates/en/rules/99_context_glue.md +53 -0
  39. package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +292 -0
  40. package/dist/templates/en/skills/archi-interview-protocol/SKILL.md +86 -0
  41. package/dist/templates/en/skills/archi-plan-options/SKILL.md +364 -0
  42. package/dist/templates/en/skills/archi-ui-wireframe/SKILL.md +342 -0
  43. package/dist/templates/zh/briefs/_base.md +116 -0
  44. package/dist/templates/zh/briefs/_modules.md +173 -0
  45. package/dist/templates/zh/docs/global/data_snapshot.json +31 -0
  46. package/dist/templates/zh/docs/global/design_tokens.json +135 -0
  47. package/dist/templates/zh/docs/global/dictionary.json +35 -0
  48. package/dist/templates/zh/docs/global/error_codes.json +19 -0
  49. package/dist/templates/zh/docs/global/map.json +94 -0
  50. package/dist/templates/zh/docs/global/roadmap.json +39 -0
  51. package/dist/templates/zh/docs/global/vision.md +82 -0
  52. package/dist/templates/zh/docs/prompts/audit.md +150 -0
  53. package/dist/templates/zh/docs/prompts/code.md +160 -0
  54. package/dist/templates/zh/docs/prompts/edit.md +87 -0
  55. package/dist/templates/zh/docs/prompts/fix.md +86 -0
  56. package/dist/templates/zh/docs/prompts/help.md +69 -0
  57. package/dist/templates/zh/docs/prompts/inherit.md +270 -0
  58. package/dist/templates/zh/docs/prompts/map.md +131 -0
  59. package/dist/templates/zh/docs/prompts/plan.md +253 -0
  60. package/dist/templates/zh/docs/prompts/remove.md +162 -0
  61. package/dist/templates/zh/docs/prompts/revise.md +160 -0
  62. package/dist/templates/zh/docs/prompts/scope.md +198 -0
  63. package/dist/templates/zh/docs/prompts/start.md +258 -0
  64. package/dist/templates/zh/docs/templates/plan.template.json +88 -0
  65. package/dist/templates/zh/docs/templates/scope-brief.template.md +58 -0
  66. package/dist/templates/zh/docs/templates/spec.template.md +51 -0
  67. package/dist/templates/zh/docs/templates/ui.template.md +51 -0
  68. package/dist/templates/zh/rules/00_system.md +123 -0
  69. package/dist/templates/zh/rules/01_workflow.md +93 -0
  70. package/dist/templates/zh/rules/02_tech_stack.md +192 -0
  71. package/dist/templates/zh/rules/03_data_governance.md +102 -0
  72. package/dist/templates/zh/rules/04_cli_tools.md +50 -0
  73. package/dist/templates/zh/rules/90_custom_rules.md +21 -0
  74. package/dist/templates/zh/rules/99_context_glue.md +53 -0
  75. package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +293 -0
  76. package/dist/templates/zh/skills/archi-interview-protocol/SKILL.md +86 -0
  77. package/dist/templates/zh/skills/archi-plan-options/SKILL.md +364 -0
  78. package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +339 -0
  79. package/dist/templates/zh-Hant/briefs/_base.md +115 -0
  80. package/dist/templates/zh-Hant/briefs/_modules.md +173 -0
  81. package/dist/templates/zh-Hant/docs/global/data_snapshot.json +31 -0
  82. package/dist/templates/zh-Hant/docs/global/design_tokens.json +135 -0
  83. package/dist/templates/zh-Hant/docs/global/dictionary.json +35 -0
  84. package/dist/templates/zh-Hant/docs/global/error_codes.json +19 -0
  85. package/dist/templates/zh-Hant/docs/global/map.json +94 -0
  86. package/dist/templates/zh-Hant/docs/global/roadmap.json +39 -0
  87. package/dist/templates/zh-Hant/docs/global/vision.md +82 -0
  88. package/dist/templates/zh-Hant/docs/prompts/audit.md +150 -0
  89. package/dist/templates/zh-Hant/docs/prompts/code.md +160 -0
  90. package/dist/templates/zh-Hant/docs/prompts/edit.md +87 -0
  91. package/dist/templates/zh-Hant/docs/prompts/fix.md +86 -0
  92. package/dist/templates/zh-Hant/docs/prompts/help.md +69 -0
  93. package/dist/templates/zh-Hant/docs/prompts/inherit.md +270 -0
  94. package/dist/templates/zh-Hant/docs/prompts/map.md +131 -0
  95. package/dist/templates/zh-Hant/docs/prompts/plan.md +252 -0
  96. package/dist/templates/zh-Hant/docs/prompts/remove.md +162 -0
  97. package/dist/templates/zh-Hant/docs/prompts/revise.md +160 -0
  98. package/dist/templates/zh-Hant/docs/prompts/scope.md +198 -0
  99. package/dist/templates/zh-Hant/docs/prompts/start.md +258 -0
  100. package/dist/templates/zh-Hant/docs/templates/plan.template.json +88 -0
  101. package/dist/templates/zh-Hant/docs/templates/scope-brief.template.md +58 -0
  102. package/dist/templates/zh-Hant/docs/templates/spec.template.md +51 -0
  103. package/dist/templates/zh-Hant/docs/templates/ui.template.md +51 -0
  104. package/dist/templates/zh-Hant/rules/00_system.md +123 -0
  105. package/dist/templates/zh-Hant/rules/01_workflow.md +93 -0
  106. package/dist/templates/zh-Hant/rules/02_tech_stack.md +192 -0
  107. package/dist/templates/zh-Hant/rules/03_data_governance.md +102 -0
  108. package/dist/templates/zh-Hant/rules/04_cli_tools.md +50 -0
  109. package/dist/templates/zh-Hant/rules/90_custom_rules.md +21 -0
  110. package/dist/templates/zh-Hant/rules/99_context_glue.md +53 -0
  111. package/dist/templates/zh-Hant/skills/archi-decompose-roadmap/SKILL.md +293 -0
  112. package/dist/templates/zh-Hant/skills/archi-interview-protocol/SKILL.md +86 -0
  113. package/dist/templates/zh-Hant/skills/archi-plan-options/SKILL.md +364 -0
  114. package/dist/templates/zh-Hant/skills/archi-ui-wireframe/SKILL.md +337 -0
  115. package/package.json +85 -0
@@ -0,0 +1,160 @@
1
+ <protocol_revise>
2
+ **Trigger**: `/archi.revise [context]`
3
+ **Goal**: 執行專案級全域變更(技術堆疊、架構、願景等),分析影響範圍,經使用者確認後修改全域資產並級聯更新受影響的 Task 檔案。
4
+
5
+ <constraints_cursor>
6
+ **Mode Lock**: 本協議須在 **Agent Mode (Normal Mode)** 下執行。禁切換到 Plan Mode 或其他唯讀模式。
7
+ </constraints_cursor>
8
+
9
+ <meta>
10
+ <style>Strategic, Analytical, Cautious, Traceable</style>
11
+ <language>繁體中文</language>
12
+ <principles>
13
+ 1. **User Gate**: 全域變更須經使用者逐項確認後才執行。禁擅自修改。
14
+ 2. **Impact First**: 先輸出完整影響分析,後執行修改。
15
+ 3. **Doc Cascade**: 全域資產變更後,須按 edit 標準同步更新受影響的 Task 檔案。
16
+ 4. **Traceability**: 每項變更須可追溯 — 說明變更理由和影響範圍。
17
+ </principles>
18
+ </meta>
19
+
20
+ <step_1_load>
21
+ **Role**: 系統分析師
22
+ **Action**:
23
+ 1. **Read Global Assets**:
24
+ - `[[__DOCS_DIR__]]/global/vision.md`
25
+ - `[[__DOCS_DIR__]]/global/roadmap.json`
26
+ - `[[__DOCS_DIR__]]/global/map.json`
27
+ - `[[__DOCS_DIR__]]/global/dictionary.json`
28
+ - `[[__DOCS_DIR__]]/global/error_codes.json`
29
+ - `02_tech_stack.md`
30
+ - [?UI] `[[__DOCS_DIR__]]/global/design_tokens.json`
31
+ - [?Data] `[[__DOCS_DIR__]]/global/data_snapshot.json`
32
+ 2. **Scan Task Index**: 掃描 `[[__DOCS_DIR__]]/tasks/` 目錄,建立 Task 索引(ID、名稱、狀態)。
33
+ 3. **Intent Analysis**: 根據使用者 `[context]`,初步定位受影響的全域資產類別。
34
+
35
+ **Output**: 變更意圖摘要 — 列出初步判斷涉及的全域檔案,進入 step_2。
36
+ </step_1_load>
37
+
38
+ <step_2_interview>
39
+ **Role**: 首席架構師
40
+ **Action**:
41
+ 根據使用者描述和已載入上下文,釐清變更邊界:
42
+
43
+ | 釐清維度 | 說明 |
44
+ |:---|:---|
45
+ | 變更範圍 | 精確定位哪些全域檔案、哪些規則受影響 |
46
+ | 變更動機 | 為什麼要做此變更,期望達到什麼結果 |
47
+ | 排除清單 | 是否有不應被影響的 Task |
48
+
49
+ - 上下文足夠清晰時 → 合併到 step_3 直接輸出影響分析。
50
+ - 存在歧義或多種可行方向時 → 向使用者提問確認(A/B/C/D 選項)。
51
+ </step_2_interview>
52
+
53
+ <step_3_impact>
54
+ **Role**: 影響分析師
55
+ **Constraint**: **純輸出,禁修改任何檔案**。此步驟為「變更影響評估書」。
56
+
57
+ **Output Format**:
58
+ ```
59
+ ## 變更影響評估: [變更主題]
60
+
61
+ ### 1. 全域資產變更清單
62
+ | 檔案 | 變更內容 | 類型 |
63
+ |:---|:---|:---|
64
+ | vision.md | [具體改什麼,或"無需變更"] | 修改/無變更 |
65
+ | 02_tech_stack.md | [...] | ... |
66
+ | roadmap.json | [...] | ... |
67
+ | map.json | [...] | ... |
68
+ | dictionary.json | [...] | ... |
69
+ | data_snapshot.json | [...] | ... |
70
+ | design_tokens.json | [...] | ... |
71
+ | error_codes.json | [...] | ... |
72
+
73
+ ### 2. 受影響 Task 清單
74
+ | Task ID | 名稱 | 影響點 | 程度 |
75
+ |:---|:---|:---|:---|
76
+ | INF-001 | [名稱] | [spec/ui/plan 的哪些部分受影響] | 高/中/低 |
77
+
78
+ ### 3. 需使用者決策的項目(如有)
79
+ - [?] [不確定項描述 + 選項]
80
+ - [?] ...
81
+
82
+ ---
83
+ > 回覆 **OK** 確認全部;或標注需調整的部分。
84
+ ```
85
+
86
+ **Gate**: 等待使用者確認。未確認禁進入 step_4。
87
+ </step_3_impact>
88
+
89
+ <step_3_5_refinement>
90
+ **Role**: 諮詢顧問
91
+ **Trigger**: 使用者回覆非 OK,含修正、否決或追加意見。
92
+ **Action**: 不執行修改。融入使用者回饋,重新整理影響評估書輸出,等待再次確認。
93
+ </step_3_5_refinement>
94
+
95
+ <step_4_execute>
96
+ **Role**: 執行工程師
97
+ **Action**:
98
+
99
+ **Safety Checkpoint** (執行前須完成):
100
+ 1. 檢查 Git 工作區狀態(建議執行 `git status`)。
101
+ 2. 如有未提交變更 → 提示使用者先 commit 或 stash,再繼續執行。
102
+ 3. 工作區乾淨後,告知使用者:如需回滾,可執行 `git checkout -- .` 恢復至變更前狀態。
103
+
104
+ **Phase 1 — 修改全域資產**:
105
+ 按使用者確認的清單修改全域檔案。每個檔案修改後輸出變更摘要。
106
+
107
+ **[?UI] Phase 1.5 — 設計系統變更檢查**:
108
+ 若 `design_tokens.json` 有以下變更,須在 Phase 2 完成後執行對應操作:
109
+
110
+ | 變更範圍 | 影響 | 處理方式 |
111
+ |:---|:---|:---|
112
+ | `primitivePalette.brand` / `semanticTokens.colors` | 品牌色/語義色變化 | 通知使用者:需重跑 `archi-ui-wireframe` Phase 2(全量重著色) |
113
+ | `semanticTokens.typography` | 字體變化 | 通知使用者:需重跑 Phase 2 |
114
+ | `motion.preference` / `motion.patterns` | 動效變化 | 通知使用者:需重跑 Phase 2 |
115
+ | `illustration.iconLibrary` | 圖示庫變化 | 通知使用者:需重跑 Phase 2 |
116
+ | `layout` (radius/spacing/shadow) | 元件尺寸/圓角變化 | 通知使用者:需重跑 Phase 2 |
117
+
118
+ > 如上述欄位未變動(如僅改 `mode.default`),無需重跑 Phase 2。
119
+
120
+ **Phase 2 — 級聯更新 Task 檔案**:
121
+ 對每個受影響的 Task,按 `/archi.edit` 標準執行:
122
+ 1. 更新 `spec.md`(邏輯/規則因全域變更而需調整的部分)。
123
+ 2. [?UI] 更新 `ui.md`(範圍/互動因全域變更而需調整的部分);如畫面結構受影響,執行 `archi-ui-wireframe` Skill(局部更新模式)同步更新 `ui_concept.html` + `ui_context.md`。
124
+ 3. 在 `plan.json` 的 `phases` 中追加新 Phase: `Phase X: Global Revision — [變更主題] (<Date>)`,列出落地任務。
125
+
126
+ **Output**: 每個檔案的變更摘要(全域 + Task)。
127
+ </step_4_execute>
128
+
129
+ <step_5_summary>
130
+ **Role**: 審計官
131
+ **Checklist**:
132
+ 1. 全域資產間一致性(vision ↔ tech_stack ↔ roadmap ↔ map)。
133
+ 2. Task 檔案與更新後的全域資產對齊。
134
+ 3. 無孤立引用(dictionary/map 中舊術語/路徑是否已清理)。
135
+
136
+ **Terminal Gate** (禁止跳過,須在輸出總結前全部完成):
137
+ | 步驟 | 命令 | 通過條件 |
138
+ |:---|:---|:---|
139
+ | 1 | `npx archi task --check` | 無 ERROR 級問題 |
140
+ | 2 | `npx archi render` | `.md` 視圖生成完成 |
141
+
142
+ **Action** (Gate 通過後):
143
+ 1. 輸出變更總結。
144
+
145
+ **Output**:
146
+ ```
147
+ ## Global Revision Summary: [變更主題]
148
+
149
+ **全域資產變更**: [已修改檔案列表]
150
+ **Task 更新**: [已更新 Task 列表 + 各自影響摘要]
151
+ **審計結果**: [通過/有風險項]
152
+
153
+ ### Next Steps
154
+ | 優先級 | 動作 | 說明 |
155
+ |:---|:---|:---|
156
+ | ... | ... | ... |
157
+ ```
158
+ </step_5_summary>
159
+
160
+ </protocol_revise>
@@ -0,0 +1,198 @@
1
+ <protocol_scope>
2
+ **Trigger**: `/archi.scope [file_path]`
3
+ **Phase**: Requirement Decomposition
4
+ **Goal**: 讀取 Scope Brief,將大需求分解為多個 Roadmap 任務並建立依賴關係。
5
+
6
+ <meta>
7
+ <style>Strategic, Analytical, Structured</style>
8
+ <language>繁體中文</language>
9
+ <principles>
10
+ 1. **Brief-Driven**: 以使用者提供的 Scope Brief 為核心輸入源,禁憑空腦暴功能。
11
+ 2. **Incremental**: 在已有 Roadmap 上追加,禁重寫已有任務。
12
+ 3. **User Agency First**: Brief 中使用者已填寫的選擇須直接採納,禁質疑或替換。
13
+ 4. **Minimal Questions**: 僅針對資訊缺口提問,Brief 充分時可跳過提問直接分解。
14
+ 5. **Option Z Everywhere**: 補充提問須包含 `[Z] 自訂`。
15
+ </principles>
16
+ </meta>
17
+
18
+ <step_0_ingest>
19
+ **Role**: 情報分析官
20
+ **Action**:
21
+ 1. 解析觸發命令中的 `[file_path]`:
22
+ - 如提供了路徑 → 讀取該檔案
23
+ - 如未提供路徑 → 依次查找 `scope-brief.md`(專案根)、`[[__DOCS_DIR__]]/scope-brief.md`
24
+ - 如均不存在或為空 → 跳轉 `<fallback_interview>`
25
+
26
+ 2. 解析 Brief 各 Section,提取:
27
+ - 需求名稱和描述
28
+ - 功能清單
29
+ - 已有設計決策
30
+ - 邊界與約束(不做的事、時間、依賴、技術限制)
31
+ - 受影響的已有功能
32
+ - 參考資料
33
+
34
+ > Brief 是一次性輸入檔案,處理完成後使用者可自行刪除。
35
+
36
+ **Output**: 內部摘要(不輸出給使用者),進入 `<step_1_load>`。
37
+ </step_0_ingest>
38
+
39
+ <step_1_load>
40
+ **Role**: 系統分析師
41
+ **Action**:
42
+ 1. **Read Vision**: `[[__DOCS_DIR__]]/global/vision.md` — 僅讀北極星指標和 Boundaries 段落;其餘章節跳過。
43
+ 2. **Read Roadmap**: `[[__DOCS_DIR__]]/global/roadmap.json` — 僅提取每個 task 的 `id/title/status/deps/tag` 欄位(跳過 `goal/notes`,需求分解不需要這些詳情);讀取當前最大 ID 水位用於新任務編號。
44
+ 3. **Read Tech Stack**: `02_tech_stack.md` — 技術約束。
45
+ 4. **Read Map**: `[[__DOCS_DIR__]]/global/map.json` — 僅讀 `directoryMapping` 和 `featureRelations`;`logicalTopology` 和 `criticalUserJourneys` 跳過。
46
+ 5. **Scan Tasks**: 掃描 `[[__DOCS_DIR__]]/tasks/` 目錄 — 了解已有 task 概要(標題 + 關鍵流程,無需全文)。
47
+
48
+ **Output**: 內部上下文摘要,進入 `<step_2_analysis>`。
49
+ </step_1_load>
50
+
51
+ <step_2_analysis>
52
+ **Role**: 首席產品戰略官 (CPO)
53
+ **Input**: Step 0 Brief 解析結果 + Step 1 專案上下文。
54
+
55
+ **Action**:
56
+
57
+ 1. **Vision 對齊檢查**: Brief 需求是否與 vision.md 的北極星指標一致?如有偏離 → 在輸出中標註 `[Vision 偏離警告]`。
58
+ 2. **功能清單完整性**: Brief 功能清單是否足以支撐需求目標?
59
+ 3. **影響評估**: Brief 中「受影響的已有功能」→ 對照 roadmap/tasks 驗證是否存在、狀態如何。
60
+ 4. **缺口識別**: 檢查 Brief 是否有關鍵資訊缺失。
61
+ 5. **聯動檢查**: 讀取 `map.json.featureRelations`,將新任務的描述與各條 `sources` 欄位做語義對比,判斷新任務是否屬於某聚合方的覆蓋範圍。命中時在摘要中輸出聯動提示。
62
+
63
+ **缺口分級**:
64
+ - **必須**: 缺失則無法合理分解(如功能清單為空)
65
+ - **可補**: AI 可推導但建議確認(如依賴關係不明確)
66
+ - **建議**: AI 可自行決定(如功能分組方式)
67
+
68
+ **Decision**:
69
+ - 無「必須」級缺口 + 無「可補」級缺口 → 跳過 Step 2.5,直接進入 Step 3
70
+ - 有缺口 → 進入 Step 2.5
71
+
72
+ **Output**: 向使用者輸出 Brief 分析摘要:
73
+ ```
74
+ ### SCOPE BRIEF 分析報告
75
+ > **需求**: [名稱] | **規模**: 預估 [N] 個任務
76
+
77
+ **Vision 對齊**: [一致 / ⚠️ 偏離 — 原因]
78
+
79
+ **已確認資訊**:
80
+ - [列表]
81
+
82
+ **受影響的已有功能**:
83
+ | 功能 | 狀態 | 預估影響 |
84
+ |:---|:---|:---|
85
+ | [ID: 名稱] | [done/active/stub] | [需修改/需擴展/無影響] |
86
+
87
+ **[?有命中] 聯動提示**:
88
+ | 聚合方 | checkNote |
89
+ |:---|:---|
90
+ | [aggregator ID/路徑] | [checkNote 內容] |
91
+
92
+ **資訊缺口** (須補充):
93
+ - [缺口列表]
94
+
95
+ **AI 將自動決定** (無需操作):
96
+ - [列表]
97
+ ```
98
+ </step_2_analysis>
99
+
100
+ <step_2_5_supplementary>
101
+ **Role**: 產品顧問
102
+ **Trigger**: 僅當 Step 2 發現「必須」或「可補」級缺口時執行。
103
+ **Input**: Step 2 的缺口列表。問題數上限 3 題。
104
+
105
+ [[SKILL: 按 `archi-interview-protocol` Skill 的核心規則和標準輸出格式提問。]][[NO-SKILL: (Skill 未安裝:請閱讀 `[[__DOCS_DIR__]]/skills/archi-interview-protocol/SKILL.md` 並遵循其規則)]]
106
+ </step_2_5_supplementary>
107
+
108
+ <step_3_decompose>
109
+ **Role**: 首席架構師
110
+ **Input**: Brief 全文 + 專案上下文 + 補充回答(如有)。
111
+
112
+ **Action**: [[SKILL: 按 `archi-decompose-roadmap` Skill 的協議,基於 Scope Brief 功能清單生成增量任務資料]][[NO-SKILL: (Skill 未安裝:請閱讀 `[[__DOCS_DIR__]]/skills/archi-decompose-roadmap/SKILL.md` 並遵循其協議執行)]]
113
+
114
+ **展示格式**(將 Skill 產出的任務資料轉換為以下格式,向使用者呈現後等待確認):
115
+
116
+ ```
117
+ #### Phase 1: Infrastructure
118
+ | ID | 標題 | 描述摘要 | 標籤 |
119
+
120
+ #### Phase 2: Core Features
121
+ | ID | 標題 | 描述摘要 | 依賴 | 標籤 |
122
+
123
+ #### Execution Batches(並行執行批次)
124
+ (從 deps 拓樸排序推導,列出每批可同時開工的任務)
125
+ Batch 1(立即可開工): ...
126
+ Batch 2(等 Batch 1 全完): ...
127
+
128
+ #### NFR 橫切關注點(已歸併,不入 Roadmap)
129
+ (來自 Skill 的 NFR 歸併清單)
130
+ - [NFR 名稱] → 注入 [任務 ID] | 影響:[其他任務 ID]
131
+ ```
132
+
133
+ **Gate**: 使用者回覆 **OK** 後進入 step_4;未確認禁寫入 Roadmap。使用者可在確認前修正方案(合併/拆分/調整依賴)。
134
+ </step_3_decompose>
135
+
136
+ <step_3_5_refinement>
137
+ **Role**: 諮詢顧問
138
+ **Trigger**: 使用者回覆非 OK,含合併/拆分/增刪/依賴調整等修正。
139
+ **Action**: 融入使用者回饋,刷新分解方案重新輸出,等待再次確認。
140
+ </step_3_5_refinement>
141
+
142
+ <step_4_roadmap_update>
143
+ **Role**: 系統管理員
144
+ **Input**: 使用者確認的分解方案。
145
+
146
+ **Action**:
147
+ 1. 將新任務追加到 `[[__DOCS_DIR__]]/global/roadmap.json` 對應 Phase 的 `tasks` 陣列中。
148
+ 2. 如需新增 Phase → 追加到 `phases` 陣列。
149
+ 3. 更新 `lastUpdated` 欄位。
150
+ 4. [?新模組] 更新 `[[__DOCS_DIR__]]/global/map.json` 的 `directoryMapping`:為新增任務預注冊推斷的模組路徑(基於 tech_stack 架構模式和任務描述推斷,僅目錄級別;詳細內容在 `/archi.plan` 時完善)。
151
+
152
+ **Terminal Gate** (禁止跳過,須在輸出總結前全部完成):
153
+ | 步驟 | 命令 | 通過條件 |
154
+ |:---|:---|:---|
155
+ | 1 | `npx archi task --check` | 無 ERROR 級問題 |
156
+ | 2 | `npx archi render` | `.md` 視圖生成完成 |
157
+
158
+ **Output**: 寫入確認。
159
+ </step_4_roadmap_update>
160
+
161
+ <step_5_signoff>
162
+ **Action** (Gate 須在 step_4 完成):
163
+ 1. 執行 `npx archi task` 輸出任務進度概覽。
164
+ 2. 輸出總結。
165
+
166
+ **Output**: 需求分解摘要,含:
167
+ - **Brief 來源確認**: 需求名稱和核心目標
168
+ - **新增任務**: 數量和 Phase 分佈
169
+ - **對已有功能的影響**: 影響列表(如有)
170
+ - **Next Steps**:
171
+
172
+ | 優先級 | 動作 | 說明 |
173
+ |:---|:---|:---|
174
+ | [?UI] 推薦 | 執行 `archi-ui-wireframe` Skill(追加模式) | 為新增功能追加畫面到 `ui_concept.html`,同步更新 `ui_context.md` |
175
+ | 1 | `/archi.plan <第一個 pending 任務 ID>` | 對首個可執行任務做深度規劃 |
176
+ | 2 | 審查 roadmap | 確認依賴關係和優先級 |
177
+ </step_5_signoff>
178
+
179
+ <fallback_interview>
180
+ **Trigger**: Brief 檔案不存在或為空。
181
+ **Role**: 產品顧問
182
+
183
+ **Action**:
184
+ 1. 告知使用者 `scope-brief.md` 未找到。建議:
185
+ - 執行 `npx archi template scope-brief` 取得範本到專案根目錄
186
+ - 填寫後重新執行 `/archi.scope scope-brief.md`
187
+ - 或繼續對話,透過訪談方式提供資訊
188
+ 2. 如使用者選擇繼續對話,按以下順序引導:
189
+ a. 這次要做什麼?(需求名稱、一句話描述、動機)
190
+ b. 包含哪些功能?(具體功能清單)
191
+ c. 有什麼約束?(不做的事、依賴、技術限制)
192
+ d. 會影響哪些已有功能?
193
+ 3. 收集完畢後,將資訊寫入 `scope-brief.md`(專案根目錄),然後跳轉 `<step_1_load>`。
194
+
195
+ > 此模式為向後相容,核心流程仍以 Brief 為準。
196
+ </fallback_interview>
197
+
198
+ </protocol_scope>
@@ -0,0 +1,258 @@
1
+ <protocol_kickoff>
2
+ **Trigger**: `/archi.start [file_path]`
3
+ **Phase**: Strategic Initialization
4
+ **Goal**: 基於 Project Brief 建立專案憲法 (Vision/Tech/Roadmap)。
5
+
6
+ <meta>
7
+ <style>Strict, Professional, CLI-Like</style>
8
+ <language>繁體中文</language>
9
+ <principles>
10
+ 1. **Brief-Driven**: 以使用者提供的 Brief 檔案為核心輸入來源,禁憑空腦暴任務。
11
+ 2. **AI-Native Perspective**: 所有推薦/補全從 AI Agent 視角撰寫。關注:Context Locality、Type Safety、Hallucination Risk、Self-Correction。
12
+ 3. **User Agency First**: Brief 中使用者已填寫的選擇須直接採納,禁質疑或替換。
13
+ 4. **Minimal Questions**: 僅針對資訊缺口提問,Brief 充分時可略過提問直接生成。
14
+ 5. **Option Z Everywhere**: 補充提問須包含 `[Z] 自訂`。
15
+ </principles>
16
+ </meta>
17
+
18
+ <step_0_ingest>
19
+ **Role**: 情報分析官
20
+ **Action**:
21
+ 1. 解析觸發命令中的 `[file_path]`:
22
+ - 如提供了路徑 → 讀取該檔案
23
+ - 如未提供路徑 → 依次查找 `project-brief.md`(專案根目錄)、`[[__DOCS_DIR__]]/project-brief.md`
24
+ - 如均不存在或為空 → 跳轉 `<fallback_interview>`
25
+
26
+ 2. **資源可達性檢查**(須在解析前完成):
27
+ 掃描 Brief 全文,識別所有外部引用(URL、檔案路徑、圖片)。逐一嘗試存取,將結果分為三類:
28
+
29
+ | 狀態 | 處理 |
30
+ |:---|:---|
31
+ | 可存取 | 讀取內容,納入後續分析 |
32
+ | 不可存取(需認證/404/私有連結) | 標記為 `[不可讀]`,後續向使用者報告 |
33
+ | 非連結的描述性引用(如「參考 Linear 的互動」) | 正常處理,無需存取 |
34
+
35
+ > 此步驟目的:避免 AI 假裝已讀取實際無法存取的資源,導致後續產出與使用者預期脫節。
36
+
37
+ 3. 解析 Brief 各 Section,提取:
38
+ - 專案特徵標籤 (UI/Data/CLI/Lib/API — 由 Brief 中存在的技術偏好欄位和段落推斷)
39
+ - 核心任務列表
40
+ - 已有設計決策(使用者對特定任務/頁面/流程的預定設計)
41
+ - 技術偏好(區分「已確定」與「留空/推薦」)
42
+ - 已有資源與上下文
43
+ - 邊界與約束
44
+ - 參考專案
45
+ - 補充說明(規則/術語/背景資訊)
46
+
47
+ > Brief 是一次性輸入檔案,處理完成後使用者可自行刪除。
48
+
49
+ **Output**:
50
+ - 如有不可存取的資源 → **立即向使用者輸出資源可達性報告**,列出無法讀取的連結,請使用者提供替代方式(如截圖、貼上內容、文字描述)。等待使用者回覆後再繼續。
51
+ - 如所有資源可達或無外部引用 → 內部摘要(不輸出給使用者),進入 `<step_1_gap_analysis>`。
52
+ </step_0_ingest>
53
+
54
+ <step_1_gap_analysis>
55
+ **Role**: 首席產品戰略官 (CPO)
56
+ **Input**: Step 0 解析結果。
57
+
58
+ **Action**: 逐項檢查 Brief 完整性,識別資訊缺口。
59
+
60
+ **檢查清單**:
61
+
62
+ | 檢查項 | 判定標準 | 缺口級別 |
63
+ |:---|:---|:---|
64
+ | 專案身份 | 名稱 + 一句話描述 + 問題陳述均已填寫 | 必須 |
65
+ | 目標使用者 | 至少描述了核心使用者角色 | 必須 |
66
+ | 核心任務 | 至少列出 2 個具體任務且每項有描述 | 必須 |
67
+ | 技術棧-核心 | 語言/執行環境 + 核心框架已填寫(非留空) | 必須 |
68
+ | 技術棧-選填 | 資料庫/ORM/CSS 方案/部署等留空項 | 可補 |
69
+ | 專案起點 | 全新 or 已有程式碼(影響架構決策) | 必須 |
70
+ | 已有資源 | 設計稿/品牌/已有 API/第三方服務是否明確 | 可補 |
71
+ | 風格調性 | [?UI] 視覺關鍵字 / [?CLI] 輸出風格 / [?API] 文件方案 | 可補 |
72
+ | 邊界 | 至少聲明 1 個反目標或硬性約束 | 建議 |
73
+ | 成功指標 | 已填寫具體可量化指標 | 建議 |
74
+ | 參考專案 | 至少列出 1 個參照 | 建議 |
75
+
76
+ **缺口分級**:
77
+ - **必須**: 缺失則無法生成產物,須在 Step 2 提問
78
+ - **可補**: AI 可基於上下文推薦,但最好確認
79
+ - **建議**: AI 可自行推導,不阻塞流程
80
+
81
+ **Decision**:
82
+ - 無「必須」級缺口 + 無「可補」級缺口 → 略過 Step 2,直接進入 Step 3
83
+ - 有缺口 → 進入 Step 2
84
+
85
+ **Output**: 向使用者輸出 Brief 分析摘要:
86
+ ```
87
+ ### BRIEF 分析報告
88
+ > **專案**: [名稱] | **特徵**: [UI/Data/CLI/Lib/API 中已啟用的標籤]
89
+
90
+ **已確認資訊**:
91
+ - [已填寫的關鍵資訊列表]
92
+
93
+ **資訊缺口** (須補充):
94
+ - [缺口 1]
95
+ - [缺口 2]
96
+
97
+ **AI 將自動補全** (無需操作):
98
+ - [AI 可自行推導的項]
99
+ ```
100
+ </step_1_gap_analysis>
101
+
102
+ <step_2_supplementary>
103
+ **Role**: 產品顧問
104
+ **Trigger**: 僅當 Step 1 發現「必須」或「可補」級缺口時執行。
105
+ **Input**: Step 1 的缺口列表。問題數上限 3-6 題。
106
+
107
+ [[SKILL: 按 `archi-interview-protocol` Skill 的核心規則和標準輸出格式提問。]][[NO-SKILL: (Skill 未安裝:請閱讀 `[[__DOCS_DIR__]]/skills/archi-interview-protocol/SKILL.md` 並遵循其規則)]]
108
+ </step_2_supplementary>
109
+
110
+ <step_3_constitution>
111
+ **Role**: 首席架構師
112
+ **Input**: Brief 全文 + Step 2 補充回答(如有)。
113
+
114
+ **Action**: 一次性生成專案憲法檔案。Brief 中的所有資訊須被消化並路由到對應檔案,禁遺漏。
115
+
116
+ ### 資訊路由規則
117
+
118
+ > 規則檔案(`02_tech_stack`、`90_custom_rules` 等)已由 IDE 注入當前上下文,AI 已知其路徑,直接寫入即可。
119
+
120
+ | Brief 內容 | 目標檔案 |
121
+ |:---|:---|
122
+ | 專案身份、目標使用者、成功指標、參考靈感 | `[[__DOCS_DIR__]]/global/vision.md` |
123
+ | 技術棧、部署目標、第三方庫/服務 | 規則檔案 `02_tech_stack` |
124
+ | 風格調性(UI/CLI/API)— 審美方向/資訊密度/動效偏好 | 規則檔案 `02_tech_stack` (UI Protocol) + `design_tokens.json` aestheticDirection + motion.preference + illustration |
125
+ | [?UI] **審美方向** (saas-dark/saas-light/dashboard/marketing/mobile-app/editorial/brutalist/custom) | `design_tokens.json` `aestheticDirection.preset` + `aestheticDirection.customDescription` |
126
+ | [?UI] **視覺參考**(品牌色板/字體/圖示庫/競品截圖/禁用風格) | `design_tokens.json` primitivePalette.brand + illustration + motion;截圖/URL 存入 `vision.md` Visual Reference |
127
+ | 核心任務列表 | `[[__DOCS_DIR__]]/global/roadmap.json` |
128
+ | **已有設計決策** | Roadmap 對應任務的 `goal` 欄位中注入,並在 `/archi.plan` 時作為硬約束 |
129
+ | 邊界與反目標 | `[[__DOCS_DIR__]]/global/vision.md` Boundaries |
130
+ | 已有資源(設計稿/品牌/已有 API) | `[[__DOCS_DIR__]]/global/vision.md` + 規則檔案 `02_tech_stack` 按內容歸屬 |
131
+ | 補充說明中的**規則/約定/偏好** | 規則檔案 `90_custom_rules` |
132
+ | 補充說明中的**領域術語** | `[[__DOCS_DIR__]]/global/dictionary.json` |
133
+ | 補充說明中的**其他背景資訊** | `[[__DOCS_DIR__]]/global/vision.md` Context |
134
+
135
+ > 關鍵: 使用者在「補充說明」中寫的任何規則性內容(如「程式碼註解用英文」、「禁止使用 any」)須寫入規則檔案 `90_custom_rules`,而非丟棄。
136
+
137
+ ### 3.1 Vision (`[[__DOCS_DIR__]]/global/vision.md`)
138
+ - 從 Brief 專案概述填充 Core Vision 和 Target Audience
139
+ - 從 Brief 邊界與約束填充 Boundaries
140
+ - 從 Brief 風格調性(如有)填充 Design & Experience
141
+ - 從 Brief 參考與靈感推導 Product Principles
142
+ - 從 Brief 已有資源、補充說明提取背景上下文
143
+ - 須填滿所有 `[ ]` 佔位符,禁保留範本範例文字
144
+
145
+ ### 3.2 Tech Stack (規則檔案 `02_tech_stack`)
146
+ - Brief 中已確定的技術選擇 → 直接寫入
147
+ - Brief 中留空/寫「推薦」的 → AI 基於專案特徵推薦,須在輸出中標註 `(AI 推薦)` 並簡述理由
148
+ - Brief 中已有的第三方服務/API → 寫入對應 Section
149
+ - **AX Optimization**: 推薦時優先 AI 友善型技術 (Static Typing, Popular Frameworks, Convention-over-Configuration)
150
+ - 須填充完整的 Section 1-9(Global Mandates、Technology Selection、Coding Standards、UI Protocol[?UI]、Testing、Deployment、Architecture、Anti-Patterns、**Project Conventions**)
151
+ - `Section 5 Testing` 中的 Environment Scripts 定義須完整
152
+ - **Section 9 Project Conventions**: 基於 Brief 和專案特徵確立全域架構約定,`/archi.plan` 將自動繼承這些約定而非逐任務重複提問:
153
+ - **Error Handling**: 根據專案型別推斷 — [?UI] Fail Fast + Form Validation; [?CLI] Fail Fast (stderr); [?API] Schema Validation + Fail Fast; 多選時空格分隔
154
+ - [?UI] **Data Flow**: 根據即時性需求 — 無即時需求 → Standard Request (+ SWR/React Query if applicable); Brief 提及即時/協作 → Realtime
155
+ - [?Web/API] **Auth & Access**: 根據 Brief 使用者角色 — 單角色 → Authenticated; 多角色 → RBAC; 無權限描述 → 留空待 Plan 階段逐任務確認
156
+ - 每項須填寫 Strategy/Default + Rationale(理由須結合此專案的具體場景)
157
+
158
+ ### 3.3 Custom Rules (規則檔案 `90_custom_rules`)
159
+ - 從 Brief 補充說明中提取規則性內容寫入
160
+ - 從 Brief 技術紅線轉化為具體禁止規則
161
+ - 如使用者未提供任何自訂規則,保持範本預設內容
162
+
163
+ ### 3.4 Roadmap (`[[__DOCS_DIR__]]/global/roadmap.json`)
164
+ [[SKILL: 按 `archi-decompose-roadmap` Skill 的協議,基於 Brief 任務列表生成任務鏈,寫入 roadmap.json]][[NO-SKILL: (Skill 未安裝:請閱讀 `[[__DOCS_DIR__]]/skills/archi-decompose-roadmap/SKILL.md` 並遵循其協議執行)]],生成後直接進入下一步,無需使用者確認。
165
+
166
+ ### 3.5 其他全域檔案 (按需)
167
+ - `dictionary.json`: 從 Brief 提取領域術語
168
+ - [?Data] `data_snapshot.json`: 基於 Brief 中的資料描述,初始化核心實體骨架(實體名 + 主鍵欄位);無資料描述時寫入空範本
169
+ - [?UI] `design_tokens.json`: 基於 Brief「風格與調性」和「視覺參考」填充:
170
+ - `aestheticDirection.preset`: 從 Brief 審美方向欄位填入;Brief 未填時基於專案特徵推斷(Web SaaS 預設 saas-light,Dashboard 預設 dashboard 等)
171
+ - `aestheticDirection.customDescription`: 僅 custom 時填入使用者描述
172
+ - `primitivePalette.brand`: 從品牌色板提取 Hex 值;無則留空
173
+ - `mode`: 從審美方向推斷 default + support 陣列(saas-dark → default:"dark",saas-light → default:"light" 等)
174
+ - `motion.preference` / `motion.patterns`: 從動效偏好填寫 (subtle / rich / none);rich 時擴充 patterns
175
+ - `illustration.style` / `illustration.iconLibrary`: 從圖示風格和圖示庫填寫
176
+ - `semanticTokens.colors`: 如有品牌色則以 Brand-600/Brand-500 等 key 填充 Primary
177
+ - `error_codes.json`: 基於任務列表預定義核心錯誤碼
178
+
179
+ ### 3.6 Map (`[[__DOCS_DIR__]]/global/map.json`)
180
+ - `directoryMapping`: 基於 tech_stack 中聲明的架構模式,預注冊核心目錄骨架
181
+ (如 `src/commands/`, `src/core/`, `src/utils/` 等);各目錄附一句話用途說明
182
+ - `logicalTopology`: 暫為空陣列,待 `/archi.plan` 時按需補充
183
+ - `criticalUserJourneys`: 空陣列
184
+ - `featureRelations`: 空陣列
185
+
186
+ **Output**: 寫入所有檔案,然後執行 `npx archi render` 生成視覺化 `.md`。
187
+ </step_3_constitution>
188
+
189
+ <step_4_audit>
190
+ **Role**: 首席審計官
191
+ **Checklist**:
192
+ 1. **Vision 完整性**: `vision.md` 含北極星指標和設計哲學?
193
+ 2. **Tech Stack 一致性**: 規則檔案 `02_tech_stack` 與 Brief 技術偏好一致?含完整技術棧宣告?
194
+ 3. **Custom Rules**: Brief 補充說明/技術紅線中的規則是否已寫入規則檔案 `90_custom_rules`?
195
+ 4. **Roadmap 合規**: 執行 `npx archi task --check` 驗證一致性。
196
+ 5. [?UI] **Design Tokens**: `design_tokens.json` 含基礎顏色/字體/間距定義?
197
+ 6. **Brief 對齊**: 所有 Brief 中聲明的核心任務均已映射到 Roadmap 任務?
198
+ 7. **資訊零遺漏**: Brief 中所有使用者填寫的內容均已路由到對應檔案?
199
+
200
+ 如有問題則靜默修正;嚴重問題標記 `Risk Warning`。
201
+ </step_4_audit>
202
+
203
+ <step_4_5_ui_wireframe>
204
+ **Trigger**: 僅當專案特徵含 [?UI] 時執行。
205
+ **Action**: 自動呼叫 `archi-ui-wireframe` Skill(Phase 1 線框圖)。
206
+ - 無需使用者確認即開始生成
207
+ - 讀取剛寫入的 vision.md + roadmap.json + design_tokens.json + 02_tech_stack
208
+ - 寫入 `ui_concept.html` + `ui_context.md`
209
+ - 輸出 Phase 1 線框圖摘要,等待使用者確認後再進入 Phase 2 著色
210
+
211
+ > 此步驟將 UI 線框圖生成從「建議的下一步」變為「start 自動完成」,減少使用者手動操作。
212
+ </step_4_5_ui_wireframe>
213
+
214
+ <step_5_signoff>
215
+ **Terminal Gate** (禁止跳過,須在輸出總結前全部完成):
216
+ | 步驟 | 命令 | 通過條件 |
217
+ |:---|:---|:---|
218
+ | 1 | `npx archi task --check` | 無 ERROR 級問題 |
219
+ | 2 | `npx archi render` | `.md` 視圖生成完成 |
220
+
221
+ **Action** (Gate 通過後):
222
+ 1. 執行 `npx archi task` 輸出任務進度概覽。
223
+ 2. 輸出總結。
224
+
225
+ **Output**: 專案初始化摘要,含:
226
+ - **Brief 來源確認**: 列出從 Brief 中採納的關鍵決策
227
+ - **AI 補全項**: 列出 AI 自動推薦的技術/決策及理由
228
+ - **Roadmap 概覽**: 任務數量和階段分布
229
+ - **Next Steps 表格**:
230
+
231
+ | 優先級 | 行動 | 說明 |
232
+ |:---|:---|:---|
233
+ | [?UI] 推薦 | 回覆 **OK** 進入 Phase 2 著色 | Phase 1 線框圖已自動生成;確認布局後著色 |
234
+ | 推薦 | `/archi.plan INF-01` | 規劃第一個基礎設施任務 |
235
+ | 可選 | `/archi.scope <scope-brief.md>` | 如有更多需求待分解,追加到 Roadmap |
236
+ </step_5_signoff>
237
+
238
+ <fallback_interview>
239
+ **Trigger**: Brief 檔案不存在或為空。
240
+ **Role**: 產品顧問
241
+
242
+ **Action**:
243
+ 1. 告知使用者 `project-brief.md` 未找到。建議:
244
+ - 檢查專案根目錄是否有該檔案(`npx archi init` 時應已生成)
245
+ - 如檔案遺失,可重新執行 `npx archi init` 覆蓋生成
246
+ - 或繼續對話,透過訪談方式提供資訊
247
+ 2. 如使用者選擇繼續對話,按以下順序引導:
248
+ a. 專案是什麼?(名稱、一句話描述、解決什麼問題)
249
+ b. 給誰用?(目標使用者)
250
+ c. 核心任務有哪些?(至少 2-3 個)
251
+ d. 用什麼技術?(語言/框架,已確定的部分)
252
+ e. 有什麼約束?(不做的事、時間、相容性要求)
253
+ 3. 收集完畢後,將資訊寫入 `project-brief.md`(專案根目錄),然後跳轉 `<step_1_gap_analysis>`。
254
+
255
+ > 此模式為向後相容,核心流程仍以 Brief 為準。
256
+ </fallback_interview>
257
+
258
+ </protocol_kickoff>