主要靠[[linear]]的设计哲学去规范 这是一个很好的工作流设计问题。让我梳理一个 Git + Linear 的有机集成方案。 一、核心设计 1.1 命名规范(Issue ↔ Branch 双向关联) - Linear Issue: P-123 实现词汇高亮功能 - Git Branch: P-123-vocab-highlight - GitHub PR: [P-123] 实现词汇高亮功能 Linear 自动识别:当 commit message 或 PR 标题包含 P-123 时,Linear 会自动关联。 1.2 状态流转 ``` ┌─────────┐ ┌─────────────┐ ┌───────────┐ ┌──────────┐ ┌──────┐ │ Todo │ → │ In Progress │ → │ In Review │ → │ 待人测试 │ → │ Done │ └─────────┘ └─────────────┘ └───────────┘ └──────────┘ └──────┘ │ │ │ │ │ │ 创建分支 提交 PR PR merged 测试通过 │ 开始开发 请求 review 部署预览环境 手动确认 ``` 二、Labels 扩展 在现有标签基础上新增: | Label | 说明 | 触发条件 | | :------- | :---------------- | :----------------- | | 待人测试 | 需要人工 GUI 测试 | PR merged 后自动打上 | | 测试通过 | 人工测试完成 | 手动确认 | | 有回归 | 测试发现问题 | 手动标记,需要返工 | Labels 组合示例 [P-123] 词汇高亮功能 - 前端 - App端 - 待人测试 ← PR merged 后自动添加 三、Worktree 策略 用 worktree 支持并行开发多个 Issue: ``` # 主目录保持 main 分支 ~/projects/viva/ # 每个 Issue 一个 worktree ~/projects/viva-worktrees/ ├── P-123-vocab-highlight/ # 词汇高亮 ├── P-124-settings-page/ # 设置页面 └── P-125-bug-fix/ # 紧急修复 ``` 创建命令: ``` git worktree add ../viva-worktrees/P-123-vocab-highlight -b P-123-vocab-highlight ``` 四、自动化集成 4.1 GitHub Actions → Linear ```yaml # .github/workflows/linear-sync.yml name: Sync to Linear on: pull_request: types: [opened, closed, merged] jobs: update-linear: runs-on: ubuntu-latest steps: - name: Extract Issue ID id: extract run: | # 从 PR 标题提取 P-xxx ISSUE_ID=$(echo "${{ github.event.pull_request.title }}" | grep -oE 'P-[0-9]+') echo "issue_id=$ISSUE_ID" >> $GITHUB_OUTPUT - name: Update Linear Status if: github.event.action == 'closed' && github.event.pull_request.merged run: | # PR merged → 状态改为「待人测试」+ 添加标签 curl -X POST https://api.linear.app/graphql \ -H "Authorization: ${{ secrets.LINEAR_API_KEY }}" \ -d '...' ``` 4.2 Linear Issue Description 模板 sessionId: <session_id> ## 任务描述 <具体要做什么> ## 开发信息 - **Branch**: `P-123-vocab-highlight` - **Worktree**: `~/projects/viva-worktrees/P-123-vocab-highlight` - **PR**: (待创建) - **预览环境**: (PR merged 后自动部署) ## 测试清单 - [ ] 词汇高亮显示正常 - [ ] 点击高亮词弹出释义 - [ ] 深色模式下颜色正确 - [ ] iPad 横屏布局正常 ## 相关链接 - GitHub: https://github.com/xxx/viva - Figma: https://figma.com/xxx 五、人工测试流程 5.1 「待人测试」状态的 Issue 在 Linear 中创建一个 View: Filter: - Team = 产品事业部 - Label contains 待人测试 - Status != Done 这个 View 就是你的「测试队列」。 5.2 测试完成后 通过: 1. 移除「待人测试」标签 2. 添加「测试通过」标签 3. 状态改为 Done 有问题: 4. 移除「待人测试」标签 5. 添加「有回归」标签 6. 状态改回 In Progress 7. 在 comment 里记录问题 六、Claude Code 集成点 6.1 创建 Issue 时自动填充 ## 开发信息 - **Branch**: `P-{issue_number}-{slug}` - **建议 Worktree**: `~/projects/{project}-worktrees/P-{issue_number}-{slug}` 6.2 开发完成时提醒 当检测到 git push 且分支名包含 P-xxx 时: ``` 检测到推送分支 P-123-vocab-highlight 是否创建 PR 并关联 Linear Issue P-123? ``` 6.3 PR Merged 后自动更新 Hook 检测到 PR merged → 调用 Linear API: 1. 状态改为「待人测试」 2. 添加「待人测试」标签 3. Comment 里加上预览环境链接 七、实施建议 | 优先级 | 任务 | 复杂度 | | :----- | :--------------------------------------------------- | :----- | | P0 | 在 Linear 创建「待人测试」「测试通过」「有回归」标签 | 低 | | P0 | 制定分支命名规范 P-xxx-slug | 低 | | P1 | 更新 Issue Description 模板 | 低 | | P1 | 创建「测试队列」View | 低 | | P2 | GitHub Actions 自动同步状态 | 中 | | P2 | Claude Code Hook 集成 | 中 | --- 需要我帮你在线性创建这些标签,或者写一个 GitHub Actions 的完整配置吗?