Files
soft_quay/docs/tasks/T-001.md
T
ilaandClaude Fable 5 0184595ccc
Harness governance / validate (push) Has been cancelled
Add harness coding docs for SoftBox (Go + Gio dual-build)
Initialize the full harness coding document set from the
harness_coding_docs template, customized for the SoftBox project:

- Vision, requirements, tech stack (modern Go 1.25 + Gio v0.10.1;
  Win7 legacy Go 1.20.14 + Gio v0.6.0), architecture, coding rules
- Protocol contracts (signed catalog, package protocol v1, Ed25519
  license, events, CLI) and Gio view structure
- Roadmap Phase 0-6 with 20 suggested tasks; T-001 (monorepo
  skeleton) filed and ready to claim
- Agent entry points (AGENTS.md, docs/00-ai-start-here.md),
  context manifest, governance scripts and tests
- Merge Go gitignore with harness rules; keep go.work tracked

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:33:54 +08:00

64 lines
2.6 KiB
Markdown

---
id: T-001
title: 初始化 monorepo 骨架(core / app-modern / app-win7 + go.work)
phase: 0
deps: []
status: TODO
created: 2026-07-16
issue: null
context_ref: null
claim_branch: null
work_branch: null
write_paths:
- docs/tasks/T-001.md
- go.work
- core/
- app-modern/
- app-win7/
- init.sh
- init.ps1
- docs/00-ai-start-here.md
- docs/03-tech-stack.md
- docs/current-state.md
---
## 问题 / 背景
仓库当前只有 harness 文档,没有任何 Go 代码。按 `docs/04-architecture.md` 建立「单仓库、双构建」的工程骨架,是所有后续任务的前置。git 仓库与 Gitea 远端(origin)已存在,init 脚本三个命令仍是占位符。
## 方案
1. 创建 `core/`(go.mod,`go 1.20`),含 `domain/`、`application/` 空包和一个最小可测函数(如 SemVer 比较占位)+ 对应测试,保证 `go test ./...` 有真实断言可跑。
2. 创建 `app-modern/`(go.mod,锁定 Go 1.25 + Gio v0.10.1)与 `app-win7/`(go.mod,`go 1.20` + Gio v0.6.0),各含 `cmd/softbox/main.go`(暂可为无 UI 的最小 main,空 Gio 窗口归 T-003)、`ui/gio/`、`platform/windows/` 空包;两模块 require core(replace 由 go.work 处理,go.mod 不留本机路径)。
3. 根目录创建 `go.work` 纳入三个模块。
4. 替换 `init.sh` / `init.ps1` 顶部三个命令变量:
- INSTALL:`go work sync`
- VERIFY:`cd core && go vet ./... && go test -count=1 ./...`(脚本内等价写法)
- START:打印双目标构建命令(桌面应用无常驻 dev server)
5. 把真实命令同步到 `docs/03-tech-stack.md`、`docs/00-ai-start-here.md`、`docs/current-state.md`。
## 验收要点
- `go work sync` 成功。
- `cd core && go vet ./... && go test -count=1 ./...` 通过(Linux 无头环境),至少一个真实测试。
- `cd app-modern && GOOS=windows GOARCH=amd64 go build ./cmd/softbox` 产出 EXE。
- `cd app-win7 && GOTOOLCHAIN=go1.20.14 GOOS=windows GOARCH=amd64 go build ./cmd/softbox` 产出 EXE(证明 Go 1.20 兼容)。
- `./init.sh` 全流程跑通,不再提示占位符未替换。
- core 的 go.mod 无 Gio、无 Windows 专属依赖;依赖方向 app-* → core。
- `docs/current-state.md` 已覆盖更新为骨架完成后的现实。
## 边界(不改什么)
- 不实现任何业务功能(清单、下载、安装、授权均不做)。
- 不写 Gio 界面(空窗口在 T-003)。
- 不建 `schemas/`、`testdata/` 业务内容。
- 不引入除 Gio 外的第三方依赖。
## 协作约束
(未启用 Gitea;单 agent 直接在独立分支领取,状态改 DOING 后开工。)
## 执行记录
(做完在此记录:改了哪些文件、跑的验证命令与结果、阻塞、关键决策。)