# Implementation Tasks

## 1. 移除任务模块占位代码

### 1.1 删除文件
- [x] 删除 `internal/routes/task.go`
  ```bash
  rm internal/routes/task.go
  ```
- [x] 删除 `internal/handler/admin/task.go`
  ```bash
  rm internal/handler/admin/task.go
  ```

### 1.2 移除引用
- [x] 打开 `internal/routes/routes.go`
- [x] 移除 `registerTaskRoutes(...)` 调用
- [x] 移除相关 import（如果不再使用）

### 1.3 验证
- [x] 编译检查：`go build -o /tmp/test_api ./cmd/api`
- [x] 确认无 TaskHandler 引用：
  ```bash
  grep -r "TaskHandler" internal/ | grep -v "_test.go"
  # 应无结果
  ```

## 2. 清理注释一致性

### 2.1 扫描残留路径
- [x] 查找所有 `/api/v1` 注释：
  ```bash
  grep -rn "/api/v1" internal/handler/ | grep -v "_test.go" > /tmp/path_comments.txt
  cat /tmp/path_comments.txt
  ```

### 2.2 批量修复注释
- [x] 根据 `/tmp/path_comments.txt` 逐个修复：
  - `/api/v1/users` → `/api/admin/users`
  - `/api/v1/shops` → `/api/admin/shops`
  - `/api/v1/orders` → `/api/admin/orders` 或 `/api/h5/orders`
  - 等等

### 2.3 验证清理结果
- [x] 再次扫描：
  ```bash
  grep -r "/api/v1" internal/handler/ | grep -v "_test.go"
  # 应无结果
  ```

## 3. 更新规范文档

### 3.1 更新错误处理规范
- [x] 打开 `openspec/specs/error-handling/spec.md`
- [x] 补充 Purpose 说明：
  ```markdown
  ## Purpose
  
  统一项目的错误处理机制，确保：
  - 错误码一致性和可追踪性
  - 客户端能准确识别错误类型
  - 日志记录完整便于排查
  - 避免泄露内部实现细节
  ```

- [x] 新增"错误报错规范"章节：
  ```markdown
  ## 错误报错规范（必须遵守）
  
  ### Handler 层
  - ❌ 禁止直接返回/拼接底层错误信息给客户端
  - ✅ 参数校验失败统一返回 `errors.New(CodeInvalidParam)`
  - ✅ 详细校验错误写日志，对外返回通用消息
  
  ### Service 层
  - ❌ 禁止对外返回 `fmt.Errorf(...)`
  - ✅ 业务错误使用 `errors.New(code[, msg])`
  - ✅ 系统错误使用 `errors.Wrap(code, err[, msg])`
  
  ### 示例
  [补充实际代码示例]
  ```

### 3.2 更新 AGENTS.md
- [x] 打开 `AGENTS.md`
- [x] 在"错误处理"章节补充摘要：
  ```markdown
  #### 错误报错规范（必须遵守）
  - Handler 层禁止直接返回/拼接底层错误信息（例如 `"参数验证失败: "+err.Error()`）
  - 参数校验失败：对外统一返回 `errors.New(CodeInvalidParam)`（详细错误写日志）
  - Service 层禁止对外返回 `fmt.Errorf(...)`，必须返回 `errors.New(...)` 或 `errors.Wrap(...)`
  ```

- [x] 补充 Code Review 检查清单：
  ```markdown
  ## Code Review 检查清单
  
  ### 错误处理
  - [ ] Service 层无 `fmt.Errorf` 对外返回
  - [ ] Handler 层参数校验不泄露细节
  - [ ] 错误码使用正确（4xx vs 5xx）
  - [ ] 错误日志完整（包含上下文）
  ```

### 3.3 更新使用指南
- [x] 打开 `docs/003-error-handling/使用指南.md`
- [x] 补充 Service 层错误处理实际案例：
  ```markdown
  ## Service 层错误处理
  
  ### 业务校验错误（4xx）
  
  #### 示例 1：资源不存在
  [从实际代码中提取]
  
  #### 示例 2：状态不允许
  [从实际代码中提取]
  
  ### 系统依赖错误（5xx）
  
  #### 示例 3：数据库错误
  [从实际代码中提取]
  ```

- [x] 补充 Handler 层参数校验案例：
  ```markdown
  ## Handler 层参数校验
  
  ### 参数解析错误
  [补充安全加固后的代码示例]
  
  ### 参数验证错误
  [补充安全加固后的代码示例]
  ```

- [x] 补充单元测试示例：
  ```markdown
  ## 错误场景单元测试
  
  ### Service 层测试
  [补充测试代码示例]
  
  ### Handler 层测试
  [补充集成测试示例]
  ```

## 4. CI 检查增强

### 4.1 创建检查脚本
- [x] 创建文件：`scripts/check-service-errors.sh`
  ```bash
  #!/bin/bash
  # 检查 Service 层是否使用 fmt.Errorf 对外返回
  
  echo "🔍 检查 Service 层错误处理规范..."
  
  FILES=$(find internal/service -name "*.go" -type f)
  VIOLATIONS=$(grep -n "fmt\.Errorf" $FILES | grep -v "// whitelist:")
  
  if [ -n "$VIOLATIONS" ]; then
      echo ""
      echo "❌ 发现 Service 层使用 fmt.Errorf："
      echo "$VIOLATIONS"
      echo ""
      echo "请使用以下方式替代："
      echo "  - 业务错误：errors.New(code, msg)"
      echo "  - 系统错误：errors.Wrap(code, err, msg)"
      echo ""
      echo "如果某处确实需要使用 fmt.Errorf（如内部调试），请添加注释：// whitelist:"
      exit 1
  fi
  
  echo "✅ Service 层错误处理检查通过"
  ```

