Skip to content
Skill Authoring
Skill

/git-project-status

Generate comprehensive status reports for git repositories. Analyzes commits, codebase structure, type errors, branch health, dependency status, GitHub PRs/issues/CI, working tree changes, and optionally integrates with `td` (task management CLI) if a `.todos` folder is present.

BOOST
From plugin
pi
12238 skills5 agents
Install
$ npx -y skills add espennilsen/pi --skill git-project-status --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/git-project-status

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate comprehensive status reports for git repositories. Analyzes commits, codebase structure, type errors, branch health, dependency status, GitHub PRs/issues/CI, working tree changes, and optionally integrates with `td` (task management CLI) if a `.todos` folder is present.

SKILL.md

git-project-status.SKILL.md
name: git-project-status
description: |
  Generate comprehensive status reports for git repositories. Analyzes commits, codebase structure, type errors, branch health, dependency status, GitHub PRs/issues/CI, working tree changes, and optionally integrates with `td` (task management CLI) if a `.todos` folder is present.

  **TRIGGERS - Use this skill when:**
  - User asks for the status of a git project or repo
  - User asks "what's going on in [project]" or "give me an overview of [repo]"
  - User wants a project summary, progress report, or codebase overview
  - User asks about recent commits, code structure, or project health
  - User says "check my project" or "project status"

  **Output:** A rich, structured text report covering overview, branches, commit history, codebase breakdown, GitHub activity, dependency health, issues/errors, working tree changes, task management, and summary.

Git Project Status Skill

Generate a comprehensive status report for one or more git repositories.

Usage

**Path resolution (in priority order):** 1. **Full path provided** — use it directly 2. **Only a project name mentioned** (e.g. "check pi-crm-personal") — look in `/Users/espen/Dev/<project-name>` 3. **No path or name specified** — use the current working directory (`.`)

Never ask the user for a path — resolve it using the rules above and run the report. The skill produces a structured report for each repo.

Report Structure

Each report MUST include these sections in order. Sections marked **(Conditional)** are only included when the relevant tool/data is available.

---

1. Overview

  • Project name (from directory name or package.json/Cargo.toml/pyproject.toml)
  • Version (from package manifest if available)
  • Brief description (from README.md first paragraph, or package manifest description)
  • When the project was started (first commit date)
  • Current branch and whether working tree is clean/dirty
  • Repo visibility (public/private) — if GitHub origin is detected

2. Branches

  • Current branch name (highlighted with `*`)
  • List all local branches with:
  • How far ahead/behind the default branch (main/master) each branch is
  • Last commit date on each branch
  • Flag stale branches (no commits in >30 days) with ⚠
  • Show total branch count

Format example:

Branches (4 total)

  • feature/typescript-refactor +12 ahead, 3 behind main (last: 2h ago)

main up to date (last: 3d ago) fix/webhook-retry +2 ahead (last: 5d ago) old/experiment +1 ahead (last: 45d ago) ⚠ stale

3. Progress (Commit History)

  • Total commit count
  • Date range of commits
  • A table of recent commits (up to 5) showing:
  • Short hash (6 chars)
  • Commit message (first line, truncated to fit column)

Format as a simple two-column list — hash followed by message. Truncate long messages with "…".

d7bd8b feat: Integrate pi-crm-personal extension e0469f deps: Add pi-crm-personal as file: dependency 6638a4 fix(heartbeat): normalize db health-check path in checklist 8770c4 chore: update agent name note and add start:tui script bedca7 Merge 'hannah/td-2f5211-workon' — workon tool, cross-proj…

4. Codebase Overview

  • Total lines of code and total number of source files
  • Language breakdown by percentage of lines (show as a compact bar or list)

Format example:

Codebase (3,420 lines across 18 files) TypeScript 82% ████████████████░░░░ 2,804 lines HTML 9% ██░░░░░░░░░░░░░░░░░░ 308 lines SQL 5% █░░░░░░░░░░░░░░░░░░░ 171 lines Shell 4% █░░░░░░░░░░░░░░░░░░░ 137 lines

**Counting rules:**

  • Group by language, not file extension (e.g. .ts and .tsx both count as TypeScript, .js and .jsx as JavaScript)
  • Always exclude: node_modules, .git, vendor, dist, build, target, __pycache__, .next, .nuxt, coverage, lock files
  • Also exclude generated files (*.min.js, *.map, *.d.ts)
  • Use a simple bar visualization (█ and ░) — 20 chars wide, proportional to percentage

5. GitHub Activity (Conditional)

**Only include this section if the git remote origin points to GitHub (github.com) AND the `gh` CLI is available and authenticated.**

Detect GitHub origin:

git remote get-url origin 2>/dev/null | grep -q "github.com"

Check `gh` is available and authenticated:

gh auth status 2>/dev/null

If both conditions are met, include:

Open Pull Requests

gh pr list --state open --json number,title,headRefName,author,reviewDecision,statusCheckRollup,updatedAt --limit 20

Show for each PR:

  • PR number and title
  • Branch name
  • Author
  • Review status (APPROVED, CHANGES_REQUESTED, REVIEW_REQUIRED, or pending)
  • CI check status (passing ✅, failing ❌, pending ⏳)

Open Issues

gh issue list --state open --json number,title,labels,assignees,createdAt --limit 20

Show for each issue:

  • Issue number and title
  • Labels
  • Assignee (if any)

Recent Merged PRs

gh pr list --state merged --json number,title,mergedAt,author --limit 5

Show the 5 most recently merged PRs with merge date.

CI/CD Status

gh run list --limit 5 --json databaseId,displayTitle,status,conclusion,headBranch,createdAt

Show the 5 most recent workflow runs with:

  • Workflow name
  • Branch
  • Status/conclusion (success ✅, failure ❌, in_progress ⏳, cancelled ⊘)
  • When it ran

If `gh` is not available or not authenticated, skip this entire section silently (do not show an error or placeholder).

6. Dependencies Health (Conditional)

**Only include if the project has a dependency manifest.**

Check for outdated packages based on project type:

  • **Node.js** (package.json exists):
  npm outdated --json 2>/dev/null

Show: package name, current version, wanted version, latest version. Highlight major version bumps.

  • **Rust** (Cargo.toml exists):
  cargo outdated 2>/dev/null

-

Read more
Ships withpi

This repository is my Pi coding agent home directory. I keep it under version control and symlink it to ~/.pi/agent so Pi loads configuration, extensions, skills, and runtime state from here.

Get the whole plugin

Other skills on pi.