跳到正文
cccskills
免费在 GitHub 公开

session-trends

Analyze trends across session metrics. Computes windowed aggregates, deltas, and compares against MEMORY.md findings. Use periodically for progress tracking.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md4.5 KB
  • references/trend-queries.md4.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Session Trends

Analyze trends from the metrics ledger. Computes windowed aggregates, fingerprint distributions, and compares against MEMORY.md baselines.

Requirements

Requires .claude/session-metrics/metrics.jsonl from /session-scan.

Usage

/session-trends                          # All windows (7d, 30d, all)
/session-trends --window 30d             # Specific window only
/session-trends --project enaia          # Filter by project
/session-trends --compare MEMORY.md      # Compare against memory baseline
/session-trends --html out.html          # Write HTML report with ASCII bars

For pure context-window stats (max prompt tokens, ctx %, compaction rate) across raw Claude Code JSONL files, see the --scan-jsonl mode of compute-metrics.py (inspired by badlogic / earendil-works/pi).

Pipeline

Step 1: Parse Arguments

Extract from $ARGUMENTS:

  • --window WINDOW: Time window — 7d, 30d, or all (default: show all three)
  • --project NAME: Filter metrics by project name
  • --compare PATH: Path to MEMORY.md for baseline comparison (default: auto-detect from .claude/ project memory)

Step 2: Read Metrics Ledger

Read .claude/session-metrics/metrics.jsonl.

If empty or missing:

No metrics found. Run /session-scan first.

If --project specified, filter entries by project field.

Step 3: Compute Trends via Python

python3 .claude/skills/session-scan/references/compute-metrics.py \
  --trends .claude/session-metrics/metrics.jsonl \
  --memory {MEMORY_PATH}

Capture the JSON output.

Step 4: Display Trend Report

Format the JSON output as a readable report:

Overview

Total sessions: {N} ({backfilled} backfilled from v1)
Date range: {earliest} to {latest}

Window Comparison

| Metric                  | 7 days | 30 days | All time |
|-------------------------|--------|---------|----------|
| Sessions                | 12     | 45      | 165      |
| Avg friction            | 0.28   | 0.24    | 0.22     |
| Max friction            | 0.72   | 0.72    | 0.89     |
| Avg opportunity         | 0.35   | 0.30    | 0.28     |
| Tier 2 eligible         | 40%    | 33%     | 30%      |
| Plugin adoption         | 12%    | 10%     | 8%       |

Fingerprint Distribution

| Type          | 7d  | 30d | All  |
|---------------|-----|-----|------|
| bug-fix       | 4   | 15  | 52   |
| feature       | 3   | 12  | 48   |
| exploration   | 2   | 8   | 30   |
| maintenance   | 1   | 5   | 18   |
| review        | 1   | 3   | 10   |
| refactoring   | 1   | 2   | 7    |

MEMORY.md Comparison (if --compare)

Compare measured values against MEMORY.md claims:

| MEMORY.md Claim              | Measured    | Match? |
|------------------------------|-------------|--------|
| Plugin adoption: 8-12%       | 10.2%       | Yes    |
| Minimal friction in 40+ of 74| 68% smooth  | Yes    |

Step 5: Write trends.json

Write computed trends to .claude/session-metrics/trends.json.

Step 6: Suggest Actions

Based on trends:

  • If friction is increasing: "Friction trending up — run /session-deep-dive --from-scan to investigate"
  • If plugin adoption is growing: "Plugin adoption growing — check which commands drive value"
  • If many Tier 2 eligible: "{N} sessions need deep analysis"

Output Files

FilePurpose
.claude/session-metrics/trends.jsonComputed trend data

Common Queries

See references/trend-queries.md for interpreting specific trend patterns.

Iron Laws

  1. ALWAYS use Python for computation — no manual aggregation
  2. NEVER modify metrics.jsonl — read-only for trends
  3. ALWAYS show window comparison — single numbers lack context

Acknowledgements

The HTML report layout (preformatted text + ASCII bar charts via █/░) and per-model + threshold-bucket breakdown (>=80%, >=90%, >=100%, compaction_rate) were borrowed from badlogic / earendil-works/pi session-context-stats.mjs. Our pipeline's qualitative metrics (friction, fingerprint, plugin opportunity, skill effectiveness) are additive on top.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

analyze

免费

Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

architect

免费

Design the idiomatic Elixir architecture for a rewrite: set the compatibility bar (ADR-000), consult phx specialists on open questions, then build contexts, ledger and ADRs. Use after /rewrite:analyze.

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

assigns

免费

Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.

中文简介正在准备中。当前显示原文说明。

oliver-kriska/claude-elixir-phoenix5692026年10月20日 更新

查看 oliver-kriska 的全部技能

报告此技能的问题