dsh-daily-log
Daily work log plugin for DeepSeek Harness: /daily scaffold + daily_log_write/read/list tools, YYYY-MM-DD.md + theme-aware HTML dashboard
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 23, 2026
- Updated
- Aug 23, 2026
Introduction
dsh-daily-log
dsh-daily-log 是 DeepSeek Harness 的每日工作日志插件。/daily 命令会生成
YYYY-MM-DD.md 和跟随系统浅色/深色主题的 YYYY-MM-DD.html 仪表盘;同时提供
三个面向模型(agent)的工具用于读取、合并、列出日志。所有文件都写入配置的
outputDir,默认是 ~/.dsh/daily-log。
dsh-daily-log is a daily work log plugin for DeepSeek Harness. The /daily
command scaffolds YYYY-MM-DD.md plus a theme-aware YYYY-MM-DD.html dashboard
(system light/dark), and three model-facing tools read, merge, and list logs. All
files are written under the configured output directory, defaulting to
~/.dsh/daily-log.
截图 Screenshots
浅色 / Light

深色 / Dark

功能 Features
-
/daily一键生成当天或指定日期日志:/daily、/daily 2026-08-19、/daily list -
六个固定区块:
done(已完成)、changes(变更)、problems(问题)、next(下一步)、improve(改进)、takeaways(经验) -
Markdown 与 HTML 双格式;HTML 为仪表盘版并支持系统浅色/深色主题
-
模型工具:
daily_log_write(按区块合并写入,覆盖前自动.bak备份)、daily_log_read(结构化读取)、daily_log_list(列出已有日志) -
支持
zh/enlocale 配置 -
/dailyscaffold for today or a specific date:/daily,/daily 2026-08-19,/daily list -
Six fixed sections:
done,changes,problems,next,improve,takeaways -
Both
.mdand a dashboard-style, theme-aware.html(system light/dark) -
Model tools:
daily_log_write(section-level merge with.bakbackups before overwrite),daily_log_read(structured read),daily_log_list(list dates, newest first) -
zh/enlocale support
布局 Layout
-
src/index.ts— Cordis 插件入口:注册/daily与三个工具 -
src/daily-log.ts— 日期解析、Markdown/HTML 渲染、合并写入(.bak备份)、 读回解析、列表 -
cordis.patch.yml—dsh.bundle引用的补丁层 -
scripts/smoke.mjs— 无依赖 smoke 测试(Node 24 类型剥离) -
assets/— 浅色/深色截图 -
src/index.ts— Cordis plugin entry: registers/dailyand the three tools -
src/daily-log.ts— date parsing, Markdown/HTML rendering, merge-on-write with.bakbackups, read-back parsing, listing -
cordis.patch.yml— bundle patch layer referenced bydsh.bundle -
scripts/smoke.mjs— dependency-free smoke test (Node 24 type stripping) -
assets/— light/dark screenshots
使用 Usage
面向用户的 /daily 命令:
Human-facing /daily command:
/daily # today, default output directory
/daily 2026-08-19 # a specific date (scaffold only, never overwrites)
/daily list # list existing log dates, newest first
面向模型(agent)的工具:
Model-facing tools:
daily_log_write— 写入某天日志。合并规则:只覆盖你传入的区块,未传的 区块保留原内容(首次写入时缺失区块渲染为提示占位)。即将被覆盖的文件会先备份 为YYYY-MM-DD.bak.md/.bak.html。六个区块中至少提供一项:done、changes、problems、next、improve、takeaways。空数组视为“未提供” (不会清空区块)。返回updated/preserved/backups供确认。daily_log_read— 将某天日志读为结构化区块 + 原始 Markdown(省略date即今天)。daily_log_list— 列出输出目录中全部日志日期,最新在前。
problems 的每条可写成“问题:xxx;解决:yyy”(也可用“处理方式:”“,改用”
等自然写法);HTML 渲染时会自动拆分为“问题/解决”两栏,没有解决方式的条目
右侧显示横杠。
daily_log_write— write one date's log. Merging: only the sections you send are overwritten; omitted sections keep their previous content (a first write renders missing sections as hint placeholders). Files that will be overwritten are first backed up toYYYY-MM-DD.bak.md/.bak.html. Provide at least one of the six sections:done,changes,problems,next,improve,takeaways. Empty arrays count as "not provided" (never wipes a section). Returnsupdated/preserved/backupsfor confirmation.daily_log_read— read one date's log as structured sections plus the raw Markdown (dateomitted = today).daily_log_list— list all log dates in the output directory, newest first.
Each problems item may use "Problem: xxx; Solution: yyy" (or natural phrasing
such as "处理方式:" / ",改用" / "fixed by"); the HTML renderer splits it into
a problem/solution pair, and an item without a solution keeps a dash on the
right.
.md 与 .html 始终渲染全部六个区块,.md 同时是合并数据源。如果手工编辑
破坏了生成格式,下次合并会明确报错而不是覆盖,daily_log_read 也会返回原始
Markdown 以便恢复。
Both .md and .html are always rendered with all six sections; the .md is
also the merge source. If hand edits break the generated section format, the
next merge fails loudly instead of overwriting, and daily_log_read returns
the raw Markdown for recovery.
配置 Configuration
在 profile 的 cordis.patch.yml 中覆盖输出目录与语言:
Override the output directory and language from the profile's
cordis.patch.yml:
- id: dsh-daily-log
config:
outputDir: 'D:\\dsh\\workspace\\daily-log'
locale: zh # 'zh' (default) or 'en'
outputDir 默认为 ~/.dsh/daily-log(不会使用 process.cwd());locale
控制区块标题、工具描述、命令输出和渲染文档的语言。
outputDir defaults to ~/.dsh/daily-log (never process.cwd()); locale
controls section labels, tool descriptions, command output, and the rendered
documents.
本地开发 Local development
包面向 Node >= 24,直接通过原生 TypeScript 类型剥离加载 src/index.ts,
本地链接无需构建步骤。运行 pnpm smoke 执行 smoke 测试;类型检查先
pnpm install,再 pnpm typecheck。
The package targets Node >= 24 and loads src/index.ts directly through native
TypeScript type stripping, so no build step is required for local links. Run the
smoke test with pnpm smoke. Type checking needs pnpm install first, then
pnpm typecheck.
安装到 profile:
Install into a profile:
dsh plugin --profile web add /absolute/path/to/dsh-daily-log