Skip to content

feat: make /idd-list and /idd-issue GitHub Discussions-aware (intake blind spot) #221

Description

@kiki830621

Problem

/idd-list and /idd-issue only look at GitHub Issues. But real user bug reports and feature requests frequently arrive as GitHub Discussions (Q&A category especially), which are completely invisible to the IDD workflow.

Concrete case that surfaced this: on 2026-07-04, /idd-list on PsychQuant/che-ical-mcp reported 0 open issues — a clean backlog. But a real permission bug report had been sitting in Discussions the whole time:

The report, the maintainer's diagnosis, and the reporter's eventual "it's fixed" confirmation all happened inside the Discussion. None of it ever touched the Issues tab, so IDD had a blind spot over the entire intake channel.

Type

feature (enhancement)

Expected

/idd-list — surface Discussions alongside Issues:

  • Fetch open Discussions via gh api graphql (Discussions have no REST API).
  • No-op gracefully when hasDiscussionsEnabled: false.
  • Flag actionable ones: Q&A / Ideas category, answerChosenAt: null (unanswered), and not already linked to an existing issue.
  • Show them in a dedicated block with a Suggested next action.
  • Opt-in via a --discussions flag (avoid always-on latency + noise) or a config key.

When a Discussion describes an unresolved problem, the workflow:

  1. Suggest creating an Issue from it (carry the Discussion URL as provenance).
  2. After the Issue exists, post a reply in the Discussion linking the new Issue.

/idd-issue — accept a Discussion as a source:

  • --from-discussion <url|number>: seed the issue body from the Discussion, record provenance, and (draft-and-confirm) post a back-reference reply.

Design constraints (learned from the che-ical-mcp discussion 105 case)

  • Do NOT auto-file. That discussion was already resolved — the reporter's latest comment (2026-07-04) was "everything is fixed, thank you," and the root causes were already tracked in closed issues. A tool that mechanically files an issue for every Discussion "problem" would have created a noise issue that opens only to be closed immediately. The tool must surface + let the human judge, not auto-create.
  • Dedup: a Discussion already referenced by an existing (open or closed) issue should not be re-flagged.
  • Resolution detection: at minimum, don't flag Discussions whose latest activity is a maintainer answer or a reporter "fixed" confirmation. answerChosenAt != null is the cheap signal; latest-comment sentiment is a stretch goal.
  • Category filter: Announcements / Show-and-tell aren't intake; only Q&A (and optionally Ideas) count.
  • Outward-facing writes (the Discussion reply) are draft-and-confirm, never silent auto-post.

Current Status

Phase: closed
Last updated: 2026-07-11 by /idd-close

Key Decisions

  • Complexity = Spectra(opt-out → 直接 propose):方向已由 issue body 設計約束定案
  • Conflict Class = A_parallel_safe;排 batch Wave C 尾(最重項)
  • unattended 邊界:Discussion 回文 draft-only 不 auto-post

Filed 2026-07-04 from the che-ical-mcp Discussions intake gap. The two open discussions there (105 and 1) were closed out manually — replied, and 105 marked answered — as part of surfacing this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions