<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gh-velocity</title><link>https://gh-velocity.org/</link><description>Recent content on gh-velocity</description><generator>Hugo</generator><language>en</language><atom:link href="https://gh-velocity.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Definitions</title><link>https://gh-velocity.org/concepts/terminology/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/concepts/terminology/</guid><description>&lt;h1 id="definitions"&gt;Definitions&lt;a class="anchor" href="#definitions"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;gh-velocity is a command-line tool that measures development velocity and quality from GitHub data. It works at a terminal, in GitHub Actions, or in any automation platform -- it is not specific to CI.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="measurement-axes"&gt;Measurement axes&lt;a class="anchor" href="#measurement-axes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Four independent axes control what gh-velocity measures and how. &lt;strong&gt;Scope&lt;/strong&gt; and &lt;strong&gt;lifecycle&lt;/strong&gt; filter &lt;em&gt;which&lt;/em&gt; items to measure. &lt;strong&gt;Iteration&lt;/strong&gt; and &lt;strong&gt;effort&lt;/strong&gt; control &lt;em&gt;how&lt;/em&gt; velocity is computed. They combine freely -- changing one does not affect the others.&lt;/p&gt;</description></item><item><title>Interpreting Results</title><link>https://gh-velocity.org/guides/interpreting-results/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/interpreting-results/</guid><description>&lt;h1 id="interpreting-results"&gt;Interpreting Results&lt;a class="anchor" href="#interpreting-results"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;gh-velocity produces output in four formats: pretty (default), JSON, markdown, and HTML. Each format contains the same data, structured for different consumers. This guide explains how to read the output, what healthy metrics look like, and what common patterns mean.&lt;/p&gt;
&lt;h2 id="reading-your-output"&gt;Reading your output&lt;a class="anchor" href="#reading-your-output"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="output-formats-at-a-glance"&gt;Output formats at a glance&lt;a class="anchor" href="#output-formats-at-a-glance"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Format&lt;/th&gt;
 &lt;th&gt;Best for&lt;/th&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Pretty&lt;/td&gt;
 &lt;td&gt;Terminal reading, quick checks&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--results pretty&lt;/code&gt; (default)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;JSON&lt;/td&gt;
 &lt;td&gt;Agents, scripts, &lt;code&gt;jq&lt;/code&gt; pipelines, CI&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--results json&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Markdown&lt;/td&gt;
 &lt;td&gt;Pasting into issues, PRs, Discussions&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--results markdown&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HTML&lt;/td&gt;
 &lt;td&gt;Self-contained report files&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--results html&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All commands accept &lt;code&gt;--results&lt;/code&gt; (or &lt;code&gt;-r&lt;/code&gt;). If you omit it, you get pretty.&lt;/p&gt;</description></item><item><title>Lead Time</title><link>https://gh-velocity.org/reference/metrics/lead-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/lead-time/</guid><description>&lt;h1 id="lead-time"&gt;Lead Time&lt;a class="anchor" href="#lead-time"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Lead time is the total elapsed time from issue creation to closure. It includes time in backlog, waiting for prioritization, blocked by dependencies, in active development, in review, and waiting for release.&lt;/p&gt;
