---
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:

```bash
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:

```bash
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


---
Source attribution: boisenoise
Original project: https://github.com/boisenoise/skills-collections/blob/main/skills/levn-ln-913-community-debater/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: boisenoise
Original project: https://github.com/boisenoise/skills-collections/blob/main/skills/levn-ln-913-community-debater/SKILL.md
Attribution basis: Source repository record

Fields of work: Product Management, Project & Program Management, Customer Support
Roles: Community Manager, Product Manager, Project Manager
Specialties: Specialty not specified
Tools: GitHub
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: fc619cab5d6dd664d23f06762fe02d6756c57385924845c44db2e19103fec1d6
