github-statuslisted
Install: claude install-skill AnotherSava/claude-code-common
## Context
- Config file: !`test -f ~/.claude/skills/github-status/config/config.env && echo PRESENT || echo MISSING`
- GitHub user (script default): AnotherSava — override via `GITHUB_USER` env var
## 1. Ensure PROJECTS_ROOT is configured
If **Config file** above is `MISSING`:
1. Ask the user (via `AskUserQuestion`) for the absolute path to the directory that contains all their local git clones. Suggest `$HOME/Projects` as the default if the user is on macOS, or `$HOME/code` on Linux.
2. Write `~/.claude/skills/github-status/config/config.env` with this exact content (substituting `<absolute path>`):
```
# github-status skill config — gitignored, user-specific
PROJECTS_ROOT="<absolute path>"
```
If **Config file** is `PRESENT`, proceed directly to step 2.
## 2. Run the report
Run `python3 ~/.claude/skills/github-status/scripts/repos-status.py`. The script output has up to three parts:
1. **Table**, fixed-width. Only repos with pending work appear — anything with no uncommitted changes, no unpushed commits, and no inbound remote commits (after the auto-pull pass) is filtered out. Rows are sorted by AGE ascending (freshest pending work first; oldest at the bottom). Columns:
- **PROJECT** is always present.
- **BRANCH** appears only if any repo is on a branch other than `main` or `master`.
- **UNPUSHED** appears only if any repo has unpushed commits (`@{upstream}..HEAD` > 0).
- **REMOTE** appears only if any repo is behind its upstream (`HEAD..@{