
Session To Post
- 76 installs
- 325 repo stars
- Updated August 2, 2026
- athola/claude-night-market
Session-to-post is an agent skill that applies blog and case-study templates to turn session briefs into proof-backed technical posts.
About
Session-to-post is a narrative-structure agent skill from the Claude Night Market writing-quality module. It gives solo builders repeatable markdown templates for transforming a session brief into a dev blog article or a case study, with emphasis on concrete starting states, phased technical decisions, visible verification, and honest remaining work. The default blog flow discourages filler intros, pushes numbers in the “where we started” section, and reserves code snippets for techniques worth teaching. A dedicated verification section expects proof artifacts—test output, before/after measurements, GIFs from terminal or browser recordings—so readers trust the claim. The case study variant skews toward demonstrating tool capability to prospects while sharing the same rigor. Use it after a meaningful build or migration session when you want distribution without sounding like generic AI hype. Intermediate complexity reflects the need for real session artifacts, not invented metrics.
- Default blog post template with opener, starting state, phased build sections, verification, results table, and what's l
- Separate case study format aimed at marketing and prospect-facing proof
- Verification section mandates test output, measurements, and scry-style terminal or browser recordings
- Results table pattern: before/after metrics with concrete numbers not adjectives
- Writing-quality module (~450 estimated tokens) with narrative-structure category
Session To Post by the numbers
- 76 all-time installs (skills.sh)
- Ranked #1,200 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/athola/claude-night-market --skill session-to-postAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 76 |
|---|---|
| repo stars | ★ 325 |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 2, 2026 |
| Repository | athola/claude-night-market ↗ |
What it does
Install when you turn an agent or build session brief into a credible dev blog post or case study with proof, metrics tables, and honest scope left.
Who is it for?
Best when you're documenting migrations, agent-assisted builds, or tool evaluations on personal or engineering blogs.
Skip if: Pure SEO landing copy with no technical narrative, or posts when you lack any real before/after numbers or verification artifacts.
When should I use this skill?
You have a session brief or build recap to publish as a blog post or case study with structured sections and proof.
What you get
You get a publication-ready outline or draft following Night Market narrative patterns, with sections for proof, results tables, and embedded recordings where assets exist.
- Blog post or case study markdown draft from session input
- Results table and what's-left checklist aligned to actual session state
By the numbers
- estimated_tokens: 450
- two post formats: blog post and case study
Files
Session to Post
Capture what happened in a Claude Code session and turn it into a blog post, case study, or social media thread that others can learn from.
The skill extracts the real story from git history, file changes, and conversation context, then shapes it into a narrative that shows process, not just results.
When To Use
- After completing a meaningful chunk of work you want to share
- Creating dev blog content from real sessions
- Building case studies for tools, libraries, or techniques
- Producing marketing content that demonstrates capability
- Documenting a process for teammates who weren't in the session
- Sharing a session story with a Reddit community (r/programming,
r/rust, r/Python, r/ClaudeAI, etc.)
When NOT To Use
- Writing API reference documentation (use
scribe:doc-generator) - Creating step-by-step tutorials (use
scribe:tech-tutorial) - Cleaning up existing prose (use
scribe:slop-detector) - Internal project documentation (use
sanctum:doc-updates)
Integration Points
This skill connects to several others in the ecosystem. Use them when the post needs more than prose.
| Need | Skill | What it adds |
|---|---|---|
| Terminal demo GIF | scry:vhs-recording | Record a build/test run as an animated GIF |
| Browser demo GIF | scry:browser-recording | Capture a web UI walkthrough via Playwright |
| Composite media | scry:media-composition | Stitch terminal and browser GIFs side-by-side |
| Proof of claims | imbue:proof-of-work | Verify every number in the post with evidence |
| Code quality narrative | pensive:code-refinement | Describe what was cleaned up and why |
| Review narrative | imbue:structured-review | Capture review findings as post content |
| Change summary | imbue:catchup | Summarize what changed for the post's "The Work" section |
| Diff analysis | imbue:diff-analysis | Risk-scored change breakdown for technical audiences |
Recording Integration (scry)
When the post describes something visual (a running app, a test suite, a build pipeline) capture it instead of describing it.
Terminal recordings (build output, test runs, CLI demos):
Invoke Skill(scry:vhs-recording) with a tape that runs:
make test → shows 180 tests passing
make play → shows the build + server startupBrowser recordings (web apps, rendered output):
Invoke Skill(scry:browser-recording) with a Playwright spec that:
navigates to the app
interacts with it
captures the resultComposition (side-by-side before/after, terminal and browser):
Invoke Skill(scry:media-composition) to stitch recordings into
a single visual that tells the story.Place generated GIFs in docs/posts/assets/ and reference them from the markdown with relative paths.
Proof-of-Work Integration (imbue)
Every claim in the post should be verifiable. Before finalizing:
Invoke Skill(imbue:proof-of-work) to:
- Tag each claim with [E1], [E2], etc.
- Run verification commands
- Report PASS / FAIL / BLOCKEDThis prevents publishing posts with stale numbers or broken examples.
Methodology
Step 1: Extract Session Context
Load the session-extraction module for the full checklist.
Gather raw material from what actually happened:
1. Git history: commits since the session started:
git log --oneline --since="<session_start>" --stat2. File inventory: what was created and changed:
git diff --stat <start_commit>..HEAD3. Test results: concrete evidence of what works:
cargo test # or the project's test command4. Metrics: scope and scale:
find . -name "*.rs" -not -path "*/target/*" | xargs wc -l5. Conversation context: the user's goals, constraints, and decisions made during the session
Step 2: Identify the Story
Every session post answers three questions:
1. What were we trying to do?: the goal, not the task list 2. What did we actually do?: the real path, including pivots 3. What came out of it?: concrete, measurable results
Look for:
- The hook: what makes this interesting? A hard problem, a
surprising approach, an impressive result
- Turning points: where did the plan change? What broke?
What worked unexpectedly?
- The number: one metric that captures the outcome
(lines written, tests passing, performance gain, time saved)
Step 3: Draft the Post
Choose format first:
| Format | Module | When |
|---|---|---|
| Blog post | narrative-structure | Dev blog, company blog, personal site |
| Case study | narrative-structure | Marketing, tool demonstrations |
| Social thread | narrative-structure | Twitter/X, Bluesky, LinkedIn |
| Reddit post | reddit-format | Community engagement, r/programming etc. |
For Reddit: load modules/reddit-format.md instead of the blog template below. The structure, tone, and quality gate differ.
Load the narrative-structure module for blog/case-study templates.
Blog post structure (adapt to content):
# Title: [Verb] + [What] + [With What]
## Opening (2-3 sentences)
What we set out to do and why. No throat-clearing.
## Starting Point
Where things stood before. Concrete: file counts, code state,
what worked and what didn't.
## The Work
Key phases. Focus on decisions and pivots, not keystrokes.
- Phase 1: [what and why]
- Phase 2: [what and why]
Include GIFs from scry recordings where visual.
## How We Tested It
What verification looked like. Show the test run, the proof-of-work
evidence. Include terminal recording GIF of tests passing.
## Results
Hard numbers. Before/after. What works now.
Screenshots or browser recording GIF if visual.
## What's Next
Honest remaining work. No false completeness.Tone:
- Write like explaining to a colleague over coffee
- Specifics over adjectives ("180 tests" not "comprehensive suite")
- Show the mess: readers connect with pivots and debugging
- Credit the tools and techniques that made it work
- Under 1500 words unless the content demands more
Step 4: Quality Gate
For blog posts and case studies: 1. Slop check: Skill(scribe:slop-detector) on the draft 2. Proof-of-work: Skill(imbue:proof-of-work) on all claims 3. Recording check: does any section need a GIF? 4. Title test: would you click this? Does it promise something specific? 5. Opening test: does paragraph one say what the post is about?
For Reddit posts (additional gates): 1. TL;DR present: is it after --- at the end? 2. Lede not buried: is the most interesting thing in the first two sentences? 3. Subreddit fit: does the content match the target subreddit's norms? Check the subreddit's top posts of the month. 4. First comment drafted: are the repo link and any reference material ready to post as a follow-up comment? 5. Header count: if the post is under 600 words, are headers absent (or replaced with bold inline labels)?
Step 5: Output
Write the post to the requested location (default: docs/posts/).
Report:
- Format used (blog post / case study / Reddit post)
- Word count
- Slop score (blog/case-study only)
- Verifiable claims count
- Recordings generated (if any)
- For Reddit: target subreddit and first-comment content
Example
A session that ported a Quake 2 engine from C to Rust:
Title: Rewriting a Quake 2 Engine in Rust with Claude Code
>
Opening: We took a 150,000-line C game engine and started
rewriting it in Rust targeting WebAssembly. In one session we went
from an empty workspace to a prototype loading real game data in
the browser.
>
Starting point: A Yamagi Quake II fork compiled with Emscripten.
Goal: idiomatic Rust with wasm-bindgen, glow for WebGL2, and
matchbox for P2P multiplayer.
>
The work: Seven parallel agents built subsystems (collision,
movement, filesystem, networking, renderer, server, client) while
the main session coordinated integration. A Makefile with
prerequisite checks automated the full build-to-browser pipeline
including game data download.
>
How we tested: 180 unit tests across 13 crates. BSP loading
verified against real Quake 2 demo pak0.pak. Browser diagnostics
logged every init step. [Terminal GIF: make test output]>
Results: 10,950 lines of Rust, 180 tests, real game data
loading and flat-shaded BSP rendering in the browser with WASD
movement and mouse look.
>
What's next: Textured rendering, collision debugging, sound,
menus, multiplayer.
Every claim is checkable: line counts from wc -l, test counts from cargo test, file counts from filesystem log output.
Exit Criteria
- [ ] Format selected (blog post, case study, or Reddit post)
- [ ] Session brief compiled from git history and conversation
context
- [ ] Draft written to
docs/posts/(or specified path) - [ ] For blog/case-study: slop score reported, all claims
tagged with evidence references
- [ ] For Reddit: TL;DR present, lede in first two sentences,
target subreddit identified, first comment drafted
- [ ] Word count and verifiable claim count reported
- [ ] Incomplete or unverifiable claims are flagged, not silently
dropped
Narrative Structure
Templates and patterns for turning a session brief into a post.
Post Formats
Blog Post (default)
Best for: dev blogs, company engineering blogs, personal sites.
# [Verb]ing [What] [With/In/Using What]
[2-3 sentence opener. State what was done and the headline result.
No "In this post we will...": just say the thing.]
## Where We Started
[Concrete starting state. Numbers, not adjectives.
"A 150K-line C codebase" not "a large legacy codebase."]
## What We Built
### [Phase/Decision 1 name]
[What and why. 2-4 sentences. Code snippet only if it
illustrates a technique worth sharing.]
### [Phase/Decision 2 name]
[Same pattern. Focus on the interesting parts; skip
anything a reader could guess.]

