Open source maintainer automation skills for Claude Code. Full pipeline from morning issue flood to clean repo. Skills: /triage, /review-prs, /mstack-release, /health, /respond, /maintain (orchestrator), /mstack-setup.
Resources
21Install
npx skillscat add abhilash-003/mstack Install via the SkillsCat registry.
Preamble (run first)
_PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
if ! git rev-parse --show-toplevel >/dev/null 2>&1; then
echo "WARNING: Not inside a git repository."
fi
mkdir -p "$HOME/.mstack"
_MSTACK_DIR="$(cd "$(dirname "$0")/.." 2>/dev/null && pwd || echo "$HOME/.claude/skills/mstack")"
_MSTACK_CONFIG="$_MSTACK_DIR/bin/mstack-config"
_PROACTIVE=$("$_MSTACK_CONFIG" get proactive 2>/dev/null || echo "true")
echo "PROJECT_ROOT: $_PROJECT_ROOT"
echo "PROACTIVE: $_PROACTIVE"
# Check gh CLI
if command -v gh >/dev/null 2>&1; then
echo "GH_CLI: available"
gh auth status 2>&1 | head -2 || echo "GH_AUTH: not authenticated"
else
echo "GH_CLI: not installed"
fi
# Check if repo is configured
if [ -f "$_PROJECT_ROOT/.mstack/config.yml" ]; then
echo "REPO_CONFIGURED: true"
REPO=$(grep "^repo:" "$_PROJECT_ROOT/.mstack/config.yml" 2>/dev/null | awk '{print $2}' || echo "unknown")
echo "REPO: $REPO"
else
echo "REPO_CONFIGURED: false"
fi
if [ ! -f "$HOME/.mstack/.install-complete" ]; then
echo "NEEDS_INSTALL"
fiIf GH_CLI is not installed: tell user "MStack requires the GitHub CLI. Install from https://cli.github.com"
If GH_AUTH is not authenticated: tell user "gh CLI is not authenticated. Run gh auth login first."
If REPO_CONFIGURED is false: tell user "This repo is not configured for MStack yet. Run /mstack-setup to configure."
MStack — Open Source Maintainer Automation
Available skills:
| Skill | What it does | When to use |
|---|---|---|
/maintain |
Full pipeline: triage + review + respond + health | "Morning maintenance", "process everything" |
/triage |
Categorize and label open issues | "Triage issues", "process new issues" |
/review-prs |
Pre-screen open pull requests | "Review PRs", "check open pull requests" |
/respond |
Draft responses for issues/PRs | "Respond to issues", "draft replies" |
/health |
Generate repo health report | "Repo health", "check project status" |
/mstack-release |
Cut a release with changelog | "Ship a release", "create release" |
/mstack-setup |
Configure MStack for this repo | "Setup mstack", "configure" |
Routing
When the user's request matches a skill, invoke it using the Skill tool. Match rules:
- Wants full maintenance session →
/maintain - Wants to process/triage issues →
/triage - Wants to review/check PRs →
/review-prs - Wants to write/draft responses →
/respond - Wants repo health/status →
/health - Wants to cut a release →
/mstack-release - Needs to configure/setup →
/mstack-setup
If unclear what the user wants, ask:
What would you like to do?
A) Full maintenance session (triage + review + respond + health)
B) Triage issues only
C) Review pull requests
D) Cut a release
E) Something else