ln-913-community-debater

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
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.
路径说明: 文件路径(
shared/
references/
../ln-*
)是相对于技能仓库根目录的。如果在当前工作目录(CWD)中未找到,请定位到本SKILL.md所在目录,然后向上一级即为仓库根目录。

ln-913-community-debater

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.

类型: L3 Worker(独立运行) 分类: 9XX 社区参与 调用方: ln-910-community-engagement(或独立运行)
在GitHub Discussions中发起结构化辩论讨论,以收集社区意见辅助决策。

Phase 0: GitHub Discovery

阶段0:GitHub信息探查

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

必读内容: 加载
../ln-910-community-engagement/references/github_discovery.md
执行信息探查流程,提取以下内容:
  • 用于URL和代码库上下文的
    {owner}/{repo}
  • 用于GraphQL突变的
    repo.id
  • 用于RFC/提案讨论的
    categories["Ideas"]
  • 用于优先级投票的
    categories["Polls"]
  • 验证所需分类是否存在
加载策略:检查目标项目中的
docs/community_engagement_strategy.md
,如果不存在则回退到
../ln-910-community-engagement/references/community_strategy_template.md
。提取第3节(辩论触发条件)和第1节(决策矩阵)。
必读内容: 加载
../ln-910-community-engagement/references/discussion_formatting.md

Phase 1: Define the Topic

阶段1:定义主题

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

如果提供了
$ARGUMENTS
,则将其作为主题初始内容。否则,询问用户想要辩论的主题。
收集上下文信息:
  1. 阅读策略文档的第3节——验证该主题是否适合发起辩论
  2. 在代码库中搜索与该主题相关的文件
  3. 阅读相关的SKILL.md文件、文档或共享参考资料
  4. 识别提案可能会改变的现有模式

Phase 2: Classify Debate Type

阶段2:分类辩论类型

TypePrefixCategoryWhen to use
Maintainer RFC -- design mostly done, seeking validation
[RFC]
IdeasEnd of design process, soft announcement
Community RFC -- early stage, genuinely open to alternatives
[RFC]
IdeasBeginning of design, kickstart discussion
Proposal -- new feature or restructuring
[Proposal]
IdeasConcrete idea with use case
Workflow Change -- pipeline, task flow, or conventions
[RFC]
IdeasAffects multiple areas or user workflows
Prioritization -- what to build next, feature ranking
[Poll]
PollsMultiple options, need community vote
If type is Prioritization, switch to Polls flow (Phase 4).

类型前缀分类使用场景
维护者RFC——设计基本完成,寻求验证
[RFC]
Ideas设计流程末期,软发布通知
社区RFC——早期阶段,真正开放接受替代方案
[RFC]
Ideas设计初期,启动讨论
提案——新功能或架构调整
[Proposal]
Ideas带有使用场景的具体想法
工作流变更——流水线、任务流或约定变更
[RFC]
Ideas影响多个领域或用户工作流
优先级投票——下一步构建内容、功能排名
[Poll]
Polls有多个选项,需要社区投票
如果类型为优先级投票,则切换到投票流程(阶段4)。

Phase 3: Compose RFC Discussion

阶段3:撰写RFC讨论内容

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

使用阶段0中加载的
discussion_formatting.md
里的RFC结构模板
除共享模板外的技能专属补充内容:
  • 在“开放问题”之后添加
    ## 未解决细节
    章节——尚未确定的实现细节,将在开发过程中解决
  • 添加
    ## 决策标准
    章节——决策将如何制定(指标、反馈阈值)
  • 替代方案表格中至少包含2个替代选项

Phase 4: Compose Poll (for Prioritization type)

阶段4:撰写投票内容(适用于优先级投票类型)

GitHub Discussions Polls are created via UI only. Instead, compose a reaction-based voting discussion:
undefined
GitHub Discussions的投票功能仅支持通过UI创建。因此,我们改为撰写基于反应的投票讨论:
undefined

{Topic}

{主题}

{1-2 sentence context}
Vote by reacting to the options below (each option is posted as a separate comment -- use :+1: to vote).
{1-2句话的上下文说明}
通过对下方选项添加反应进行投票(每个选项将作为单独评论发布——使用:+1:表示投票支持)。

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

阶段5:审核与发布

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.

将撰写好的标题+正文呈现给用户。发布前必须等待用户明确批准。
获得批准后,使用探查得到的上下文通过GraphQL发布:
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}"
对于投票类型,创建讨论后,将每个选项作为评论发布:
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}"
将讨论URL告知用户。

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?"

  • 发布前必须向用户展示完整的撰写内容以获得批准
  • 未获得用户明确确认绝不能发布
  • 标题:描述性强,不超过80字符,前缀为[RFC]、[Proposal]或[Poll]
  • 正文:基于事实,不带有说服性——中立呈现选项
  • 包含指向仓库中相关代码/文档的链接
  • 适用时设置决策时间线
  • 替代方案表格中至少包含2个替代选项
  • 语气:“我们正在考虑X方案。以下是相关权衡。您的看法是什么?”

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
  • 已定义主题并收集了代码库上下文
  • 已对辩论类型进行分类(RFC/提案/工作流/优先级投票)
  • 已撰写RFC或投票内容,且至少包含2个替代选项
  • 用户已批准最终草稿
  • 通过GraphQL突变发布,并已告知用户讨论URL

版本: 1.0.0 最后更新时间: 2026-03-13