ln-913-community-debater
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePaths: File paths (,shared/,references/) 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-*
路径说明: 文件路径(、shared/、references/)是相对于技能仓库根目录的。如果在当前工作目录(CWD)中未找到,请定位到本SKILL.md所在目录,然后向上一级即为仓库根目录。../ln-*
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.mdExecute the discovery protocol. Extract:
- for URLs and codebase context
{owner}/{repo} - for GraphQL mutation
repo.id - for RFC/Proposal discussions
categories["Ideas"] - for Prioritization polls
categories["Polls"] - Verify required categories exist
Load strategy: check in target project, fallback to . Extract Section 3 (Debate Triggers) and Section 1 (Decision Matrix).
docs/community_engagement_strategy.md../ln-910-community-engagement/references/community_strategy_template.mdMANDATORY 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"] - 验证所需分类是否存在
加载策略:检查目标项目中的,如果不存在则回退到。提取第3节(辩论触发条件)和第1节(决策矩阵)。
docs/community_engagement_strategy.md../ln-910-community-engagement/references/community_strategy_template.md必读内容: 加载
../ln-910-community-engagement/references/discussion_formatting.mdPhase 1: Define the Topic
阶段1:定义主题
If provided, use as the topic seed. Otherwise, ask the user what they want to debate.
$ARGUMENTSGather context:
- Read strategy Section 3 -- verify this qualifies as a debate
- Grep the codebase for files related to the topic
- Read relevant SKILL.md files, docs, or shared references
- Identify existing patterns that the proposal might change
如果提供了,则将其作为主题初始内容。否则,询问用户想要辩论的主题。
$ARGUMENTS收集上下文信息:
- 阅读策略文档的第3节——验证该主题是否适合发起辩论
- 在代码库中搜索与该主题相关的文件
- 阅读相关的SKILL.md文件、文档或共享参考资料
- 识别提案可能会改变的现有模式
Phase 2: Classify Debate Type
阶段2:分类辩论类型
| Type | Prefix | Category | When to use |
|---|---|---|---|
| Maintainer RFC -- design mostly done, seeking validation | | Ideas | End of design process, soft announcement |
| Community RFC -- early stage, genuinely open to alternatives | | Ideas | Beginning of design, kickstart discussion |
| Proposal -- new feature or restructuring | | Ideas | Concrete idea with use case |
| Workflow Change -- pipeline, task flow, or conventions | | Ideas | Affects multiple areas or user workflows |
| Prioritization -- what to build next, feature ranking | | Polls | Multiple options, need community vote |
If type is Prioritization, switch to Polls flow (Phase 4).
| 类型 | 前缀 | 分类 | 使用场景 |
|---|---|---|---|
| 维护者RFC——设计基本完成,寻求验证 | | Ideas | 设计流程末期,软发布通知 |
| 社区RFC——早期阶段,真正开放接受替代方案 | | Ideas | 设计初期,启动讨论 |
| 提案——新功能或架构调整 | | Ideas | 带有使用场景的具体想法 |
| 工作流变更——流水线、任务流或约定变更 | | Ideas | 影响多个领域或用户工作流 |
| 优先级投票——下一步构建内容、功能排名 | | Polls | 有多个选项,需要社区投票 |
如果类型为优先级投票,则切换到投票流程(阶段4)。
Phase 3: Compose RFC Discussion
阶段3:撰写RFC讨论内容
Use the RFC Structure Pattern from (loaded in Phase 0).
discussion_formatting.mdSkill-specific additions beyond the shared pattern:
- Add section after Open Questions — implementation details not yet decided, to be resolved during development
## Unresolved Details - Add section — how the decision will be made (metrics, feedback threshold)
## Decision Criteria - Minimum 2 alternatives in the Alternatives table
使用阶段0中加载的里的RFC结构模板。
discussion_formatting.md除共享模板外的技能专属补充内容:
- 在“开放问题”之后添加章节——尚未确定的实现细节,将在开发过程中解决
## 未解决细节 - 添加章节——决策将如何制定(指标、反馈阈值)
## 决策标准 - 替代方案表格中至少包含2个替代选项
Phase 4: Compose Poll (for Prioritization type)
阶段4:撰写投票内容(适用于优先级投票类型)
GitHub Discussions Polls are created via UI only. Instead, compose a reaction-based voting discussion:
undefinedGitHub 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