Débat communautaire pour RFC et discussions GitHub

VérifiéPrudence

Lance des discussions RFC et de débat structurées sur GitHub pour recueillir l'avis de la communauté. Guide à travers les phases de classification et de composition.

Spar Skills Guide Bot
ProductiviteIntermédiaire
01/08/2026
Claude Code
#github-discussions#rfc#community-engagement#decision-making#poll

Recommandé pour

Synthèse automatique

Lance des discussions RFC et des débats structurés dans GitHub Discussions afin de recueillir l'avis de la communauté avant une décision.

Points forts

  • Distingue plusieurs formats (RFC mainteneur, RFC communautaire, proposition, changement de workflow, priorisation) et adapte la discussion en conséquence.
  • Impose une structure avec alternatives, critères de décision et points non résolus, ce qui cadre le débat.
  • Prévoit une phase de vérification des liens, chemins de fichiers et références de code avant publication.
  • S'appuie sur des référentiels partagés de formatage, de stratégie et de contrôle de qualité rédactionnelle.

Limites

  • Dépend de la présence et de la bonne configuration des catégories GitHub Discussions (Ideas, Polls) et des fichiers de référence partagés.
  • Le vote de priorisation repose sur des réactions à des commentaires, et non sur les sondages natifs de GitHub.
  • La phase de fact-checking décrite est partielle dans le texte fourni et suppose une vérification manuelle des affirmations.
Quand l'utiliser

À utiliser lorsqu'un changement de produit, de code ou de processus mérite un débat public et une validation communautaire sur GitHub.

Quand l'éviter

À éviter pour une correction urgente, un changement purement interne ou une décision qui ne nécessite pas l'avis de la communauté.

Analyse de sécurité

Prudence
Score qualité76/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'.

Points d'attention
  • •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.
Comment cette analyse est faite

Exemples

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

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

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. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Grep, Glob, Bash, WebFetch

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

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 doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci'

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

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/community-debater-for-rfcs-and-github-discussions-ms9wnyci/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires