/agent-wiki-summarize
Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/. Use when summarizing one or more saved trajectories into the agent wiki.
$ npx -y skills add AgentToolkit/altk-evolve --skill agent-wiki-summarize --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/agent-wiki-summarize
Context preview
The summary Claude sees to decide when to auto-load this skill.
Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/. Use when summarizing one or more saved trajectories into the agent wiki.
SKILL.md
agent-wiki-summarize.SKILL.mdname: agent-wiki-summarize
description: Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/. Use when summarizing one or more saved trajectories into the agent wiki.
Agent Wiki — Summarize Trajectory
Overview
Witness one session at a time. For each normalized trajectory JSON, author a 1–3 paragraph narrative + key turns + (when present) a classification of each recalled guideline as `followed | ignored | contradicted` with an evidence quote.
This is the per-trajectory **witness** pass of the `agent-wiki` family. It writes one page per session and tail-calls the bookkeeping `catalog` subcommand so indexes stay fresh.
Input
A path that is either:
- a normalized trajectory JSON file
- a directory of such files (recurse one level into `<label>/items/`)
Default if no path is given: `trajectories/normalized`.
Workflow
Step 1: Resolve input files
Use `Glob` to enumerate `*.json`. Accept either a single file, a flat dir of files, or a `normalized/` root with `<label>/items/` subdirs.
Step 2: Glance at existing summaries
`Glob wiki-twobatch/summaries/*.md` so you can skip-if-exists per session without re-doing LLM work. Skip is the default; pass `--rewrite` (forwarded to the helper below) to overwrite.
Step 3: For each trajectory JSON
Read the file. The fields you need:
- `session_id`, `agent`, `model`, `started_at`/`ended_at`/`duration_seconds`
- `stats.top_tools` (for `tools_used`)
- `source.transcript_path`
- `openai_chat_completion.messages`
- `recalled_guidelines` (top-level; may be empty/missing)
If `wiki-twobatch/summaries/<session_id>.md` already exists and the user did not request `--rewrite`, skip to the next file.
Otherwise synthesize a summary as a JSON object:
{
"session_id": "<from JSON>",
"slug": "<optional; for splitting a long session into multiple arc-summaries (e.g. 'arc1-token-savings'). When present, filename becomes <sid>__<slug>.md and frontmatter gains `arc:` plus a `sibling_summaries:` list of co-summaries from the same session.>",
"agent": "<from JSON, default 'claude-code'>",
"model": "<from JSON>",
"goal": "<one short sentence describing what the user asked for>",
"outcome": "success | partial | failure",
"duration_seconds": <number from JSON>,
"tools_used": ["<from stats.top_tools, name only>", "..."],
"narrative": "<1-3 paragraphs: what happened, what worked, what didn't>",
"key_turns": ["<one short bullet per pivotal step>", "..."],
"normalized_path": "<path to the JSON, relative to repo root>",
"transcript_path": "<from source.transcript_path>",
"recalled_guidelines": [
{
"id": "<12-hex-char id of the guideline that was used in this session>",
"title": "<a short label, 3-7 words>",
"status": "followed | ignored | harmful | contradicted",
"evidence": "<verbatim quote ≤200 chars; required for followed/harmful/contradicted>"
}
]
}Rules of thumb:
- `goal` is one sentence; pull from the first user message.
- `outcome` is your judgement.
- `narrative` is short (≤ ~250 words). No fluff.
- `key_turns` is 3–6 bullets at most. Each one sentence.
- Skip `recalled_guidelines` entirely if no guidelines were available or used.
- Quotes must be verbatim (thinking / assistant text / tool_use args / tool_result content); ≤200 chars; ellipsize with `…` if cut.
How `recalled_guidelines` is populated
The `recalled_guidelines` field captures **every wiki guideline the agent saw in this session**. Scan the trajectory for the agent reading guideline files from a wiki dir — `<wiki-root>/guidelines/<slug>__<gid>.md` or `<wiki-root>/guidelines/<slug>__cluster.md` — either via the `Read` tool or via Bash `cat`/`less`/`grep`. Extract each file's id from its YAML frontmatter (`id: <12-hex>`) so the row links to the wiki's `_id_index.json`.
Don't double-count: if the agent reads the same guideline file twice, emit one row.
Status vocabulary (4-way)
You judge the status from **trajectory evidence**, not the agent's self-report:
- **`followed`** — the agent acted on the guideline and the action
produced the intended result. Required `evidence`: a verbatim quote showing the agent applied the rule (citation, paraphrase that triggered a tool call, or a tool call whose form matches the guideline's prescription).
- **`ignored`** — the agent read the guideline file but never acted on
it. No `evidence` needed; default for guidelines that landed in context without effect.
- **`harmful`** — the agent acted on the guideline and it led astray:
wasted tool calls, wrong path, retracted decision, or surfaced a wrong answer that had to be corrected. Required `evidence`: a verbatim quote showing the bad outcome that followed application.
- **`contradicted`** — the agent saw the guideline and deliberately did
the opposite (disagreed with the rule). Required `evidence`: a verbatim quote where the agent's action contradicts the guideline's prescription.
Default to `ignored` when uncertain. Don't assign `followed` or `harmful` without a verbatim evidence quote — those carry signal value only when backed by trajectory text.
Step 4: Pipe the JSON to the helper
echo '<json>' | uv run python explorations/agent-wiki/skills/scripts/build_agent_wiki.py render-summary
Add `--rewrite` to overwrite an existing page. The helper:
- Locates the wiki root (existing `wiki-twobatch/` ancestor, or creates
one next to the nearest `.git/` ancestor).
- Writes `summaries/<session_id>.md` with frontmatter, body, and a `## Sources` footer.
- Resolves each `recalled_guidelines[].id` against `guidelines/_id_index.json` for backlinks.
- Appends one `<wiki-root>/_audit.log` line per recalled guideline.
- Skips if the page already exists unless `--rewrite`.
Step 5: Refresh indexes
After processing all input files, run *
Read more
name: agent-wiki-summarize description: Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/. Use when summarizing one or more saved trajectories into the agent wiki.
Agent Wiki — Summarize Trajectory
Overview
Witness one session at a time. For each normalized trajectory JSON, author a 1–3 paragraph narrative + key turns + (when present) a classification of each recalled guideline as `followed | ignored | contradicted` with an evidence quote.
This is the per-trajectory **witness** pass of the `agent-wiki` family. It writes one page per session and tail-calls the bookkeeping `catalog` subcommand so indexes stay fresh.
Input
A path that is either:
- a normalized trajectory JSON file
- a directory of such files (recurse one level into `<label>/items/`)
Default if no path is given: `trajectories/normalized`.
Workflow
Step 1: Resolve input files
Use `Glob` to enumerate `*.json`. Accept either a single file, a flat dir of files, or a `normalized/` root with `<label>/items/` subdirs.
Step 2: Glance at existing summaries
`Glob wiki-twobatch/summaries/*.md` so you can skip-if-exists per session without re-doing LLM work. Skip is the default; pass `--rewrite` (forwarded to the helper below) to overwrite.
Step 3: For each trajectory JSON
Read the file. The fields you need:
- `session_id`, `agent`, `model`, `started_at`/`ended_at`/`duration_seconds`
- `stats.top_tools` (for `tools_used`)
- `source.transcript_path`
- `openai_chat_completion.messages`
- `recalled_guidelines` (top-level; may be empty/missing)
If `wiki-twobatch/summaries/<session_id>.md` already exists and the user did not request `--rewrite`, skip to the next file.
Otherwise synthesize a summary as a JSON object:
{
"session_id": "<from JSON>",
"slug": "<optional; for splitting a long session into multiple arc-summaries (e.g. 'arc1-token-savings'). When present, filename becomes <sid>__<slug>.md and frontmatter gains `arc:` plus a `sibling_summaries:` list of co-summaries from the same session.>",
"agent": "<from JSON, default 'claude-code'>",
"model": "<from JSON>",
"goal": "<one short sentence describing what the user asked for>",
"outcome": "success | partial | failure",
"duration_seconds": <number from JSON>,
"tools_used": ["<from stats.top_tools, name only>", "..."],
"narrative": "<1-3 paragraphs: what happened, what worked, what didn't>",
"key_turns": ["<one short bullet per pivotal step>", "..."],
"normalized_path": "<path to the JSON, relative to repo root>",
"transcript_path": "<from source.transcript_path>",
"recalled_guidelines": [
{
"id": "<12-hex-char id of the guideline that was used in this session>",
"title": "<a short label, 3-7 words>",
"status": "followed | ignored | harmful | contradicted",
"evidence": "<verbatim quote ≤200 chars; required for followed/harmful/contradicted>"
}
]
}Rules of thumb:
- `goal` is one sentence; pull from the first user message.
- `outcome` is your judgement.
- `narrative` is short (≤ ~250 words). No fluff.
- `key_turns` is 3–6 bullets at most. Each one sentence.
- Skip `recalled_guidelines` entirely if no guidelines were available or used.
- Quotes must be verbatim (thinking / assistant text / tool_use args / tool_result content); ≤200 chars; ellipsize with `…` if cut.
How `recalled_guidelines` is populated
The `recalled_guidelines` field captures **every wiki guideline the agent saw in this session**. Scan the trajectory for the agent reading guideline files from a wiki dir — `<wiki-root>/guidelines/<slug>__<gid>.md` or `<wiki-root>/guidelines/<slug>__cluster.md` — either via the `Read` tool or via Bash `cat`/`less`/`grep`. Extract each file's id from its YAML frontmatter (`id: <12-hex>`) so the row links to the wiki's `_id_index.json`.
Don't double-count: if the agent reads the same guideline file twice, emit one row.
Status vocabulary (4-way)
You judge the status from **trajectory evidence**, not the agent's self-report:
- **`followed`** — the agent acted on the guideline and the action
produced the intended result. Required `evidence`: a verbatim quote showing the agent applied the rule (citation, paraphrase that triggered a tool call, or a tool call whose form matches the guideline's prescription).
- **`ignored`** — the agent read the guideline file but never acted on
it. No `evidence` needed; default for guidelines that landed in context without effect.
- **`harmful`** — the agent acted on the guideline and it led astray:
wasted tool calls, wrong path, retracted decision, or surfaced a wrong answer that had to be corrected. Required `evidence`: a verbatim quote showing the bad outcome that followed application.
- **`contradicted`** — the agent saw the guideline and deliberately did
the opposite (disagreed with the rule). Required `evidence`: a verbatim quote where the agent's action contradicts the guideline's prescription.
Default to `ignored` when uncertain. Don't assign `followed` or `harmful` without a verbatim evidence quote — those carry signal value only when backed by trajectory text.
Step 4: Pipe the JSON to the helper
echo '<json>' | uv run python explorations/agent-wiki/skills/scripts/build_agent_wiki.py render-summary
Add `--rewrite` to overwrite an existing page. The helper:
- Locates the wiki root (existing `wiki-twobatch/` ancestor, or creates
one next to the nearest `.git/` ancestor).
- Writes `summaries/<session_id>.md` with frontmatter, body, and a `## Sources` footer.
- Resolves each `recalled_guidelines[].id` against `guidelines/_id_index.json` for backlinks.
- Appends one `<wiki-root>/_audit.log` line per recalled guideline.
- Skips if the page already exists unless `--rewrite`.
Step 5: Refresh indexes
After processing all input files, run *
Showing the first part of this file.
Blog posts: IBM announcement | Hugging Face blog Coding agents repeat the same mistakes because they start fresh every session. Evolve gives agents memory — they learn from what worked and what didn't, so each session is better than the last.
Repo: AgentToolkit/altk-evolve
Other skills on altk-evolve.
- /agent-wiki-consolidate-guidelines
Read all atomic guidelines in wiki-twobatch/guidelines/ and propose themed clusters that group near-duplicates. Writes cluster pages and updates _config.yaml; originals are preserved with a `superseded_by:` backref.
Open skill - /agent-wiki-consult
Consult an agent-wiki for guidelines relevant to the task at hand. The wiki itself documents how to retrieve from it (AGENTS.md). Use this skill once you know what task or sub-task you're about to do — not at session start.
Open skill - /agent-wiki-extract-guidelines
Read a normalized Claude Code trajectory JSON and extract reusable guidelines into wiki-twobatch/guidelines/. Use when mining saved trajectories for reusable lessons.
Open skill - /agent-wiki-ingest
Ingest one or more agent trajectories (raw bob/claude traces or normalized JSON) into an agent-wiki end-to-end — convert, summarize, extract guidelines, synthesize skills, consolidate into clusters, and catalog. Use when you have a batch of traces to turn into a wiki in one pass.
Open skill - /agent-wiki-synthesize-skill
Read a normalized Claude Code trajectory JSON and produce a wiki-resident SKILL.md page that future agents can invoke. Use when a trajectory captured a non-trivial successful workflow worth promoting from a free-text guideline to an executable, callable artifact.
Open skill - /agent-wiki-tasks
Discover task families across summaries and write per-family comparison pages with findings narrative. Updates wiki-twobatch/_config.yaml task definitions and writes tasks/<slug>__task.md.
Open skill

