From community-engagement
Analyzes GitHub repo community health from issues/discussions, unreleased changes, and cadence; delegates to triager, announcer, debater, or responder workers.
npx claudepluginhub levnikolaevich/claude-code-skills --plugin community-engagementThis skill is limited to using the following tools:
> **Paths:** File paths (`shared/`, `references/`, `../ln-*`) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. If `shared/` is missing, fetch files via WebFetch from `https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}`.
Generates prioritized triage reports from open GitHub issues, PRs, and discussions in the current repo. Use when reviewing community backlog.
Triages issues, reviews PRs, analyzes contributor activity, generates maintenance reports, and proposes actions for open-source GitHub repositories.
Guides setup of GitHub community health files (LICENSE, CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, issue/PR templates) via gh CLI and APIs for open source repos.
Share bugs, ideas, or general feedback.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Type: L2 Coordinator (active) Category: 9XX Community Engagement
Analyzes current community health and repository state, consults the engagement strategy, and delegates to the appropriate worker. Each worker is also invocable standalone.
| Aspect | Details |
|---|---|
| Input | $ARGUMENTS (optional): topic, action keyword, or empty for auto-analysis |
| Output | Situation report + delegated action via worker skill |
| Workers | ln-911 (triager), ln-912 (announcer), ln-913 (debater), ln-914 (responder) |
MANDATORY READ: Load shared/references/community_github_discovery.md
Execute the discovery protocol. Extract:
{owner}/{repo} for all GitHub operationsrepo.id for GraphQL mutations (passed to workers)maintainer login (authenticated user)Gate checks: gh authenticated? Discussions enabled?
Load strategy: check docs/community_engagement_strategy.md in target project, fallback to shared/references/community_strategy_template.md.
If $ARGUMENTS contains a direct action keyword (announce, debate, triage, respond), skip analysis and jump to Phase 3 (Direct Delegation).
Otherwise, gather context from multiple sources in parallel:
Delegate to triager in summary mode (no interactive preview):
Skill(skill: "ln-911-github-triager", args: "summary")
Extract from triager output: red flags, priority counts (P0/P1/P2), health metrics.
# Last announcement date: most recent Announcements discussion
gh api graphql -f query='query($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
discussions(first: 1, categoryId: "{categories.Announcements}", orderBy: {field: CREATED_AT, direction: DESC}) {
nodes { createdAt title }
}
}
}' -f owner="{owner}" -f name="{repo}"
Then check what changed since:
git log --oneline --since="{last_announcement_date}"
Read CHANGELOG.md — any entries newer than the last announcement?
From strategy Section 4:
Apply strategy Section 1 (Announcement vs Debate) to the gathered context:
| Condition | Priority | Action | Worker |
|---|---|---|---|
| Red flags: unanswered discussions >7d | P0 | Respond to unanswered items | → ln-914 |
| Red flags: PRs needing review | P0 | List PRs needing review | Recommendations only |
| Unreleased changes in CHANGELOG | P1 | Announce: new features/fixes | → ln-912 |
$ARGUMENTS contains RFC/debate topic | P1 | Debate: launch RFC | → ln-913 |
| Monthly digest overdue (>30d) | P2 | Monthly digest announcement | → ln-912 |
| Design questions identified in Phase 1 | P2 | Debate: RFC for open decisions | → ln-913 |
| Community health OK, nothing unreleased | — | Report "all clear" | No delegation |
Present to user:
## Community Status — {YYYY-MM-DD}
**Repo:** {owner}/{repo}
**Last announcement:** {date} ({days} days ago)
**Open items:** {issues} issues, {prs} PRs, {discussions} discussions
### Red Flags
{list or "None"}
### Recommended Action
{One of: Announce / Debate / Respond to items / No action needed}
**Reason:** {brief explanation based on strategy criteria}
Wait for user approval before proceeding.
After user approves the recommended action:
$ARGUMENTS specifies action)| Argument | Delegation |
|---|---|
announce or announce {topic} | Skill(skill: "ln-912-community-announcer", args: "{topic}") |
debate or debate {topic} | Skill(skill: "ln-913-community-debater", args: "{topic}") |
triage or triage {scope} | Skill(skill: "ln-911-github-triager", args: "{scope}") |
respond or respond {#number} | Skill(skill: "ln-914-community-responder", args: "{#number or batch}") |
| Recommended action | Delegation |
|---|---|
| Announce | Skill(skill: "ln-912-community-announcer") — worker gathers its own context |
| Debate | Skill(skill: "ln-913-community-debater", args: "{identified topic}") |
| Respond to items | Skill(skill: "ln-914-community-responder", args: "batch") |
| No action needed | Report status, done |
| File | Purpose |
|---|---|
shared/references/community_github_discovery.md | Phase 0: dynamic repo/category/user discovery |
shared/references/community_strategy_template.md | Default engagement strategy (fallback) |
shared/references/community_discussion_formatting.md | GitHub Discussion formatting rules |
Each target project can override the default strategy by creating docs/community_engagement_strategy.md. All skills check project-local first, then fall back to the template in shared/references/.
MANDATORY READ: Load shared/references/meta_analysis_protocol.md
Skill type: planning-coordinator. Run after Phase 3 completes. Output to chat using the planning-coordinator format.
TodoWrite format (mandatory):
- GitHub discovery (in_progress)
- Situation analysis (pending)
- Apply decision matrix (pending)
- Invoke ln-911-github-triager (pending)
- Invoke ln-912-community-announcer (pending)
- Invoke ln-913-community-debater (pending)
- Invoke ln-914-community-responder (pending)
- Report outcome to user (pending)
| Phase | Worker | Context |
|---|---|---|
| 1 | ln-911-github-triager | Shared (Skill tool) — community health summary |
| 3 | ln-912-community-announcer | Shared (Skill tool) — feature/release announcements |
| 3 | ln-913-community-debater | Shared (Skill tool) — RFC / architectural debates |
| 3 | ln-914-community-responder | Shared (Skill tool) — respond to unanswered items |
All workers: Invoke via Skill tool — workers see coordinator context.
Version: 1.0.0 Last Updated: 2026-03-13