daily-standup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<objective> Generate a daily standup report by cross-referencing Linear issues with git history. Surface blockers and stale work proactively. End with a concrete focus plan for today that the user confirms or adjusts. </objective> <context> Requires: `linear` CLI authenticated Optional: git repo (enhances commit-based analysis), .planning/ directory </context> <process>
<objective> 通过交叉比对Linear工单与git历史生成每日晨会报告。主动暴露阻塞项和停滞工作,最后给出具体的今日工作计划供用户确认或调整。 </objective> <context> 所需依赖:已完成身份认证的`linear` CLI 可选依赖:git仓库(可增强基于提交的分析能力)、.planning/ 目录 </context> <process>

0. Validate Environment

0. 环境校验

  • Confirm
    linear
    CLI is available
  • Check if inside a git repo (still useful without one, just skip git sections)
Read project scope:
  • IF
    .linear-project
    exists →
    PROJECT=$(cat .linear-project)
    , note: "Scoped to Linear project: {name}"
  • IF missing → continue unscoped (no warning — standup should be frictionless)
  • Store
    PROJECT_FLAG
    as
    ${PROJECT:+--project "$PROJECT"}
    for use in all
    linear
    calls
  • 确认
    linear
    CLI可用
  • 检查是否处于git仓库内(无git仓库也可使用,仅跳过git相关分析环节)
读取项目范围:
  • 若存在
    .linear-project
    文件 →
    PROJECT=$(cat .linear-project)
    ,提示:"范围限定为Linear项目:{name}"
  • 若不存在 → 不限定范围(无警告,晨会流程应尽可能无摩擦)
  • 存储
    PROJECT_FLAG
    ${PROJECT:+--project "$PROJECT"}
    ,供所有
    linear
    命令调用

1. Gather Data

1. 数据收集

From Linear:
  • linear issue list -s completed --limit 10 $PROJECT_FLAG
    — recently completed
  • linear issue list -s started --limit 10 $PROJECT_FLAG
    — in-progress
  • linear issue list -s unstarted --limit 10 $PROJECT_FLAG
    — backlog
From Git (if in a repo):
  • git log --oneline --since="24 hours ago"
    — yesterday's commits
  • git log --oneline --since="48 hours ago"
    — extended window for stale detection
  • git branch --list
    — active branches
  • Current branch
From GSD (if .planning/ exists):
  • Read STATE.md for phase context
  • Check for incomplete phases
从Linear获取:
  • linear issue list -s completed --limit 10 $PROJECT_FLAG
    — 最近完成的工单
  • linear issue list -s started --limit 10 $PROJECT_FLAG
    — 进行中的工单
  • linear issue list -s unstarted --limit 10 $PROJECT_FLAG
    — 待办工单
从Git获取(若处于仓库内):
  • git log --oneline --since="24 hours ago"
    — 昨日提交记录
  • git log --oneline --since="48 hours ago"
    — 更长时间窗口的提交记录,用于停滞项检测
  • git branch --list
    — 活跃分支
  • 当前分支
从GSD获取(若存在.planning/目录):
  • 读取STATE.md获取阶段上下文
  • 检查未完成的阶段

2. Build Standup Report

2. 生成晨会报告

Print a formatted report:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 PRODUCT ► DAILY STANDUP [{project-name or "All Projects"}]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Done (last 24h):
  ✓ ENG-123 — Added auth flow (3 commits)
  ✓ ENG-124 — Fixed mobile nav regression

In Progress:
  → ENG-125 — Payment integration (branch: eng-125-payments, 2 commits)
  ⚠ ENG-126 — Dashboard redesign (no commits in 3 days)

Up Next:
  ○ ENG-127 — Urgent — API rate limiting
  ○ ENG-128 — High — Email notifications

Blockers:
  ❌ ENG-126 — Stale: in-progress since Mon, no commits since then
  ❌ ENG-129 — Blocked by ENG-125 (payment integration)
打印格式化报告:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 PRODUCT ► DAILY STANDUP [{project-name or "All Projects"}]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Done (last 24h):
  ✓ ENG-123 — Added auth flow (3 commits)
  ✓ ENG-124 — Fixed mobile nav regression

In Progress:
  → ENG-125 — Payment integration (branch: eng-125-payments, 2 commits)
  ⚠ ENG-126 — Dashboard redesign (no commits in 3 days)

Up Next:
  ○ ENG-127 — Urgent — API rate limiting
  ○ ENG-128 — High — Email notifications

