session-digest · v1.0.0 · 2026-03-07 · sha256 ef393ea9dd6927ca
session-digest v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/ef393ea9dd6927ca.
---
name: session-digest
description: Summarize sessions across a multi-day range by paging session_summary in chunks, output bilingual, and write back stable soul traits.
description_zh: 通过分段调用 session_summary 汇总多天会话,输出中英双语摘要,并在稳定特征出现时写回 soul。
version: 1.0.0
author: Pulse Coder Team
---
# Session Digest Skill
Summarize sessions over a long date range without blowing context by paging `session_summary` in windows and aggregating the results.
## When to Use
- You need summaries for many days (e.g., 14/30/90 days)
- Single tool output is too large to fit in context
- You want a high-level digest with minimal raw excerpts
## Inputs (JSON)
```json
{
"days": 30,
"chunkDays": 7,
"scope": "owner",
"includeUserMessages": true,
"includeAssistantMessages": true,
"maxMessagesPerSession": 120,
"focus": "optional: emphasize PRs, configs, incidents, or product decisions",
"format": "themes"
}
```
- `days` (default 7): total days to summarize (UTC, counting back from today).
- `chunkDays` (default 7, max 30): size of each window.
- `scope`: `owner` (cross-channel) or `platform` (current channel).
- `maxMessagesPerSession`: reduce to avoid overlong excerpts.
- `format`: `themes` or `timeline`.
## Required Execution Flow
1. Compute `totalDays` from input (default 7).
2. Compute `chunkDays` (default 7, clamp 1..30).
3. For each window index `i = 0..`:
- `offsetDays = i * chunkDays`
- `windowDays = min(chunkDays, totalDays - offsetDays)`
- Call `session_summary` with:
```json
{
"days": windowDays,
"offsetDays": offsetDays,
"scope": "owner",
"includeUserMessages": true,
"includeAssistantMessages": true,
"maxMessagesPerSession": 120
}
```
- Summarize this window to **3-6 bullets**, no raw excerpt dumps.
4. Aggregate across windows:
- Deduplicate repeated items.
- Highlight: PRs/MRs, code changes, config changes, incidents, decisions.
5. Produce bilingual output (EN + ZH) with the format below.
6. **Soul writeback (no read):**
- Do NOT call `memory_recall`.
- Infer 1-2 stable traits only when the same tendency appears in **>= 2 sessions or windows**.
- Record with `memory_record` using `kind: "soul"` and a short, neutral sentence (no sensitive or user-facing text).
- Do not mention the soul writeback in the visible output.
## Output Format
- Start with the date range (UTC).
- Provide English then Chinese sections.
- Keep each language concise (target <= 1200 chars; avoid long excerpts).
Example:
```
Date Range (UTC): 2025-03-01 to 2025-03-07
EN
Overall:
- ...
- ...
Per-window:
- 2025-03-07: ...
- 2025-03-06: ...
Notable:
- ...
ZH
总体:
- ...
- ...
分段:
- 2025-03-07: ...
- 2025-03-06: ...
要点:
- ...
```
## Output Rules
- Never paste the raw `session_summary.sessions[].excerpt` list.
- Prefer concise phrasing and avoid low-signal chat.
- If a window has no sessions, say so explicitly.
- Keep total output under ~300 lines.
## Example Invocation
```text
/skills session-digest {"days": 30, "chunkDays": 7, "scope": "owner"}
```