&lt;h2 id="definition"&gt;Definition&lt;a class="anchor" href="#definition"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;lead_time = issue.closed_at - issue.created_at&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Start signal&lt;/strong&gt;: &lt;code&gt;issue-created&lt;/code&gt; -- the timestamp when the GitHub issue was opened.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;End signal&lt;/strong&gt;: &lt;code&gt;issue-closed&lt;/code&gt; -- the timestamp when the issue was closed (by any means: a merged PR, manual close, or bot).&lt;/p&gt;</description></item><item><title>Quick Start</title><link>https://gh-velocity.org/getting-started/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/getting-started/quick-start/</guid><description>&lt;h1 id="quick-start"&gt;Quick Start&lt;a class="anchor" href="#quick-start"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Install gh-velocity and run your first metrics in under 5 minutes.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="anchor" href="#prerequisites"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://cli.github.com/"&gt;GitHub CLI&lt;/a&gt; must be installed and authenticated:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Install (macOS shown -- see gh docs for Linux/Windows)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install gh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Authenticate&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh auth login&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Private repos require at least &lt;code&gt;repo&lt;/code&gt; scope. Public repos work without special scopes.&lt;/p&gt;
&lt;h2 id="install"&gt;Install&lt;a class="anchor" href="#install"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh extension install dvhthomas/gh-velocity&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Verify it works:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="generate-a-config-file"&gt;Generate a config file&lt;a class="anchor" href="#generate-a-config-file"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All metric commands require a &lt;code&gt;.gh-velocity.yml&lt;/code&gt; file. The &lt;code&gt;preflight&lt;/code&gt; command analyzes your repo and generates one:&lt;/p&gt;</description></item><item><title>Cycle Time</title><link>https://gh-velocity.org/reference/metrics/cycle-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/cycle-time/</guid><description>&lt;h1 id="cycle-time"&gt;Cycle Time&lt;a class="anchor" href="#cycle-time"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Cycle time measures how long active work took on an issue. Unlike &lt;a href="https://gh-velocity.org/reference/metrics/lead-time/"&gt;lead time&lt;/a&gt;, which includes all waiting time from creation, cycle time starts when work begins.&lt;/p&gt;
&lt;p&gt;Two strategies detect when work starts.&lt;/p&gt;
&lt;h2 id="what-it-tells-you"&gt;What it tells you&lt;a class="anchor" href="#what-it-tells-you"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cycle time reveals how long active work takes, stripped of backlog wait time. A low, consistent cycle time means the team delivers quickly once work begins. High variability suggests inconsistent scope or frequent context-switching.&lt;/p&gt;</description></item><item><title>GitHub's Capabilities &amp; Limits</title><link>https://gh-velocity.org/concepts/github-capabilities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/concepts/github-capabilities/</guid><description>&lt;h1 id="what-github-can-and-cannot-tell-you"&gt;What GitHub Can and Cannot Tell You&lt;a class="anchor" href="#what-github-can-and-cannot-tell-you"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;gh-velocity computes metrics directly from the GitHub API. That means zero setup, but also means the tool is constrained to what the API exposes. This page covers what works, what has rough edges, and what is fundamentally impossible.&lt;/p&gt;
&lt;h2 id="what-works-well"&gt;What works well&lt;a class="anchor" href="#what-works-well"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Issue lifecycle.&lt;/strong&gt; Creation and closure dates are precise and always available. Lead time (created to closed) is the most reliable metric.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PR merge timestamps.&lt;/strong&gt; The search API returns exact merge dates. The &lt;code&gt;pr-link&lt;/code&gt; strategy uses these to find PRs merged within a release window, giving you accurate release composition.&lt;/p&gt;</description></item><item><title>How It Works</title><link>https://gh-velocity.org/getting-started/how-it-works/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/getting-started/how-it-works/</guid><description>&lt;h1 id="how-it-works"&gt;How It Works&lt;a class="anchor" href="#how-it-works"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;gh-velocity&lt;/code&gt; reads artifacts your team already produces -- issues, pull requests, labels, releases -- and turns them into metrics. No data warehouse, no tracking integration, no per-seat subscription. Everything comes from the GitHub API.&lt;/p&gt;
&lt;p&gt;Commands are organized by the question they answer:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Command group&lt;/th&gt;
 &lt;th&gt;Question it answers&lt;/th&gt;
 &lt;th&gt;Examples&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;flow&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;How fast is work flowing?&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;flow lead-time&lt;/code&gt;, &lt;code&gt;flow cycle-time&lt;/code&gt;, &lt;code&gt;flow throughput&lt;/code&gt;, &lt;code&gt;flow velocity&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;quality&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Is this code good?&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;quality release&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;What's happening right now?&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;status wip&lt;/code&gt;, &lt;code&gt;status my-week&lt;/code&gt;, &lt;code&gt;status reviews&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;report&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Give me the full picture&lt;/td&gt;
 &lt;td&gt;Composite dashboard of flow + quality&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;config&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;How do I set this up?&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;config preflight&lt;/code&gt;, &lt;code&gt;config validate&lt;/code&gt;, &lt;code&gt;config show&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="the-lifecycle-of-an-issue"&gt;The lifecycle of an issue&lt;a class="anchor" href="#the-lifecycle-of-an-issue"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every issue follows a &lt;strong&gt;lifecycle&lt;/strong&gt; -- stages from creation to completion. Each transition produces a timestamp that maps to a metric:&lt;/p&gt;</description></item><item><title>Setting Up Flow Velocity</title><link>https://gh-velocity.org/guides/velocity-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/velocity-setup/</guid><description>&lt;h1 id="setting-up-flow-velocity"&gt;Setting Up Flow Velocity&lt;a class="anchor" href="#setting-up-flow-velocity"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;flow velocity&lt;/code&gt; command measures &lt;a href="https://gh-velocity.org/concepts/terminology/#effort"&gt;effort&lt;/a&gt; completed per &lt;a href="https://gh-velocity.org/concepts/terminology/#iteration"&gt;iteration&lt;/a&gt; -- a number, not a ratio. It answers &amp;quot;how much work did we ship this period?&amp;quot; in effort units. A related metric, completion rate (done / committed), measures predictability. Both appear in the output. For the metric definition and formula, see the &lt;a href="https://gh-velocity.org/reference/metrics/velocity/"&gt;Velocity reference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Iteration and effort are independent of &lt;a href="https://gh-velocity.org/concepts/terminology/"&gt;scope and lifecycle&lt;/a&gt; -- they control &lt;em&gt;how&lt;/em&gt; velocity is computed, not &lt;em&gt;which&lt;/em&gt; items are measured. See &lt;a href="https://gh-velocity.org/concepts/terminology/"&gt;Definitions&lt;/a&gt; for details.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://gh-velocity.org/getting-started/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/getting-started/configuration/</guid><description>&lt;h1 id="configuration"&gt;Configuration&lt;a class="anchor" href="#configuration"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;All metric commands require a &lt;code&gt;.gh-velocity.yml&lt;/code&gt; file. Run &lt;code&gt;gh velocity config preflight --write&lt;/code&gt; to generate one. This page covers first-time setup; see &lt;a href="https://gh-velocity.org/reference/config/"&gt;Configuration Reference&lt;/a&gt; for the full schema.&lt;/p&gt;
&lt;h2 id="generate-a-config-with-preflight"&gt;Generate a config with preflight&lt;a class="anchor" href="#generate-a-config-with-preflight"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Let preflight inspect your repo and generate a tailored config:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd your-repo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity config preflight --write&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Preflight examines labels, project boards, and recent activity, then generates a &lt;code&gt;.gh-velocity.yml&lt;/code&gt; with &lt;strong&gt;matchers&lt;/strong&gt; (patterns like &lt;code&gt;label:bug&lt;/code&gt; that classify issues), lifecycle labels, and project board settings.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://gh-velocity.org/reference/config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/config/</guid><description>&lt;h1 id="configuration-reference"&gt;Configuration Reference&lt;a class="anchor" href="#configuration-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Complete reference for &lt;code&gt;.gh-velocity.yml&lt;/code&gt; fields, types, defaults, and validation rules.&lt;/p&gt;
&lt;p&gt;All metric commands require a &lt;code&gt;.gh-velocity.yml&lt;/code&gt; file. Run &lt;code&gt;gh velocity config preflight --write&lt;/code&gt; to generate one, or create one manually in your repository root. Use &lt;code&gt;--config&lt;/code&gt; to point to an alternate path. Every field is optional -- the tool uses sensible defaults for anything omitted.&lt;/p&gt;
&lt;p&gt;To generate a config tailored to your repository:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity config preflight &lt;span style="color:#75715e"&gt;# preview to stdout (from inside your repo)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity config preflight --write &lt;span style="color:#75715e"&gt;# save to .gh-velocity.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity config preflight -R cli/cli &lt;span style="color:#75715e"&gt;# analyze a remote repo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To validate an existing config:&lt;/p&gt;</description></item><item><title>Cycle Time Setup</title><link>https://gh-velocity.org/guides/cycle-time-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/cycle-time-setup/</guid><description>&lt;h1 id="cycle-time-setup"&gt;Cycle Time Setup&lt;a class="anchor" href="#cycle-time-setup"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Cycle time measures how long active work took on an issue, excluding backlog time (unlike &lt;a href="https://gh-velocity.org/reference/metrics/lead-time/"&gt;lead time&lt;/a&gt;, which measures full elapsed duration from creation to close). The measurement depends on your configured strategy. For the metric definition and formula, see the &lt;a href="https://gh-velocity.org/reference/metrics/cycle-time/"&gt;Cycle Time reference&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="choosing-a-strategy"&gt;Choosing a strategy&lt;a class="anchor" href="#choosing-a-strategy"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are two cycle time strategies. Choose based on your workflow.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Your workflow&lt;/th&gt;
 &lt;th&gt;Recommended strategy&lt;/th&gt;
 &lt;th&gt;Why&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Issues with lifecycle labels&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;issue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Measures real work time (label applied to closed); immutable timestamps&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PRs close issues (most OSS repos)&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;pr&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Measures PR review time (created to merged)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Issues only, no labels or PRs&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;issue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Lead time works immediately; add an &lt;code&gt;in-progress&lt;/code&gt; label for cycle time&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The PR strategy requires zero setup; the issue strategy gives richer data but requires label discipline.&lt;/p&gt;</description></item><item><title>Understanding Statistics</title><link>https://gh-velocity.org/concepts/statistics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/concepts/statistics/</guid><description>&lt;h1 id="understanding-the-statistics"&gt;Understanding the Statistics&lt;a class="anchor" href="#understanding-the-statistics"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;gh-velocity reports several statistical measures for lead time, cycle time, and release lag. This page explains what each means and why it matters, without assuming a statistics background.&lt;/p&gt;