Blockers:
  ❌ ENG-126 — Stale: in-progress since Mon, no commits since then
  ❌ ENG-129 — Blocked by ENG-125 (payment integration)

3. Detect Issues

3. 问题检测

Automatically flag problems:
Stale issues:
  • Any issue In Progress with no matching commits in 48h+
  • For each: note how long it's been stale
Orphan work:
  • Commits in the last 24h that don't reference any Linear issue
  • IF scoped: "Found 3 commits not tied to any issue in {project-name}. Track them?"
  • IF unscoped: "Found 3 commits not tied to any Linear issue. Track them?"
Overloaded WIP:
  • If more than 3 issues are In Progress simultaneously
  • "You have N issues in progress. Consider finishing some before starting new ones."
Due date warnings:
  • Any issue due today or overdue
  • "ENG-130 is due today and still In Progress"
GSD misalignment (if .planning/ exists):
  • Active GSD phase that doesn't match any In Progress Linear issue
  • Linear issue In Progress with no corresponding GSD phase
自动标记问题:
停滞工单:
  • 所有进行中且48小时以上无对应提交记录的工单
  • 对每个停滞工单:标记停滞时长
孤立工作:
  • 过去24小时内未关联任何Linear工单的提交记录
  • 若限定了项目范围:"发现3条未关联到{project-name}下任何工单的提交,是否需要追踪?"
  • 若未限定范围:"发现3条未关联到任何Linear工单的提交,是否需要追踪?"
在制品过载:
  • 若同时有超过3个进行中的工单
  • 提示:"你当前有N个进行中的工单,建议先完成部分工单再启动新工作。"
截止日期提醒:
  • 所有今日到期或已逾期的工单
  • 提示:"ENG-130今日到期,目前仍在进行中"
GSD对齐异常(若存在.planning/目录):
  • 活跃的GSD阶段未匹配到任何进行中的Linear工单
  • 进行中的Linear工单未对应到任何GSD阶段

4. Focus Plan

4. 工作计划

Based on the data, propose a focus plan for today:
Suggested focus for today:
──────────────────────────
1. [Priority] ENG-126 — Unblock: dashboard redesign has been stalled 3 days
2. [Continue] ENG-125 — Payment integration (in progress, momentum)
3. [Start] ENG-127 — API rate limiting (urgent, unstarted)
Explain the reasoning briefly:
  • Why this order (urgency, staleness, momentum, dependencies)
  • What to skip or defer if time is short
基于收集到的数据,生成今日工作计划建议:
Suggested focus for today:
──────────────────────────
1. [Priority] ENG-126 — Unblock: dashboard redesign has been stalled 3 days
2. [Continue] ENG-125 — Payment integration (in progress, momentum)
3. [Start] ENG-127 — API rate limiting (urgent, unstarted)
简要说明排序逻辑:
  • 排序依据(紧急程度、停滞时长、进展势头、依赖关系)
  • 若时间紧张可跳过或延后的工作内容

5. Confirm or Adjust

5. 确认与调整

Ask: "Does this plan work for today, or do you want to adjust priorities?"
  • Looks good → "Alright. Run
    /product:start-task
    when you're ready to pick up the first item."
  • Adjust → gather changes, update the plan
  • IF a stale issue was flagged: Ask: "What's the status on ENG-126? Should I update Linear?"
    • Still working → keep as-is
    • Blocked → add blocker comment
    • Deprioritized → move back to backlog
    • Done → move to Done
</process>
<success_criteria>
  • Complete picture of yesterday's work, current state, and upcoming work
  • Every stale or blocked issue surfaced with explicit user resolution
  • Concrete focus plan for today presented
  • User confirmed or adjusted the plan
  • Any Linear status corrections applied </success_criteria>
询问用户:"今日工作计划是否合适,还是需要调整优先级?"
  • 确认没问题 → "好的,准备好开始第一项工作时请运行
    /product:start-task
    。"
  • 需要调整 → 收集修改内容,更新计划
  • 若标记了停滞工单: 询问:"ENG-126的当前状态如何?需要我更新Linear上的状态吗?"
    • 仍在进行中 → 保持原有状态
    • 被阻塞 → 添加阻塞备注
    • 优先级降低 → 移回待办
    • 已完成 → 标记为已完成
</process>
<success_criteria>
  • 完整呈现昨日工作、当前状态和待办工作
  • 所有停滞或阻塞的工单都已暴露,且得到用户明确的处理方案
  • 给出具体的今日工作计划
  • 用户确认或调整了计划
  • 所有需要修改的Linear状态都已更新 </success_criteria>