| name | statusReport |
| description | Report git status of all repos in poly-repo org root. Trigger: /statusReport, "repo status", "status of all repos", "which repos have unpushed commits", "poly repo status". |
poly-repo-status-report
Run deno run -A scripts/poly-repo-status-report.ts from org root.
Script finds all git repos under org root (maxdepth 3), checks each:
branch name, ahead/behind remote, staged/unstaged/untracked files,
unpushed commits.
Workflow
- Run the script with
--json for structured output:
deno run -A scripts/poly-repo-status-report.ts --json
-
If JSON output shows repos with unpushed commits: report them with
commit hash + message.
-
If JSON output shows repos with dirty working trees (staged,
unstaged, untracked): report the count. If the user asks for
details, run git status --short or git diff --stat in that
specific repo — do NOT read the script output raw, use targeted
commands.
-
If any repo has hasUpstream: false: flag it — push will fail
without git push -u origin <branch>.
-
Present findings as a summary table. Only dig into details when
the user asks, or when a repo has a complex state (both staged
and unstaged changes to same files, merge conflicts, rebase in
progress).
Script flags
--json — output JSON array of RepoStatus objects
--org-root <path> — override org root (default: cwd)
RepoStatus shape (JSON)
interface RepoStatus {
path: string;
name: string;
branch: string;
ahead: number;
behind: number;
hasUpstream: boolean;
staged: string[];
unstaged: string[];
untracked: string[];
unpushedCommits: { hash: string; message: string }[];
}