&lt;h2 id="why-median-over-mean"&gt;Why median over mean&lt;a class="anchor" href="#why-median-over-mean"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lead times are almost always skewed: most issues close in days or weeks, but a few ancient issues closed during a release pull the average up. The median (the middle value when sorted) resists this distortion.&lt;/p&gt;</description></item><item><title>Velocity</title><link>https://gh-velocity.org/reference/metrics/velocity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/velocity/</guid><description>&lt;h1 id="velocity"&gt;Velocity&lt;a class="anchor" href="#velocity"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Velocity measures effort completed per iteration (sprint). It tracks how much work finishes each cycle to reveal trends and consistency.&lt;/p&gt;
&lt;h2 id="definition"&gt;Definition&lt;a class="anchor" href="#definition"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;velocity = sum(effort) for items completed in the iteration
completion_rate = velocity / committed_effort * 100&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Velocity&lt;/strong&gt; is the total effort of items that are &amp;quot;done&amp;quot; within an iteration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Committed effort&lt;/strong&gt; is the total effort of all items assigned to the iteration (done or not).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Completion rate&lt;/strong&gt; is the percentage of committed effort that was actually completed. If committed effort is 0, completion rate is omitted.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An item is &amp;quot;done&amp;quot; when:&lt;/p&gt;</description></item><item><title>API Consumption</title><link>https://gh-velocity.org/reference/api-consumption/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/api-consumption/</guid><description>&lt;h1 id="api-consumption"&gt;API Consumption&lt;a class="anchor" href="#api-consumption"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;How gh-velocity uses the GitHub API: rate limits, per-command costs, caching, and optimization.&lt;/p&gt;
&lt;h2 id="api-types-used"&gt;API types used&lt;a class="anchor" href="#api-types-used"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;gh-velocity uses two GitHub API interfaces:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;API&lt;/th&gt;
 &lt;th&gt;Rate limit&lt;/th&gt;
 &lt;th&gt;Used for&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;REST Search API&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;30 requests/minute, 1000 results/query&lt;/td&gt;
 &lt;td&gt;Finding issues, PRs by date range, scope, lifecycle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;GraphQL API&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;5,000 points/hour&lt;/td&gt;
 &lt;td&gt;Project board data, timeline events, closing references, iteration fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The Search API is the primary bottleneck. Each paginated search query (up to 10 pages of 100 results) counts as one request per page against the 30/minute limit.&lt;/p&gt;</description></item><item><title>CI Setup</title><link>https://gh-velocity.org/getting-started/ci-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/getting-started/ci-setup/</guid><description>&lt;h1 id="ci--github-actions-setup"&gt;CI / GitHub Actions Setup&lt;a class="anchor" href="#ci--github-actions-setup"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Run gh-velocity in CI to post automated reports on releases, PRs, and schedules.&lt;/p&gt;
