$npx -y skills add Borda/AI-Rig --skill analyseAnalyze GitHub issues, Pull Requests (PRs), Discussions, and repo vitality for an Open Source Software (OSS) project. For any specific item, casts a wide net — finds and lists all related open and closed issues/PRs/discussions, explicitly flags duplicates. Summarizes long threads
| 1 | <objective> |
| 2 | |
| 3 | Analyze GitHub threads + repo vitality. Help maintainers triage, respond, decide fast. Output actionable + structured — not just summaries. |
| 4 | |
| 5 | NOT for implementing PR action items (use oss:resolve). NOT for **code-quality assessment on a PR** — phrasing like "review PR #N" or "does this PR look good?" routes here via TRIGGER (PR number + "analyze/summarize" verbs) but yields thread analysis, not code review. When request is code quality, route to `oss:review` (requires `oss` plugin) instead. NOT for multi-agent code review (use oss:review). NOT for CI pipeline diagnosis (use oss:cicd-steward (requires `oss` plugin)). |
| 6 | |
| 7 | </objective> |
| 8 | |
| 9 | <inputs> |
| 10 | |
| 11 | - **$ARGUMENTS**: one of: |
| 12 | - `N` (number, plain `123` or `#123`) — any GitHub thread: issue, PR, or discussion; auto-detects type |
| 13 | - `vitality [<owner>/<repo> | <github-url>]` — repo vitality overview with 9-axis health scorecard, duplicate detection. Optional repo argument accepts `owner/repo` shorthand or full `https://github.com/owner/repo` URL. Omitted → auto-detected from git upstream. Non-GitHub remotes (GitLab, Bitbucket, etc.) stop with warning. |
| 14 | - `ecosystem` — downstream consumer impact analysis for library maintainers |
| 15 | - `--reply` — only valid with `N`; spawns shepherd to draft contributor-facing reply after thread analysis. Silently ignored for `vitality` and `ecosystem`. |
| 16 | - `--quick` — only meaningful with `vitality`; fast daily-scorecard path skipping Codex independent review (Step 5) and mandatory adversarial rework loop (Step 6), reduces spawns to core 4 (gh-scraper + 3 axis scorers). Full mode (all quality passes) stays default. Silently ignored for `N`, `ecosystem`, report-path modes. |
| 17 | - `path/to/report.md` — path to existing report file; only valid combined with `--reply`; skips all analysis, spawns shepherd directly using provided file |
| 18 | |
| 19 | </inputs> |
| 20 | |
| 21 | <constants> |
| 22 | |
| 23 | > Background agent health monitoring (CLAUDE.md §6) — applies to Step 7 shepherd spawn |
| 24 | MONITOR_INTERVAL=300 # 5 minutes between polls |
| 25 | HARD_CUTOFF=900 # 15 minutes of no file activity → declare timed out |
| 26 | EXTENSION=300 # one +5 min extension if output file explains delay |
| 27 | |
| 28 | </constants> |
| 29 | |
| 30 | <compaction> |
| 31 | |
| 32 | > loads: compaction-contract.md |
| 33 | Key boundary: end of Step 5 — gather/fetch complete, before Step 6 synthesis gate. |
| 34 | Preserve: cache-dir (.cache/gh), target # (CLEAN_ARGS), synthesized report path, reply-mode flag. |
| 35 | |
| 36 | </compaction> |
| 37 | |
| 38 | <workflow> |
| 39 | |
| 40 | <!-- Agent resolution: see _OSS_SHARED/agent-resolution.md --> |
| 41 | |
| 42 | ## Agent Resolution |
| 43 | |
| 44 | ```bash |
| 45 | export CSID="${CLAUDE_CODE_SESSION_ID:-$PPID}" |
| 46 | # loads: compaction-contract.md |
| 47 | # Cold-start fallback: |
| 48 | _OSS_SHARED=$(python "${CLAUDE_PLUGIN_ROOT:-plugins/cc_oss}/bin/resolve_shared_path.py" oss skills/_shared 2>/dev/null) # timeout: 5000 |
| 49 | # Empty _OSS_SHARED → resolve_shared_path.py failed (missing python/script or oss plugin); |
| 50 | # downstream `[ -f "$_OSS_SHARED/..." ]` paths silently expand, Step 7 fails after full analysis. |
| 51 | # --reply: hard fail; non-reply: degrade gracefully. |
| 52 | if [ -z "$_OSS_SHARED" ]; then |
| 53 | if [ "$REPLY_MODE" = "true" ]; then |
| 54 | echo "! BLOCKED — could not resolve _OSS_SHARED (oss plugin missing, python unavailable, or resolve_shared_path.py absent); --reply mode requires it" |
| 55 | exit 1 |
| 56 | else |
| 57 | echo "⚠ _OSS_SHARED empty — oss plugin shared dir unresolved; continuing with degraded functionality (--reply will fail in this run)" |
| 58 | fi |
| 59 | fi |
| 60 | FOUNDRY_SHARED=$(python "${CLAUDE_PLUGIN_ROOT:-plugins/cc_oss}/bin/resolve_shared_path.py" foundry skills/_shared 2>/dev/null) # timeout: 5000 — loads: terminal-summaries.md (from foundry plugin _shared/); consumed by modes/thread.md, modes/vitality.md, modes/ecos |