同時提供繁體中文介面、狀態持久化、友善錯誤訊息與 logs;若使用者提供 SVG / mockup / 畫面規格,介面方向必須尊重原規格,不能擅自改風格。若是工作台型 UI,嚴格禁止 stacked UI / stacked cards 疊首頁;必須先定義唯一主任務,並讓該功能盡量佔據最大、最中央、最先被看的畫面區域。任何工作台或流程頁都要把 task model、state model、資訊分類與 visibility plan 寫進規格與 AGENTS.md,不能只留一句「請簡潔」。
-
project.config.json 除了 APSM 欄位外,還要包含 usage_scene 與 project_profile。
-
根目錄必須存在 AGENTS.md,而且內容要對齊使用情境、技術選型與專案特例。
-
預設場景必須是 scene_b_shared_tool,只有明確符合個人黑盒工具時才降到場景 A。
-
使用者不需手動安裝依賴、不需手動輸入指令;只需解壓縮→點一下啟動(Windows:run_app.bat/macOS:run_app.command/Linux:run_app.sh)。
-
跨平台可啟動:ZIP 內同時包含 run_app.bat / run_app.command / run_app.sh,且三者皆可在對應平台啟動。
-
run_app.bat / run_app.command / run_app.sh 都是由 scripts/project_launcher.py(必要時搭配 scripts/project_launcher_posix.py)生成或維護的 launcher wrapper;agent 應沿用或修改這條生成鏈,不得另外自創平行的 run_app.bat 主流程。
-
編碼穩定:.py/.json/.md 為 UTF-8(建議無 BOM);run_app.bat 預設 ASCII-only,不以 ANSI/CP950 為策略,也不預設加入 chcp 65001;run_app.command / run_app.sh 使用 UTF-8 LF。
-
重要流程(I/O、網路、LLM)不閃退:有全域 try/except、UI 友善錯誤、logs/ 有 stack trace。
-
port 衝突不可假裝已自動處理;若尚未實作完整動態 port 協調,至少要清楚提示衝突原因與下一步。若要支援動態 port,必須以服務實際綁定後回報的 port 為單一事實來源,並同步更新 URL / API base / log / 啟動器狀態。
-
AI 回應必為 streaming;金鑰不出現在 logs。
-
在規劃目錄前已完成 APSM 選型,且根目錄有可機器判讀的 project.config.json(含 apsm_version 與 archetype);agent 不需要靠猜測目錄來反推架構。
-
python scripts/apsm_validate.py --project <target-project> --strict 可通過,代表 project.config.json、目錄結構、必要啟動檔與 .env 關鍵欄位一致。
-
已執行過 project_launcher.py 的專案,必須另外具備 .runtime/ports.json、.runtime/launcher_state.json 與 logs/launcher.log 等 machine-readable runtime metadata。
-
若有 viewer / editor / diff / preview 類工作台,必須只聚焦一個唯一主任務;主任務必須佔據最大、最中央、最先被看的區域,次要資訊退到側欄、drawer、tab 或折疊層,不得做成 stacked UI / stacked cards 首頁。
-
若有 viewer / editor / diff / preview 類工作台,specs/requirements.md 與 AGENTS.md 必須都寫出:primary task、task model、state model、資訊角色分類、首屏主要群組上限與 disclosure 規則。
-
工作台首頁預設只允許 2-3 個主要視覺群組,且只有 1 個主 CTA;reference 類資訊不得長期佔據主舞台。
-
空狀態不可只留白;必須清楚說明缺少什麼、為何沒有內容、下一步要做什麼。
-
APSM 是技術補充層,不是主分類;主分類先看使用情境。
-
project.config.json 除了 APSM 欄位外,還要保留 usage_scene 與 project_profile,讓場景規則、技術規則與 validator 對齊。
-
APSM(AI Project Structure Model)是這個 skill 的目錄規劃中樞。先定義 machine-readable config,再映射到目錄模板;不要跳過這一步。
-
選型時先走 references/apsm_decision_tree.md;決策樹只負責篩選,不能取代完整模板矩陣。
-
APSM 是兩層模型:archetype 負責 AI/新手入口分類,architecture/frontend/backend 負責精確技術組合。不要把這兩層混在一起。
-
在規劃任何目錄結構前,先明確決定五個欄位:archetype、architecture、frontend、backend、apsm_version;不要直接從 A1/B3 之類模板反推需求。
-
技術選型原則:
- 預設以 Python 優先;只有在需要瀏覽器級 SPA、SSR/MPA 框架能力,或明確需要 Node 生態時,才引入 Node。
- 若只是簡單表單、內部工具或模板渲染頁面,優先考慮
single_service + python_templates + python_api。
- 若前端與後端需要獨立啟動、獨立部署或 API 本身要獨立存在,才選
separated。
- 若仍想維持單一 repo 但前後端要分開組織,選
monorepo(src/server + src/web)。
archetype 推薦值:
web_app:separated 類型的 Web 前端 + API
monorepo:前後端都放在 src/
python_fullstack:Python template rendering
fullstack_app:目前此 skill 為相容既有 B4 模板保留的延伸 archetype(single_service + node_ssr + node_api)
service_api:API-only 單體服務(single_service + none + python_api/node_api)
-
根目錄必須寫入 project.config.json,至少包含:
{
"name": "my-vibe-app",
"apsm_version": "1.0",
"archetype": "web_app",
"architecture": "separated",
"frontend": "node_spa",
"backend": "python_api",
"version": "0.1.0"
}
-
project.config.json 是 APSM 的單一真相來源;specs/requirements.md 是需求真相來源。後續 README.md 的目錄說明、啟動入口與 .env 規劃都必須與兩者一致。
-
可接受的 canonical 組合與對應模板,見 references/directory_structure_recommendations.md;若需求不吻合,先調整選型,再選最接近的模板,不要擅自發明新 root 規則。
-
固定檔案除了 project.config.json、specs/requirements.md、README.md、todo.md 外,還要包含根目錄 AGENTS.md。
-
AGENTS.md 是正式產物,不是可有可無的補充說明。
-
目標專案的相對路徑 scripts/project_launcher.py 必須存在;這支檔案來自此 skill 內的 scripts/project_launcher.py。
-
目標專案的相對路徑 scripts/apsm_validate.py 也必須存在;這支檔案負責做 APSM 結構檢核。
-
交付完成時,目標專案根目錄必有:project.config.json、specs/requirements.md、.venv/(不打包)、requirements.txt、run_app.bat、run_app.command、run_app.sh、.env(不進版控)、.env.example、README.md、todo.md。
-
run_app.bat 是根目錄 scripts/project_launcher.py 的 Windows 啟動 wrapper;若需要修 launcher 行為,優先修改/重跑 project_launcher.py,不要另外手寫一份脫鉤的 run_app.bat。
-
執行過 project_launcher.py 後,專案還應該有 .runtime/ports.json、.runtime/launcher_state.json 與 logs/launcher.log 等 runtime metadata;這些檔案是 APSM Runtime 的機器判讀介面。
-
目錄結構是技術選型結果,不是起點;必須先完成 Step 2,再依專案型態(前後端分離 / monorepo / single-service)選擇目錄。
-
規範細節放在 references/directory_structure_recommendations.md。
-
references/usage_scene_decision_tree.md:先判斷使用情境 A/B/C/D,再輸出 usage_scene、project_profile 與 AGENTS.md
-
以下皆為此 skill 目錄內的相對路徑;若要套用到目標專案,需先把對應內容寫入目標專案的相對位置。
-
scripts/project_launcher.py:一鍵啟動腳本生成與依賴驗證;實際使用時應寫入目標專案的 scripts/project_launcher.py
-
scripts/apsm_validate.py:APSM 結構檢核器;驗證 project.config.json、目錄模板與必要檔案是否一致
-
scripts/project_launcher_posix.py:POSIX 相容入口;適合保留 split-platform 流程或在 Linux/macOS 上單獨驗證 launcher 行為
-
scripts/project_launcher_linux.py:僅供相容舊流程的別名;名稱容易誤導,不建議作為新的主要引用
-
references/openai_nanobanana_guidelines.md:OpenAI Responses 串流 + Nano Banana 2 圖像 + STT 規範
-
references/apsm_decision_tree.md:APSM 決策樹;先用它篩選 archetype / architecture / frontend / backend,再去查模板細節
-
references/linux_platform_pitfalls.md:Linux 權限、Shell 啟動、xdg-open 與背景執行避雷
-
references/macos_platform_pitfalls.md:macOS Finder、.command、Gatekeeper、open 與權限避雷
-
references/linux_macos_platform_pitfalls.md:Linux/macOS 導讀與共通原則,相容舊連結用
-
references/windows_platform_pitfalls.md:Windows 常見錯誤與硬規則
-
references/directory_structure_recommendations.md:目錄結構建議與 port/env 規範
-
references/quality_checklist.md:交付前 QA 清單