## How We Verified It
[Show the proof. Test output, before/after measurements,
screenshots. This is where recordings from scry belong.]

## Results
| Metric | Before | After |
|--------|--------|-------|
| Lines of code | 0 | 10,950 |
| Tests passing | 0 | 180 |
| Build target | Emscripten | wasm-pack |
## What's Left
[Honest list. Readers respect knowing what isn't done.]
- [ ] Remaining item 1
- [ ] Remaining item 2Case Study
Best for: marketing, demonstrating tool capability to prospects.
# [Outcome]: [How]
## The Challenge
[1 paragraph. What problem needed solving and why it was hard.]
## The Approach
[Walk through the method. Emphasize decisions, not steps.
Show how the tool/technique enabled the outcome.]
## The Evidence
[Hard numbers. Before/after. Screenshots and recordings.]
## Key Takeaways
1. [Insight that generalizes beyond this project]
2. [Insight about the tool or technique]
3. [What would change if doing it again]Social Thread
Best for: Twitter/X, Bluesky, LinkedIn.
1/ [Hook: the result in one sentence]
2/ Starting point: [concrete state before]
3/ The approach: [key technique in 1-2 sentences]
4/ [The interesting part: a decision, a pivot, a surprise]
5/ Results: [numbers]
6/ What's next: [honest assessment]
[Attach: GIF from scry recording, screenshot of output]Writing Rules
1. Lead with the result, not the process 2. One number per section minimum: ground every claim 3. Show, don't summarize: a GIF of tests passing says more than "we wrote comprehensive tests" 4. Name the tools: readers want to know how, not just what 5. Include a pivot: straight-line success stories aren't believable or interesting 6. End with honesty: what's unfinished, what you'd change
Title Patterns That Work
[Verb]ing [Big Thing] in [Constraint]
e.g. "Porting a Game Engine to Rust in One Session"
How We [Achieved Result] with [Tool/Technique]
e.g. "How We Hit 180 Tests in 3 Hours with Parallel Agents"
[Number] [Things] I Learned [Doing X]
e.g. "5 Things I Learned Rewriting C as Rust for WebAssembly"
From [State A] to [State B]: [How]
e.g. "From Empty Repo to Playable Game: A Claude Code Session"
Anti-Patterns
- "In this blog post, we will explore...": skip the preamble
- "It's worth noting that...": if it's worth noting, just note it
- Listing every file changed: nobody cares about the full diff
- Explaining things the audience already knows
- Screenshots of code when a link to the repo would do
- Claiming something works without showing evidence
Reddit Post Format
Templates and rules for turning a session brief into a Reddit text post that earns upvotes through specificity and honesty.
When Reddit, When Blog
Choose Reddit when:
- You want community engagement (questions, discussion, feedback)
- The work fits a specific subreddit's current interests
- The story is worth starting a conversation, not just archiving
Choose blog when:
- You want permanent, search-indexed content you own
- The post will be linked from documentation or READMEs
- It needs a stable URL for future reference
Subreddit Targeting
Match the primary technology or theme to one subreddit. Avoid cross-posting within 48 hours; it triggers spam filters and community backlash.
| Subreddit | When to post |
|---|---|
| r/programming | general software development stories |
| r/rust | Rust code, tooling, ecosystem |
| r/Python | Python projects, libraries, tools |
| r/webdev | web development, frontend, full stack |
| r/devops | infrastructure, CI/CD, deployment |
| r/ClaudeAI | Claude Code usage, AI-assisted dev |
| r/ExperiencedDevs | technical depth, process, architecture |
| r/MachineLearning | ML systems, training, inference |
Post Structure
Reddit text posts have no required format, but this pattern works for session stories:
Hook (first 2 sentences): the most interesting outcome or observation. Do not bury the lede. Readers who stop scrolling past line 3 are gone.
Context (1-2 sentences): what you were trying to do and why.
The work (2-4 paragraphs): what you built or changed. Name the tools and techniques. Include one code block if it shows something surprising or non-obvious.
Result: numbers. What works now that did not before.
Honest close: what remains, what you would change, what surprised you. This is what makes the post worth bookmarking.
---
TL;DR (required): the whole story in 2-3 sentences. Place it after a --- separator at the bottom. Readers who skip to the end first are your secondary audience; do not disappoint them.
Title Patterns
The title is the entire hook. Test it with: "would someone who knows nothing about this click it?"
I [did thing] with [tool] — here's what I learnedBuilt [thing] in [constraint] — [surprising number][Surprising result]: how we [achieved it]Show r/[subreddit]: [what you built] ([brief description])[Honest take on tool] after [real production use case]
Keep under 120 characters. The title must work without the body.
Writing Rules
1. First person: "I built" not "we built" unless the team matters to the story 2. No section headers for posts under 600 words; above that, use one level of bold headers only 3. One code block maximum in the body; link the rest to a repo or Gist 4. TL;DR is required: after ---, at the end 5. Under 600 words for most posts; if longer, reconsider whether a blog post is the better medium 6. Conversational close: "happy to answer questions about X in the comments" gives readers a reason to engage
Anti-Patterns
- Copy-pasting your blog post: the tone is wrong and readers notice
- Burying the lede: starting with context before the interesting part
- Screenshot of code instead of a fenced code block
- No TL;DR on anything over 300 words
- "In conclusion...": just end the post
- Excessive bold/italic throughout: signals AI-generated content
First Comment Strategy
For technical posts, plan a follow-up comment before posting. Use it for:
- Full code links (repo URL, Gist)
- Setup instructions that would bloat the post body
- Benchmarks or test output that are reference material, not story
Write this comment in the quality gate step and post it immediately after the main post goes live.
Session Extraction Checklist
Run these commands and capture the output. This is the raw material the narrative is built from.
Git History
# Commits this session (adjust date/hash as needed)
git log --oneline --stat HEAD~20..HEAD
# Files changed summary
git diff --stat <start_commit>..HEAD
# Diff size
git diff --shortstat <start_commit>..HEADCapture: commit messages, files touched, insertions/deletions.
Codebase Metrics
# Lines of code (adjust extension for language)
find . -name "*.rs" -not -path "*/target/*" | xargs wc -l | tail -1
find . -name "*.py" -not -path "*venv*" | xargs wc -l | tail -1
find . -name "*.ts" -not -path "*node_modules*" | xargs wc -l | tail -1
# File count
find . -name "*.rs" -not -path "*/target/*" | wc -l
# Test count
cargo test 2>&1 | grep "test result"
# or: pytest --co -q 2>&1 | tail -1
# or: npm test 2>&1 | grep "Tests:"Capture: total lines, file count, test count and pass/fail.
Architecture
# Directory tree (depth 3)
find . -type d -not -path "*/target/*" -not -path "*node_modules*" \
-maxdepth 3 | sort
# Key config files
cat Cargo.toml # or package.json, pyproject.tomlCapture: project structure, dependency count, crate/package organization.
Build and Runtime
# Build output (note timing)
time cargo build --release 2>&1 | tail -5
# Binary/artifact size
ls -lh target/release/*.wasm dist/*.html 2>/dev/nullCapture: build time, artifact sizes.
Conversation Context
These come from the session itself, not from commands:
- Initial goal: what the user asked for
- Constraints: time, tech stack, compatibility requirements
- Key decisions: why X over Y at each fork
- Pivots: where the plan changed and why
- Blockers hit: what went wrong and how it was resolved
- Tools used: parallel agents, specific skills invoked
Output Format
Compile extraction results into a structured brief:
## Session Brief
**Goal**: [one sentence]
**Duration**: [approximate]
**Starting state**: [what existed before]
### Metrics
- Lines written: X
- Files created/modified: Y
- Tests: Z passing
### Key commits
1. [hash] [message]: [significance]
2. ...
### Decisions
1. [decision] because [reason]
2. ...
### Pivots
1. [what changed] because [what happened]
2. ...Related skills
How it compares
Use instead of ad-hoc chat summarization when you need a fixed dev-blog arc with verification and honest backlog—not a generic social thread.
FAQ
Who is session-to-post for?
Developers and tiny teams who ship in public and want session work reframed as trustworthy technical writing with metrics and proof.
When should I use session-to-post?
Use it in Grow for content and lifecycle storytelling; in Launch for distribution after a ship milestone; and in Build docs when capturing implementation decisions right after the session.
Is session-to-post safe to install?
It is a writing template skill without mandatory network calls; review the Security Audits panel on this Prism page and never fabricate metrics the skill expects you to supply honestly.