Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Saves conversation history to session log files. Use when user says "保存对话", "保存对话信息", "记录会话", "save session", or "save conversation". Automatically creates timestamped session log in sessions/ directory.
.claude/skills/session-logger/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -51% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -37% | 0% |
Create a compact recovery artifact without treating raw conversation history as durable memory.
SessionEnd hook with a transcript path.Do not silently persist raw transcripts, credentials, private customer data, or unbounded agent output. Host support and write authority must be visible; skill metadata alone does not execute a hook.
Claude Code installation can invoke:
bashagent-playbook session-log
The command reads the host-provided JSONL transcript and stores only bounded, redacted details:
By default, files are private local artifacts:
text~/.agent-playbook/sessions/<project-id>/YYYY-MM-DD-<topic>.md
Set AGENT_PLAYBOOK_DATA_DIR or pass --data-dir to move the private data root. Writing inside a repository is opt-in only:
bashapb session-log --session-dir ./sessions
If a repository-local directory is selected, verify its ignore and retention policy before writing. Never assume another repository ignores sessions/.
When the host cannot provide a transcript event, create a user-authorized summary from the context actually visible in the current session. Include only:
State omissions honestly. Do not claim full conversation capture, structured decision extraction, automatic append behavior, or cross-session recall unless the active runtime demonstrably provides it.
password/secret assignments before writing.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,236 | 15,508 | +17% | 1 | 1 | 0% | 1,085 | 809 | -25% | 0 | 0 | — |
case-02 | fail→fail | 13,510 | 17,826 | +32% | 1 | 1 | 0% | 761 | 908 | +19% | 0 | 0 | — |
case-03 | fail→fail | 17,162 | 15,231 | -11% | 1 | 1 | 0% | 308 | 861 | +180% | 0 | 0 | — |
case-04 | pass→fail | 17,045 | 14,199 | -17% | 1 | 1 | 0% | 1,820 | 740 | -59% | 0 | 0 | — |
case-05 | pass→pass | 13,896 | 15,242 | +10% | 1 | 1 | 0% | 1,706 | 2,590 | +52% | 0 | 0 | — |
case-06 | pass→pass | 28,205 | 21,885 | -22% | 1 | 1 | 0% | 4,082 | 3,646 | -11% | 0 | 0 | — |
case-07 | fail→fail | 11,438 | 10,018 | -12% | 1 | 1 | 0% | 1,151 | 1,441 | +25% | 0 | 0 | — |
case-08 | fail→pass | 19,978 | 7,802 | -61% | 1 | 1 | 0% | 2,133 | 1,048 | -51% | 0 | 0 | — |
case-09 | fail→pass | 13,471 | 6,880 | -49% | 1 | 1 | 0% | 1,407 | 922 | -34% | 0 | 0 | — |
case-10 | fail→pass | 8,278 | 6,890 | -17% | 1 | 1 | 0% | 443 | 918 | +107% | 0 | 0 | — |
case-11 | fail→pass | 14,518 | 7,456 | -49% | 1 | 1 | 0% | 1,761 | 1,069 | -39% | 0 | 0 | — |
case-12 | fail→pass | 13,671 | 2,598 | -81% | 1 | 1 | 0% | 1,476 | 927 | -37% | 0 | 0 | — |
case-13 | pass→pass | 14,240 | 8,190 | -42% | 1 | 1 | 0% | 1,457 | 982 | -33% | 0 | 0 | — |
case-14 | pass→pass | 15,788 | 4,821 | -69% | 1 | 1 | 0% | 1,813 | 1,385 | -24% | 0 | 0 | — |
case-15 | pass→pass | 14,171 | 9,766 | -31% | 1 | 1 | 0% | 1,584 | 1,233 | -22% | 0 | 0 | — |
case-16 | pass→pass | 14,864 | 8,780 | -41% | 1 | 1 | 0% | 1,581 | 1,132 | -28% | 0 | 0 | — |
case-17 | pass→pass | 16,527 | 7,990 | -52% | 1 | 1 | 0% | 1,553 | 1,121 | -28% | 0 | 0 | — |
case-18 | fail→pass | 13,733 | 2,338 | -83% | 1 | 1 | 0% | 1,270 | 928 | -27% | 0 | 0 | — |
case-19 | fail→pass | 12,056 | 10,182 | -16% | 1 | 1 | 0% | 1,680 | 1,402 | -17% | 0 | 0 | — |
case-20 | fail→pass | 13,536 | 9,532 | -30% | 1 | 1 | 0% | 1,809 | 1,200 | -34% | 0 | 0 | — |
case-21 | fail→pass | 18,580 | 2,726 | -85% | 1 | 1 | 0% | 2,440 | 913 | -63% | 0 | 0 | — |
case-22 | pass→pass | 14,952 | 10,480 | -30% | 1 | 1 | 0% | 2,201 | 1,417 | -36% | 0 | 0 | — |
case-23 | fail→pass | 9,928 | 3,580 | -64% | 1 | 1 | 0% | 1,418 | 1,148 | -19% | 0 | 0 | — |
case-24 | pass→pass | 15,786 | 8,859 | -44% | 1 | 1 | 0% | 1,376 | 1,084 | -21% | 0 | 0 | — |
case-25 | pass→pass | 12,205 | 5,789 | -53% | 1 | 1 | 0% | 1,915 | 1,444 | -25% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 21 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 21 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/2/2026 | +59% |
| gemini-3.6-flash | verified | 7/24/2026 | +77% |
Other measured skills in the registry, with their headline benchmark lift.