From community-engagement
Launches structured GitHub Discussions for RFCs, proposals, workflow changes, and prioritization polls needing community input or voting.
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}`.
Facilitates GitHub contribution workflows including creating/updating pull requests, issues, discussions, and comments using GitHub CLI with semantic analysis for titles and descriptions.
Facilitates design discussions: researches RFC/ADR governance context via govctl, clarifies requirements, drafts RFCs/ADRs for spec phase handoff.
Posts codebase-informed replies to unanswered GitHub issues and discussions. Handles single (#N), batch (unanswered P1), or interactive modes for backlog clearance.
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: L3 Worker (standalone) Category: 9XX Community Engagement Launches structured debate discussions in GitHub Discussions for decisions that benefit from community input.
MANDATORY READ: Load shared/references/community_github_discovery.md
Execute the discovery protocol. Extract:
{owner}/{repo} for URLs and codebase contextrepo.id for GraphQL mutationcategories["Ideas"] for RFC/Proposal discussionscategories["Polls"] for Prioritization pollsLoad strategy: check docs/community_engagement_strategy.md in target project, fallback to shared/references/community_strategy_template.md. Extract Section 3 (Debate Triggers) and Section 1 (Decision Matrix).
MANDATORY READ: Load shared/references/community_discussion_formatting.md
MANDATORY READ: Load shared/references/humanizer_checklist.md
If $ARGUMENTS provided, use as the topic seed. Otherwise, ask the user what they want to debate.
Gather context:
| Type | Prefix | Category | When to use |
|---|---|---|---|
| Maintainer RFC -- design mostly done, seeking validation | [RFC] | Ideas | End of design process, soft announcement |
| Community RFC -- early stage, genuinely open to alternatives | [RFC] | Ideas | Beginning of design, kickstart discussion |
| Proposal -- new feature or restructuring | [Proposal] | Ideas | Concrete idea with use case |
| Workflow Change -- pipeline, task flow, or conventions | [RFC] | Ideas | Affects multiple areas or user workflows |
| Prioritization -- what to build next, feature ranking | [Poll] | Polls | Multiple options, need community vote |
If type is Prioritization, switch to Polls flow (Phase 4).
Use the RFC Structure Pattern from discussion_formatting.md (loaded in Phase 0).
Skill-specific additions beyond the shared pattern:
## Unresolved Details section after Open Questions — implementation details not yet decided, to be resolved during development## Decision Criteria section — how the decision will be made (metrics, feedback threshold)GitHub Discussions Polls are created via UI only. Instead, compose a reaction-based voting discussion:
## {Topic}
{1-2 sentence context}
**Vote by reacting to the options below** (each option is posted as a separate comment -- use :+1: to vote).
### Context
{Why this decision matters now}
After creating the discussion, post each option as a separate comment for reaction-based voting.
Before presenting to user, verify every verifiable claim in the draft:
ls {path}. Remove or fix broken links.grep -r "{name}".humanizer_checklist.md. If 3+ AI patterns found, rewrite flagged sections.Gate: If any check fails, fix the draft before proceeding.
Present the composed title + body to the user. Wait for explicit approval before publishing.
After approval, publish via GraphQL using discovery context:
gh api graphql -f query='
mutation($title: String!, $body: String!, $repoId: ID!, $catId: ID!) {
createDiscussion(input: {
repositoryId: $repoId,
categoryId: $catId,
title: $title,
body: $body
}) {
discussion { url id }
}
}
' -f title="TITLE_HERE" -f body="BODY_HERE" -f repoId="{repo.id}" -f catId="{categories.Ideas or categories.Polls}"
For Polls, after creating the discussion, post each option as a comment:
gh api graphql -f query='
mutation($discussionId: ID!, $body: String!) {
addDiscussionComment(input: {
discussionId: $discussionId,
body: $body
}) {
comment { url }
}
}
' -f discussionId="DISCUSSION_NODE_ID" -f body="**Option N:** {description}"
Report the discussion URL to the user.
Version: 1.0.0 Last Updated: 2026-03-13