skills/pr-stall-detector/SKILL.md
Detect agent-cairn PRs that have stalled (no activity >=90 min) and classify the failure mode to route to appropriate recovery agent.
npx skillsauth add avifenesh/cairn pr-stall-detectorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect agent-cairn PRs that have stalled (no activity ≥90 min) and classify the failure mode to route to appropriate recovery agent.
Stalled PRs cause critical delays in the Cairn development pipeline. This skill identifies which PRs have gone cold and why, enabling rapid diagnosis and targeted recovery.
on-demand
For each open agent-cairn PR:
last_activity_at timestamp against stall threshold (90 min)Identify the failure mode using priority-ordered rules:
| Priority | Mode | Condition | Score | |----------|------|-----------|-------| | 1 | CI Failing | CI status = "failure" AND gap >= threshold | 90 | | 2 | Review Debt | Unresolved threads > 0 AND gap >= 180min | 75 | | 3 | Merge Conflict | MergeableState in ["dirty", "behind"] | 80 | | 4 | Draft Limbo | Draft for 24h+ with CI passing | 40 | | 5 | Unknown | No clear cause identified | 50 |
Based on classification:
Required environment variables in .env.cairn:
PR_STALL_THRESHOLD_MINUTES=90 # No activity threshold (90 min = 3 ticks)
PR_STALL_COOLDOWN_MINUTES=30 # Cooldown between re-dispatch
PR_STALL_MAX_RETRIES=3 # Circuit-breaker threshold
PR_STALL_DRAFT_HOURS=24 # Draft age threshold
PR_STALL_DRY_RUN=false # Log-only mode (no dispatch)
last_activity_at from GitHubCovered by 15+ test cases in pr_detector_test.go:
tools
Post-install skill adaptation: read a newly installed SKILL.md, fix environment-specific references (paths, accounts, tool names), assign the skill to relevant agent types, and propose an AGENTS.md update. Triggered automatically after cairn.installSkill completes.
data-ai
Monthly self-improvement brief for Cairn. Queries error_patterns, action_exemplars, experiment_windows, and session_journal to synthesize what Cairn learned, where it failed, and 3 concrete proposals for Avi to approve. Run on the 1st of each month. Keywords: growth brief, monthly review, self-improvement, what did cairn learn, how is cairn doing, monthly report
testing
Decision support with memory-backed context. Retrieves past decisions, journal history, and relevant facts before answering questions that involve a choice or tradeoff. Keywords: should I, which is better, tradeoff, compare, decide, choose, option, alternative, pros and cons, recommend
development
Generate content drafts when a PR is merged or significant code ships. Produces a Twitter/X thread, blog post outline, and changelog entry from PR title, changed files, and commit messages. Keywords: content, tweet, blog, changelog, announce, write about, PR merged, shipped, released, draft post, social, thread