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.
Scanned 5/27/2026
Install via CLI
openskills install Abhilash-003/mstack---
name: mstack
version: 0.1.0
description: |
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.
allowed-tools:
- Bash
- Read
- AskUserQuestion
---
## Preamble (run first)
```bash
_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"
fi
```
If `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
No comments yet. Be the first to comment!