Files
harness_coding_docs/docs/03-tech-stack.md
T
chengma f4664266cc
Harness governance / validate (push) Has been cancelled
docs(workflow): complete H-414 cross-agent gates
2026-07-31 15:37:10 +08:00

63 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技术栈(Tech Stack)
> “用什么”的统一速查表。选型与理由在此集中维护;“怎么把它们搭起来”见 [架构设计](04-architecture.md)。
> 未定项必须标为待定,不要让 agent 在代码里自行决定。
## 一、技术栈一览
| 维度 | 选型 | 状态 | 理由 / 说明 |
| --- | --- | --- | --- |
| 前端框架 | 【例如 React / Vue / go-app / 原生】 | 【已定 / 待定】 | 【理由】 |
| UI 样式方案 | 【例如 CSS / Tailwind / 组件库】 | 【已定 / 待定】 | 【理由】 |
| 状态管理 | 【例如框架内置 / Zustand / Redux】 | 【已定 / 待定】 | 【理由】 |
| 后端 | 【例如 Go net/http / FastAPI / NestJS】 | 【已定 / 待定】 | 【理由】 |
| 数据库 | 【例如 SQLite / Postgres / MySQL】 | 【已定 / 待定】 | 【理由】 |
| 鉴权方式 | 【例如 Session Cookie / JWT / 无账号】 | 【已定 / 待定】 | 【理由】 |
| 部署方式 | 【例如单二进制 / Docker / Vercel】 | 【已定 / 待定】 | 【理由】 |
| 测试 | 【例如 go test / pytest / vitest】 | 【已定 / 待定】 | 【理由】 |
## 二、决策记录与演进
- 【选型 1】:现在选择【方案】,因为【理由】。未来在【条件】出现时再评估【替代方案】。
- 【选型 2】:当前不引入【工具 / 框架】,避免【复杂度】。
## 三、构建与运行命令
| 用途 | 命令 |
| --- | --- |
| 安装依赖 | `【命令】` |
| 本地开发 | `【命令】` |
| 构建 | `【命令】` |
| 测试 | `【命令】` |
| 格式化 / 静态检查 | `【命令】` |
Windows PowerShell 如有差异,单独列出:
```powershell
# 示例
npm install
npm run dev
npm test
```
## 四、验证矩阵与构建产物
项目必须把验证分层写清,任务文件再按改动范围引用对应层级。不要让 agent 自行猜测“相关测试”或“完整验证”分别包含什么。
| 层级 | 触发条件 | 命令 / 操作 | 通过证据 |
| --- | --- | --- | --- |
| 任务相关验证 | 每个任务必跑 | `【受影响模块的测试 / 静态检查 / 构建命令】` | 【退出码、测试数或关键断言】 |
| 完整门禁 | 发布前;修改共享契约、依赖、构建配置或跨模块基础设施时;或任务明确要求时 | `【全量测试 / 全量 lint / 发布构建命令】` | 【退出码、测试数、构建产物】 |
| 人工 / 设备验收 | 自动化无法替代的真机、硬件、外部账号、主观体验或受控环境验收 | `【操作步骤、执行角色、设备 / 环境】` | 【人工结论、截图 / 日志 / 记录位置】 |
- 任务相关验证不能省略;是否触发完整门禁,必须依据上表和任务验收要点判断,不要求所有小改动无差别跑全量。
- 必需的人工 / 设备验收未完成时,任务保持 `DOING` 或标为 `BLOCKED` 并写明等待事项,不得标记 `DONE`。
- 若构建产物需要部署、交接或比较新旧版本,记录产物路径、生成命令和项目选定的指纹(例如 SHA-256);版本号不能单独证明部署的是本次构建。
- 标准启动 / 验证入口仍以根目录 `init.sh` 或 `init.ps1` 为准;本表负责说明不同验证层级何时触发。
## 五、依赖纪律
- 新增第三方依赖前,先说明用途、替代方案和维护成本。
- 不确定的技术选型先更新本文,再进入代码。
- 不允许同一职责并存两套框架或两套状态管理方案。