git-project-xray-mcp: Command for Claude Code

.claude/commands/gsd/progress.md

gsd:progress is a command for Claude Code from Jamie-BitFlight/git-project-xray-mcp. It costs 22 tokens per session (2,167 once invoked), scanned A, a copy of gsd:progress, MIT.

A project-status command that reads a project's planning files and reports its current position and next action. A planning directory stores project goals, phases, decisions, and recent work.

In plain words
What is it for?
Use it to inspect progress, project context, completed plans, remaining plans, and whether to execute or create a plan.
Why use it?
It helps you understand what has been done and what should happen next before continuing work.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: names the SlashCommand tool.

This is Jamie-BitFlight/git-project-xray-mcp's own configuration. It tells Claude Code how to work on git-project-xray-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything git-project-xray-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to Jamie-BitFlight/git-project-xray-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/Jamie-BitFlight/git-project-xray-mcp/main/.claude/commands/gsd/progress.md
Clone the repo
git clone --depth 1 https://github.com/Jamie-BitFlight/git-project-xray-mcp

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for gsd:progress

README.md
[![agentmods](https://agentmods.dev/badge/commands/jamie-bitflight/git-project-xray-mcp/progress/github.svg)](https://agentmods.dev/commands/jamie-bitflight/git-project-xray-mcp/progress)
Your own site
<a href="https://agentmods.dev/commands/jamie-bitflight/git-project-xray-mcp/progress"><img src="https://agentmods.dev/badge/commands/jamie-bitflight/git-project-xray-mcp/progress/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for gsd:progress

Your own site · 80×15
<a href="https://agentmods.dev/commands/jamie-bitflight/git-project-xray-mcp/progress"><img src="https://agentmods.dev/badge/commands/jamie-bitflight/git-project-xray-mcp/progress.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,167 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00022 $0.02167
Opus 5.5 $0.00009 $0.00867
Sonnet 5.5 $0.00004 $0.00433
Haiku 4.5 $0.00002 $0.00217

Measured 1mo ago against content hash aab6ae3473d0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

gsd:progress scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to gsd:progress — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.claude/commands/gsd/progress.md · 365 lines

How it starts

The opening of the file, as written. The whole thing — 365 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Provides situational awareness before continuing work.

Use Bash (not Glob) to check—Glob respects .gitignore but .planning/ is often gitignored:

test -d .planning && echo "exists" || echo "missing"

If no .planning/ directory:

No planning structure found.

Run /gsd:new-project to start a new project.

Exit.

If missing STATE.md: suggest /gsd:new-project.

If ROADMAP.md missing but PROJECT.md exists:

This means a milestone was completed and archived. Go to Route F (between milestones).

If missing both ROADMAP.md and PROJECT.md: suggest /gsd:new-project.

  • Read .planning/STATE.md for living memory (position, decisions, issues)
  • Read .planning/ROADMAP.md for phase structure and objectives
  • Read .planning/PROJECT.md for current state (What This Is, Core Value, Requirements)
  • Read .planning/config.json for settings (model_profile, workflow toggles)
  • Find the 2-3 most recent SUMMARY.md files
  • Extract from each: what was accomplished, key decisions, any issues logged
  • This shows "what we've been working on"
  • From STATE.md: current phase, plan number, status
  • Calculate: total plans, completed plans, remaining plans
  • Note any blockers or concerns
  • Check for CONTEXT.md: For phases without PLAN.md files, check if {phase}-CONTEXT.md exists in phase directory
  • Count pending todos: ls .planning/todos/pending/*.md 2>/dev/null | wc -l
  • Check for active debug sessions: ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l
# [Project Name]

**Progress:** [████████░░] 8/10 plans complete
**Profile:** [quality/balanced/budget]

## Recent Work
- [Phase X, Plan Y]: [what was accomplished - 1 line]
- [Phase X, Plan Z]: [what was accomplished - 1 line]

## Current Position
Phase [N] of [total]: [phase-name]
Plan [M] of [phase-total]: [status]
CONTEXT: [✓ if CONTEXT.md exists | - if not]

## Key Decisions Made
- [decision 1 from STATE.md]
- [decision 2]

## Blockers/Concerns
- [any blockers or concerns from STATE.md]

## Pending Todos
- [count] pending — /gsd:check-todos to review

## Active Debug Sessions
- [count] active — /gsd:debug to continue
(Only show this section if count > 0)

## What's Next
[Next phase/plan objective from ROADMAP]

Step 1: Count plans, summaries, and issues in current phase

List files in the current phase directory:

ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l

State: "This phase has {X} plans, {Y} summaries."

Step 1.5: Check for unaddressed UAT gaps

Check for UAT.md files with status "diagnosed" (has gaps needing fixes).

# Check for diagnosed UAT with gaps
grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null

Track:

  • uat_with_gaps: UAT.md files with status "diagnosed" (gaps need fixing)

Step 2: Route based on counts

Condition Meaning Action
uat_with_gaps > 0 UAT gaps need fix plans Go to Route E
summaries < plans Unexecuted plans exist Go to Route A
summaries = plans AND plans > 0 Phase complete Go to Step 3
plans = 0 Phase not yet planned Go to Route B

Route A: Unexecuted plan exists

Find the first PLAN.md without matching SUMMARY.md. Read its <objective> section.

Read the full file on GitHub · 365 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 365 lines · 22 tokens per session scan A aab6ae3473d0

Subscribe to this mod's changes

gsd:progress is a command published in the GitHub repository Jamie-BitFlight/git-project-xray-mcp (0 stars, last pushed 8mo ago), licensed MIT. It adds 22 tokens to every session and 2,167 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to gsd:progress, differing in 0 lines, and is treated as a copy.