返回 Skill 列表
extension
分类: 开发与工程无需 API Key

discussions

管理GitHub讨论——查找未回答的问题、陈旧的帖子,并关闭已解决的讨论。在被问及讨论、问答或社区参与时使用。

person作者: jakexiaohubgithub

Discussions Module — Skill

Purpose

Manage GitHub Discussions — surface unanswered questions, stale threads, and discussions needing maintainer attention. Help keep the community discussion space healthy and responsive.

Applicability and Tier Behavior

  • Tier 4 (Public, Releases): Full assessment with maximum ceremony. Closing is externally visible — prefer posting resolution comments before closing. Never auto-close external contributor discussions. Unanswered Q&A is high priority.
  • Tier 3 (Public, No Releases): Same as Tier 4. Discussions are public and closure is visible.
  • Tier 2 (Private, Code): Lower ceremony — batch approvals for stale closures are acceptable. No external visibility concern.
  • Tier 1 (Private, Docs): Minimal ceremony. Discussions are unlikely; if present, close stale ones with brief comment.

Execution Order

Runs as module #8 during full assessments (after Notifications, before Wiki Sync). Discussions are often lower priority than issues and PRs, so they run later.

Helper Commands

# List discussions with classification
gh-manager discussions list --repo owner/name
gh-manager discussions list --repo owner/name --limit 50

# Post a comment on a discussion
gh-manager discussions comment --repo owner/name --discussion 5 --body "Thanks for the feedback..."

# Close a discussion
gh-manager discussions close --repo owner/name --discussion 5 --reason RESOLVED

Close reasons: RESOLVED, OUTDATED, DUPLICATE.


Full assessment mode: Do not output the 💬 Discussions banner during a full assessment. Collect findings and feed them into the unified 📊 view (unanswered Q&A goes to ⚠️ Needs Attention). Use the per-module banner format only for narrow discussion checks.

Assessment Flow

Step 1: Check for Discussions

gh-manager discussions list --repo owner/name

If enabled: false:

Discussions are not enabled on this repo. If you'd like a community Q&A space, you can enable them in Settings → General → Features → Discussions.

If enabled but no discussions:

Discussions are enabled but empty — nothing to triage.

Step 2: Triage Discussions

The helper returns discussions pre-classified with needs_attention, is_unanswered, and has_no_replies flags.

Classify into categories:

Unanswered Q&A: Discussions in answerable categories (typically "Q&A") where no answer has been marked. These are the highest priority — someone asked a question and hasn't gotten a definitive answer.

No replies: Discussions with zero comments. The author is waiting for any engagement.

Stale: Discussions not updated in the staleness threshold period. May need closing or a follow-up.

Active: Recently updated, has replies — healthy.

Step 3: Present Findings

💬 Discussions — ha-light-controller

12 open discussions across 3 categories:

Needs attention (3): • 🙋 Q&A #5 "How to configure multi-zone?" — unanswered, 8 days old • 🙋 Q&A #9 "Error with firmware 2.4" — unanswered, 3 days old • 💡 Ideas #7 "Support for Zigbee devices" — no replies, 15 days old

The two unanswered Q&A items should probably get a response. Want me to draft replies, or just flag them for your attention?

(Category breakdown available on request)

Step 4: Suggest Actions

Based on the triage:

Unanswered Q&A: Suggest the owner answer directly. Claude can draft a response if the owner wants, but the owner should review and post it themselves (the helper can post via discussions comment).

Stale discussions with no activity: Suggest closing with an appropriate reason.

Resolved discussions still open: If a discussion has been answered or resolved in the comments but not formally closed, suggest closing.


Actions (Owner Approval Required)

Post a Comment

gh-manager discussions comment --repo owner/name --discussion 5 --body "Great question! You can configure multi-zone by...

*Posted by GitHub Repo Manager*"

Close Resolved Discussions

⚠️ Closing a discussion is immediately visible to all participants and cannot be undone (it can be reopened, but the close notification is already sent). On Tier 3/4 public repos, prefer posting a resolution comment first and letting the author close it if possible.

Use AskUserQuestion before closing:

Discussion #3 "How to configure multi-zone?" was answered in the thread. Should I mark it closed?

Options:

  • "Close as resolved" — close immediately (Tier 1/2 default)
  • "Post a comment, then close" — summarize resolution, then close (Tier 3/4 recommended)
  • "Skip — leave it open" — don't close this discussion

On close:

gh-manager discussions close --repo owner/name --discussion 3 --reason RESOLVED

Close Stale Discussions

⚠️ Closing sends a notification to all participants — on Tier 3/4 repos this is externally visible. Post a comment first so the author understands why their discussion was closed.

Use AskUserQuestion before closing:

Discussion #7 "Support for Zigbee devices" has been idle for 30+ days with no replies.

Options:

  • "Post closing comment, then close" — recommended for Tier 3/4 (visible to community)
  • "Close without comment" — appropriate for Tier 1/2 internal repos
  • "Skip — leave it open" — don't close this discussion

On "Post closing comment, then close":

gh-manager discussions comment --repo owner/name --discussion 7 --body "Closing this as it's been inactive for 30+ days. Feel free to open a new discussion if this is still relevant.

*Posted by GitHub Repo Manager*"
gh-manager discussions close --repo owner/name --discussion 7 --reason OUTDATED

Cross-Module Interactions

With Issue Triage

  • If a discussion should be converted to an issue (e.g., a bug report posted in discussions), note it but don't auto-convert — suggest the owner do it manually via GitHub UI.

With Notifications

  • Discussion reply notifications may overlap. The Notifications module handles them with cross-reference.

With Community Health

  • An active, well-maintained discussion space is a sign of community health.
  • If discussions are enabled but all stale, it may indicate the feature isn't being used effectively.

Configurable Policies

| Setting | Default | Description | |---------|---------|-------------| | staleness_threshold_days | auto (tier default) | Days idle before flagging | | close_stale | false | Auto-close stale discussions (owner still approves) |


Error Handling

| Error | Response | |-------|----------| | GraphQL not found | "Discussions aren't enabled on this repo." | | 403 on mutation | "I can't post comments or close discussions. Check PAT permissions." | | Category not found | "That discussion category doesn't exist. Available categories: ..." |


Presenting Findings (for Reports)

| Module | Status | Findings | Actions Taken | |--------|--------|----------|---------------| | Discussions | ⚠️ Needs attention | 3 unanswered, 2 stale | 1 closed (outdated) |