GreptimeDB Release Runbook
GreptimeTeam/greptimedb
Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.
Trace when a bug was introduced, find the root cause commit, understand why it happened, and produce a structured post-mortem report.
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hanamizuki/solopreneur post-mortem --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/solopreneur/post-mortem .claude/skills/post-mortem && rm -rf skills-srcUse ~/.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/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .claude/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortemType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hanamizuki/solopreneur post-mortem --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/solopreneur/post-mortem .agents/skills/post-mortem && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .agents/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hanamizuki/solopreneur post-mortem --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/solopreneur/post-mortem .cursor/skills/post-mortem && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .cursor/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hanamizuki/solopreneur.git --path skills/solopreneur/post-mortem--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hanamizuki/solopreneur post-mortem --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/solopreneur/post-mortem .gemini/skills/post-mortem && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .gemini/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hanamizuki/solopreneur post-mortemInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/solopreneur/post-mortem .github/skills/post-mortem && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .github/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hanamizuki/solopreneur --skill post-mortem -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hanamizuki/solopreneur post-mortem --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/solopreneur/post-mortem .opencode/skills/post-mortem && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "post-mortem" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/post-mortem into .opencode/skills/post-mortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "post-mortem", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
post-mortemTrace when a bug was introduced, find the root cause commit, understand why it happened, and produce a structured post-mortem report.
Post Mortem is an agent skill from hanamizuki/solopreneur. Trace when a bug was introduced, find the root cause commit, understand why it happened, and produce a structured post-mortem report. Use when the user says "post-mortem", "trace this bug", "when was this regression introduced", "find the root cause commit", "what commit broke this", or when they describe a crash/bug that appeared in a specific version. Works with any git repository.
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 DevOps & Cloud, covering Runbooks and postmortems and Root cause analysis. It works with Git. The repository describes itself as: Skills and agents for solopreneurs — ship, review, debug, and think through problems with AI. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f43f001. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Post Mortem loads about 1.7k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 574 words of instructions outside code blocks.
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.
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.
The full file from hanamizuki/solopreneur at commit f43f001, republished under its MIT licence (© hanamizuki). 574 words, ~1,683 tokens.
.claude/skills/post-mortem/SKILL.md (or your agent's skills folder).Given a bug description, trace through git history to find when it was introduced, identify the root cause, and produce a structured report.
Code is truth — user-provided clues are just search starting points.
Users typically only know the symptoms, suspect a feature, or recall a related PR. These are valuable leads but cannot be taken at face value. Your job is to verify against actual git diffs, not follow assumptions blindly.
The fix commit is the most reliable root cause guide.
If a fix commit exists (merged or on another branch), find it first. The person who fixed it usually understood the problem — what they changed and what they wrote in the commit message often directly reveals what broke and why. Then trace backward to find when the broken code was introduced.
Collect from the user:
Good version does not need to come from the user — it's usually the previous release / tag / stable commit. Derive it from git log yourself.
# Resolve version / tag / branch to a definite commit hash
git rev-parse <bad_version>
# Find the previous good version (last release commit)
git log --oneline --format="%h %ad %s" --date=short <bad_commit>~20..<bad_commit>
# List all commits between the two versions (to understand scope of changes)
git log --oneline --format="%h %ad %s" --date=short <good_commit>..<bad_commit> --reverseBefore searching for the introduction, find the fix. The fix commit's diff and message are the most reliable root cause guide — they directly show what was replaced and why.
# Search for fix commits after the bad version
git log --oneline --grep="fix\|hotfix\|patch\|revert" <bad>..HEAD
# If the user mentioned a fix branch, look at it directly
git log --oneline <fix_branch> --not main | head -10
git show <fix_commit_hash>When reading the fix commit, focus on:
With this information, proceed to Phase 4 to find when the broken code was introduced.
Now that you know "what code is the problem", find "when this code first appeared":
# Trace change history of the specific file
git log --oneline -- path/to/file
# View a specific commit's changes to that file
git show <commit_hash> -- path/to/file
# Compare good and bad versions to confirm when the problematic code appeared
git diff <good_commit>..<bad_commit> -- path/to/fileSometimes the root cause was planted in the "good version" but didn't trigger on its own — it only manifested when a later change increased call frequency, data volume, or altered timing.
In this case:
Criterion: if the "suspicious commit" you found in the version window cannot logically explain the crash mechanism, widen your search to earlier commits.
# Expand to earlier history
git log --oneline <good_commit>~30..<bad_commit> -- path/to/fileWhen this happens, the report should explain both:
If the bug hasn't been fixed yet, fall back to keyword search:
# Search for suspicious commits by symptom keywords
git log --oneline --grep="<feature_keyword>" <good>..<bad>
# Diff suspicious commits directly
git show <commit_hash> -- path/to/file
# Use pickaxe to search for additions/removals of specific strings
git log -S "suspicious_function_name" <good>..<bad>After finding a suspicious change, ask yourself: "Can this change logically cause the symptoms the user described?" You need a clear logical explanation, not gut feeling. If you can't explain it, keep looking.
Output a markdown report in the following format. Adapt headings and wording to fit the actual situation — don't copy the template verbatim.
## Post-mortem: [one-line bug description]
### Root Cause (TL;DR)
[1-2 sentences: what change caused the bug and why. Get straight to the point.]
### Timeline
| Date | Commit | Event |
|------|--------|-------|
| YYYY-MM-DD HH:MM | `xxxxxxx` | Bug introduced — [commit title] |
| YYYY-MM-DD HH:MM | `xxxxxxx` | [Affected version] released (exposure begins) |
| YYYY-MM-DD HH:MM | `xxxxxxx` | Bug fixed — [commit title] |
| YYYY-MM-DD HH:MM | `xxxxxxx` | [Fix version] released (exposure ends) |
**Exposure window**: X hours / X days
### The Change That Introduced the Bug
[Explain the original intent of the PR / commit]
// Bad: this code caused the issue
<problematic code snippet>
[Explain why this code causes the crash / bug]
### The Fix
[Explain the fix approach]
// Fixed
<fixed code snippet or description of fix direction>
### Root Cause Analysis
[Explain why this bug appeared at this time — not just "what code", but "why it
wasn't caught"]
### Prevention Measures
- [ ] [Specific action item]
- [ ] [Another action item]
[Each action item should be specific and trackable. Don't write vague things like
"add more tests" — write something like "add integration test for
HealthKitManager.requestAuthorization verifying typesToRead excludes correlation
types".]After outputting the report, ask the user if they want to save it:
Save this report to a file? Suggested path:
docs/post-mortem/YYYY-MM-DD-[short-bug-description].md
If the user agrees, save to the corresponding path.
© hanamizuki, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/solopreneur/post-mortem of hanamizuki/solopreneur.
Open the folder on GitHubat commit f43f001
Post Mortem 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Post Mortem this skillhanamizuki/solopreneur | 152 | — | ~1.7k | Automated safety check: Pass | MIT | |
| GreptimeDB Release RunbookGreptimeTeam/greptimedb | 6.7k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Post-Incident DebriefVeryGoodOpenSource/vgv-wingspan | 109 | — | ~1.9k | Automated safety check: Pass | MIT | |
| CI Failure Triage and RepairChachamaru127/claude-code-harness | 3.2k | 1 repos | ~1.1k | Automated safety check: Notes | MIT | |
| Post Mortemthananon/9arm-skills | 3.2k | — | ~3.4k | Automated safety check: Pass | None | |
| Release Processscragnog/HOT-Step-CPP | 171 | — | ~5.1k | Automated safety check: Pass | MIT |
GreptimeTeam/greptimedb
Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.
VeryGoodOpenSource/vgv-wingspan
Produces a blameless post-incident debrief with timeline, root cause and follow-up actions after an outage, failed release or significant bug, while details are fresh.
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
thananon/9arm-skills
Write the canonical engineering record of a fixed bug — root cause, mechanism, fix, validation, and how it slipped through.
scragnog/HOT-Step-CPP
Runbook for cutting and publishing a HOT-Step CPP release via a v git tag that triggers the multi-platform CI build and drafts a GitHub Release.
different-ai/openwork
Traces an opaque production error in an OpenWork build to its cause using local server logs and Sentry, names the regressing PR and files a report.
hanamizuki/solopreneur
Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and…
hanamizuki/solopreneur
A skill your agent uses when building iOS/macOS apps with SwiftUI — covers localization (String Catalogs), date/time formatting, JSON date decoding, Previews, state management, sheet/navigation…
hanamizuki/solopreneur
LinkedIn organic growth consultant — diagnoses profiles, discusses goals, and co-creates a personalized 90-day growth plan.
hanamizuki/solopreneur
Switch perspectives to think through problems using the mental models of ten iconic thinkers: Elon Musk, Richard Feynman, Charlie Munger, Naval Ravikant, Steve Jobs, Nassim Taleb, Ilya Sutskever…
hanamizuki/solopreneur
Create brand-aware presentations using frontend-slides or reveal.js.
hanamizuki/solopreneur
X/Twitter growth consultant — diagnoses profiles, discusses goals, and co-creates a personalized growth plan.
Works with
Categories
Trace when a bug was introduced, find the root cause commit, understand why it happened, and produce a structured post-mortem report. Post Mortem is an agent skill from hanamizuki/solopreneur. Trace when a bug was introduced, find the root cause commit, understand why it happened, and produce a structured post-mortem report.
Post Mortem fits situations like: the user says post-mortem; was this regression introduced; find the root cause commit; what commit broke this.
Run `npx skills add hanamizuki/solopreneur --skill post-mortem -a claude-code`. Or copy the skill folder (skills/solopreneur/post-mortem in hanamizuki/solopreneur) into .claude/skills/post-mortem in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hanamizuki/solopreneur --skill post-mortem -a codex`. Or copy the skill folder (skills/solopreneur/post-mortem in hanamizuki/solopreneur) into .agents/skills/post-mortem in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hanamizuki/solopreneur --skill post-mortem -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/post-mortem, .gemini/skills/post-mortem, .github/skills/post-mortem and .opencode/skills/post-mortem in your project.
Going by SKILL.md and its folder, Post Mortem needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Post Mortem is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Post Mortem: GreptimeDB Release Runbook (GreptimeTeam/greptimedb, 6.7k stars), Post-Incident Debrief (VeryGoodOpenSource/vgv-wingspan, 109 stars), CI Failure Triage and Repair (Chachamaru127/claude-code-harness, 3.2k stars) and Post Mortem (thananon/9arm-skills, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hanamizuki (a GitHub user) maintains it in hanamizuki/solopreneur, which has 152 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on September 26, 2026.
Source: hanamizuki/solopreneur on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.