Skip to content

discovery:research: require inline source links when the parent presents findings #7840

Description

@kyle-sexton

Problem

/discovery:research artifacts record every source URL (sources[].url in the findings sidecar, the fetch log), but nothing tells the parent session to carry those URLs into what it presents to the user. In practice the parent summarizes findings with source names ("git, husky, GitHub, Fowler") and drops the links, so the user cannot click through to check a claim.

Observed in one session on 2026-10-17: three research runs, every verifier pass confirmed the quotes at their URLs, and the user-facing summary still cited sources by name only until the user asked for links.

Proposed fix

In the research skill's parent-facing contract (the Output Format / post-dispatch boundary the parent owns), require that when the parent presents findings, each accepted claim carries its primary source and counted corroborators as inline links taken from the artifact's sources[].url, and that a local probe with no URL cites the artifact file holding its commands. A source name without its URL does not count as a citation.

Acceptance

  • The skill text the parent reads before presenting findings states the inline-link requirement.
  • An eval or example shows a presented summary with per-claim links.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 17, 2026
  2. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    This was generated by AI during triage.

    Verified: request valid

    Default branch: e59e0be (not applicable)
    Open linked PRs: none

    The research skill's Output Format (plugins/discovery/skills/research/SKILL.md:243-253) asks for a URL or command only in the Evidence table's Sources cell. The Summary has no citation requirement, nothing requires the URL to be a clickable Markdown link, and nothing covers the shorter recap a parent gives the user in conversation. The post-dispatch duties (re-surface open questions, acceptance gate, sibling verifier, write-back) say nothing about how claims are cited when presented. The sidecar schema already records sources[].url for every claim, so the URLs are on disk. No eval case checks links in presented findings. Also searched: the parent contract, the researcher agent definition, and a repo-wide grep for "inline link" and "clickable"; no existing rule covers this for plugin consumers.

  3. added
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    on Oct 18, 2026
  4. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    This was generated by AI during triage.

    Agent Brief

    Type: Feature
    Summary: Require the parent session to cite each accepted research claim with inline Markdown links, taken from the artifact's recorded source URLs, whenever it presents /discovery:research findings to the user.

    Current behavior:
    The Output Format asks for a URL or command only in the Evidence table's Sources cell. When the parent condenses findings for the user (the Summary or a chat recap), it cites sources by name with no links, even after the verifier confirmed every quote at its URL, so the user cannot click through to check a claim.

    Desired behavior:

    • Wherever the parent presents findings (the Summary, the Evidence table, or any shorter recap in conversation), each accepted claim carries its primary source and its counted corroborators as inline Markdown links, taken from the claim's sources[].url in the findings sidecar.
    • A Tier 0 local probe with no URL cites the artifact sidecar file that holds its command.
    • A source name without its URL does not count as a citation.

    Key interfaces:

    • the research skill's Output Format section (Summary and Evidence table items)
    • the parent-owned post-dispatch boundary (after the verifier write-back, before presenting)
    • the sidecar claims[].sources[].url field
    • the research skill's evals.json

    Acceptance criteria:

    • The research skill text the parent reads before presenting findings says each accepted claim in any presentation carries its primary and counted corroborators as inline Markdown links from sources[].url.
    • The same text says a local probe with no URL cites the artifact file holding its command, and that a bare source name is not a citation.
    • The rule covers a shortened chat recap, not only the full Output Format.
    • The research evals.json gains a case whose expectations check that a presented summary links each accepted claim to its sources, and that a name-only citation fails.
    • The discovery plugin version and CHANGELOG are updated per the repo convention.
    • /skill-quality:check and validate-evals pass on the research skill.

    Out of scope:

    • The sidecar schema or the fetch-log format
    • A script or hook that enforces links mechanically
    • The same rule for /discovery:explore or other skills
  5. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    on Oct 18, 2026
  6. melodic-automation-lanes commented on Oct 18, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped partway through this issue and needs a person.

    Why, in the run's own words:

    Committed the change, but /skill-quality:check (check-skill.sh) and validate-evals (check-evals-quality.sh) were denied approval in this run, so those required checks did not run.

    What the run says it did not do:

    • check-skill.sh on the research skill was not run: the command was denied approval
    • check-evals-quality.sh on evals.json was not run: the command was denied approval; evals.json JSON validity was also not machine-checked
    • Diff review by a fresh-context subagent was not run

    Partial work is on the branch work-resolve-issue/issue-7840-39089376952-1.

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/39089376952

    To retry, remove needs-human, then remove and add agent-ready.

  7. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 18, 2026
  8. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions