Community Debater for RFCs and GitHub Discussions

VerifiedCaution

Launches structured RFC and debate discussions on GitHub for community input. Guides through phases to classify debate type and compose a formatted discussion.

Sby Skills Guide Bot
ProductivityIntermediate
8/1/2026
Claude Code
#github-discussions#rfc#community-engagement#decision-making#poll

Recommended for

Automated summary

Launches RFC and structured debate discussions in GitHub Discussions to gather community input before a decision.

Strengths

  • Distinguishes several formats (maintainer RFC, community RFC, proposal, workflow change, prioritization) and adapts the discussion accordingly.
  • Enforces a structure with alternatives, decision criteria, and unresolved details, giving the debate a clear frame.
  • Includes a verification phase for links, file paths, and code references before publication.
  • Relies on shared formatting, strategy, and editorial quality reference material.

Limitations

  • Depends on GitHub Discussions categories (Ideas, Polls) and shared reference files being present and correctly configured.
  • Prioritization voting uses reactions to separate comments rather than GitHub's native polls.
  • The fact-checking phase is only partially described in the provided text and assumes manual verification of claims.
When to use it

Use it when a product, code, or process change deserves public debate and community validation on GitHub.

When not to use it

Avoid it for urgent fixes, purely internal changes, or decisions that do not need community input.

Security analysis

Caution
Quality score76/100

The skill is a documentation/community-outreach workflow that reads the codebase and posts GitHub Discussions via the `gh` CLI. The only meaningful risk surface is authenticated write access to a repository plus a runtime fetch of shared reference files from an unpinned upstream branch, both of which are used for legitimate purposes. With the built-in user-approval gate before any mutation, this is a 'caution' rather than 'risky'.

Findings
  • •Uses Bash to execute `gh api graphql` mutations that create public GitHub Discussions and comments — this is a write action against a live repository using the user's authenticated `gh` credentials, mitigated by an explicit 'wait for user approval' gate before publishing.
  • •Phase 0 instructs WebFetch to download reference/instruction files from `https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}` when local `shared/` is absent, so remotely-fetched text becomes operative instructions at runtime; this creates an external-content trust dependency pinned only to a mutable `master` branch.
  • •Discovery step trusts `{owner}/{repo}` and category node IDs collected at runtime; a mis-identified repo/category could publish content to an unintended destination (no pre-publish confirmation of the resolved target repository is described).
  • •No destructive, obfuscated, or secret-exfiltrating behavior; no base64 payloads, no curl|sh, no safety-disabling instructions, and no instructions attempting to manipulate the auditor.
  • •Uses Bash to run `gh api graphql` mutations that create public GitHub Discussions/comments — an external, irreversible side effect (well-gated by an explicit user-approval requirement).
  • •Phase 0 fallback instructs WebFetch to pull reference files from a remote GitHub raw URL when local `shared/` files are missing; the fetched text (humanizer_checklist.md, strategy template) is then treated as instructions to follow, creating a remote-content/instruction-injection surface if that repo is ever compromised.
How this analysis is made

Examples

RFC for plugin architecture
Draft a community RFC discussion for adding a plugin architecture to our repo, compare at least two alternatives, and create it in GitHub Discussions under Ideas after verifying all code references.
Feature prioritization poll
Launch a prioritization discussion to decide which of our next three CLI features to build, post each option as a separate comment for reaction-based voting, and include context on why the decision matters now.
Release workflow debate
Open an RFC debate about moving our release process to trunk-based development, list unresolved implementation details and decision criteria, and fact-check any linked files before publishing.

name: ln-913-community-debater description: "Launches RFC and debate discussions on GitHub. Use when proposing changes that need community input or voting." disable-model-invocation: true license: MIT allowed-tools: Read, Grep, Glob, Bash, WebFetch

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}.

ln-913-community-debater

Type: L3 Worker (standalone) Category: 9XX Community Engagement Launches structured debate discussions in GitHub Discussions for decisions that benefit from community input.


Phase 0: GitHub Discovery

MANDATORY READ: Load shared/references/community_github_discovery.md

Execute the discovery protocol. Extract:

  • {owner}/{repo} for URLs and codebase context
  • repo.id for GraphQL mutation
  • categories["Ideas"] for RFC/Proposal discussions
  • categories["Polls"] for Prioritization polls
  • Verify required categories exist

Load 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


Phase 1: Define the Topic

If $ARGUMENTS provided, use as the topic seed. Otherwise, ask the user what they want to debate.

Gather context:

  1. Read strategy Section 3 -- verify this qualifies as a debate
  2. Grep the codebase for files related to the topic
  3. Read relevant SKILL.md files, docs, or shared references
  4. Identify existing patterns that the proposal might change

Phase 2: Classify Debate Type

| 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).


Phase 3: Compose RFC Discussion

Use the RFC Structure Pattern from discussion_formatting.md (loaded in Phase 0).

Skill-specific additions beyond the shared pattern:

  • Add ## Unresolved Details section after Open Questions — implementation details not yet decided, to be resolved during development
  • Add ## Decision Criteria section — how the decision will be made (metrics, feedback threshold)
  • Minimum 2 alternatives in the Alternatives table

Phase 4: Compose Poll (for Prioritization type)

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.


Phase 5: Fact-Check

Before presenting to user, verify every verifiable claim in the draft:

  1. File paths & links -- verify each linked file exists: ls {path}. Remove or fix broken links.
  2. Code references -- verify mentioned functions/patterns exist: grep -r "{name}".
  3. Alternatives accuracy -- re-read source files to confirm the Alternatives table accurately describes tradeoffs. No hallucinated pros/cons.
  4. Names -- verify skill names, directory names, config keys match actual repo state.
  5. Humanizer audit -- run the audit protocol from humanizer_checklist.md. If 3+ AI patterns found, rewrite flagged sections.

Gate: If any check fails, fix the draft before proceeding.


Phase 6: Review and Publish

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.


Rules

  • Always present the full composed text for user approval before publishing
  • Never publish without explicit user confirmation
  • Title: descriptive, under 80 chars, prefixed with [RFC], [Proposal], or [Poll]
  • Body: factual, not persuasive -- present options neutrally
  • Include links to relevant code/docs in the repository
  • Set a decision timeline when applicable
  • Minimum 2 alternatives in the Alternatives table
  • Tone: "We're considering X. Here are the tradeoffs. What's your take?"

Definition of Done

  • [ ] Topic defined with codebase context gathered
  • [ ] Debate type classified (RFC/Proposal/Workflow/Prioritization)
  • [ ] RFC or poll composed with minimum 2 alternatives
  • [ ] Fact-checked (links, code references, alternatives accuracy, names)
  • [ ] Humanizer audit passed (< 3 AI patterns)
  • [ ] User approved final draft
  • [ ] Published via GraphQL mutation, URL reported

Version: 1.0.0 Last Updated: 2026-03-13

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/community-debater-for-rfcs-and-github-discussions-ms9wnyci/download' --output '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md.part' && mv '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md.part' '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Grep, Glob, Bash, WebFetch

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md' && test -s '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ln-913-community-debater' && cp -R '.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci' '.claude/skills/ln-913-community-debater'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci'

openskills read 'community-debater-for-rfcs-and-github-discussions-ms9wnyci'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills