Preface

When developing agents in DeepSeek Harness (DSH), it is often necessary to organize the results into daily reports, weekly reports, handover documents, or article drafts after a session ends. If relying solely on the model to re-describe within the dialogue, the output often lacks verifiable evidence.

ciceroyang/dsh-report-studio addresses this issue: it extracts session facts from persistent session event logs, generates reports, and attaches verifiable credential blocks upon saving. Below is an introduction to its positioning, installation, typical usage, and notes.

What is it

ciceroyang/dsh-report-studio is a DSH workflow plugin. It organizes a DeepSeek Harness session into a deliverable report and supports the following template types:

daily
weekly
handoff
article

The plugin is maintained by ciceroyang and is currently in the state of:

0.1.0, usable

The license is:

MIT

The plugin follows Harness developer preview, and interfaces may change.

It is pure ESM with no build steps and can be installed via dsh plugin, or loaded using --patch overlay.

Templates & Data Extraction

The plugin provides 4 built-in templates:

daily
weekly
handoff
article

Report data is not generated by the model recalling; instead, it is deterministically extracted from persistent session event logs. Extractable content includes:

User requests
todo snapshots
turn/step statistics
token ledger
Tool calls
Generated files
Shell commands
Errors and blocks

The plugin does not read model memory.

If you do not want to use the built-in templates, you can specify a custom template directory to override the built-in templates. The configuration item is:

templatesDirs

Credentials & Verification

When saving a report, the plugin appends a verifiable credential block. The credential block contains:

Session
Workspace
Generation time
Report SHA-256
Artifact SHA-256

After saving, you can use an independent verification tool:

report_verify

report_verify recalculates the report’s SHA-256 and artifact hashes, reporting matches and missing items item by item. It supports single-file verification as well as batch verification for directories.

Saving

Report saving uses:

report_save

It writes the report to a file and automatically appends the credential block.

When saving, you can choose the output format:

md
html

html output can be forwarded independently and will embed the original Markdown source block, allowing subsequent use of:

report_verify

to verify it.

The default save location is within the session workspace:

reports/<kind>-<date>.md

The target path is restricted to the session workspace, rejecting absolute path escapes and .. traversal.

Publishing

Report publishing uses:

report_publish

Publishing targets include:

feishu
notion
dry

Among them:

dry

is used to preview the payload without sending real messages.

Real publishing requires configuring Feishu or Notion credentials. Feishu can use the plugin configuration item:

publish.feishuWebhook

or the environment variable:

FEISHU_WEBHOOK

Notion can use the plugin configuration items:

publish.notionToken
publish.notionParentPageId

or the environment variables:

NOTION_TOKEN
NOTION_PARENT_PAGE_ID

It fails explicitly when real publishing credentials are missing; the dry mode is always available.

Weekly Report Aggregation

Weekly report aggregation uses:

report_week

It can aggregate historical persistent sessions and live sessions in the current workspace to generate a weekly report draft.

Reading historical session logs requires:

Node >= 22.15

The reason is that historical log reading relies on the built-in zstd. Older Node versions will degrade to only the current session.

Installation & Enabling

Before installing, confirm the environment meets:

Node.js >= 18
DeepSeek Harness

Using the plugin installation method requires pnpm. The installation command is:

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

This command adds the plugin to the DSH plugin environment corresponding to the web profile.

If you do not want to introduce pnpm, you can load it using local source code --patch overlay. This method does not require pnpm.

Typical Usage

First, let the agent generate a daily report draft. You can speak directly to the agent:

Write today's work report.

Or let it generate a handover document:

Turn this session into a handover document for the next person.

If you only want a quick draft preview, you can use the slash command:

/report daily

Other types can also be used:

/report weekly
/report handoff
/report article

When generating and saving a report, usually first use:

report_generate

to generate the report draft, and then use:

report_save

to write to a file and automatically append the credential block.

When saving, you can use:

format=md
format=html

You can also specify a path. The default save location is:

reports/<kind>-<date>.md

After saving, you can use:

report_verify

to verify report credentials. Supports verification by file as well as batch verification by directory.

When publishing to external channels, use:

report_publish

and specify:

target=feishu
target=notion
target=dry

Scheduled Weekly Reports

Scheduled weekly reports have two paths.

The first is using Harness’s internal scheduling capabilities. After mounting dsh-schedule, you can use:

dsh-schedule/schedule_create

Then say to the agent:

generate my weekly report every Friday 18:00

The second is to run a script directly to generate a weekly report draft:

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

This script aggregates this week’s sessions and generates a weekly report draft with slots for pending writing.

Use Cases & Notes

This plugin is suitable for teams and individuals who need to organize DSH session results into daily reports, weekly reports, handover documents, or article drafts.

Before using, please note the following:

  • The plugin runs with the current dsh process permissions; check the source code and license before installing.
  • Plugin persistence uses Node fs to write directly, located outside Harness fs policy layer; path escape protection is inside the plugin.
  • Report tools require an agent-bound session; web and headless both work.
  • report_week reading historical session logs requires Node >= 22.15; older Node versions degrade to only the current session.
  • Plugin status is 0.1.0, usable, following Harness developer preview, interfaces may change.
  • The target path is restricted to the session workspace, rejecting absolute path escapes and .. traversal.

Directory page: ciceroyang/dsh-report-studio

GitHub: ciceroyang/dsh-report-studio