DeepSeek Harness 插件

dsh-report-studio

Turn a DeepSeek Harness session into deliverable work reports (daily/weekly/handoff/article) with verifiable receipts(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ciceroyang/dsh-report-studio
最近更新
2026年8月17日
分类
记忆
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ciceroyang/dsh-report-studio
插件名:dsh-report-studio
作者:ciceroyang

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-report-studio

![CI](https://github.com/ciceroyang/dsh-report-studio/actions/workflows/ci.yml) ![License: MIT](LICENSE) ![dsh-plugin](https://github.com/topics/dsh-plugin)

When your agent finishes work, have it write up what happened — into something you can actually hand over.

The first "session → work deliverable" plugin in the DeepSeek Harness ecosystem: turn one session into a daily report / weekly report / handoff document / WeChat-article draft, each sealed with a verifiable receipt block (report hash + artifact hashes), so reports cannot be embellished.

> Status: 0.1.0, usable. Tracks the Harness developer preview; interfaces may change.

Features

  • 4 ready templates: daily, weekly, handoff, article
  • Deterministic session extraction: user asks, todo snapshots, turn/step stats,

token ledger, tool calls, produced files, shell commands, errors and blocks — all read from the durable session event log, never from the model's memory

  • Verifiable receipt block: session id, workspace, generation time, report

SHA-256 and artifact SHA-256 appended to every saved report

  • Safe persistence: target paths are confined to the session workspace;

absolute-path escapes and .. traversal are rejected

  • Customizable templates: override built-in templates wholesale (placeholders below)
  • No build step: plain ESM; install via dsh plugin or load with a --patch overlay

Install

Requires Node.js ≥ 18 and DeepSeek Harness.

Option 1: plugin install (needs pnpm)

dsh plugin --profile web add github:ciceroyang/dsh-report-studio

Option 2: local source overlay (no pnpm)

git clone https://github.com/ciceroyang/dsh-report-studio.git

# my-report.yml (the plugin path MUST be absolute): # - insert: # - id: report-studio # name: '/absolute/path/to/dsh-report-studio/index.js'

dsh web --patch ./my-report.yml

Usage

Tell the agent either of:

  • "Write today's work report."
  • "Turn this session into a handoff document for the next person."

The bundled work-report skill teaches the agent the full workflow:

1. report_generate produces a draft with hard data plus [[待写:…]] prose slots; 2. the agent fills the slots from session facts only; 3. report_save writes the file and appends the receipt; 4. the agent replies with the saved path and the report hash.

Default save location: reports/<kind>-<date>.md inside the workspace.

For an instant draft preview without a model round trip, type the slash command:

/report daily # weekly / handoff / article also work

Tools

report_generate

ArgumentRequiredMeaning
kindyesdaily / weekly / handoff / article
titlenocustom title; falls back to the session title
periodnoperiod label (e.g. "2026-08-11 ~ 2026-08-17") for weekly

Returns the full Markdown draft; prose sections are [[待写:…]] markers.

report_save

ArgumentRequiredMeaning
contentyesfinal Markdown (receipt is appended automatically)
pathnotarget path; defaults to reports/<kind>-<date>.md
kindnoused for the default filename
artifactsnoproduced file paths; existing files get hashed into the receipt

| format | no | md (default) / html — standalone forwardable document; the original Markdown is embedded in a hidden source block so report_verify still verifies it |

Returns the absolute path, report SHA-256, and verified artifact hashes.

report_week

Aggregates every persisted session of the current workspace (logs under $DSH_HOME/sessions) plus the live session into a weekly draft with a per-session table. Reading historical logs needs Node ≥ 22.15 (built-in zstd); older Node degrades gracefully to the current session only.

report_verify

Independently re-checks a saved report's receipt: recomputes the report SHA-256 and every artifact hash, reporting match/missing per item.

ArgumentRequiredMeaning
pathyessaved report file (inside the workspace)
dirnobatch mode: verify every .md under this workspace-relative directory; returns matched/mismatched/no-receipt summary

report_publish

Publish a report to Feishu (custom bot webhook) or Notion (page); target=dry previews the payload without sending anything.

ArgumentRequiredMeaning
targetyesfeishu / notion / dry
contentnoreport text; otherwise read from path
pathnosaved report file (inside the workspace)
titlenoFeishu prefix / Notion page title

Configuration: plugin config publish.feishuWebhook / publish.notionToken + publish.notionParentPageId, or env vars FEISHU_WEBHOOK / NOTION_TOKEN / NOTION_PARENT_PAGE_ID. Real publishing fails loudly without them; dry mode always works.

ArgumentRequiredMeaning
titlenocustom title
periodnoperiod label, e.g. "2026-08-11 ~ 2026-08-17"

Custom templates

Templates are plain Markdown with stable placeholders (data sections are filled deterministically by the plugin):

{{TITLE}} {{DATE}} {{PERIOD}} {{META}} session id / workspace / time range / title {{TASKS}} user asks + latest todo snapshot {{STATS}} turns / steps / tool calls / token ledger / end reasons {{TOOLS}} tool call table {{FILES}} produced and read files {{COMMANDS}} shell commands run {{ERRORS}} tool errors and blocks {{TIMELINE}} per-turn timeline {{SESSIONS}} weekly session table (report_week aggregation)

Prose sections are written as [[待写:…]] and must be filled before saving.

Point the plugin at a custom directory:

- insert: - id: report-studio name: dsh-report-studio config: templatesDirs: - '/absolute/path/to/my-templates'

Copy any file from this repo's templates/ directory as a starting point.

Receipt example

## 报告凭据 Report Receipt

------
会话 Sessionsession-1c1e5d0c-…
工作区 Workspace/Users/you/project
生成时间 Generated2026-08-14T08:00:00.000Z
报告哈希 Report SHA-2569f2c…
产物 ArtifactsREADME.md → 3a1b…

Scheduled weekly reports

Two paths (the work-report skill picks per the session's actual capability):

1. In-harness (official tools): with dsh-schedule mounted, say "generate my weekly report every Friday 18:00" and the agent implements it via schedule_create (time zone must be explicit). 2. System-level (zero deps, all data sections automatic): scripts/auto-weekly.mjs needs no model — it aggregates the week's sessions, fills every data section and saves a draft with [[待写:…]] prose slots. Point launchd/cron at it for Friday 18:00, then open a session and say "fill and save".

node scripts/auto-weekly.mjs <workspace> --out reports/weekly-auto.md

Known limitations (0.1.0)

  • report_week cross-session aggregation reads historical logs under $DSH_HOME/sessions (multi-frame zstd); historical reading needs Node ≥ 22.15.
  • Persistence uses Node's fs directly, outside the Harness fs policy layer;

path-escape protection lives inside the plugin.

  • Report tools require an agent-bound session (web and headless both qualify).

Docs & examples

  • [中文实战教程:从零到发布](docs/tutorial-zh.md) — 完整开发复盘,含 6 个实测坑
  • Plugin scaffold — generate the same project layout in one command
  • Environment doctor — one-command local diagnostics (port/deps/profiles/logs)
  • [Example daily report](demo/report-daily.example.md) — 真实会话产出的日报样例(凭据块)

Contributing

Issues and PRs welcome (typos, new templates, translations, tests). Before pushing:

npm test

License & funding

[MIT](./LICENSE). If this saves you from writing another daily report:

  • Mainland China: Afdian (pays out to Alipay; GitHub Sponsors cannot pay out there)
  • Elsewhere: GitHub Sponsors

---

Built for the open-source community, in the spirit of DeepSeek Harness: everything is a plugin.