dshbase

插件目录 / Productivity / dsh-report-studio

dsh-report-studio

已验证 · 实测可装 ciceroyang

✓ 持续维护 2 位贡献者 基于 3 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-16最近推送
跨平台平台

功能简介

将DeepSeek Harness会话转为可交付工作报告,含可验证凭证

✅
我们的评价
可用 — 实测通过,早期项目

将DeepSeek Harness会话转为可交付工作报告,含可验证凭证 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-report-studio

CI
License: MIT
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

Argument Required Meaning
kind yes daily / weekly / handoff / article
title no custom title; falls back to the session title
period no period label (e.g. "2026-08-11 ~ 2026-08-17") for weekly

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

report_save

Argument Required Meaning
content yes final Markdown (receipt is appended automatically)
path no target path; defaults to reports/<kind>-<date>.md
kind no used for the default filename
artifacts no produced 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.

Argument Required Meaning
path yes saved report file (inside the workspace)
dir no batch 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.

Argument Required Meaning
target yes feishu / notion / dry
content no report text; otherwise read from path
path no saved report file (inside the workspace)
title no Feishu 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.

Argument Required Meaning
title no custom title
period no period 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

| 项 | 值 |
|---|---|
| 会话 Session | session-1c1e5d0c-… |
| 工作区 Workspace | /Users/you/project |
| 生成时间 Generated | 2026-08-14T08:00:00.000Z |
| 报告哈希 Report SHA-256 | 9f2c… |
| 产物 Artifacts | README.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

Contributing

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

npm test

License & funding

MIT. 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.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-report-studio」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

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

Headless(CLI)profile:

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

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

把 dsh 接进你真正在用的工具——办公文档、任务板或聊天软件——让它融入你的工作流。

适合谁

想让 agent 在既有生产力工具栈里干活、而非被隔离在孤岛的人。

二次开发建议

集成和适配器是缝——加新的应用连接器、更丰富的读写或工作流触发。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Productivity 里更多

浏览全部 7797 个插件 →