# gstack-opencode Garry Tan 的 gstack 移植至 OpenCode。完整的 AI 工程工作流程,內含 27 項技能。 ## 內容總覽 ### 衝刺技能(20 項) | 技能 | 功能說明 | |------|----------| | `/office-hours` | YC 辦公時間 — 重新定義你的產品概念 | | `/plan-ceo-review` | CEO 審查 — 找出 10 星級產品 | | `/plan-eng-review` | 工程經理 — 鎖定架構、資料流、測試 | | `/plan-design-review` | 設計師審查 — 各維度評分 0-10 | | `/design-consultation` | 從零建立設計系統 | | `/review` | 資深工程師 — 找出能通過 CI 的錯誤 | | `/ship` | 發佈工程師 — 測試、推送、建立 PR | | `/land-and-deploy` | 合併 PR、CI、部署、驗證 | | `/qa` | QA 主管 — 瀏覽器測試、修復錯誤 | | `/qa-only` | QA 報告員 — 僅產生錯誤報告 | | `/design-review` | 設計師稽核 + 自動修復 | | `/canary` | SRE — 部署後監控 | | `/benchmark` | 效能工程師 — Core Web Vitals | | `/document-release` | 技術文件撰寫 — 更新文件 | | `/retro` | 工程經理 — 每週回顧 | | `/investigate` | 除錯器 — 系統性根因分析 | | `/cso` | 資安長 — OWASP + STRIDE | | `/codex` | 第二意見 — OpenAI Codex 審查 | | `/autoplan` | 自動審查流水線 | | `/setup-deploy` | 部署設定器 | ### 安全技能(4 項) | 技能 | 功能說明 | |------|----------| | `/careful` | 破壞性指令前發出警告 | | `/freeze` | 鎖定編輯範圍至單一目錄 | | `/guard` | 完整安全防護:careful + freeze | | `/unfreeze` | 解除 freeze 限制 | ### 瀏覽技能(8 項) | 技能 | 功能說明 | |------|----------| | `/browse` | 無頭 Chromium — 約 100 毫秒/指令 | | `/setup-browser-cookies` | 從真實瀏覽器匯入 Cookie | | `/qa` | 瀏覽器基礎的 QA 測試 | | `/design-review` | 使用截圖進行視覺稽核 | | `/canary` | 監控已部署的應用程式 | | `/benchmark` | 效能基準測試 | | `/land-and-deploy` | 部署後驗證 | | `/setup-browser-cookies` | 工作階段管理 | ## 安裝說明 ### 系統需求 - [OpenCode](https://opencode.ai) - [Bun](https://bun.sh) v1.0+ - [Git](https://git-scm.com/) ### 快速安裝 ```bash # 複製此儲存庫 git clone https://github.com/your-username/gstack-opencode.git ~/gstack-opencode # 執行安裝腳本 cd ~/gstack-opencode && ./setup # 加入至你的 Shell 設定檔 echo 'source ~/gstack-opencode/bin/gstack-env.sh' >> ~/.zshrc source ~/.zshrc ``` ### 手動安裝 ```bash # 1. 複製 gstack git clone https://github.com/garrytan/gstack.git ~/gstack-opencode/source # 2. 編譯 browse cd ~/gstack-opencode/source bun install bun build --compile browse/src/cli.ts --outfile ~/gstack-opencode/browse/dist/browse # 3. 將技能連結至 OpenCode mkdir -p ~/.config/opencode/skills/gstack ln -sf ~/gstack-opencode/skills/* ~/.config/opencode/skills/gstack/ ``` ## 目錄結構 ``` ~/gstack-opencode/ ├── skills/ # 27 項 OpenCode 技能 │ ├── office-hours/SKILL.md │ ├── review/SKILL.md │ ├── browse/SKILL.md │ └── ... ├── browse/ # 無頭瀏覽器引擎 │ └── dist/browse # 已編譯的二進位檔(63MB) ├── bin/ # 工具指令稿 │ ├── gstack-env.sh # 環境設定 │ ├── gstack-slug # 產生儲存庫 slug │ └── ... ├── plugin/ # OpenCode 外掛 │ └── gstack-guardian.js # 安全機制 ├── review/ # 共用資產 │ ├── checklist.md │ └── ... ├── ETHOS.md # 建構者理念 ├── BROWSER.md # 瀏覽器指令參考 ├── setup # 安裝指令稿 └── README.md # 本檔案 ``` ## 環境變數 | 變數名稱 | 說明 | |----------|------| | `GSTACK_OPENCODE_DIR` | gstack-opencode 目錄的路徑 | | `GSTACK_BROWSE` | browse 二進位檔的路徑 | ## 安全機制 `/careful`、`/freeze` 和 `/guard` 技能透過 OpenCode 外掛(`plugin/gstack-guardian.js`)實作。它會攔截: - **破壞性指令:** `rm -rf`、`DROP TABLE`、`git push --force` 等。 - **Freeze 違規:** 在鎖定目錄外的編輯操作。 ## 與原版 gstack 的差異 | 面向 | Claude Code | OpenCode | |------|-------------|----------| | 鉤子機制 | PreToolUse hooks | 外掛 `tool.execute.before` | | 環境變數 | `${CLAUDE_SKILL_DIR}` | `${GSTACK_OPENCODE_DIR}` | | 安全技能 | Shell 指令稿 | JavaScript 外掛 | | 技能格式 | YAML + Markdown | YAML + Markdown(簡化版) | ## 致謝 原版 gstack 由 [Garry Tan](https://github.com/garrytan/gstack) 開發 — MIT 授權條款 OpenCode 移植由 gstack-opencode 貢獻者完成 ## 授權條款 MIT