&lt;h2 id="how-authentication-works"&gt;How authentication works&lt;a class="anchor" href="#how-authentication-works"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;gh-velocity uses the &lt;code&gt;GH_TOKEN&lt;/code&gt; environment variable for all GitHub API calls -- the same variable that powers the &lt;code&gt;gh&lt;/code&gt; CLI. Locally, &lt;code&gt;gh auth login&lt;/code&gt; handles this. In CI, set &lt;code&gt;GH_TOKEN&lt;/code&gt; in your workflow. See &lt;a href="https://gh-velocity.org/getting-started/configuration/#token-permissions"&gt;Token permissions&lt;/a&gt; for what each token can access.&lt;/p&gt;
&lt;h2 id="token-setup"&gt;Token setup&lt;a class="anchor" href="#token-setup"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The default &lt;code&gt;GITHUB_TOKEN&lt;/code&gt; works for most commands. However, &lt;strong&gt;&lt;code&gt;GITHUB_TOKEN&lt;/code&gt; cannot access Projects v2 boards&lt;/strong&gt; -- a GitHub platform limitation.&lt;/p&gt;</description></item><item><title>Linking Strategies</title><link>https://gh-velocity.org/concepts/linking-strategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/concepts/linking-strategies/</guid><description>&lt;h1 id="linking-strategies"&gt;Linking Strategies&lt;a class="anchor" href="#linking-strategies"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;quality release&lt;/code&gt; command determines which issues belong to a release. Different teams use different workflows, and no single method works everywhere, so gh-velocity uses three strategies and merges the results.&lt;/p&gt;
&lt;h2 id="connecting-prs-to-issues"&gt;Connecting PRs to issues&lt;a class="anchor" href="#connecting-prs-to-issues"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GitHub tracks PR-to-issue connections through timeline events. A PR becomes linked to an issue when you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write &lt;code&gt;Fixes #42&lt;/code&gt;, &lt;code&gt;Closes #42&lt;/code&gt;, or &lt;code&gt;Resolves #42&lt;/code&gt; in the PR description&lt;/li&gt;
&lt;li&gt;Use GitHub's sidebar &amp;quot;Development&amp;quot; section to link a PR to an issue&lt;/li&gt;
&lt;li&gt;Mention &lt;code&gt;#42&lt;/code&gt; anywhere in the PR (creates a cross-reference event)&lt;/li&gt;
&lt;li&gt;Use any casing variation: &lt;code&gt;fix #42&lt;/code&gt;, &lt;code&gt;close #42&lt;/code&gt;, &lt;code&gt;resolve #42&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PR does &lt;strong&gt;not&lt;/strong&gt; need to be merged, closed, or even out of draft. A draft PR that mentions an issue is enough.&lt;/p&gt;</description></item><item><title>Posting Reports</title><link>https://gh-velocity.org/guides/posting-reports/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/posting-reports/</guid><description>&lt;h1 id="posting-reports"&gt;Posting Reports&lt;a class="anchor" href="#posting-reports"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;gh-velocity posts metrics directly to GitHub via the &lt;code&gt;--post&lt;/code&gt; flag. Bulk commands (&lt;code&gt;report&lt;/code&gt;, &lt;code&gt;quality release&lt;/code&gt;) post to GitHub Discussions; single-item commands (&lt;code&gt;flow lead-time 42&lt;/code&gt;) post as issue/PR comments.&lt;/p&gt;
&lt;h2 id="the---post-flag"&gt;The --post flag&lt;a class="anchor" href="#the---post-flag"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every command supports &lt;code&gt;--post&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity report --since 30d --post
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v1.2.0 --post
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity flow lead-time &lt;span style="color:#ae81ff"&gt;42&lt;/span&gt; --post&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By default, &lt;code&gt;--post&lt;/code&gt; runs in &lt;strong&gt;dry-run mode&lt;/strong&gt; -- it shows what would be posted without writing to GitHub. To post for real, set &lt;code&gt;GH_VELOCITY_POST_LIVE&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Throughput</title><link>https://gh-velocity.org/reference/metrics/throughput/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/throughput/</guid><description>&lt;h1 id="throughput"&gt;Throughput&lt;a class="anchor" href="#throughput"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Throughput counts issues closed and PRs merged within a time window -- the simplest measure of delivery rate.&lt;/p&gt;
&lt;h2 id="definition"&gt;Definition&lt;a class="anchor" href="#definition"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;throughput_issues = count(issues closed in window)
throughput_prs = count(PRs merged in window)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unweighted: every closed issue and every merged PR counts as 1, regardless of size, complexity, or effort.&lt;/p&gt;
&lt;h2 id="throughput-vs-velocity"&gt;Throughput vs. velocity&lt;a class="anchor" href="#throughput-vs-velocity"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Throughput and &lt;a href="https://gh-velocity.org/reference/metrics/velocity/"&gt;velocity&lt;/a&gt; both measure output, but they differ in two ways:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Dimension&lt;/th&gt;
 &lt;th&gt;Throughput&lt;/th&gt;
 &lt;th&gt;Velocity&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Weighting&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Every item = 1&lt;/td&gt;
 &lt;td&gt;Items weighted by effort strategy (count, attribute, or numeric)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Time boundary&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Arbitrary date range (&lt;code&gt;--since&lt;/code&gt; / &lt;code&gt;--until&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Iteration-aligned (sprint boundaries)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Throughput is useful without sprints or effort estimates. Velocity is useful for tracking effort-weighted output across consistent iteration boundaries.&lt;/p&gt;</description></item><item><title>Agent Integration</title><link>https://gh-velocity.org/guides/agent-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/agent-integration/</guid><description>&lt;h1 id="agent-integration"&gt;Agent Integration&lt;a class="anchor" href="#agent-integration"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Every gh-velocity command supports &lt;code&gt;--results json&lt;/code&gt; for structured output, making it composable with LLM agents, CI scripts, and data pipelines.&lt;/p&gt;
&lt;h2 id="json-output-structure"&gt;JSON output structure&lt;a class="anchor" href="#json-output-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every command produces up to four layers of data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stats&lt;/strong&gt; — aggregate numbers (top-level keys like &lt;code&gt;lead_time&lt;/code&gt;, &lt;code&gt;cycle_time&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail&lt;/strong&gt; — per-item breakdowns (the &lt;code&gt;issues&lt;/code&gt; array)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insights&lt;/strong&gt; — observations with severity (the &lt;code&gt;insights&lt;/code&gt; array)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provenance&lt;/strong&gt; — how the output was produced (the &lt;code&gt;provenance&lt;/code&gt; object)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;report&lt;/code&gt; command emits stats only. Standalone commands emit all four layers. Details:&lt;/p&gt;</description></item><item><title>Labels as Lifecycle Signal</title><link>https://gh-velocity.org/concepts/labels-vs-board/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/concepts/labels-vs-board/</guid><description>&lt;h1 id="labels-are-the-lifecycle-signal"&gt;Labels Are the Lifecycle Signal&lt;a class="anchor" href="#labels-are-the-lifecycle-signal"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Labels are the sole source of truth for lifecycle and cycle-time signals in gh-velocity. Project boards remain useful for velocity reads (iteration tracking, effort fields) but play no role in lifecycle or cycle-time measurement.&lt;/p&gt;
&lt;h2 id="why-labels-won"&gt;Why labels won&lt;a class="anchor" href="#why-labels-won"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Label event timestamps (&lt;code&gt;LABELED_EVENT.createdAt&lt;/code&gt;) are &lt;strong&gt;immutable&lt;/strong&gt;. Once a label is applied, the timestamp never changes -- not when the label is removed, not when it is re-added, not when anything else changes. The first application is permanently recorded.&lt;/p&gt;</description></item><item><title>Quality</title><link>https://gh-velocity.org/reference/metrics/quality/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/quality/</guid><description>&lt;h1 id="quality-metrics"&gt;Quality Metrics&lt;a class="anchor" href="#quality-metrics"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Quality metrics analyze the composition and health of a release. They answer: &amp;quot;What did this release contain, and how healthy was the release process?&amp;quot;&lt;/p&gt;
&lt;h2 id="what-this-tells-you"&gt;What this tells you&lt;a class="anchor" href="#what-this-tells-you"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;These metrics reveal whether the team is shipping improvements or fighting fires. A rising bug ratio signals growing technical debt. Frequent hotfixes suggest inadequate testing or overly aggressive release schedules. High release lag means finished work sits unreleased, increasing the risk of stale branches and merge conflicts.&lt;/p&gt;</description></item><item><title>Ad Hoc Queries</title><link>https://gh-velocity.org/guides/ad-hoc-queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/ad-hoc-queries/</guid><description>&lt;h1 id="ad-hoc-queries"&gt;Ad Hoc Queries&lt;a class="anchor" href="#ad-hoc-queries"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Practical patterns for common gh-velocity tasks.&lt;/p&gt;
&lt;h2 id="compare-two-releases"&gt;Compare two releases&lt;a class="anchor" href="#compare-two-releases"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v2.0.0 --results json &amp;gt; v2.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v1.9.0 --results json &amp;gt; v1.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;v1.9.0 median lead time: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;jq -r &lt;span style="color:#e6db74"&gt;&amp;#39;.aggregates.lead_time.median_seconds / 86400 | round | &amp;#34;\(.)d&amp;#34;&amp;#39;&lt;/span&gt; v1.json&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;v2.0.0 median lead time: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;jq -r &lt;span style="color:#e6db74"&gt;&amp;#39;.aggregates.lead_time.median_seconds / 86400 | round | &amp;#34;\(.)d&amp;#34;&amp;#39;&lt;/span&gt; v2.json&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Compare bug ratios:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;v1.9.0 bug ratio: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;jq -r &lt;span style="color:#e6db74"&gt;&amp;#39;.composition.bug_ratio * 100 | round | &amp;#34;\(.)%&amp;#34;&amp;#39;&lt;/span&gt; v1.json&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;v2.0.0 bug ratio: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;jq -r &lt;span style="color:#e6db74"&gt;&amp;#39;.composition.bug_ratio * 100 | round | &amp;#34;\(.)%&amp;#34;&amp;#39;&lt;/span&gt; v2.json&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="find-your-slowest-issues"&gt;Find your slowest issues&lt;a class="anchor" href="#find-your-slowest-issues"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v1.2.0 --results json | &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jq -r &lt;span style="color:#e6db74"&gt;&amp;#39;.issues | sort_by(-.lead_time_seconds) | .[0:5] | .[] |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;#\(.number) \(.title[0:40]) -- \(.lead_time_seconds / 86400 | round)d&amp;#34;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="check-label-coverage-before-a-release"&gt;Check label coverage before a release&lt;a class="anchor" href="#check-label-coverage-before-a-release"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v1.2.0 --results json | &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jq &lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#34;Bug: \(.composition.bug_count), Feature: \(.composition.feature_count), Unlabeled: \(.composition.other_count)&amp;#34;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If &lt;code&gt;other_count&lt;/code&gt; is high, label your issues before publishing the release. Run &lt;code&gt;gh velocity config preflight&lt;/code&gt; to discover available labels and generate matching category matchers.&lt;/p&gt;</description></item><item><title>Staleness</title><link>https://gh-velocity.org/reference/metrics/staleness/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/metrics/staleness/</guid><description>&lt;h1 id="staleness"&gt;Staleness&lt;a class="anchor" href="#staleness"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Staleness measures how recently a work item had activity. It applies to open items in the WIP report.&lt;/p&gt;
&lt;h2 id="signals"&gt;Signals&lt;a class="anchor" href="#signals"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Signal&lt;/th&gt;
 &lt;th&gt;Threshold&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ACTIVE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Updated &amp;lt; 3 days ago&lt;/td&gt;
 &lt;td&gt;Normal activity, no concern&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;AGING&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Updated 3-7 days ago&lt;/td&gt;
 &lt;td&gt;May need attention&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;STALE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Updated &amp;gt; 7 days ago&lt;/td&gt;
 &lt;td&gt;Likely blocked or abandoned&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="calculation"&gt;Calculation&lt;a class="anchor" href="#calculation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;staleness = now - item.updated_at&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;updated_at&lt;/code&gt; is GitHub's last activity timestamp (comments, commits, label changes, status changes)&lt;/li&gt;
&lt;li&gt;Thresholds are currently fixed (not configurable)&lt;/li&gt;
&lt;li&gt;Staleness is computed at query time, not cached&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wip-staleness-ratio"&gt;WIP staleness ratio&lt;a class="anchor" href="#wip-staleness-ratio"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;stale_ratio = stale_items / total_wip_items&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A high stale ratio (&amp;gt;30%) suggests systemic flow problems -- items are being started but not finished.&lt;/p&gt;</description></item><item><title>Troubleshooting</title><link>https://gh-velocity.org/guides/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/guides/troubleshooting/</guid><description>&lt;h1 id="troubleshooting"&gt;Troubleshooting&lt;a class="anchor" href="#troubleshooting"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Solutions for common errors, N/A results, and unexpected output.&lt;/p&gt;
&lt;h2 id="error-messages"&gt;Error messages&lt;a class="anchor" href="#error-messages"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="not-a-git-repository-use---repo-ownername"&gt;&amp;quot;not a git repository. Use --repo owner/name&amp;quot;&lt;a class="anchor" href="#not-a-git-repository-use---repo-ownername"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Not inside a git checkout. Either &lt;code&gt;cd&lt;/code&gt; into a local clone or use &lt;code&gt;-R&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh velocity quality release v1.2.0 -R owner/repo&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="no-github-release-for-v100-using-current-time"&gt;&amp;quot;no GitHub release for v1.0.0, using current time&amp;quot;&lt;a class="anchor" href="#no-github-release-for-v100-using-current-time"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The tag exists but has no corresponding GitHub Release. The tool falls back to the current time for the release date, making release lag inaccurate. Fix by creating GitHub Releases for your tags. If you only push tags, the tool resolves dates from the tag's commit -- less precise but functional.&lt;/p&gt;</description></item><item><title>Shelly</title><link>https://gh-velocity.org/shelly/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/shelly/</guid><description>&lt;h1 id="meet-shelly"&gt;Meet Shelly&lt;a class="anchor" href="#meet-shelly"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;img src="https://gh-velocity.org/images/logo.ac22fa74cfba33e6a50d62023511d613423e374a5fb526c36505753cdd83d3ff.svg" alt="Shelly the velocity tortoise" style="max-width: 200px; width: 100%; image-rendering: pixelated; display: block; margin: 2rem auto;" /&gt;
&lt;p&gt;Every good project needs a mascot. Ours is &lt;strong&gt;Shelly&lt;/strong&gt; — a chunky pixel tortoise with a patterned shell, a confident gaze, and an ironic name for a tool called &lt;em&gt;velocity&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="why-a-tortoise"&gt;Why a tortoise?&lt;a class="anchor" href="#why-a-tortoise"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Because &lt;strong&gt;slow and steady wins the race&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Velocity isn't about going fast. It's about going &lt;em&gt;consistently&lt;/em&gt;. The teams that ship the most over time aren't the ones sprinting and crashing — they're the ones with a sustainable pace, predictable delivery, and short feedback loops.&lt;/p&gt;</description></item><item><title>config</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config/</guid><description>&lt;h2 id="gh-velocity-config"&gt;gh-velocity config&lt;a class="anchor" href="#gh-velocity-config"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Inspect, validate, and generate configuration&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Configuration commands for .gh-velocity.yml.&lt;/p&gt;
&lt;p&gt;Getting started:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;gh velocity config preflight -R owner/repo # analyze repo, suggest config&lt;/li&gt;
&lt;li&gt;gh velocity config create # generate starter config&lt;/li&gt;
&lt;li&gt;gh velocity config validate # check for errors&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for config&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config_create/"&gt;gh-velocity config create&lt;/a&gt;	 - Create a default .gh-velocity.yml in the current directory&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config_discover/"&gt;gh-velocity config discover&lt;/a&gt;	 - Discover Projects v2 boards and fields linked to a repo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config_preflight/"&gt;gh-velocity config preflight&lt;/a&gt;	 - Analyze a repo and recommend a .gh-velocity.yml configuration&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config_show/"&gt;gh-velocity config show&lt;/a&gt;	 - Display resolved configuration with defaults applied&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config_validate/"&gt;gh-velocity config validate&lt;/a&gt;	 - Validate configuration and report errors&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>config create</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config_create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config_create/</guid><description>&lt;h2 id="gh-velocity-config-create"&gt;gh-velocity config create&lt;a class="anchor" href="#gh-velocity-config-create"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Create a default .gh-velocity.yml in the current directory&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Generate a starter .gh-velocity.yml with sensible defaults.&lt;/p&gt;
&lt;p&gt;For a smarter config tailored to your repo, use 'config preflight' first:
gh velocity config preflight -R owner/repo&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity config create [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; gh velocity config create&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for create&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config/"&gt;gh-velocity config&lt;/a&gt;	 - Inspect, validate, and generate configuration&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>config discover</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config_discover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config_discover/</guid><description>&lt;h2 id="gh-velocity-config-discover"&gt;gh-velocity config discover&lt;a class="anchor" href="#gh-velocity-config-discover"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Discover Projects v2 boards and fields linked to a repo&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Queries the GitHub API to find Projects v2 boards linked to the target
repository, then lists their fields and status options.&lt;/p&gt;
&lt;p&gt;Use this to find the project URL and status field name
needed for .gh-velocity.yml configuration.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity config discover [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Discover projects for a remote repo
 gh velocity config discover -R cli/cli

 # JSON output for scripting
 gh velocity config discover -R owner/repo -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for discover&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config/"&gt;gh-velocity config&lt;/a&gt;	 - Inspect, validate, and generate configuration&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>config preflight</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config_preflight/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config_preflight/</guid><description>&lt;h2 id="gh-velocity-config-preflight"&gt;gh-velocity config preflight&lt;a class="anchor" href="#gh-velocity-config-preflight"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Analyze a repo and recommend a .gh-velocity.yml configuration&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Preflight queries your repository to build a smart starting configuration.&lt;/p&gt;
&lt;p&gt;It inspects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Labels (to detect bug, feature, and status labels)&lt;/li&gt;
&lt;li&gt;A specific Projects v2 board (to find status fields and lifecycle mapping)&lt;/li&gt;
&lt;li&gt;Recent merged PRs (to gauge activity and linking patterns)&lt;/li&gt;
&lt;li&gt;Recent closed issues (to check label usage)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use --project-url to include a project board in the analysis. Copy the URL
from your browser when viewing the project board.&lt;/p&gt;</description></item><item><title>config show</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config_show/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config_show/</guid><description>&lt;h2 id="gh-velocity-config-show"&gt;gh-velocity config show&lt;a class="anchor" href="#gh-velocity-config-show"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Display resolved configuration with defaults applied&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Display the fully resolved configuration with all defaults applied.&lt;/p&gt;
&lt;p&gt;This shows the effective config that commands will use — including default
values for any keys you have not set in your .gh-velocity.yml. Use this
to verify that your config is interpreted the way you expect.&lt;/p&gt;
&lt;p&gt;The JSON output (-r json) is useful for debugging or piping into other tools.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity config show [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; gh velocity config show
 gh velocity config show -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for show&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config/"&gt;gh-velocity config&lt;/a&gt;	 - Inspect, validate, and generate configuration&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>config validate</title><link>https://gh-velocity.org/reference/commands/gh-velocity_config_validate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_config_validate/</guid><description>&lt;h2 id="gh-velocity-config-validate"&gt;gh-velocity config validate&lt;a class="anchor" href="#gh-velocity-config-validate"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Validate configuration and report errors&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Validate a .gh-velocity.yml file and report any errors.&lt;/p&gt;
&lt;p&gt;Checks include: YAML syntax, known top-level keys, matcher syntax
(label:, type:, title:, field: patterns), project URL format, numeric
ranges (e.g., hotfix_window_hours), and category name requirements.&lt;/p&gt;
&lt;p&gt;Use --velocity to additionally verify that velocity-specific config
(effort strategy, iteration strategy, project field names) is correctly
configured against your actual GitHub project board.&lt;/p&gt;
&lt;p&gt;This command does not make API calls (except with --velocity, which
queries the project board to validate field names).&lt;/p&gt;</description></item><item><title>flow</title><link>https://gh-velocity.org/reference/commands/gh-velocity_flow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_flow/</guid><description>&lt;h2 id="gh-velocity-flow"&gt;gh-velocity flow&lt;a class="anchor" href="#gh-velocity-flow"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Flow metrics (lead-time, cycle-time, velocity)&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;How fast is work flowing through your team?&lt;/p&gt;
&lt;p&gt;Flow metrics measure the speed and volume of work:&lt;/p&gt;
&lt;p&gt;lead-time Total time from issue creation to closure
cycle-time Active work time (start signal to close/merge)
throughput Items completed per time window
velocity Effort delivered per iteration&lt;/p&gt;
&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for flow&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow_cycle-time/"&gt;gh-velocity flow cycle-time&lt;/a&gt;	 - Cycle time for an issue, PR, or bulk query&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow_lead-time/"&gt;gh-velocity flow lead-time&lt;/a&gt;	 - Lead time for an issue or bulk query (created → closed)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow_throughput/"&gt;gh-velocity flow throughput&lt;/a&gt;	 - Count issues closed and PRs merged in a window&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow_velocity/"&gt;gh-velocity flow velocity&lt;/a&gt;	 - Measure effort completed per iteration (sprint velocity)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>flow cycle-time</title><link>https://gh-velocity.org/reference/commands/gh-velocity_flow_cycle-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_flow_cycle-time/</guid><description>&lt;h2 id="gh-velocity-flow-cycle-time"&gt;gh-velocity flow cycle-time&lt;a class="anchor" href="#gh-velocity-flow-cycle-time"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cycle time for an issue, PR, or bulk query&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Cycle time measures how long an issue or PR was actively worked on.&lt;/p&gt;
&lt;p&gt;The measurement strategy is set in .gh-velocity.yml:&lt;/p&gt;
&lt;p&gt;cycle_time:
strategy: issue # work started → issue closed (default)
strategy: pr # PR created → PR merged&lt;/p&gt;
&lt;p&gt;The issue strategy detects &amp;quot;work started&amp;quot; from lifecycle labels
(e.g., label:in-progress). Configure lifecycle.in-progress.match
for cycle time metrics.&lt;/p&gt;
&lt;p&gt;Single mode: gh velocity cycle-time 42
gh velocity cycle-time --pr 99
Bulk mode: gh velocity cycle-time --since 30d [--until 2026-03-01]&lt;/p&gt;</description></item><item><title>flow lead-time</title><link>https://gh-velocity.org/reference/commands/gh-velocity_flow_lead-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_flow_lead-time/</guid><description>&lt;h2 id="gh-velocity-flow-lead-time"&gt;gh-velocity flow lead-time&lt;a class="anchor" href="#gh-velocity-flow-lead-time"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lead time for an issue or bulk query (created → closed)&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Lead time measures the elapsed time from issue creation to close.&lt;/p&gt;
&lt;p&gt;Single mode: gh velocity lead-time 42
Bulk mode: gh velocity lead-time --since 30d [--until 2026-03-01]&lt;/p&gt;
&lt;p&gt;In bulk mode, returns per-item rows plus aggregate statistics
for all issues closed in the given date window.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity flow lead-time [&amp;lt;issue&amp;gt;] [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Single issue
 gh velocity flow lead-time 42
 gh velocity flow lead-time 42 -R cli/cli

 # All issues closed in the last 30 days
 gh velocity flow lead-time --since 30d

 # Custom window, JSON output
 gh velocity flow lead-time --since 2026-01-01 --until 2026-02-01 -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for lead-time
 --since string Start of date window (YYYY-MM-DD, RFC3339, or Nd relative)
 --until string End of date window (default: now)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow/"&gt;gh-velocity flow&lt;/a&gt;	 - Flow metrics (lead-time, cycle-time, velocity)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>flow throughput</title><link>https://gh-velocity.org/reference/commands/gh-velocity_flow_throughput/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_flow_throughput/</guid><description>&lt;h2 id="gh-velocity-flow-throughput"&gt;gh-velocity flow throughput&lt;a class="anchor" href="#gh-velocity-flow-throughput"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Count issues closed and PRs merged in a window&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Throughput counts the number of issues closed and pull requests merged
in a date window. This is the simplest measure of team output.&lt;/p&gt;
&lt;p&gt;Default window is the last 30 days.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity flow throughput [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Last 30 days
 gh velocity flow throughput

 # Last 7 days, JSON output
 gh velocity flow throughput --since 7d -r json

 # Remote repo
 gh velocity flow throughput --since 30d -R cli/cli&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for throughput
 --since string Start of date window (default: 30d)
 --until string End of date window (default: now)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow/"&gt;gh-velocity flow&lt;/a&gt;	 - Flow metrics (lead-time, cycle-time, velocity)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>flow velocity</title><link>https://gh-velocity.org/reference/commands/gh-velocity_flow_velocity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_flow_velocity/</guid><description>&lt;h2 id="gh-velocity-flow-velocity"&gt;gh-velocity flow velocity&lt;a class="anchor" href="#gh-velocity-flow-velocity"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Measure effort completed per iteration (sprint velocity)&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Velocity measures effort completed per iteration and completion rate.&lt;/p&gt;
&lt;p&gt;Three effort strategies:
count — every item = 1 (default)
attribute — map labels/types to effort values via matchers
numeric — read effort from a project board Number field&lt;/p&gt;
&lt;p&gt;Two iteration strategies:
project-field — read boundaries from a ProjectV2 Iteration field
fixed — calendar math from length + anchor date&lt;/p&gt;</description></item><item><title>gh velocity</title><link>https://gh-velocity.org/reference/commands/gh-velocity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity/</guid><description>&lt;h2 id="gh-velocity"&gt;gh-velocity&lt;a class="anchor" href="#gh-velocity"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GitHub velocity and quality metrics&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compute velocity and quality metrics from GitHub data and post them where the work happens.&lt;/p&gt;
&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 -h, --help help for gh-velocity
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_config/"&gt;gh-velocity config&lt;/a&gt;	 - Inspect, validate, and generate configuration&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_flow/"&gt;gh-velocity flow&lt;/a&gt;	 - Flow metrics (lead-time, cycle-time, velocity)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_issue/"&gt;gh-velocity issue&lt;/a&gt;	 - Composite detail view for a single issue&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_pr/"&gt;gh-velocity pr&lt;/a&gt;	 - Composite detail view for a single pull request&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_quality/"&gt;gh-velocity quality&lt;/a&gt;	 - Quality metrics for releases&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_report/"&gt;gh-velocity report&lt;/a&gt;	 - Composite dashboard of velocity and quality metrics&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status/"&gt;gh-velocity status&lt;/a&gt;	 - Current work status (wip, my-week, reviews)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_version/"&gt;gh-velocity version&lt;/a&gt;	 - Print version information&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>issue</title><link>https://gh-velocity.org/reference/commands/gh-velocity_issue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_issue/</guid><description>&lt;h2 id="gh-velocity-issue"&gt;gh-velocity issue&lt;a class="anchor" href="#gh-velocity-issue"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Composite detail view for a single issue&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show everything about a single issue: facts (timestamps, category),
metrics (lead time, cycle time), and linked PRs with their cycle times.&lt;/p&gt;
&lt;p&gt;This is the recommended command for per-item GitHub Actions automation.
Use --post to add a rich comment to the issue when it closes.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity issue &amp;lt;number&amp;gt; [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # View issue detail
 gh velocity issue 42

 # Post as a comment on the issue
 gh velocity issue 42 --post

 # JSON output
 gh velocity issue 42 -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for issue&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>pr</title><link>https://gh-velocity.org/reference/commands/gh-velocity_pr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_pr/</guid><description>&lt;h2 id="gh-velocity-pr"&gt;gh-velocity pr&lt;a class="anchor" href="#gh-velocity-pr"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Composite detail view for a single pull request&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show everything about a single PR: facts (author, timestamps),
metrics (cycle time, time to first review, review rounds), and closed issues.&lt;/p&gt;
&lt;p&gt;This is the recommended command for per-PR GitHub Actions automation.
Use --post to add a rich comment to the PR when it merges.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity pr &amp;lt;number&amp;gt; [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # View PR detail
 gh velocity pr 125

 # Post as a comment on the PR
 gh velocity pr 125 --post

 # JSON output
 gh velocity pr 125 -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for pr&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>quality</title><link>https://gh-velocity.org/reference/commands/gh-velocity_quality/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_quality/</guid><description>&lt;h2 id="gh-velocity-quality"&gt;gh-velocity quality&lt;a class="anchor" href="#gh-velocity-quality"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Quality metrics for releases&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Is this release good?&lt;/p&gt;
&lt;p&gt;Quality metrics analyze your releases:&lt;/p&gt;
&lt;p&gt;release Composition, bug ratio, timing, and per-issue breakdown
for a specific release tag&lt;/p&gt;
&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for quality&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_quality_release/"&gt;gh-velocity quality release&lt;/a&gt;	 - Release velocity and quality metrics&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>quality release</title><link>https://gh-velocity.org/reference/commands/gh-velocity_quality_release/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_quality_release/</guid><description>&lt;h2 id="gh-velocity-quality-release"&gt;gh-velocity quality release&lt;a class="anchor" href="#gh-velocity-quality-release"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Release velocity and quality metrics&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Compute per-issue lead time, cycle time, release lag, and quality metrics for a release.&lt;/p&gt;
&lt;p&gt;Use --discover to show the discovery diagnostic view: which issues and PRs each
linking strategy discovered for the release.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity quality release &amp;lt;tag&amp;gt; [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Release metrics with auto-detected previous tag
 gh velocity quality release v2.65.0

 # Explicit previous tag
 gh velocity quality release v2.65.0 --since v2.64.0

 # Discover diagnostic: what did each strategy find?
 gh velocity quality release v2.65.0 --discover

 # Remote repo, JSON output
 gh velocity quality release v2.65.0 -R cli/cli -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --discover Show discovery diagnostic: what issues/PRs each strategy discovered
 -h, --help help for release
 --since string Override previous tag for commit range (tag name)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_quality/"&gt;gh-velocity quality&lt;/a&gt;	 - Quality metrics for releases&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>report</title><link>https://gh-velocity.org/reference/commands/gh-velocity_report/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_report/</guid><description>&lt;h2 id="gh-velocity-report"&gt;gh-velocity report&lt;a class="anchor" href="#gh-velocity-report"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Composite dashboard of velocity and quality metrics&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show a trailing-window report composing lead time, cycle time,
throughput, work in progress, and quality metrics.&lt;/p&gt;
&lt;p&gt;Default window is the last 30 days. Use --since and --until to customize.&lt;/p&gt;
&lt;p&gt;Each section computes independently; a failure in one section does not
block others. Sections that require specific config (WIP needs project.id
or active_labels; quality needs releases) are gracefully omitted when
unavailable.&lt;/p&gt;</description></item><item><title>status</title><link>https://gh-velocity.org/reference/commands/gh-velocity_status/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_status/</guid><description>&lt;h2 id="gh-velocity-status"&gt;gh-velocity status&lt;a class="anchor" href="#gh-velocity-status"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Current work status (wip, my-week, reviews)&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;What is happening right now?&lt;/p&gt;
&lt;p&gt;Status commands show the current state of work:&lt;/p&gt;
&lt;p&gt;wip Work in progress — open items with lifecycle labels
my-week Personal weekly summary for 1:1 prep
reviews Pending and stale pull request reviews&lt;/p&gt;
&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for status&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status_my-week/"&gt;gh-velocity status my-week&lt;/a&gt;	 - Your activity summary for 1:1 prep&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status_reviews/"&gt;gh-velocity status reviews&lt;/a&gt;	 - Show PRs awaiting review&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status_wip/"&gt;gh-velocity status wip&lt;/a&gt;	 - Show work in progress&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>status my-week</title><link>https://gh-velocity.org/reference/commands/gh-velocity_status_my-week/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_status_my-week/</guid><description>&lt;h2 id="gh-velocity-status-my-week"&gt;gh-velocity status my-week&lt;a class="anchor" href="#gh-velocity-status-my-week"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Your activity summary for 1:1 prep&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Shows what you shipped, what's blocked, and what's ahead — designed for 1:1 prep.&lt;/p&gt;
&lt;p&gt;Sections (in order):
Insights Shipping velocity, AI-assisted %, lead time median &amp;amp; p90
Waiting on PRs waiting for first review, stale issues
What I shipped Issues closed, PRs merged, PRs reviewed, releases
What's ahead Open issues and PRs with status annotations
Review queue PRs from others waiting on your review&lt;/p&gt;</description></item><item><title>status reviews</title><link>https://gh-velocity.org/reference/commands/gh-velocity_status_reviews/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_status_reviews/</guid><description>&lt;h2 id="gh-velocity-status-reviews"&gt;gh-velocity status reviews&lt;a class="anchor" href="#gh-velocity-status-reviews"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Show PRs awaiting review&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show open pull requests that are waiting for code review.&lt;/p&gt;
&lt;p&gt;PRs waiting more than 48 hours are flagged as STALE.&lt;/p&gt;
&lt;p&gt;This command shows the work (PRs), not individual reviewers.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity status reviews [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Show review queue
 gh velocity status reviews

 # Markdown for posting to a discussion
 gh velocity status reviews -r markdown

 # JSON for automation
 gh velocity status reviews -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for reviews&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status/"&gt;gh-velocity status&lt;/a&gt;	 - Current work status (wip, my-week, reviews)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>status wip</title><link>https://gh-velocity.org/reference/commands/gh-velocity_status_wip/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_status_wip/</guid><description>&lt;h2 id="gh-velocity-status-wip"&gt;gh-velocity status wip&lt;a class="anchor" href="#gh-velocity-status-wip"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Show work in progress&lt;/p&gt;
&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Show items currently in progress.&lt;/p&gt;
&lt;p&gt;Uses lifecycle.in-progress.match and lifecycle.in-review.match labels
from config to find open issues that are actively being worked on.&lt;/p&gt;
&lt;p&gt;Use -R owner/repo to target a specific repo.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity status wip [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; # Show WIP from configured lifecycle labels
 gh velocity status wip

 # JSON output for CI/automation
 gh velocity status wip -r json&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for wip&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity_status/"&gt;gh-velocity status&lt;/a&gt;	 - Current work status (wip, my-week, reviews)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>version</title><link>https://gh-velocity.org/reference/commands/gh-velocity_version/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gh-velocity.org/reference/commands/gh-velocity_version/</guid><description>&lt;h2 id="gh-velocity-version"&gt;gh-velocity version&lt;a class="anchor" href="#gh-velocity-version"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Print version information&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gh-velocity version [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for version&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --config string Path to config file (default: .gh-velocity.yml)
 --debug Print diagnostic info to stderr
 --new-post Force a new post (skip idempotent update; implies --post)
 --no-cache Disable disk cache (in-memory deduplication still active)
 --post Post output to GitHub (dry-run by default; set GH_VELOCITY_POST_LIVE=true for live)
 -R, --repo string Repository in owner/name format
 -r, --results strings Output format(s): json, pretty, markdown, html (comma-separated) (default [pretty])
 --scope string Additional GitHub search qualifier(s) ANDed with config scope
 --title string Override discussion title (with --post)
 --write-to string Write result files to this directory (silences stdout)&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gh-velocity.org/gh-velocity/reference/commands/gh-velocity/"&gt;gh-velocity&lt;/a&gt;	 - GitHub velocity and quality metrics&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>