ax-narrate
Write the agent-generated narration of the current session - the reviewable story of what changed, including what never reaches a PR (user corrections…
Skill by Necmttn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/necmttn-ax-narrate
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ax-narrate
What's inside
- Skill name
ax-narrate- Description
- Write the agent-generated narration of the current session - the reviewable story of what changed, including what never reaches a PR (user corrections, abandoned attempts, tool failures). Triggers on "narrate this session", "summarize what changed", "write the session story", "narrate what we did", "session narration". Output is .ax/narrations/<session-id>.json for the ax studio narration view. Do NOT fire on "summarize this file" or generic recap questions answered inline - this skill writes a structured artifact.
- License
- AGPL-3.0
- Instructions
- 133 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "ax-narrate" does not match folder "narrate"
Files (1)
- SKILL.md
SKILL.md (first lines)
# ax:narrate - write the session's story as a structured narration
You were there. This skill turns YOUR OWN memory of the session into a
reviewable artifact: 3-7 stops in reading-flow order, each anchored to
real evidence - code hunks, turn numbers, user quotes, failures. The
point is to capture what a PR diff never shows: the corrections, the
dead ends, the recoveries.
The artifact validates against `SessionNarration` in
`apps/studio/src/routes/narration-types.ts` and renders in ax studio.
## Step 1 - identify the session
- Preferred: `ax sessions here --days=1 --json` and pick the current
session's id (the one matching this conversation). Use the short id.
- If `ax` is unavailable or the session isn't ingested yet, derive a
slug: `<repo>-<YYYYMMDD-HHmm>`. Note in `meta` that turn seqs are
best-effort ordinals in that case.
- If available, `ax sessions show <id> --json` gives you the real turn
seqs to anchor against. Prefer real seqs over guesses.
## Step 2 - reconstruct the story from your own context
Re-read the conversation in your head before writing anything:
1. What did the user originally ask for? (intent)
2. What existed before, what exists now? (before/after)
3. Where did the user redirect or correct you? EVERY one of these
becomes a `correction` anchor. No exceptions.
4. Which tool failures actually mattered (changed your approach, cost
real time, forced a workaround)? Each becomes a `tool_failure`
anchor. Skip trivial retries that changed nothing.
5. Which attempts were abandoned? They get a stop or at least a
`turn` anchor - abandonment is part of the story.
## Step 3 - choose 3-7 stops, in reading-flow order
A stop is a LOGICAL unit of change, not a file. If three files changed
for one reason, that is ONE stop with several anchors. Order rules
(stolen from the code-tour playbook because they work):
- Entry point first: the change that, understood alone, unlocks the rest.
- Cause before effect: the correction comes before the code it caused.
- Definitions before consumers: types/schema stops before usage stops.
- Verification last: tests, typecheck, and the failures hit on the way.
- Combine trivial housekeeping into one final stop, or omit it.
## Step 4 - write each stop
- **title**: short and friendly. "Call counts become a char diffstat",
not "Changes to files-touched.ts".
- **gist**: ONE sentence. Not two. A reader who reads nothing else must
get the stop from the gist. Conversational, the way you'd say it to
a colleague.
- **detail**: 2-4 sentences of markdown (paragraphs, `inline code`,
**bold**). Say WHY the change looks the way it does; "we did X
instead of Y because Z" is exactly what the reader wants.
- **transition**: a short connective phrase to the next stop; empty
string `""` for the last stop.
- **anchors**: MUST be non-empty. An unanchored stop is an unsupported
claim. Anchor kinds:
| kind | required fields | use for |
|---|---|---|
| `file_hunk` | `file`, `old_text`, `new_text`, `label`, opt `turn_seq` | a real code change |
| `code_state` | `artifact`, `label`, `lang`, `code`, opt `turn_seq` | the evolving architecture snapshot |
| `turn` | `turn_seq`, `label` | a plain moment in the transcript |
| `user_direction` | `turn_seq`, `quote` | user steering (not correcting) |
| `correction` | `turn_seq`, `quote`, `outcome` | user correcting course |
| `tool_failure` | `turn_seq`, `tool`, `error_excerpt`, `recovery` | consequential failure |
| `term` | `name`, `definition` | a domain term the story leans on |
### Hard anchor rules
- `file_hunk` carries VERBATIM old/new fragments from the actual edits
you made - copy the real text, never paraphrase code. Keep hunks
short (5-15 lines per side); pick the most telling fragment, not the
whole edit. `old_text: null` for pure insertions, `new_text: null`
for pure deletions. Never both null.
- Every user correction/redirect in the session gets a `correction`
anchor with a verbatim (trimmed) `quote` and a concrete `outcome` -
what actually changed because of it.
- Every consequential tool failure gets a `tool_failure` anchor with a
real `error_excerpt` and how you recovered (or `"abandoned"`).
- Never fabricate turn seqs. Use `ax sessions show` seqs when you have
them; otherwise count user turns from the start of the conversation
and say so in the detail.
- `code_state` is the architecture spine of the narration: pick ONE
stable `artifact` id (e.g. `"review-architecture"`) and restate the
FULL snapshot at each stop where the design moved - pseudo-code of
types/interfaces, how they compose, and the call stack (plan-style:
`Caller -> Callee // note`). Consecutive snapshots of the same
artifact animate token-by-token in studio, so KEEP shared lines
byte-identical between stops and let only the real delta differ - a
new method, a renamed shape, an added edge case. Use `code_state`
for the evolving design; use `file_hunk` for one-off code jumps
(those render as static before/after diffs, not motion).
## Step 5 - emit the artifact
Write `.ax/narrations/<session-id>.json` (create the directory if
needed) with exactly this top-level shape:
```json
{
"schema_version": 1,
"kind": "narration",
"meta": {
"session_id": "<id>",
"generated_at": "<ISO-8601 now>",
"generator": "skill",
"model": "<your model id>"
},
"title": "...",
"intent": "...",
"before": "...",
"after": "...",
"stops": [ { "title": "...", "gist": "...", "detail": "...", "transition": "...", "anchors": [ ... ] } ]
}From Necmttn/ax, AGPL-3.0.
More from Necmttn/ax
- 0.785score
tune
Necmttn
Retrospective on one coding session that proposes changes to the agent's environment (hooks, checks, steering files, tool access) and files each as an ax…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-repo
Necmttn
Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the `gh` CLI.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
efficient-dispatch
Necmttn
Model-routing orchestration for any expensive frontier model (Fable, Opus, GPT-5.x) - the main model keeps judgment and Q&A review, mechanical subagent…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
release-announcement
Necmttn
Draft or revise ax release announcements and website changelog pages.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro
Necmttn
Guided experiment-loop retrospective over the ax agent-experience graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro-meta
Necmttn
Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
setup
Necmttn
Install + verify ax (the agent experience layer).
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ship-checklist
Necmttn
Definition-of-done checklist for shipping a new write, signal, table, edge, or query to the ax graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-add-ingest-stage
Necmttn
Use when adding a new ingest stage or a new SurrealDB table to the ax graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-extract-workflow
Necmttn
Reconstruct the workflow behind a past artifact - "what made X work" / "extract workflow from <date|sha>" / "how did we ship Y".
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
dojo
Necmttn
Surplus-quota training loop over the ax graph - the agent burns the remaining 5h/7d plan-quota window on self-improvement: locking pending verdicts, filling…
SkillAFreshness: A★ 122Claude Code +9
Signals
- Stars
- 122
- Forks
- 15
- Open issues
- 39
- Last commit (this folder)
- Jun 11, 2026 (4 months ago)
- Last release
- Oct 2, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/Necmttn/ax
- Website
- ax.necmttn.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Necmttn
- 0.785score
tune
Necmttn
Retrospective on one coding session that proposes changes to the agent's environment (hooks, checks, steering files, tool access) and files each as an ax…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-repo
Necmttn
Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the `gh` CLI.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
efficient-dispatch
Necmttn
Model-routing orchestration for any expensive frontier model (Fable, Opus, GPT-5.x) - the main model keeps judgment and Q&A review, mechanical subagent…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
release-announcement
Necmttn
Draft or revise ax release announcements and website changelog pages.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro
Necmttn
Guided experiment-loop retrospective over the ax agent-experience graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro-meta
Necmttn
Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.
SkillAFreshness: A★ 122Claude Code +9
Cite this page
ax-narrate skill. Agent Mart. https://agentmart.dev/skills/necmttn-ax-narrate (last updated 2026-10-24)