Agent skill

Ax Narrate

by Necmttn in Necmttn/ax

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).

AGPL-3.0Auto-check passedMedia & Creative

Install Ax Narrate

skills CLI
$ npx skills add Necmttn/ax --skill ax-narrate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Necmttn/ax ax-narrate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/narrate .claude/skills/ax-narrate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ax-narrate
GitHub stars
115
Token cost
~1.7k tokens
SKILL.md length
821 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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).

  • Works in 5 steps: identify the session → reconstruct the story from your own… → choose 3-7 stops, in reading-flow order → …
  • Narrate this session
  • SKILL.md covers Step 1 - identify the session, Step 2 - reconstruct the story…, Step 3 - choose 3-7 stops, in… and Step 4 - write each stop, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Ax Narrate is an agent skill from Necmttn/ax. 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.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative, covering Text to speech and voice. The repository describes itself as: the agent experience layer · observability + memory for AI coding agents (Claude Code + Codex) · local-first, typed, yours. The licence is AGPL-3.0.

When your agent uses it

  • Narrate this session
  • Summarize what changed
  • Write the session story
  • Narrate what we did

Example prompts

  • “narrate this session”
  • “summarize what changed”
  • “write the session story”
  • “/ax-narrate”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. identify the session
  2. reconstruct the story from your own context
  3. choose 3-7 stops, in reading-flow order
  4. write each stop
  5. emit the artifact

What it can do on your machine

Read from SKILL.md and the folder at commit fca259c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ax Narrate loads about 1.7k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 821 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Necmttn/ax at commit fca259c, republished under its AGPL-3.0 licence (© Necmttn). 821 words, ~1,656 tokens.

Download SKILL.mdSave it as .claude/skills/ax-narrate/SKILL.md (or your agent's skills folder).
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.
role
verification

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:
kindrequired fieldsuse for
file_hunkfile, old_text, new_text, label, opt turn_seqa real code change
code_stateartifact, label, lang, code, opt turn_seqthe evolving architecture snapshot
turnturn_seq, labela plain moment in the transcript
user_directionturn_seq, quoteuser steering (not correcting)
correctionturn_seq, quote, outcomeuser correcting course
tool_failureturn_seq, tool, error_excerpt, recoveryconsequential failure
termname, definitiona domain term the story leans on
Show full SKILL.md (308 more words)Show less
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": [ ... ] } ]
}

Before finishing, self-check against the validator's rules:

  • stops non-empty (3-7), every stop's anchors non-empty.
  • Every gist is one sentence; every correction has an outcome; every tool_failure has a recovery; no file_hunk with both sides null or empty.
  • Strings are plain JSON strings (escape newlines in hunks as \n).

Then tell the user where the file landed and give a 2-line summary of the story you wrote. Do not paste the whole JSON into chat.

© Necmttn, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/narrate of Necmttn/ax.

Open the folder on GitHubat commit fca259c

Compare with similar skills

Ax Narrate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ax Narrate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ax Narrate this skillNecmttn/ax115—~1.7kAutomated safety check: PassAGPL-3.0
MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo130k—~2.1kAutomated safety check: WarnMIT
HyperFrames Media Useheygen-com/hyperframes60k—~2.4kAutomated safety check: PassApache-2.0
Openspec OnboardSAP/e-mobility-charging-stations-simulator22725 repos~3.5kAutomated safety check: PassMIT
Blog AudioAgriciDaniel/claude-blog2.3k1 repos~2.2kAutomated safety check: NotesMIT
Musictadaspetra/loop2962 repos~827Automated safety check: PassMIT

Similar skills

  • MoneyPrinterTurbo Video Generator

    harry0703/MoneyPrinterTurbo

    Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.

    130k GitHub stars~2.1k tokensUpdated yesterday
    Media & CreativeAuto-check: warnings
  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    60k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Openspec Onboard

    SAP/e-mobility-charging-stations-simulator

    Official

    Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.

    227 GitHub starsUsed in 25 repos~3.5k tokens
    Media & CreativeAuto-check passed
  • Blog Audio

    AgriciDaniel/claude-blog

    Generate audio narration of blog posts using Google Gemini TTS.

    2.3k GitHub starsUsed in 1 repo~2.2k tokens
    Media & CreativeAuto-check: notes
  • Music

    tadaspetra/loop

    Generate music using ElevenLabs Music API. An agent skill from tadaspetra/loop.

    296 GitHub starsUsed in 2 repos~827 tokens
    Media & CreativeAuto-check passed
  • Create News Video

    hoquanghai/Auto-Create-Video

    Tạo video tin tức ngắn 9:16 (~60s) từ URL bài báo hoặc file .txt tiếng Việt.

    319 GitHub starsUsed in 1 repo~3.7k tokens
    Media & CreativeAuto-check passed

More from Necmttn/ax

All 12 skills in this repo
  • Tune

    Necmttn/ax

    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 proposal.

    115 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Ax Repo

    Necmttn/ax

    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.

    115 GitHub stars~1.8k tokensUpdated 4 days ago
    Auto-check passed
  • Draft or revise ax release announcements and website changelog pages.

    115 GitHub stars~1k tokensUpdated 4 days ago
    Auto-check passed
  • Retro

    Necmttn/ax

    Guided experiment-loop retrospective over the ax agent-experience graph.

    115 GitHub stars~3.5k tokensUpdated 4 days ago
    Auto-check passed
  • Retro Meta

    Necmttn/ax

    Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.

    115 GitHub stars~1.8k tokensUpdated 4 days ago
    Auto-check passed
  • Setup

    Necmttn/ax

    Install + verify ax (the agent experience layer). An agent skill from Necmttn/ax.

    115 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed

Questions about Ax Narrate

What does Ax Narrate do?

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). Ax Narrate is an agent skill from Necmttn/ax. 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).

When should I use Ax Narrate?

Ax Narrate fits situations like: narrate this session; summarize what changed; write the session story; narrate what we did.

How do I install Ax Narrate in Claude Code?

Run `npx skills add Necmttn/ax --skill ax-narrate -a claude-code`. Or copy the skill folder (skills/narrate in Necmttn/ax) into .claude/skills/ax-narrate in your project. Claude Code loads it when a task matches its description.

How do I install Ax Narrate in Codex?

Run `npx skills add Necmttn/ax --skill ax-narrate -a codex`. Or copy the skill folder (skills/narrate in Necmttn/ax) into .agents/skills/ax-narrate in your project. Codex loads it when a task matches its description.

Can I use Ax Narrate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Necmttn/ax --skill ax-narrate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ax-narrate, .gemini/skills/ax-narrate, .github/skills/ax-narrate and .opencode/skills/ax-narrate in your project.

What does Ax Narrate need to run?

SKILL.md names no scripts, command-line tools or credentials: Ax Narrate is instructions for the agent only.

Does Ax Narrate access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ax Narrate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ax Narrate use?

Ax Narrate is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ax Narrate use?

About 1.7k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ax Narrate?

Skills that share tags, products or a category with Ax Narrate: MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 130k stars), HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Openspec Onboard (SAP/e-mobility-charging-stations-simulator, 227 stars) and Blog Audio (AgriciDaniel/claude-blog, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ax Narrate?

Necmttn (a GitHub user) maintains it in Necmttn/ax, which has 115 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.

Source: Necmttn/ax on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.