Analyze conversation histories from multiple AI tools (Grok, Claude, Codex, Gemini, Qwen, Cursor, Antigravity) and generate themed daily/period work summaries. Filter by date or time window.
62
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/oma-recap/SKILL.mdAnalyze AI tool conversation histories for a given period and generate themed work summaries.
Collect AI tool conversation history for a date or window and synthesize it into a themed, project-oriented recap with saved Markdown output.
oma retrooma dashboardoma statsoma recap --json or fallback sources.agents/results/recap/{date}.md or range filenameoma recap --json~/.claude/history.jsonl.agents/oma-config.yaml for language behavior--date (bare --window is a rolling window ending now, not calendar-aligned).| Action | SSL primitive | Evidence |
|---|---|---|
| Resolve date/window | INFER | Natural-language date rules |
| Collect history | CALL_TOOL | oma recap --json or jq fallback |
| Read extracted records | READ | Conversation history |
| Group themes/projects | INFER | Time/content grouping rules |
| Validate output shape | VALIDATE | Daily or multi-day template |
| Write recap | WRITE | .agents/results/recap/ |
| Report summary | NOTIFY | Displayed recap |
oma recap --jsonjq fallback for Claude historyoma recap --date YYYY-MM-DD --json
oma recap --window 7d --json
oma recap --json # rolling last 24h, not "today"| Scope | Resource target |
|---|---|
LOCAL_FS | Conversation history and recap output files |
PROCESS | oma recap, jq, date commands |
USER_DATA | Conversation prompts and project activity |
MEMORY | Theme grouping and summary notes |
.agents/results/recap/.(AM/PM/Evening HH:MM~HH:MM). AM: .agents/results/recap/.language setting in .agents/oma-config.yaml if configured.— (em dash).Determine the target date or window from the user's natural language input. Default is today.
Resolution rules:
--date YYYY-MM-DD--date YYYY-MM-DD--window Nd--date YYYY-MM-DD (bare --window 1d is a rolling 24-hour window ending now, not the calendar day)Extract normalized conversation history via CLI.
# Today (calendar day, all tools)
oma recap --date $(date +%F) --json
# Last 24 hours (rolling window ending now)
oma recap --json
# Time window (rolling, ends now; capped at 30d)
oma recap --window 7d --json
# Specific date
oma recap --date 2026-04-10 --json
# Tool filter (supported: grok, claude, codex, gemini, qwen, cursor, antigravity)
oma recap --tool claude,codex --jsonFallback when CLI is not installed: process Claude history only via inline jq:
# Uses the system timezone; export TZ=<zone> first to override, and state the
# timezone assumption in the recap (per the Failure and recovery rules).
TARGET_DATE=$(date +%Y-%m-%d)
# macOS/BSD date:
start_ts=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TARGET_DATE} 00:00:00" +%s)000
# Linux/GNU date alternative:
# start_ts=$(date -d "${TARGET_DATE} 00:00:00" +%s)000
end_ts=$((start_ts + 86400000))
jq -r --argjson start "$start_ts" --argjson end "$end_ts" '
select(.timestamp >= $start and .timestamp < $end and .display != null and .display != "") |
{
time: (.timestamp / 1000 | localtime | strftime("%H:%M")),
project: (.project | split("/") | .[-1]),
prompt: (.display | gsub("\n"; " ") | if length > 150 then .[0:150] + "..." else . end)
}
' ~/.claude/history.jsonlRead all extracted data and analyze with the following criteria:
Grouping rules:
Cross-tool analysis:
Extract from each theme:
Save results to .agents/results/recap/{date}.md and display simultaneously.
Use the markdown templates in resources/output-formats.md:
Response language follows language setting in .agents/oma-config.yaml.
Save to .agents/results/recap/{date}.md.
For window ranges, use {start-date}~{end-date}.md format.
# Example paths
.agents/results/recap/2026-04-12.md
.agents/results/recap/2026-04-06~2026-04-12.mdresources/output-formats.mdoma recap --json.agents/results/recap/.agents/oma-config.yaml~/.claude/history.jsonl3021301
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.