groove-utilities-stats

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- groove:managed — do not edit; changes will be overwritten by groove update -->
<!-- groove:managed — do not edit; changes will be overwritten by groove update -->

groove-utilities-stats

groove-utilities-stats

Use $ARGUMENTS to specify the period:
week
(default),
month
, or
all
.
使用$ARGUMENTS指定统计周期:
week
(默认)、
month
all

Bash fast-path

Bash快速路径

This skill has a bash script at
scripts/stats.sh
. Run it directly for faster, model-free execution:
bash
bash .agents/skills/groove-utilities-stats/scripts/stats.sh week
(Pass
week
,
month
, or
all
to match $ARGUMENTS.) If the script exits 0, report its stdout and stop — do not continue with the steps below. If it exits non-zero, continue with the markdown steps (exit 3 means it printed the local metrics but the
linear
/
github
task counts still need to be computed below; exit 1 means no
.groove/
).
该技能在
scripts/stats.sh
路径下有一个bash脚本。直接运行它可实现更快的无模型执行:
bash
bash .agents/skills/groove-utilities-stats/scripts/stats.sh week
(传入
week
month
all
以匹配$ARGUMENTS。)如果脚本以状态码0退出,则报告其标准输出并停止——无需继续执行以下步骤。如果脚本以非零状态码退出,则继续执行以下Markdown步骤(状态码3表示已打印本地指标,但仍需计算下方的
linear
/
github
任务数量;状态码1表示不存在
.groove/
目录)。

Outcome

输出结果

A read-only dashboard is printed to the conversation quantifying compound-loop health for the period: the compound funnel (lessons captured vs graduated), adherence (daily-log coverage, streak, rollup freshness, ratings), and velocity (task open/closed, commits). No files are written. This answers "is the workflow compounding / am I keeping the rhythm" — for qualitative patterns, it points to
/groove-utilities-memory-retrospective
.
会在对话中打印一个只读仪表盘,量化指定周期内复合循环的健康状况:复合漏斗(已捕获与已进阶的经验)、坚持度(日志覆盖天数、连续记录天数、汇总报告新鲜度、评分)以及处理速度(任务的开启/关闭数量、提交次数)。不会写入任何文件。该仪表盘可回答“工作流是否在复合增长 / 我是否保持了节奏”的问题——如需了解定性模式,可查看
/groove-utilities-memory-retrospective

Acceptance Criteria

验收标准

  • Compound funnel shown: lessons captured (total + in period), graduated (total + in period), graduation rate
  • Adherence shown: daily-log coverage over the last
    memory.review_days
    business days, current streak, weekly/monthly rollup freshness, ratings count + average
  • Velocity shown: task open/closed counts (if a task backend is configured) and commit count in the period
  • Output goes to the conversation only; nothing is written
  • Absent data sources are skipped with sensible "n/a"/"NA" placeholders rather than errors
  • 显示复合漏斗:已捕获经验总数(含指定周期内数量)、已进阶经验总数(含指定周期内数量)、进阶率
  • 显示坚持度:过去
    memory.review_days
    个工作日(周一至周五,截止到今日)的日志覆盖情况、当前连续记录天数、周/月汇总报告的新鲜度、评分数量及平均分
  • 显示处理速度:(若配置了任务后端)指定周期内任务的开启/关闭数量,以及提交次数
  • 仅在对话中输出结果;不写入任何内容
  • 缺失的数据源会以合理的“n/a”/“NA”占位符跳过,而非抛出错误

Steps

步骤