- [x] 添加执行权限：
  ```bash
  chmod +x scripts/check-service-errors.sh
  ```

### 4.2 创建注释检查脚本（可选）
- [x] 创建文件：`scripts/check-comment-paths.sh`
  ```bash
  #!/bin/bash
  # 检查注释中的 API 路径是否一致
  
  echo "🔍 检查注释中的 API 路径..."
  
  VIOLATIONS=$(grep -rn "/api/v1" internal/handler/ | grep -v "_test.go")
  
  if [ -n "$VIOLATIONS" ]; then
      echo ""
      echo "❌ 发现残留的 /api/v1 路径注释："
      echo "$VIOLATIONS"
      echo ""
      echo "请修复为真实路径（/api/admin、/api/h5、/api/c/v1）"
      exit 1
  fi
  
  echo "✅ 注释路径检查通过"
  ```

- [x] 添加执行权限：
  ```bash
  chmod +x scripts/check-comment-paths.sh
  ```

### 4.3 创建统一检查脚本
- [x] 创建文件：`scripts/check-all.sh`
  ```bash
  #!/bin/bash
  # 运行所有代码规范检查
  
  set -e
  
  echo "🚀 运行代码规范检查..."
  echo ""
  
  bash scripts/check-service-errors.sh
  bash scripts/check-comment-paths.sh
  
  echo ""
  echo "✅ 所有检查通过"
  ```

- [x] 添加执行权限：
  ```bash
  chmod +x scripts/check-all.sh
  ```

### 4.4 测试检查脚本
- [x] 运行 Service 错误检查：
  ```bash
  bash scripts/check-service-errors.sh
  # 应返回 ✅（假设已完成提案 1 和 2）
  ```

- [x] 测试脚本能检测违规：
  ```bash
  echo 'return fmt.Errorf("test")' >> internal/service/test.go
  bash scripts/check-service-errors.sh  # 应返回 ❌
  rm internal/service/test.go
  ```

- [x] 运行注释路径检查：
  ```bash
  bash scripts/check-comment-paths.sh
  # 应返回 ✅
  ```

- [x] 运行全部检查：
  ```bash
  bash scripts/check-all.sh
  ```

### 4.5 集成到 CI（可选）
- [x] 创建/更新 `.github/workflows/lint.yml`：
  ```yaml
  name: Code Quality Check
  
  on:
    push:
      branches: [ main, develop ]
    pull_request:
      branches: [ main, develop ]
  
  jobs:
    lint:
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v3
        
        - name: Set up Go
          uses: actions/setup-go@v4
          with:
            go-version: '1.25'
        
        - name: Run Code Quality Checks
          run: bash scripts/check-all.sh
  ```

## 5. 全量验证

### 5.1 代码清理验证
- [x] 确认文件已删除：
  ```bash
  ls internal/routes/task.go  # 应返回 No such file
  ls internal/handler/admin/task.go  # 应返回 No such file
  ```

- [x] 确认引用已移除：
  ```bash
  grep -r "registerTaskRoutes" internal/  # 应无结果
  grep -r "TaskHandler" internal/ | grep -v "_test.go"  # 应无结果
  ```

### 5.2 注释清理验证
- [x] 确认无残留 `/api/v1` 注释：
  ```bash
  grep -r "/api/v1" internal/handler/ | grep -v "_test.go"  # 应无结果
  ```

### 5.3 编译检查
- [x] `go build -o /tmp/test_api ./cmd/api`
- [x] `go build -o /tmp/test_worker ./cmd/worker`

### 5.4 CI 检查验证
- [x] 运行所有检查脚本：
  ```bash
  bash scripts/check-all.sh  # 应返回 ✅
  ```

### 5.5 文档完整性检查
- [x] 确认规范文档已更新：
  ```bash
  grep "错误报错规范" openspec/specs/error-handling/spec.md
  grep "错误报错规范" AGENTS.md
  grep "Service 层错误处理" docs/003-error-handling/使用指南.md
  ```

- [x] 确认文档包含实际案例（非空占位）

## 6. README 更新（可选）

### 6.1 补充 CI 检查说明
- [x] 在 `README.md` 中补充"代码规范检查"章节：
  ```markdown
  ## 代码规范检查
  
  运行代码规范检查：
  
  \`\`\`bash
  # 检查 Service 层错误处理
  bash scripts/check-service-errors.sh
  
  # 检查注释路径一致性
  bash scripts/check-comment-paths.sh
  
  # 运行所有检查
  bash scripts/check-all.sh
  \`\`\`
  
  这些检查会在 CI/CD 流程中自动执行。
  ```

## 验证清单

- [x] 任务模块文件已删除
- [x] 任务模块引用已移除
- [x] 注释路径已统一
- [x] 错误处理规范已更新（spec.md）
- [x] 开发规范已更新（AGENTS.md）
- [x] 使用指南已更新（包含实际案例）
- [x] CI 检查脚本已创建
- [x] CI 检查脚本测试通过
- [x] 编译通过，无语法错误
- [x] 全量检查脚本通过
- [x] 文档完整性验证通过
- [x] README 已更新（如需要）

## 预估工作量

| 任务 | 预估时间 |
|-----|---------|
| 1. 移除任务模块 | 0.5h |
| 2. 清理注释一致性 | 0.5h |
| 3. 更新规范文档 | 1h |
| 4. CI 检查增强 | 0.5h |
| 5. 全量验证 | 0.5h |
| 6. README 更新（可选） | 0.5h |

**总计**：约 3.5 小时
