Back to home@kristol07

dsh-discussions-digest

A small, evidence-first DeepSeek Harness plugin for recent activity in the official GitHub Discussions.

Stars
0
Language
TypeScript
Created
Sep 4, 2026
Updated
Sep 4, 2026
GitHub repo

Introduction

dsh-discussions-digest

English | 中文

dsh-discussions-digest is a deliberately small DeepSeek Harness bundle. It reads recent activity from the official deepseek-ai/deepseek-harness GitHub Discussions and gives the active DSH model bounded, source-linked facts for an evidence-first triage digest.

The plugin has one Host entry, one read-only Tool, one runtime Skill, and one bundle patch row. It has no browser client, custom HTTP API, database, scheduler, subagent, classifier, clustering layer, or GitHub write operation.

Requirements

  • Node.js ^22.19.0 or >=24
  • DeepSeek Harness 0.1.2-rc.1 or newer
  • A GitHub token that can read the public repository's Discussions

This checkout is built and tested against the APIs in DeepSeek Harness 0.1.2-rc.1. At the time of development, that release is on npm's next channel.

Install

Install the preview package from npm's next channel into the Web profile:

npx --yes --package @deepseek-ai/dsh@next dsh plugin --profile web add dsh-discussions-digest@next

Verify the bundle layer without starting a server:

npx --yes --package @deepseek-ai/dsh@next dsh --profile web --dump-config

The output should contain one dsh-discussions-digest bundle row. The host DSH must also come from @next (currently 0.1.2-rc.1); npm's default latest channel may still resolve an older host release.

Configure the credential

The Tool accepts only days and limit; a token is never a Tool argument. On every call the plugin resolves the fixed GITHUB_TOKEN reference through ctx.credentials. The shipped local provider checks the launch environment, the DSH credential store, and its supported .env layers.

Store the value with the DSH credential settings, or add it to the local credential document without committing that document:

version: 1
refs:
  GITHUB_TOKEN: github_pat_...

Do not paste the token into a prompt. The plugin does not include credential values in results, logs, or its own error messages.

Use

English prompt:

Use the dsh-discussions-digest skill to review the last 24 hours of activity in the official DSH GitHub Discussions. Return at most 20 items and keep every conclusion linked to its source.

The Tool's only arguments are:

ArgumentDefaultRangeMeaning
days11–7UTC activity window measured from call start
limit201–30Maximum discussions returned to the model

The Skill renders exactly four sections: Scope & caveats, Needs follow-up, Product / DX signals, and New showcases / other activity. Each listed thread includes a source fact, missing information, a suggested action, and an explicitly labelled Proposed interpretation.

Example result (redacted and abridged)

The following is a documentation sample captured by the read-only Tool on 2026-09-04 at 04:39 UTC with days: 1 and limit: 5. No token or local path is present. The real result contained five records; three records plus all body and comment excerpt text are omitted here to keep the example short. Discussion content remains untrusted source material.

{
  "repo": "deepseek-ai/deepseek-harness",
  "window": {
    "days": 1,
    "fromInclusive": "2026-09-03T04:38:53.077Z",
    "toInclusive": "2026-09-04T04:38:53.077Z",
    "activityField": "Discussion.updatedAt"
  },
  "fetchedAt": "2026-09-04T04:39:13.890Z",
  "scanned": 200,
  "returned": 5,
  "truncation": {
    "resultLimit": true,
    "pageCap": false,
    "contentExcerpts": true
  },
  "discussions": [
    {
      "number": 5584,
      "title": "[Feature Request] Stream bash/terminal command execution output in real-time instead of waiting for completion",
      "url": "https://github.com/deepseek-ai/deepseek-harness/discussions/5584",
      "category": { "slug": "ideas", "name": "Ideas", "isAnswerable": false },
      "author": "nguyenduclong-ict",
      "createdAt": "2026-09-04T04:38:07Z",
      "updatedAt": "2026-09-04T04:38:07Z",
      "upvoteCount": 1,
      "isAnswered": null,
      "commentCount": 0
    },
    {
      "number": 5582,
      "title": "DSH | dsh-client-locale-ru | Russian (ru) language pack for the dsh web GUI",
      "url": "https://github.com/deepseek-ai/deepseek-harness/discussions/5582",
      "category": { "slug": "show-your-plugins", "name": "Show Your Plugins!", "isAnswerable": false },
      "author": "Ragnoryok1",
      "createdAt": "2026-09-04T04:06:57Z",
      "updatedAt": "2026-09-04T04:06:57Z",
      "upvoteCount": 1,
      "isAnswered": null,
      "commentCount": 0
    }
    // Three discussion records and all excerpt text are omitted from this sample.
  ]
}