(Model fallback — the bash fast-path above does this deterministically. Reproduce the same output format.)
  1. Memory path is always
    .groove/memory/
    . If
    .groove/
    is absent, stop with an install hint.
  2. Read
    .groove/index.md
    frontmatter:
    tasks.storage
    (backend; legacy key
    tasks.backend
    ) and
    memory.review_days
    (default 5).
  3. Determine date range from $ARGUMENTS:
    week
    = last 7 days,
    month
    = last 30 days,
    all
    = everything. Call the start
    <since>
    .
  4. Compound funnel:
    • Captured: count
      ## YYYY-MM-DD
      dated entries across
      .groove/memory/learned/*.md
      (exclude
      signals.md
      ) — total, and those with date ≥
      <since>
      .
    • Graduated: count
      [graduated YYYY-MM-DD]
      markers across the same files — total, and those ≥
      <since>
      .
    • Graduation rate = graduated_total / captured_total as a percentage (
      n/a
      if none captured).
  5. Adherence:
    • Daily-log coverage: of the last
      review_days
      business days (Mon–Fri, ending today), how many have
      .groove/memory/daily/YYYY-MM-DD.md
      .
    • Streak: consecutive most-recent business days (back from today) that have a daily log; stop at the first gap.
    • Rollup freshness:
      weekly
      is
      fresh
      if a
      .groove/memory/weekly/<ISO-year>-W<ISO-week>.md
      exists for the current or previous week, else
      stale
      ;
      monthly
      likewise for
      .groove/memory/monthly/YYYY-MM.md
      .
    • Ratings: parse
      .groove/memory/learned/signals.md
      table rows (
      | YYYY-MM-DD | N/5 | note |
      ) with date ≥
      <since>
      ; report count and average (and a
      ▁▂▄▆█
      sparkline if ≥ 3).
  6. Velocity:
    • Commits:
      git log --oneline --since=<since>
      count.
    • Tasks, by
      tasks.storage
      :
      • beans
        : open =
        beans list --json --no-status completed --no-status scrapped | jq length
        ; closed =
        --status completed
        +
        --status scrapped
        ; best-effort open mistakes/promises = count of non-terminal children under the "Mistakes"/"Promises" epics.
      • linear
        : via the linear CLI/MCP — assigned issues grouped into open vs done.
      • github
        :
        gh issue list --assignee @me --state all
        grouped into open vs closed.
      • none
        : omit task counts (show commits only).
  7. Print the dashboard in the Output format below.
(模型回退方案——上述Bash快速路径可确定性地完成此操作。需生成相同格式的输出。)
  1. 内存路径固定为
    .groove/memory/
    。若
    .groove/
    目录不存在,则停止操作并给出安装提示。
  2. 读取
    .groove/index.md
    的前置元数据:
    tasks.storage
    (后端;旧版键名为
    tasks.backend
    )和
    memory.review_days
    (默认值为5)。
  3. 根据$ARGUMENTS确定日期范围:
    week
    =过去7天,
    month
    =过去30天,
    all
    =所有时间。将起始日期记为
    <since>
  4. 复合漏斗
    • 已捕获经验:统计
      .groove/memory/learned/*.md
      (排除
      signals.md
      )中所有带有
      ## YYYY-MM-DD
      日期标记的条目数量——总数,以及日期≥
      <since>
      的数量。
    • 已进阶经验:统计同一文件中所有
      [graduated YYYY-MM-DD]
      标记的数量——总数,以及日期≥
      <since>
      的数量。
    • 进阶率 = 已进阶经验总数 / 已捕获经验总数(以百分比表示;若未捕获任何经验则显示
      n/a
      )。
  5. 坚持度
    • 日志覆盖情况:在过去
      review_days
      个工作日(周一至周五,截止到今日)中,统计存在
      .groove/memory/daily/YYYY-MM-DD.md
      文件的天数。
    • 连续记录天数:从今日往前数,连续拥有日志的工作日数量;遇到第一个空缺即停止计数。
    • 汇总报告新鲜度:若当前或上周存在
      .groove/memory/weekly/<ISO-year>-W<ISO-week>.md
      文件,则
      weekly
      状态为
      fresh
      ,否则为
      stale
      monthly
      状态同理,依据
      .groove/memory/monthly/YYYY-MM.md
      文件是否存在判断。
    • 评分:解析
      .groove/memory/learned/signals.md
      中日期≥
      <since>
      的表格行(格式为
      | YYYY-MM-DD | N/5 | note |
      );报告评分数量及平均分(若数量≥3,还需显示
      ▁▂▄▆█
      火花图)。
  6. 处理速度
    • 提交次数:通过
      git log --oneline --since=<since>
      统计数量。
    • 任务数量,依据
      tasks.storage
      类型:
      • beans
        :开启数量 =
        beans list --json --no-status completed --no-status scrapped | jq length
        ;关闭数量 =
        --status completed
        +
        --status scrapped
        ;尽可能统计“Mistakes”/“Promises”主题下未完成子任务的数量。
      • linear
        :通过linear CLI/MCP——按开启与完成状态分组统计分配给自己的任务。
      • github
        :通过
        gh issue list --assignee @me --state all
        按开启与关闭状态分组统计。
      • none
        :省略任务数量统计(仅显示提交次数)。
  7. 按照下方的输出格式打印仪表盘。

Output format

输出格式

undefined
undefined

Groove Stats — <period> (<start> to <today>)

Groove Stats — <period> (<start> to <today>)

🔁 Compound funnel

🔁 Compound funnel

Lessons captured: <N> (<n> this <period>) Graduated: <G> (<g> this <period>) Graduation rate: <pct>
Lessons captured: <N> (<n> this <period>) Graduated: <G> (<g> this <period>) Graduation rate: <pct>

📿 Adherence

📿 Adherence

Daily logs: <x>/<review_days> business days Streak: <s> days Rollups: weekly <fresh|stale>, monthly <fresh|stale> Ratings: <c> in period | avg <a>/5 <sparkline>
Daily logs: <x>/<review_days> business days Streak: <s> days Rollups: weekly <fresh|stale>, monthly <fresh|stale> Ratings: <c> in period | avg <a>/5 <sparkline>

🚀 Velocity

🚀 Velocity

Tasks: <open> open / <closed> closed Commits: <k> in period Open: <m> mistakes, <p> promises
For qualitative patterns and learnings, run
/groove-utilities-memory-retrospective
.
undefined
Tasks: <open> open / <closed> closed Commits: <k> in period Open: <m> mistakes, <p> promises
For qualitative patterns and learnings, run
/groove-utilities-memory-retrospective
.
undefined

Constraints

约束条件

  • Read only — never write to any file (no memory, no AGENTS.md, no config).
  • Skip any absent data source with a one-line
    n/a
    /
    NA
    rather than erroring; parse tables and dates defensively.
  • Paths are hardcoded under
    .groove/memory/
    (not configurable), consistent with the rest of groove.
  • This skill complements
    /groove-utilities-memory-retrospective
    (qualitative reflection) — do not duplicate its narrative; cross-link it.
  • 仅读取——绝不写入任何文件(不修改内存、AGENTS.md或配置文件)。
  • 跳过任何缺失的数据源,用一行
    n/a
    /
    NA
    表示,而非抛出错误;需稳健地解析表格和日期。
  • 路径固定为
    .groove/memory/
    (不可配置),与groove的其他部分保持一致。
  • 该技能是
    /groove-utilities-memory-retrospective
    (定性反思)的补充——不要重复其内容;需建立交叉链接。