Files
cmbuyer/docs/tasks/T-007.md
T

4.6 KiB
Raw Blame History

id, title, phase, deps, status, created, context_ref, work_branch, needs_device, needs_human_review, write_paths
id title phase deps status created context_ref work_branch needs_device needs_human_review write_paths
T-007 统一产品名称与源码目录契约 0
DONE 2026-08-03 a7465d2 task/t-007-project-naming-layout false false
AGENTS.md
README.md
init.ps1
init.sh
docs/00-ai-start-here.md
docs/03-tech-stack.md
docs/04-architecture.md
docs/05-coding-rules.md
docs/06-tasks.md
docs/api.md
docs/current-state.md
docs/routes.md
docs/README.md
docs/design/desk-execution.html
docs/tasks/README.md
docs/tasks/T-007.md

问题 / 背景

项目已经确认三层命名,但当前文档和统一启动脚本仍把未来源码目录写成 web/ 与 desk/, 会直接把 T-001 / T-002 引向错误位置。生产骨架尚未创建,现在统一成本最低;若等目录落地后 再改,会同时影响包路径、脚本、CI、构建产物与开发说明。

唯一命名契约:

层级 名称 目录 / 说明
整体项目 / 仓库 cmbuyer 仓库根目录与系统内部标识
网页产品 采购服务 Go 源码根目录 admin/
Windows 桌面产品 采购工具 Python 源码根目录 client/

方案

  1. 在入口、技术栈、架构、API、路由和任务路线图第一次出现双端时写全“产品名 + 端类型 + 源码目录”,后文可以使用产品名或“网页端 / 桌面端”,不再把 web / desk 当产品名。
  2. 把所有当前规范性的源码路径从 web/... 改为 admin/...,从 desk/... 改为 client/...;包内 webui 等技术标识不因顶层目录改名而修改。
  3. 更新 init.ps1 / init.sh 的目录判断、变量、提示和启动命令,使尚未初始化时明确提示 admin/ 对应 T-001、client/ 对应 T-002,并继续按 Phase 0 基线返回退出码 3。
  4. 不创建 admin/ 或 client/:生产骨架仍分别由 T-001 / T-002 创建。本任务只修正契约和 当前入口脚本。
  5. docs/design/web-*.html 与 desk-*.html 是原型文件前缀,不是生产源码目录,本轮不重命名; HTTP /api/...、页面路由和领域字段也不受影响。

验收要点

  • 入口文档能一眼读出 cmbuyer → 采购服务/admin + 采购工具/client,不存在第四套产品名。
  • 架构树、事实来源、入口文件与任务写路径统一使用 admin/、client/。
  • 两个统一入口脚本只检测 admin/、client/,打印的运行命令与目录一致。
  • 在当前 docs-only 基线上执行 init.ps1,上下文校验通过并以退出码 3 精确列出 T-001 / T-002。
  • python scripts/validate_agent_context.py、shell 语法检查、PowerShell 解析检查与 git diff --check 通过。
  • 不改 API 语义、安全边界、页面判据、原型交互或生产代码;不创建空源码目录。

边界

  • 本任务只修改 frontmatter write_paths 所列文件。
  • 历史任务执行记录可以保留当时的 web/ / desk/ 旧占位事实,但不得被当前入口或架构引用。
  • 不重命名仓库、远程 Git 项目、原型文件或内部 webui 包。
  • 不涉及真机,不改变任何下单或付款约束。

执行记录

2026-08-03 · 命名与目录契约已统一

  • 项目入口、技术栈、架构、API、路由、路线图和当前状态已统一为:整体项目 cmbuyer; 采购服务是网页端,源码目录 admin/;采购工具是 Windows 桌面端,源码目录 client/。
  • 当前规范性源码路径已切换到 admin/cmd/server/main.go、admin/internal/...、 client/src/main.py、client/src/android/pdd_flow.py 与 client/tests/。原型文件前缀、 HTTP 路由和内部 webui 包保持不变。
  • init.ps1 与 init.sh 使用 admin/go.mod、client/requirements.txt 作为初始化哨兵, 不再仅凭空目录判断。验证时发现工作区已有空 admin/ / client/,旧判据误建了 client/.venv;该虚拟环境创建时间与本轮验证一致,已移入回收站,两个目标目录均未删除。
  • & .\init.ps1:上下文清单通过,并按 Phase 0 约定以退出码 3 精确列出 “T-001 初始化采购服务 admin/ Go 骨架”和“T-002 初始化采购工具 client/ Python 骨架”。
  • PowerShell ScriptBlock 解析与 bash -n init.sh 通过;路径审计未在当前入口 / 架构中发现 web/cmd、web/internal、desk/src、desk/tests、cd web 或 cd desk。
  • python scripts/validate_agent_context.py 与 git diff --check 通过。没有创建或修改生产代码, 没有触及 API 语义、页面判据或资金安全边界。