一键导入
session-logs
Search and analyze your own session logs (older/parent conversations) using jq.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Search and analyze your own session logs (older/parent conversations) using jq.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Cross-surface self-evolution control plane. After a failure or notable success, attribute it to the right surface of Deneb's composite policy (model-role / prompt / skill / memory / tool / routing / guardrail), fix at the CHEAPEST surface, and pass a validation gate before committing the lesson. Use when: (1) a session exposed a failure and it's unclear which surface owns the fix, (2) you're about to commit a 'lesson' (memory/skill/prompt) and it should be validated first, (3) post-incident review. NOT for: skill-only edits (use skill-evolution), durable user facts (→ wiki/memory), or committing an unverified diagnostic conclusion.
탑솔라 기획조정실 주간업무보고를 위키 프로젝트 데이터로 자동 생성한다 — 소관(팀)별 실시/예정을 격자 양식 PDF로. Use when: 주간업무보고, 주간보고, /weekly, 이번주 업무보고 만들어줘. NOT for: 일일 브리핑(morning-letter), 단건 메일/회의 분석(email-analysis/meeting-minutes).
매일 아침 모닝레터 생성 및 발송. 날씨, 환율, 구리시세, 일정, 메일 요약을 수집해 아침 브리핑을 작성한다. Use when: 모닝레터, morning letter, 아침 브리핑, 오늘의 브리핑, daily briefing. NOT for: 일반 메일 분석, 회신 작성, 장문 회의록 정리.
Evolve and optimize existing skills using autoresearch methodology. Use when: (1) a skill produces suboptimal results, (2) a skill's instructions are outdated or incomplete, (3) systematic improvement of skill quality is requested. NOT for: creating new skills (use skill-factory), cosmetic changes, or skills that already work well.
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
회의·통화·논의 녹음의 전사본을 회의록으로 정리하고 업무 관점에서 분석한다 — 핵심 논의, 결정사항, 액션아이템(담당·기한), 리스크·후속을 드러내고 위키에 남겨 연속성을 만든다. Use when: 회의 녹음 분석, '이 녹음 회의록 만들어줘', 화자분리 전사본이 도착했을 때, 통화/미팅 정리. NOT for: 짧은 음성 메모 받아쓰기, 단순 전사만 필요할 때, 일반 대화.
| name | session-logs |
| version | 1.0.0 |
| category | productivity |
| description | Search and analyze your own session logs (older/parent conversations) using jq. |
| metadata | {"deneb":{"emoji":"📜","requires":{"bins":["jq","rg"]},"tags":["logs","search","history","analysis"]}} |
Search your complete conversation history stored in session JSONL files. Use this when a user references older/parent conversations or asks what was said before.
Use this skill when the user asks about prior chats, parent conversations, or historical context that isn't in memory files.
Session logs live at: ~/.deneb/agents/<agentId>/sessions/ (use the agent=<id> value from the system prompt Runtime line).
sessions.json - Index mapping session keys to session IDs<session-id>.jsonl - Full conversation transcript per sessionEach .jsonl file contains messages with:
type: "session" (metadata) or "message"timestamp: ISO timestampmessage.role: "user", "assistant", or "toolResult"message.content[]: Text, thinking, or tool calls (filter type=="text" for human-readable content)message.usage.cost.total: Cost per responsefor f in ~/.deneb/agents/<agentId>/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
size=$(ls -lh "$f" | awk '{print $5}')
echo "$date $size $(basename $f)"
done | sort -r
for f in ~/.deneb/agents/<agentId>/sessions/*.jsonl; do
head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
done
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
for f in ~/.deneb/agents/<agentId>/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
cost=$(jq -s '[.[] | .message.usage.cost.total // 0] | add' "$f")
echo "$date $cost"
done | awk '{a[$1]+=$2} END {for(d in a) print d, "$"a[d]}' | sort -r
jq -s '{
messages: length,
user: [.[] | select(.message.role == "user")] | length,
assistant: [.[] | select(.message.role == "assistant")] | length,
first: .[0].timestamp,
last: .[-1].timestamp
}' <session>.jsonl
jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn
rg -l "phrase" ~/.deneb/agents/<agentId>/sessions/*.jsonl
head/tail for samplingsessions.json index maps session keys (client:main, cron:<job>, system:<name>, etc.) to session IDs.deleted.<timestamp> suffixjq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.deneb/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'