# Ots Summarize

> After tick-hour, read .source.jsonl, apply the host-switch filter, write summary and saliency. Edition A (host CLI) or B (API key). Does not touch the snapshot.

- Skill: `spillwavesolutions/ots-summarize` (Agent Skill)
- Install (CLI): `npx skillmds@latest add spillwavesolutions/ots-summarize`
- Raw SKILL.md: https://api.skillmd.com/api/skills/spillwavesolutions/ots-summarize/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: spillwavesolutions (https://skillmd.com/u/spillwavesolutions)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/spillwavesolutions/ots-summarize

---


```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/ots" summarize \
  --period 2026-08-21T14 \
  --author "$SECOND_BRAIN_IDENTITY" \
  --bundle "$SECOND_BRAIN_ROOT"
```

The model runs **inline** (Edition A or B from `okf/temporal/tailer.json`). No hidden queue. Scheduler is the user's cron — `ots print-cron` prints suggested lines.

Edition A (no API key) always passes the pinned cheapest model:

- Claude Code: `claude -p --model claude-haiku-4-5`
- Codex: `codex exec -m gpt-5.6-luna`
- Grok Build: `grok --model grok-4-fast -p`

Missing CLI or wrong model fails loudly. Sonnet / Sol / Terra / any non-pin fails closed. Never use the session default. No silent fallback to Edition B.

Edition B: `ANTHROPIC_API_KEY` → `claude-haiku-4-5`; `OPENAI_API_KEY` → `gpt-5.6-luna`. Same prompt and files.

Tests / air-gapped:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/ots" summarize \
  --period 2026-08-21T14 \
  --author "$SECOND_BRAIN_IDENTITY" \
  --bundle "$SECOND_BRAIN_ROOT" \
  --stub
```

`--model-cmd` is an explicit override, not Edition B.

Inspect (no model call):

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/ots" sessions list --period 2026-08-21T14 --bundle "$SECOND_BRAIN_ROOT"
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/ots" sessions show --id software_engineer__local__001 --bundle "$SECOND_BRAIN_ROOT"
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/ots" summarize --status --period 2026-08-21T14 --bundle "$SECOND_BRAIN_ROOT"
```

Filter (not stored): user prompt + final assistant; skip `tool_result`. Never rewrite `.source.jsonl`. Overnight pointers stay out of scope.

