# Agent 規範(重構主線) ## 封存與主線 - **`old/`**:舊系統整包封存,**只讀參考**。不要在 `old/` 修功能當交付。 - **新碼**:只寫在 **`apps/`** 下(前端 `apps/web`、後端 `apps/backend` 等,以 `docs/product` 為準)。 - **後端落點**:Phase C 巡樓 API/worker 在 **`apps/backend`**(go-zero;由 `stand-alone-service` 遷入改造)。 - **後端寫法(硬性)**:一律 **goctl**:改 `generate/api/*.api` → `make gen-api` → 業務只寫 `internal/logic/**` 與 `internal/module/**`。**禁止**手寫 `handler`/`routes.go` 當主路徑。 - **產品真相**:`docs/product//`(requirements → spec → plan → tasks)。 - **流程**:`/spec-driven`(`.grok/skills/spec-driven/`)。 ## 交付順序(硬性) 1. Phase A 地基 2. Phase B 前端 + mock(操作順再往下) 3. Phase C 接真 API 4. Phase D 業務加深 B 未過關前,不大寫業務後端。 ## 後端契約精神(實作時遵守) - 時間:**UTC**;儲存 **unix nanoseconds** `int64`。 - JSON:`code` / `message` / `data` / `error`;成功碼 `102000`。 - 列表:`page` / `pageSize` → `pagination` + `list`。 - Job:狀態 **guarded** 更新;Redis lock value = `workerID`。 - 會員 JWT vs AI provider token 分離。 - **禁止**未實作 API 回成功空資料。 ## 前端精神(Harbor Desk) - 新殼在 `apps/web`;不引入 MUI/Ant/Chakra。 - 不複製任天堂 / Nook UI;不用 emoji 當主 icon。 - 字體:Inter + Taipei Sans TC。 - mock | live 同一 repository 介面。 - 詳見 `docs/product/haixun-console/spec.md`。 ## 參考舊碼 需要對照實作時: ```text old/backend/ # 舊 Go / web / node workers old/AGENTS.md # 舊詳細規範 old/docs/ # 舊計劃文件 ``` 複製模式可以,**不要**把半成品與死碼整包搬回主線。