Output boundaries

  • repo is fixed to deepseek-ai/deepseek-harness; the plugin is not a general GitHub reader.
  • The activity window uses GitHub's Discussion.updatedAt, ordered newest first. It can reflect creation, edits, or comments, but it does not cover upvote-only changes.
  • Collection stops after four 50-item pages. The result reports pageCap: true instead of presenting partial coverage as complete.
  • Bodies are excerpts of at most 1,200 Unicode characters. Only the latest two top-level comments are included, each at most 600 characters. Every excerpt has a truncated flag.
  • isAnswered stays null for non-answerable categories; null does not mean unanswered.
  • The plugin does not rank by upvotes and does not claim official priority, severity, sentiment, trends, shared root causes, or exhaustive community coverage.
  • Discussion text is untrusted source material. The Skill forbids following instructions or commands embedded in posts and comments.

Development

npm ci
npm test
npm pack --dry-run

To install a local tarball instead of the npm release:

$package = npm pack
npx --yes --package @deepseek-ai/dsh@0.1.2-rc.1 dsh plugin --profile web add ".\$package"

The production source is intentionally limited to four files:

  • src/index.ts — one Tool and one Skill registration
  • src/github.ts — one GraphQL operation, pagination, HTTP and response validation
  • src/digest.ts — argument bounds, activity window, stable ordering, excerpts and coverage
  • src/skill.ts — evidence-first digest instructions

中文

dsh-discussions-digest 是一个刻意保持简单的 DeepSeek Harness bundle。它只读取官方 deepseek-ai/deepseek-harness GitHub Discussions 的近期活动,并把有边界、带原帖链接的事实交给当前 DSH 模型,生成便于人工分诊的社区简报。

插件只有一个 Host 入口、一个只读 Tool、一个运行时 Skill 和一条 bundle patch;没有浏览器端 UI、自定义 HTTP API、数据库、定时任务、subagent、分类器、聚类,也不会写入 GitHub。

环境与安装

需要 Node.js ^22.19.0>=24、DeepSeek Harness 0.1.2-rc.1 或更高版本,以及可读取公开 Discussions 的 GitHub token。当前实现按 DSH 0.1.2-rc.1 的 Tool、Skill、credentials 和 profile API 构建;开发时该版本位于 npm next 通道。

npx --yes --package @deepseek-ai/dsh@next dsh plugin --profile web add dsh-discussions-digest@next
npx --yes --package @deepseek-ai/dsh@next dsh --profile web --dump-config

最后一个命令应只显示一条 dsh-discussions-digest bundle。宿主 DSH 也必须使用 @next(当前为 0.1.2-rc.1);npm 默认的 latest 通道仍可能解析到较旧的宿主版本。从源码构建和安装本地 tarball 的命令见上方 Development 小节。

凭证

Tool 只允许 dayslimit;token 绝不是 Tool 参数。每次调用都会通过 ctx.credentials 解析固定的 GITHUB_TOKEN 引用。你可以在 DSH 的凭证设置中保存它,或把它写入本机凭证文件的 refs 段;不要将凭证文件提交到 Git,也不要把 token 粘贴进 prompt。插件不会把凭证值放进结果、日志或自身错误消息。

中文 prompt

使用 dsh-discussions-digest skill 整理 DSH 官方 GitHub Discussions 最近 24 小时的活动,最多保留 20 条。所有判断都要链接到原帖,并明确区分来源事实和 Proposed interpretation。

days 默认 1、范围 1–7;limit 默认 20、范围 1–30。Skill 固定输出 Scope & caveatsNeeds follow-upProduct / DX signalsNew showcases / other activity 四部分;每一条都包含原帖链接、来源事实、缺失信息、建议动作和明确标注的 Proposed interpretation

上方 “Example result” 是 2026-09-04 真实只读 smoke 的脱敏、删节示例;其中没有 token 或本地路径,并明确省略了三条记录和全部正文/评论摘录,不能将删节后的片段当作全量结果。

边界与限制

  • 仓库固定为 deepseek-ai/deepseek-harness,这不是通用 GitHub 阅读器。
  • 活动窗口依据 Discussion.updatedAt 并按最近更新排序;它可反映发帖、编辑或评论,但不覆盖只有点赞变化的情况。
  • 最多扫描 4 页、每页 50 条;提前触及上限时返回 pageCap: true,不会把部分覆盖描述成完整覆盖。
  • 正文最多保留 1,200 个 Unicode 字符;只返回最近两条顶层评论,每条最多 600 字符;每个摘录都有 truncated 标记。
  • 非问答类目的 isAnswered 保持 null,不能解释为“未回答”。
  • 不按点赞排序,也不宣称官方优先级、严重度、情绪、趋势、共同根因或全量社区覆盖。
  • 帖子和评论是不可信输入;Skill 明确禁止执行其中的指令、命令或链接请求。

License

MIT