daily
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesedaily — the one command to remember
daily — 只需记住这一个命令
Route the user to the right skill for their moment in the day. You are a router:
ask at most two short questions, then hand off. Do not do the station's work
yourself — the destination skill owns it.
根据用户当前的工作阶段,将其路由到对应的skill。你是一个路由工具:最多提出两个简短问题,然后转交任务。不要自行完成对应阶段的工作——目标skill负责处理这些工作。
Parse the argument first
优先解析参数
$ARGUMENTS| Station | Words |
|---|---|
| START | |
| WORK | |
| FILE | |
| REPORT | |
| WRAP | |
| SAVE | |
- Match a station word → jump straight to that station (no menu).
- Match a SAVE word → run the Save state flow (below). SAVE is NOT a numbered station and never shows the menu; it captures the resume-point and returns.
- No argument, or no match → show the menu. An unrecognized word is NEVER an error; show the menu with a one-line note ("didn't recognize '<word>'").
$ARGUMENTS| 阶段 | 匹配词汇 |
|---|---|
| START | |
| WORK | |
| FILE | |
| REPORT | |
| WRAP | |
| SAVE | |
- 匹配到阶段词汇 → 直接跳转到该阶段(不显示菜单)。
- 匹配到SAVE词汇 → 执行「保存状态」流程(见下文)。SAVE不属于编号阶段,且永远不会显示菜单;它仅记录恢复点后返回。
- 无参数或无匹配 → 显示菜单。未识别的词汇永远不会视为错误;显示菜单时附带一行提示(“未识别 '<word>'”)。
Welcome back (read state, before the menu)
欢迎回归(读取状态,在菜单之前)
On bare and on , BEFORE showing the menu or handing
off to START, read the saved work-state. Run from any cwd inside the project:
/daily/daily startbash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" show --json-
If the output is the literal text(a string, NOT JSON — it is printed under both plain and
no state yetmodes), skip silently and go straight to the menu / START. Never announce "no state."--json -
Otherwisethe output and read
json.loads,updated,station,status, andfocus. Compute the relative age yourself fromnext(e.g. "2h ago") — it is NOT stored in the file. Then print one welcome-back line, the station in CAPS with its emoji, ticket if present:updatedLast session (2h ago): 🔧 WORK on #6125 — cause confirmed. Suggested next → grill-then-plan.Station emoji: ☀️ START · 🔧 WORK · 📋 FILE · 📣 REPORT · 🌙 WRAP.
Then continue: on bare go to Auto board (below) before the menu; on
hand off to START. This is a read only — it never writes or commits.
/daily/daily start当执行**无参数的或**时,在显示菜单或转交至START阶段之前,先读取已保存的工作状态。在项目内任意工作目录运行:
/daily/daily startbash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" show --json-
如果输出是字面文本(字符串,而非JSON——在普通模式和
no state yet模式下均会打印),则静默跳过,直接进入菜单/START阶段。永远不要提示“无状态”。--json -
否则使用解析输出,读取
json.loads、updated、station、status和focus字段。自行根据next计算相对时长(例如“2小时前”)——该值不会存储在文件中。然后打印一行欢迎回归信息,阶段名称大写并附带对应emoji,若存在工单则一并显示:updated上次会话(2小时前):🔧 WORK 处理 #6125 — 原因已确认。建议下一步 → grill-then-plan.阶段对应emoji:☀️ START · 🔧 WORK · 📋 FILE · 📣 REPORT · 🌙 WRAP.
之后继续执行:无参数会先进入下文的「自动看板」,再显示菜单;则直接转交至START阶段。此操作仅为读取——不会写入或提交任何内容。
/daily/daily startAuto board (bare /daily
, after welcome-back)
/daily自动看板(无参数/daily
,欢迎回归之后)
/dailyOn bare only, after the welcome-back line (or after skipping it when
there is no state), auto-render the work board as a supplement before the menu —
so the user sees their resume-point AND their open work in one glance, without
picking a station. Invoke the skill (; the
twin only if the project is GitHub-context or the
user asks).
/dailymy-workado-backlog:my-workgithub-backloggithub-my-work- If the board cannot load (not logged in / offline / not installed), print a single line — "board unavailable: <reason>" — and continue. A board failure must never block
ado-backlog: the local log still shows. This is the local-first / board-as-a-component property — the resume-point is always available, even offline./daily
Then show the menu below. ( already renders the board as its station,
so it is unchanged; this only adds the board to the bare, no-argument path.)
/daily start仅在执行无参数时,在欢迎回归信息之后(或无状态时跳过该信息之后),在显示菜单前自动渲染工作看板作为补充——让用户一眼看到自己的恢复点和未完成工作,无需选择阶段。调用**** skill(;若项目为GitHub环境或用户要求,则使用github-backlog的对应工具)。
/dailymy-workado-backlog:my-workgithub-my-work- 如果看板无法加载(未登录/离线/未安装),打印一行提示——“看板不可用:<原因>”,然后继续执行。看板加载失败绝不能阻塞
ado-backlog:本地日志仍会显示。这是本地优先/看板作为组件的特性——即使离线,恢复点始终可用。/daily
之后显示下文的菜单。(会在其阶段内渲染看板,因此无变化;此步骤仅为无参数路径添加看板功能。)
/daily startThe menu (bare /daily)
菜单(无参数/daily
)
/dailyPresent exactly five options and wait:
Where are you in your day?
1. ☀️ Starting my day — what's on my plate
2. 🔧 Working / stuck — route me to the right tool
3. 📋 Filing findings — turn findings into tickets
4. 📣 Reporting status — reshape work for leadership
5. 🌙 Wrapping up — daily summary from my commits
(Next time: /daily start · work · file · report · wrap)
💾 Save state anytime: /daily save "<note>"The line teaches the station shortcuts; the 💾 line teaches the save
accelerator — both graduate users from the menu. Save is a footer, not a sixth
option: the circle stays five stations (ADR 0004).
Next time展示恰好五个选项并等待用户选择:
你当前处于工作的哪个阶段?
1. ☀️ 开启我的一天 — 查看今日待办
2. 🔧 工作中/遇到阻碍 — 为我路由到合适工具
3. 📋 整理工作成果 — 将成果转化为工单
4. 📣 汇报工作状态 — 为管理层梳理工作内容
5. 🌙 收尾今日工作 — 根据提交记录生成每日总结
下次可直接使用:/daily start · work · file · report · wrap
💾 随时保存状态:/daily save "<备注>"“下次可直接使用”一行用于教授阶段快捷指令;💾一行用于教授保存快捷键——两者帮助用户脱离菜单操作。保存是页脚提示,而非第六个选项:始终保持五个阶段(ADR 0004)。
Stations
各阶段详情
1. START
1. START
First run the Welcome back read above () and, if
state exists, print the one-line welcome-back BEFORE the handoff — so the user sees
where they left off, then their board. Skip silently if there's no state.
daily-state.py show --jsonThen invoke the skill from the ado-backlog plugin
(). Mention the GitHub equivalent ('s
) ONLY if the user asks for GitHub.
my-workado-backlog:my-workgithub-backloggithub-my-work首先执行上文的「欢迎回归」读取操作(),若存在状态,在转交任务前打印一行欢迎回归信息——让用户看到之前的进度,再查看看板。无状态则静默跳过。
daily-state.py show --json然后调用ado-backlog插件中的**** skill()。仅当用户要求GitHub时,才提及GitHub的等效工具(github-backlog的)。
my-workado-backlog:my-workgithub-my-work2. WORK
2. WORK
Ask ONE question — "What's happening?" — with these options, then hand off:
| The user is… | Hand off to |
|---|---|
| designing something new | |
| facing an effort too big for one session (foggy, multi-session) | |
| dealing with something broken | |
| advising how a system should work | |
| auditing names / labels / mappings | |
| explaining a complex problem | |
| asking why code/a ticket exists | |
| wanting a second opinion | |
| reviewing a GitHub pull request | |
| facing an unfamiliar legacy codebase | |
| facing an unfamiliar Dynamics 365 / Dataverse org | |
| wanting a repeatable test-case suite (feature / change / fixed bug) | |
Debug chain (ADRs 0003 + 0011): after produces a diagnosis, ask:
"Does the fix involve a design choice (multiple viable approaches with
trade-offs)?"
debug-mantra- No (mechanical fix) → fix → → offer
post-mortem(regression case) →generating-test-cases.management-talk - Yes → to capture the decision FIRST → fix →
grill-then-plan→ offerpost-mortem(regression case) →generating-test-cases.management-talk
It runs both ways: if a user enters directly to design a fix for
a current malfunction whose cause isn't verified yet, it hands off to
first, then grills against the confirmed cause (ADR 0011). The invariant either
way: never plan a fix on an unverified cause.
grill-then-plandebug-mantra提出一个问题——“当前情况是?”,提供以下选项,然后转交任务:
| 用户当前正在… | 转交至 |
|---|---|
| 设计新功能 | |
| 面对超出单会话处理范围的任务(模糊、需多会话完成) | |
| 处理故障问题 | |
| 提供系统工作方式建议 | |
| 审核命名/标签/映射关系 | |
| 解释复杂问题 | |
| 询问代码/工单存在的原因 | |
| 需要第二意见 | |
| 审核GitHub拉取请求 | |
| 面对不熟悉的遗留代码库 | |
| 面对不熟悉的Dynamics 365 / Dataverse组织 | |
| 需要可重复的测试用例套件(功能/变更/修复的Bug) | |
调试流程(ADRs 0003 + 0011): 在得出诊断结果后,询问:
“修复是否涉及设计选择(存在多种可行方案且需权衡利弊)?”
debug-mantra- 否(机械性修复) → 修复 → → 提供
post-mortem(回归用例) →generating-test-cases。management-talk - 是 → 先使用记录决策 → 修复 →
grill-then-plan→ 提供post-mortem(回归用例) →generating-test-cases。management-talk
此流程双向生效:如果用户直接进入为当前未确认原因的故障设计修复方案,会先转交至,再针对已确认的原因进行梳理(ADR 0011)。无论哪种情况,不变原则是:绝不在未验证原因的情况下规划修复方案。
grill-then-plandebug-mantra3. FILE
3. FILE
Get work into the tracker. Two shapes — pick by what the user has:
| The user has… | Hand off to |
|---|---|
| a batch of findings (audit / spreadsheet / review / pasted list) | |
| specific item(s) to create directly (one bug, a few stories, a ready list) | |
Ask ONE question only if the shape is unclear: "A batch of findings, or specific
tickets to create directly?" Default tracker is ADO; if the user wants GitHub,
use the github-backlog twins — or .
Either route keeps the safety gates: a dry-run before any real create, and explicit
approval before writing to the org.
findings-to-github-issuesgithub-create-issues将工作内容录入跟踪系统。根据用户现有内容选择两种方式:
| 用户现有… | 转交至 |
|---|---|
| 批量成果(审核/表格/评审/粘贴的列表) | |
| 需直接创建的特定事项(一个Bug、几个故事、已准备好的列表) | |
仅当内容类型不明确时提出一个问题:“是批量成果,还是需直接创建特定工单?” 默认跟踪系统为ADO;若用户需要GitHub,则使用github-backlog的对应工具——或。两种方式均保留安全机制:实际创建前会进行试运行,且写入组织前需明确确认。
findings-to-github-issuesgithub-create-issues4. REPORT
4. REPORT
Invoke .
management-talk调用。
management-talk5. WRAP
5. WRAP
Invoke . Run it every day — it builds the summary from git
commits, so a day without invoicing still yields a Tribletext-ready record.
invoice-generatorAfter finishes, write the end-of-day snapshot. Ask the user (in
one turn) for , , the active (topic, ticket if any), and
the step, then call:
invoice-generatorstationstatusfocusnextbash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" set \
--station wrap --status <in-progress|blocked|paused|done> \
--topic "<what you were on>" --next-action "<next step>" \
[--ticket <id>] [--next-reason "<why>"] [--blocker "<text>" ...] \
--note "<end-of-day note>"After the snapshot, offer the optional learn beat that closes the arc:
Harvest today's lessons into the workflow with /reflect? (y/n)
If the user accepts, hand off to the skill; if they decline, skip
silently. Then run the Commit offer below. This is the resume-point the next session
reads on .
reflect/daily start调用。每日运行一次——它会根据git提交记录生成总结,即使当天无需开票,也会生成可用于Tribletext的记录。
invoice-generatorinvoice-generatorstationstatusfocusnextbash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" set \
--station wrap --status <in-progress|blocked|paused|done> \
--topic "<当前工作内容>" --next-action "<下一步操作>" \
[--ticket <工单ID>] [--next-reason "<原因>"] [--blocker "<阻塞原因>" ...] \
--note "<当日结束备注>"快照完成后,提供可选的「复盘」环节以结束流程:
是否将今日经验整合到工作流中?使用/reflect?(y/n)
如果用户同意,转交至 skill;若拒绝,则静默跳过。然后执行下文的「提交建议」。此快照将作为下次会话执行时读取的恢复点。
reflect/daily startSave state (the save
action)
save保存状态(save
操作)
saveReached by , , or (see the argument
table) — and surfaced as the 💾 menu footer. NOT a station: it captures the
resume-point and returns; it never shows the menu or hands off to a station skill.
/daily save/daily pause/daily checkpoint-
Find where it writes — show the user the resolved path so there are no surprises:bash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" resolve-pathThe script resolvesflag →--pathenv → git root (DAILY_STATE_FILE). If the script reports it is not in a git repo, ASK the user where to write (or to use cwd) and pass it viagit rev-parse --show-toplevel; never fail.--path -
Write the state — pass only the fields you know; unset fields are preserved (read-modify-write), andis stamped by the script:
updatedbashpython "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" set \ --station <start|work|file|report|wrap> \ --status <in-progress|blocked|paused|done> \ --topic "<active work>" --next-action "<next step>" \ [--ticket <id>] [--next-reason "<why>"] [--blocker "<text>" ...] \ --note "<the note the user passed to /daily save>"and--topicare the required fields; the rest are optional. The note from--next-actiongoes in/daily save "<note>"(appended to the body).--note -
Offer commit (see below), then return to whatever the user was doing.
通过、或触发(见参数表格)——并作为💾菜单页脚显示。这不属于阶段:它仅记录恢复点后返回;永远不会显示菜单或转交至阶段skill。
/daily save/daily pause/daily checkpoint-
显示写入路径 — 向用户展示解析后的路径,避免意外:bash
python "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" resolve-path脚本会依次解析参数 →--path环境变量 → git根目录(DAILY_STATE_FILE)。如果脚本报告不在git仓库中,询问用户写入位置(或使用当前工作目录),并通过git rev-parse --show-toplevel参数传递;绝不能执行失败。--path -
写入状态 — 仅传递已知字段;未设置的字段将保留(读取-修改-写入),字段由脚本自动标记:
updatedbashpython "${CLAUDE_PLUGIN_ROOT}/scripts/daily-state.py" set \ --station <start|work|file|report|wrap> \ --status <in-progress|blocked|paused|done> \ --topic "<当前工作>" --next-action "<下一步操作>" \ [--ticket <工单ID>] [--next-reason "<原因>"] [--blocker "<阻塞原因>" ...] \ --note "<用户传递给/daily save的备注>"和--topic为必填字段;其余为可选字段。--next-action中的备注会放入/daily save "<备注>"字段(追加到内容末尾)。--note -
提供提交建议(见下文),然后返回至用户之前的操作。
Commit offer (assisted, never automatic)
提交建议(辅助操作,绝不自动执行)
After ANY write ( or ), the skill writes the file first, then
explicitly asks — it never commits on its own:
savewrapCommit & push so the next session/machine sees it? (y/n)
- No / declined → leave the file on disk uncommitted. Done. (For a same-machine resume this is usually fine — the file is already there.)
- Yes → stage only (never other files), commit, and push. Git lives in the skill, never in the script. Respect this workspace's git rules: if the resolved path is a non-repo root or one of several sub-repos, confirm the target repo with the user before committing.
daily-state.md
在任何写入操作(或)后,工具会先写入文件,然后明确询问——绝不会自动提交:
savewrap是否提交并推送,以便下次会话/其他设备可以看到?(y/n)
- 否/拒绝 → 保留磁盘上的文件不提交。操作完成。(对于同一设备的恢复,通常已足够——文件已存在。)
- 是 → 仅暂存(绝不处理其他文件),提交并推送。Git操作由工具处理,而非脚本。遵循工作区的git规则:如果解析后的路径是非仓库根目录或多个子仓库之一,提交前需与用户确认目标仓库。
daily-state.md
Graceful degradation
优雅降级
Stations 1 and 3 route to skills in OTHER plugins. If the target plugin is not
installed, say so explicitly and print the install command for the user's harness —
never fail silently:
ado-backlog is not installed. Install it with:
- Claude Code: /plugin install ado-backlog@workflow-daily-work
- Antigravity: stage the ado-backlog skills into your skills dir
(see the plugin's .antigravity/INSTALL.md)(Same pattern for .)
github-backlog阶段1和3会路由到其他插件中的skill。如果目标插件未安装,明确告知用户并打印适用于其工具的安装命令——绝不能静默失败:
ado-backlog未安装。可通过以下方式安装:
- Claude Code: /plugin install ado-backlog@workflow-daily-work
- Antigravity: 将ado-backlog skills部署到你的skills目录
(详见插件的.antigravity/INSTALL.md)(遵循相同模式。)
github-backlogRules
规则
- At most two questions before handoff (station + the one station question).
- Never do the destination skill's job inline.
- Unknown argument → menu, never an error. /
save/pauseroute to the Save flow, not a station.checkpoint - The work-state file is read on bare and
/daily, and written on/daily startand/daily save./daily wrapowns ALL YAML; the skill owns git. Reads never write; writes always offer commit and never commit unprompted.daily-state.py - A bundled PreToolUse hook (, registered in
hooks/commit-log.py) also appends everyhooks/hooks.jsonmessage togit commitdaily-state.md(via## Log) — active automatically on plugin enable, best-effort, and it never blocks a commit. Sodaily-state.py logis fed both by## Logon save/wrap AND automatically by each commit.--note - If prints
daily-state.py show, skip the welcome-back silently — it is never an error.no state yet - The full map lives in PLAYBOOK.md at the marketplace repo root — for humans; this skill is self-contained and never needs to read it.
- 转交任务前最多提出两个问题(阶段选择 + 阶段内的一个问题)。
- 绝不内联执行目标skill的工作。
- 未知参数 → 显示菜单,绝不视为错误。/
save/pause路由到保存流程,而非阶段。checkpoint - 工作状态文件在无参数和
/daily时读取,在/daily start和/daily save时写入。/daily wrap负责所有YAML操作;工具负责Git操作。读取操作绝不写入;写入操作始终提供提交建议,绝不未提示就提交。daily-state.py - 内置的PreToolUse钩子(,在
hooks/commit-log.py中注册)会将每个hooks/hooks.json消息追加到git commit的daily-state.md部分(通过## Log)——启用插件后自动激活,尽最大努力执行,且绝不会阻塞提交。因此daily-state.py log内容既来自保存/收尾时的## Log,也来自每次提交的自动追加。--note - 如果输出
daily-state.py show,静默跳过欢迎回归环节——这绝不是错误。no state yet - 完整的流程映射位于市场仓库根目录的PLAYBOOK.md中——供人类查看;本工具是自包含的,无需读取该文件。