From 8be6d206ddb5e2fb5a09da3ea567f3f487ab1afe Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Mon, 3 Aug 2026 18:35:12 +0800 Subject: [PATCH] docs(tasks): define T-003 unified entry --- docs/tasks/T-003.md | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/tasks/T-003.md diff --git a/docs/tasks/T-003.md b/docs/tasks/T-003.md new file mode 100644 index 0000000..ee41086 --- /dev/null +++ b/docs/tasks/T-003.md @@ -0,0 +1,62 @@ +--- +id: T-003 +title: 建立双端统一初始化与验证入口 +phase: 0 +deps: [T-001, T-002] +status: DOING +created: 2026-08-03 +vikunja_task_id: 20 +context_ref: bcec012 +work_branch: task/t-003-unified-entry +needs_device: false +needs_human_review: false +write_paths: + - docs/tasks/T-003.md + - init.ps1 + - init.sh + - docs/03-tech-stack.md + - docs/00-ai-start-here.md + - docs/current-state.md +--- + + +## 问题 / 背景 + +T-001 与 T-002 已建立两端可运行骨架,但仓库根 init.ps1 / init.sh 仍沿用占位命令:Windows 默认 Python 3.10 不满足 client 的 Python 3.11+ 下限,桌面端仍按 requirements.txt 安装而不是规范的 editable package,启动命令也指向不存在的 src/main.py。统一入口若不能主动验证工具链和两端基线,后续任务会在错误环境上叠加实现。 + +## 关联需求与交互 + +- 功能:Phase 0 工程地基,只建立开发安装、验证与启动提示。 +- 用户故事 / 交互:不改采购服务或采购工具产品界面。 +- 架构 / API:不改业务接口、数据模型或任何采购安全边界。 + +## 方案 + +1. 完善 init.ps1:显式选择并验证 Python 3.11+,创建或校验 client/.venv,以 editable 方式安装 client,再运行两端离线测试、静态检查和构建。 +2. 完善 init.sh 的等价流程与缺失工具提示;在无 Windows 工具链的 WSL 环境只允许明确失败,不得把跳过当成功。 +3. 两端目录、Go、Python、venv 或必要文件缺失时输出可操作原因并返回非零;任何门禁失败立即停止。 +4. 成功后只打印真实启动命令:采购服务 go run ./cmd/server;采购工具虚拟环境 Python -m cmbuyer_client。 +5. 同步入口、技术栈与当前状态文档;不修改 admin/client 业务代码。 + +## 验收要点 + +- Windows 一条命令完成两端安装、admin test/vet/build、client unittest/compileall 与上下文门禁。 +- 不会使用 Python 3.10 创建采购工具环境;已有低版本 venv 会明确失败并给出修复提示。 +- editable install 与启动模块和 T-002 已验证契约一致。 +- init.sh 至少通过 bash 语法检查,且与 PowerShell 入口保持同一边界。 +- 不连接真机,不实现采购、下单或付款逻辑。 + +## 执行记录 + +(暂无) + + +## 边界 + +- 不修改 `admin/`、`client/` 生产代码、数据库迁移、业务 API、产品界面或真机流程。 +- 不连接设备,不编写拼多多页面判据、下单、提交订单、付款或支付逻辑。 +- 统一入口只能执行安装、离线验证、构建和打印启动命令;不得在失败时静默跳过任一已初始化端。 +- 采购工具必须使用 Python 3.11+ 虚拟环境和 `pip install -e .`;已有低版本虚拟环境必须明确失败, + 不得继续运行或自动覆盖用户环境。 +- `init.sh` 在缺少 Windows 侧工具链的环境应明确非零退出;语法通过不等于在 WSL 已完成产品验收。 +- 不放宽 `docs/04-architecture.md` 第四节安全边界,入口脚本不得触发任何业务动作。