home / skills / charon-fan / agent-playbook / session-logger
npx playbooks add skill charon-fan/agent-playbook --skill session-loggerReview the files below or copy the command above to add this skill to your agents.
---
name: session-logger
description: Saves conversation history to session log files. Use when user says "保存对话", "保存对话信息", "记录会话", "save session", or "save conversation". Automatically creates timestamped session log in sessions/ directory.
allowed-tools: Read, Write, Edit, Bash
---
# Session Logger
A skill for automatically saving conversation history to persistent session log files.
## When This Skill Activates
This skill activates when you:
- Say "保存对话信息" or "保存对话"
- Say "记录会话内容" or "保存session"
- Say "save session" or "save conversation"
- Ask to save the current conversation
## Session File Location
All sessions are saved to: `sessions/YYYY-MM-DD-{topic}.md`
## What Gets Logged
For each session, log:
1. **Metadata**
- Date and duration
- Context/working directory
- Main topic
2. **Summary**
- What was accomplished
- Key decisions made
- Files created/modified
3. **Actions Taken**
- Checklist of completed tasks
- Pending follow-ups
4. **Technical Notes**
- Important code snippets
- Commands used
- Solutions found
5. **Open Questions**
- Issues to revisit
- Follow-up tasks
## Session Template
```markdown
# Session: {Topic}
**Date**: {YYYY-MM-DD}
**Duration**: {approximate}
**Context**: {project/directory}
## Summary
{What was accomplished in this session}
## Key Decisions
1. {Decision 1}
2. {Decision 2}
## Actions Taken
- [x] {Completed action 1}
- [x] {Completed action 2}
- [ ] {Pending action 3}
## Technical Notes
{Important technical details}
## Open Questions / Follow-ups
- {Question 1}
- {Question 2}
## Related Files
- `{file-path}` - {what changed}
```
## How to Use
### Option 1: Automatic Logging
Simply say:
```
"保存对话信息"
```
The skill will:
1. Review the conversation history
2. Extract key information
3. Create/update the session file
### Option 2: With Topic
Specify the session topic:
```
"保存对话,主题是 skill-router 创建"
```
### Option 3: Manual Prompt
If auto-extraction misses something, provide details:
```
"保存对话,重点是:1) 创建了 skill-router,2) 修复了 front matter"
```
## File Naming
| Input | Filename |
|-------|----------|
| "保存对话" | `YYYY-MM-DD-session.md` |
| "保存对话,主题是 prd" | `YYYY-MM-DD-prd.md` |
| "保存今天的讨论" | `YYYY-MM-DD-discussion.md` |
## Session Log Structure
```
sessions/
├── README.md # This file
├── 2025-01-11-skill-router.md # Session about skill-router
├── 2025-01-11-prd-planner.md # Session about PRD planner
└── 2025-01-12-refactoring.md # Session about refactoring
```
## Privacy Note
Session logs are stored in `sessions/` which is in `.gitignore`.
- Logs are NOT committed to git
- Logs contain your actual conversation
- Safe to include sensitive information
## Quick Reference
| You say | Skill does |
|---------|------------|
| "保存对话信息" | Creates session log with today's date |
| "保存今天的对话" | Creates session log |
| "保存session" | Creates session log |
| "记录会话" | Creates session log |
## Best Practices
1. **Save at key milestones**: After completing a feature, fixing a bug, etc.
2. **Be specific with topics**: Helps when searching later
3. **Include code snippets**: Save important solutions
4. **Track decisions**: Why did you choose X over Y?
5. **List pending items**: What to do next time
## Rich Content Extraction (for Self-Improving Agent)
When triggered by other skills via hooks, session-logger extracts structured data for learning:
### Skill Context Capture
When a skill completes, capture:
```markdown
## Skill Execution Context
**Skill**: {skill-name}
**Trigger**: {user-invoked | hook-triggered | auto-triggered}
**Status**: {completed | error | partial}
**Duration**: {approximate time}
### Input Context
- User request: {original request}
- Files involved: {list of files}
- Codebase patterns detected: {patterns}
### Output Summary
- Actions taken: {list}
- Files modified: {list with changes}
- Decisions made: {key decisions}
### Learning Signals
- What worked well: {successes}
- What could improve: {areas for improvement}
- Patterns discovered: {new patterns}
- Errors encountered: {errors and resolutions}
```
### Error Context Capture
When a skill encounters errors:
```markdown
## Error Context
**Error Type**: {type}
**Error Message**: {message}
**Stack Trace**: {if available}
### Resolution Attempted
- Approach: {what was tried}
- Result: {success/failure}
- Root cause: {if identified}
### Prevention Notes
- How to avoid: {prevention strategy}
- Related patterns: {similar issues}
```
### Pattern Extraction
Extract reusable patterns for the self-improving-agent:
```markdown
## Extracted Patterns
### Code Patterns
- Pattern name: {name}
- Context: {when to use}
- Example: {code snippet}
### Workflow Patterns
- Trigger: {what initiates}
- Steps: {sequence}
- Outcome: {expected result}
### Anti-Patterns
- Pattern: {what to avoid}
- Why: {reason}
- Alternative: {better approach}
```
### Structured Data Format
For machine-readable extraction, use YAML front matter in session logs:
```yaml
---
session_type: skill_execution
skill_name: code-reviewer
trigger_source: hook
status: completed
files_modified:
- path: src/utils.ts
changes: refactored error handling
patterns_learned:
- name: error-boundary-pattern
category: error-handling
confidence: high
errors_encountered: []
learning_signals:
successes:
- "Identified code smell in utils.ts"
improvements:
- "Could have suggested more specific refactoring"
---
```
### Integration with Self-Improving Agent
When triggered by `self-improving-agent`:
1. **Extract episodic memory**: Capture the full context of what happened
2. **Identify semantic patterns**: Tag reusable knowledge
3. **Update working memory**: Note immediate follow-ups needed
4. **Signal completion**: Write trigger file if skill chaining is needed
### Auto-Trigger Behavior
When invoked via hooks with `mode: auto`:
- Silently create/update session log
- Extract structured data without user interaction
- Append to existing session if same day/topic
- Create new session if context differs significantly