devlogGenerate narrative blog posts from AI coding session transcripts. Reads session files, selects sessions relevant to a topic, and produces an agent-narrated blog post about the human-agent collaboration. Supports builder's log, tutorial, and technical deep-dive styles.
Install via ClawdBot CLI:
clawdbot install lordshashank/devlogGenerate narrative developer blog posts from human-agent coding session transcripts. The blog is written from the agent's first-person perspective β "I" is the agent, and the human developer is referred to as "my human."
Extract from the user's message:
Determine which platform to scan. Check references/platforms/ for supported platforms β each subdirectory is a platform. Auto-detect from the current environment, or from the user's request.
Load only the relevant platform directory. Each contains a reference file (storage schema, session paths, discovery instructions) and scripts (list-sessions.sh, read-session.sh). Never load all platform references upfront.
Run the platform's list-sessions.sh to scan for matching sessions, OR follow the discovery instructions in the platform reference file manually.
If the platform has no reference directory in references/platforms/, discover sessions manually β check the platform's data/config directories (e.g. ~/.local/share/, ~/.config/, ~/Library/), look for session storage files (JSONL, JSON, SQLite), and inspect the schema to extract the human-agent dialogue. Follow the same filtering principles from Phase 3.
Present the session index to the user for confirmation.
From the session index, determine which sessions are relevant to the user's topic. Read the full transcripts of selected sessions.
When reading transcripts, filter aggressively:
Keep:
Strip:
tool_result content bodies (raw file contents, grep output β 80-90% of token size)Refer to the platform reference file loaded in Phase 2 for platform-specific field names and parsing details.
If filtered transcripts still exceed context, process per-session: generate per-session summaries, then synthesize across sessions. Prioritize the human-agent dialogue over tool call details.
Read references/blog-writing-guide.md for the agent-narrated writing guide. This contains the voice definition, collaboration vocabulary, transcript extraction patterns, and blog structure.
Read the style-appropriate example from examples/:
examples/builders-log.md for builder's log style (default)examples/tutorial.md for tutorial styleexamples/technical.md for technical deep-dive styleLoad assets/devlog-template.md as the blog skeleton. This is a starting structure, not a rigid format β adapt sections, reorder, merge, or drop headings based on what the session transcripts actually contain. A single-session blog may skip phase headings entirely. A heavily iterative session might expand "The Hard Part" into multiple sections. Let the story dictate the shape.
Generate the blog following the writing guide. The blog must be narrated by the agent in first person ("I"), referring to the human developer as "my human." When the session involves architecture, flows, or multi-component interactions, include Mermaid diagrams ( `mermaid code blocks) to visualize the system β see the diagrams section in the writing guide for when and how.
Write the blog to {project}-{topic}-devlog.md in the current working directory, or a user-specified path.
Report: title, word count, sessions included, time span covered, key files referenced.
references/publishing/ for supported platforms. Each subdirectory is a publishing platform.HASHNODE_PAT, HASHNODE_PUBLICATION_ID for Hashnode).export HASHNODE_PAT=... in ~/.zshrc or ~/.bashrc for future sessions. Ask the user to provide the values for the current session.publish.sh with the --cover-image flag. The image should be landscape-oriented (1200Γ630 or similar), visually relevant to the blog topic, and not contain text that duplicates the title. If you don't have image generation capabilities, skip this step β the blog publishes fine without a cover image.publish.sh with the blog file path and title (plus --cover-image if a cover image was generated).| Scenario | Handling |
|---|---|
| No sessions found | Report which paths were scanned. Ask the user to check the project name or provide a path. |
| Ambiguous project match | List matching projects, ask the user to pick. |
| Single session | Simpler structure β no multi-session phase headings needed. |
| Huge session (5000+ lines) | Chunk per-turn-group, summarize sections, then synthesize. |
| Mixed platforms | Merge sessions from multiple platforms chronologically. |
| Subagent transcripts | Skip by default. Main session already references their results. |
| Current session | When the user says "what we just did" β use current session context directly, no JSONL needed. |
| Compacted sessions | Compaction does not delete data. Raw messages remain. Read everything, skip compaction/summary lines. |
| User declines to publish | Skip Phase 6 entirely. The blog file is already saved locally from Phase 5. |
references/platforms/claude-code/ β Claude Code reference + scriptsclaude-code.md β Session paths, JSONL schema, discovery instructionslist-sessions.sh β Scan Claude Code projects for matching sessionsread-session.sh β Extract transcript from Claude Code JSONLreferences/platforms/opencode/ β OpenCode reference + scriptsopencode.md β Storage layout, JSON hierarchy, discovery instructionslist-sessions.sh β Scan OpenCode projects for matching sessionsread-session.sh β Extract transcript from OpenCode's JSON hierarchyreferences/platforms/openclaw/ β OpenClaw reference + scriptsopenclaw.md β Session paths, JSONL schema, discovery instructionslist-sessions.sh β Scan OpenClaw agents for matching sessionsread-session.sh β Extract transcript from OpenClaw JSONLreferences/platforms/codex/ β Codex reference + scriptscodex.md β Rollout file format, JSONL schema, discovery instructionslist-sessions.sh β Scan Codex rollout files for matching sessionsread-session.sh β Extract transcript from Codex rollout JSONLreferences/platforms/gemini-cli/ β Gemini CLI reference + scriptsgemini-cli.md β JSON session format, SHA256 project hashing, discovery instructionslist-sessions.sh β Scan Gemini CLI session files for matching projectsread-session.sh β Extract transcript from Gemini CLI session JSONreferences/blog-writing-guide.md β Voice, collaboration vocabulary, transcript extraction patterns, blog structurereferences/publishing/hashnode/ β Hashnode publishing reference + scripthashnode.md β GraphQL API endpoint, authentication, publishPost mutation, required env varspublish.sh β Publish a markdown file to Hashnode, outputs the post URLexamples/builders-log.md β Builder's log style outputexamples/tutorial.md β Tutorial style outputexamples/technical.md β Technical deep-dive outputassets/devlog-template.md β Blog skeleton templateAI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Provides a 7-step debugging protocol plus language-specific commands to systematically identify, verify, and fix software bugs across multiple environments.
A comprehensive skill for using the Cursor CLI agent for various software engineering tasks (updated for 2026 features, includes tmux automation guide).
Write, run, and manage unit, integration, and E2E tests across TypeScript, Python, and Swift using recommended frameworks.
Control and operate Opencode via slash commands. Use this skill to manage sessions, select models, switch agents (plan/build), and coordinate coding through Opencode.
Coding style memory that adapts to your preferences, conventions, and patterns for consistent coding.