skills/levnikolaevich/claude-code-skills/ln-913-community-debater

ln-913-community-debater

SKILL.md

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.

ln-913-community-debater

Type: L3 Worker (standalone) Category: 9XX Community Engagement Caller: ln-910-community-engagement (or standalone)

Launches structured debate discussions in GitHub Discussions for decisions that benefit from community input.


Phase 0: GitHub Discovery

MANDATORY READ: Load ../ln-910-community-engagement/references/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 ../ln-910-community-engagement/references/community_strategy_template.md. Extract Section 3 (Debate Triggers) and Section 1 (Decision Matrix).

MANDATORY READ: Load ../ln-910-community-engagement/references/discussion_formatting.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: 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
  • User approved final draft
  • Published via GraphQL mutation, URL reported

Version: 1.0.0 Last Updated: 2026-03-13

Weekly Installs
1
GitHub Stars
202
First Seen
Today
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1