TiXL Ticket Processor
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
Generate comprehensive status reports for git repositories. An agent skill from espennilsen/pi.
$ npx skills add espennilsen/pi --skill git-project-status -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install espennilsen/pi git-project-status --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/git-project-status .claude/skills/git-project-status && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .claude/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/espennilsen/pi/tree/main/skills/git-project-statusType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add espennilsen/pi --skill git-project-status -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install espennilsen/pi git-project-status --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/git-project-status .agents/skills/git-project-status && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .agents/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add espennilsen/pi --skill git-project-status -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install espennilsen/pi git-project-status --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/git-project-status .cursor/skills/git-project-status && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .cursor/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/espennilsen/pi.git --path skills/git-project-status--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add espennilsen/pi --skill git-project-status -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install espennilsen/pi git-project-status --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/git-project-status .gemini/skills/git-project-status && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .gemini/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install espennilsen/pi git-project-statusInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add espennilsen/pi --skill git-project-status -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/git-project-status .github/skills/git-project-status && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .github/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add espennilsen/pi --skill git-project-status -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install espennilsen/pi git-project-status --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/git-project-status .opencode/skills/git-project-status && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "git-project-status" agent skill from https://github.com/espennilsen/pi/tree/main/skills/git-project-status into .opencode/skills/git-project-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-project-status", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
git-project-statusGenerate comprehensive status reports for git repositories. An agent skill from espennilsen/pi.
Git Project Status is an agent skill from espennilsen/pi. 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…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git workflow, Task management and Codebase onboarding. It works with Git and GitHub. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 79d019b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghcargogonpxnpmpippythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, gh, npx, npm and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
API_KEYPRIVATE_KEYSECRET_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Git Project Status loads about 4.4k tokens when it runs. Until then it costs about 217 tokens; SKILL.md has 1,477 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
# Check if .env files are tracked- Whether `.env` files are tracked (⚠ warning if they are)gnore` covers common sensitive patterns (.env, *.pem, *.key)⚠ .env is tracked in git — should be in .gitignore✅ .gitignore covers: .env, *.pem, *.keyAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from espennilsen/pi at commit 79d019b, republished under its MIT licence (© espennilsen). 1,477 words, ~4,407 tokens.
.claude/skills/git-project-status/SKILL.md (or your agent's skills folder).Generate a comprehensive status report for one or more git repositories.
Path resolution (in priority order):
/Users/espen/Dev/<project-name>.)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.
Each report MUST include these sections in order. Sections marked (Conditional) are only included when the relevant tool/data is available.
*)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
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…
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:
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/nullIf both conditions are met, include:
gh pr list --state open --json number,title,headRefName,author,reviewDecision,statusCheckRollup,updatedAt --limit 20Show for each PR:
gh issue list --state open --json number,title,labels,assignees,createdAt --limit 20Show for each issue:
gh pr list --state merged --json number,title,mergedAt,author --limit 5Show the 5 most recently merged PRs with merge date.
gh run list --limit 5 --json databaseId,displayTitle,status,conclusion,headBranch,createdAtShow the 5 most recent workflow runs with:
If gh is not available or not authenticated, skip this entire section silently (do not show an error or placeholder).
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/nullShow: package name, current version, wanted version, latest version. Highlight major version bumps.
Rust (Cargo.toml exists):
cargo outdated 2>/dev/nullPython (requirements.txt or pyproject.toml exists):
pip list --outdated --format=json 2>/dev/nullGo (go.mod exists):
go list -u -m all 2>/dev/nullFormat as a compact table if there are outdated deps:
Dependencies (3 outdated of 24 total) typescript 5.3.3 → 5.6.2 (major) eslint 8.56.0 → 8.57.0 (minor) @types/node 20.11 → 20.14 (minor)
If all dependencies are up to date, say "All N dependencies are up to date." If the outdated check tool is not available, skip gracefully.
Run appropriate type-checking or linting commands based on the project type:
npx tsc --noEmit 2>&1 (if tsconfig.json exists)python -m py_compile on source files, or mypy if configuredcargo check 2>&1 (if Cargo.toml exists)go vet ./... (if go.mod exists)If no errors are found, say "No type errors or lint issues detected."
If errors are found:
IMPORTANT: Install dependencies first if needed (check for node_modules, etc.) but do so silently. If type-checking tools aren't available or fail to install, skip this section gracefully and note it.
Scan all source files for common debt markers:
grep -rn --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" \
--include="*.py" --include="*.rs" --include="*.go" \
-E "(TODO|FIXME|HACK|XXX|WORKAROUND|TEMP)(\(|:| )" . \
--exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist --exclude-dir=buildFormat as a compact list grouped by marker type:
Code Markers (7 found) TODO (4): src/db.ts:42 — add migration rollback support src/tool.ts:118 — handle edge case for empty contacts src/web.ts:55 — add pagination src/web.ts:201 — rate limiting FIXME (2): src/registry.ts:88 — race condition on concurrent register src/tool.ts:340 — incorrect type cast HACK (1): src/db.ts:167 — temporary workaround for SQLite locking
If none found, say "No TODO/FIXME/HACK markers found."
Only include if a test runner is detected.
Detect test configuration:
jest, vitest, mocha in package.json scripts or devDependenciescargo test (always available)pytest, unittest configgo test ./... (always available)Run the test suite and report:
# Node.js example:
npx vitest run --reporter=verbose 2>&1 # or npm testShow:
Format example:
Tests (vitest) 32 passed ✅ 2 failed ❌ 1 skipped ⏭ Failures: src/db.test.ts > migrations > should rollback on error src/tool.test.ts > actions > should validate contact fields Coverage: 74% lines (if available)
If no test runner is detected, skip this section silently. IMPORTANT: Run tests with a timeout. If tests hang or take longer than 60 seconds, kill the process and note "Tests timed out after 60s."
Quick scan for potentially leaked secrets in tracked files:
# Check for common secret patterns in tracked files
git grep -lnE "(PRIVATE_KEY|SECRET_KEY|API_KEY|PASSWORD|TOKEN|Bearer )['\"]?=" -- '*.ts' '*.js' '*.py' '*.env*' '*.json' '*.yaml' '*.yml' 2>/dev/null
# Check if .env files are tracked
git ls-files | grep -E "^\.env"
# Check if common sensitive files are in .gitignoreReport:
.env files are tracked (⚠ warning if they are).gitignore covers common sensitive patterns (.env, *.pem, *.key)Format example:
Secrets Check ⚠ .env is tracked in git — should be in .gitignore ⚠ src/config.ts:12 — contains hardcoded API_KEY pattern ✅ .gitignore covers: .env, *.pem, *.key
If everything looks clean: "✅ No secrets exposure detected."
Only include this section if the working tree is dirty (has uncommitted changes).
Show a breakdown of:
git diff --cached --statgit diff --statgit ls-files --others --exclude-standardFormat example:
Uncommitted Changes Staged (2 files): M src/tool.ts (+15, -3) A src/newfile.ts (+42) Unstaged (1 file): M src/db.ts (+8, -2) Untracked (1 file): src/experimental.ts
If the working tree is clean, skip this section entirely.
Only include this section if a .todos directory exists in the project root.
Run td usage and include the output, covering:
Format this under a "Task Management" heading.
A 2-3 sentence summary covering:
A prioritized, numbered list of 3–5 concrete actions derived from the report findings. Only include items backed by actual findings — do not invent generic advice.
Draw from these categories (in rough priority order):
Format example:
Recommended Next Steps 1. 🔍 Review P0 issue td-31b69b "CRM plugin architecture" 2. 🔒 Add *.pem and *.key to .gitignore 3. 📦 Evaluate better-sqlite3 major upgrade (11 → 12) 4. 🧹 Delete 8 merged branches 5. 🚀 Start td-b02d69 "pi-crm-personal extension"
When executing this skill, follow these steps:
# 1. Navigate to project (default: current working directory)
cd <project_path_or_.>
# 2. Verify it's a git repo
git rev-parse --is-inside-work-tree
# 3. Get project metadata
# - Read package.json / Cargo.toml / pyproject.toml for name, version, description
# - Read first paragraph of README.md for description fallback
# - Get current branch: git branch --show-current
# - Get working tree status: git status --porcelain
# 4. Get branch info
git branch --format='%(refname:short) %(committerdate:relative)'
# For each branch, get ahead/behind vs default branch:
git rev-list --left-right --count main...branch-name
# Identify default branch:
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'
# 5. Get commit history
git log --oneline --no-decorate -n 5
git rev-list --count HEAD
git log --reverse --format="%ai" | head -1 # first commit date
git log -1 --format="%ai" # latest commit date
# 6. Analyze codebase — language breakdown
# Count lines per file extension, excluding generated/vendor dirs
# Group by language (e.g. .ts + .tsx = TypeScript)
find . -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \
-o -name "*.py" -o -name "*.rs" -o -name "*.go" -o -name "*.rb" \
-o -name "*.java" -o -name "*.c" -o -name "*.cpp" -o -name "*.h" \
-o -name "*.sh" -o -name "*.sql" -o -name "*.html" -o -name "*.css" \) \
-not -path "*/node_modules/*" -not -path "*/.git/*" -not -path "*/dist/*" \
-not -path "*/build/*" -not -path "*/target/*" -not -path "*/__pycache__/*" \
-not -path "*/.next/*" -not -path "*/coverage/*" \
-not -name "*.min.*" -not -name "*.map" -not -name "*.d.ts" \
-exec wc -l {} + | sort -rn
# 7. Check for GitHub remote and gh CLI
GITHUB_ORIGIN=$(git remote get-url origin 2>/dev/null | grep "github.com")
GH_AVAILABLE=$(gh auth status 2>&1 && echo "yes" || echo "no")
if [ -n "$GITHUB_ORIGIN" ] && [ "$GH_AVAILABLE" = "yes" ]; then
gh pr list --state open --json number,title,headRefName,author,reviewDecision,statusCheckRollup,updatedAt --limit 20
gh issue list --state open --json number,title,labels,assignees,createdAt --limit 20
gh pr list --state merged --json number,title,mergedAt,author --limit 5
gh run list --limit 5 --json databaseId,displayTitle,status,conclusion,headBranch,createdAt
fi
# 8. Check dependencies
# Node.js: npm outdated --json 2>/dev/null
# Rust: cargo outdated 2>/dev/null
# Python: pip list --outdated --format=json 2>/dev/null
# Go: go list -u -m all 2>/dev/null
# 9. Check for errors (language-specific)
# TypeScript: npx tsc --noEmit 2>&1
# Python: mypy or py_compile
# Rust: cargo check
# Go: go vet ./...
# 10. Scan for TODO/FIXME/HACK markers
grep -rn --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" \
--include="*.py" --include="*.rs" --include="*.go" \
-E "(TODO|FIXME|HACK|XXX|WORKAROUND|TEMP)(\(|:| )" . \
--exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist --exclude-dir=build
# 11. Run tests (if test runner detected, with 60s timeout)
# Node.js: timeout 60 npx vitest run --reporter=verbose 2>&1 || timeout 60 npm test 2>&1
# Rust: timeout 60 cargo test 2>&1
# Python: timeout 60 pytest --tb=short 2>&1
# Go: timeout 60 go test ./... 2>&1
# 12. Check for secrets exposure
git grep -lnE "(PRIVATE_KEY|SECRET_KEY|API_KEY|PASSWORD|TOKEN|Bearer )['\"]?=" -- '*.ts' '*.js' '*.py' '*.env*' '*.json' '*.yaml' '*.yml' 2>/dev/null
git ls-files | grep -E "^\.env"
# 13. Get uncommitted changes detail (if dirty)
if [ -n "$(git status --porcelain)" ]; then
git diff --cached --stat # staged
git diff --stat # unstaged
git ls-files --others --exclude-standard # untracked
fi
# 14. Check for .todos directory and run td usage if present
if [ -d ".todos" ]; then
td usage 2>&1
fi
# 15. Compile and format reportIf the user provides multiple paths, generate a separate report for each project with a clear separator between them. Optionally provide a summary table at the end comparing projects.
See the user's example in the conversation for the target format and level of detail. Match that style closely:
© espennilsen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/git-project-status of espennilsen/pi.
Open the folder on GitHubat commit 79d019b
Git Project Status next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Git Project Status this skillespennilsen/pi | 122 | — | ~4.4k | Automated safety check: Notes | MIT | |
| TiXL Ticket Processortixl3d/tixl | 5.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Kanvibe Release Deployrookedsysc/kanvibe | 143 | — | ~12k | Automated safety check: Notes | AGPL-3.0 | |
| Local File and Code Searchtaxueseek/argo | 184 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 |
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
rookedsysc/kanvibe
A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…
taxueseek/argo
Searches local files and code through one script, seek.py, that picks between rg, fd and macOS Spotlight and works in three layers: locate, context, close reading.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
espennilsen/pi
Interact with GitHub repos, PRs, issues, CI, and notifications via the pi-github extension commands and gh CLI.
espennilsen/pi
Create, review, and improve skills for Pi agents. An agent skill from espennilsen/pi.
espennilsen/pi
Perform a comprehensive DRY (Don't Repeat Yourself) code review on a codebase.
espennilsen/pi
Reverse-engineer a design system from a live website (public URL or localhost).
espennilsen/pi
Read and extract content from PDF files — text, tables, metadata, and images.
espennilsen/pi
Manage Google Workspace via the gws CLI — Drive, Gmail, Sheets, Docs, Slides, People, Chat, Meet, Forms, and cross-service workflows.
Categories
Generate comprehensive status reports for git repositories. An agent skill from espennilsen/pi. Git Project Status is an agent skill from espennilsen/pi. Generate comprehensive status reports for git repositories.
Git Project Status fits situations like: - Use this skill when: - User asks for the status of a git project; repo - User asks whats going on in [project]; give me an overview of [repo] - User wants a project summary; progress report.
Run `npx skills add espennilsen/pi --skill git-project-status -a claude-code`. Or copy the skill folder (skills/git-project-status in espennilsen/pi) into .claude/skills/git-project-status in your project. Claude Code loads it when a task matches its description.
Run `npx skills add espennilsen/pi --skill git-project-status -a codex`. Or copy the skill folder (skills/git-project-status in espennilsen/pi) into .agents/skills/git-project-status in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add espennilsen/pi --skill git-project-status -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/git-project-status, .gemini/skills/git-project-status, .github/skills/git-project-status and .opencode/skills/git-project-status in your project.
Going by SKILL.md and its folder, Git Project Status needs the command-line tools its instructions call (git, gh, cargo, go, npx and npm) and credentials named API_KEY, PRIVATE_KEY and SECRET_KEY. Our summary lists: Python 3; Node.js; A credential in PRIVATE_KEY; A credential in SECRET_KEY.
SKILL.md contains no URLs. Its commands use git, gh, npx, npm and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Git Project Status is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Git Project Status: TiXL Ticket Processor (tixl3d/tixl, 5.1k stars), Kanvibe Release Deploy (rookedsysc/kanvibe, 143 stars), Local File and Code Search (taxueseek/argo, 184 stars) and Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
espennilsen (a GitHub user) maintains it in espennilsen/pi, which has 122 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 21, 2026.
Source: espennilsen/pi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.