Introduction¶
When running agents in DeepSeek Harness (DSH), a common pain point isn’t lost code, but lost context: months later, no one remembers why a certain decision was made; switching sessions or agents requires digging through chat history from scratch; pitfalls encountered are stumbled into again with a different agent; records grow more numerous, yet one cannot find “where we are now.” Changelogs and task lists manage part of this, but often fail to handle three things: “process evidence, navigation indexing, and reusable experience.” dsh-lore is a package categorized as “Memory” in the community plugin directory. It consolidates process records, index ledgers, and experience accumulation into a readable, searchable, and verifiable documentation system, and provides the worklog_memory tool via DSH profile registration, memory injection, and skill provision.
What is this¶
dsh-lore is released by maintainer IThinkItsaName. The GitHub repository IThinkItsaName/dsh-lore is currently at version 0.9.5 (MIT License). The official tagline is: A long-term project work log system for AI agents (software, research, writing, design, operations, etc.), comprising process logs, index ledgers, and experience manuals, accompanied by a toolbox relying solely on the Python standard library.
To summarize the README’s positioning in one sentence: Process leaves evidence, indexing manages navigation, experience is reusable. Whether switching sessions, switching agents, or even if the taking-over agent hasn’t installed this plugin, as long as the project retains the skill-layer documentation and journal.py, reading and writing can continue according to convention.
Three-Layer Structure¶
The following introduces how the plugin splits responsibilities; the three layers can be used independently and are not limited to programming projects.
| Layer | Location | Responsibilities |
|---|---|---|
| Skill Layer | work_log/ in project |
Process records, index ledgers, experience manuals; journal.py toolbox (pure Python standard library, no DSH required) |
| Memory Layer | Outside workspace (default ~/dsh-lore-memory) |
Cross-workspace facts: source grading, indexing, convergence, inbox |
| Plugin Layer | DSH profile | Skill registration, memory injection, worklog_memory tool, config cards |
The README explains: The skill layer has been independently library-ized as project-work-log (with an independent repository and release rhythm since 2026-10-19); this package retains a vendored copy in skills/project-work-log/ for plugin operation, and uses tools/sync-skill.mjs --check to prevent drift from upstream. For pi or other Agent Skills scenarios, the independent repository path should be used (docs state publish/project-work-log/ is not yet released); it is not advisable to extract the skill layer from this package as a long-term source.
It is not a changelog (workspace organization, forensics, and environment changes are recorded; “changeset” is just an optional field); not a task manager (to-dos are just a rolling list); not plugin-exclusive (the skill layer runs independently).
Core Functions¶
Skill Layer: journal.py¶
Rules are centralized in journal.py: writing, indexing, and lint are all in this one place; the plugin does not rewrite formats, only acts as a thin wrapper (e.g., send calls journal.py inbox put).
After installing the plugin, the skill directory is usually at ~/.dsh/skills/project-work-log, or in the workspace .dsh/skills/. If the path is unknown, list these directories first. <skill> refers to the root path of that skill.
DSH Plugin Side¶
worklog_memoryTool: Retrieves global memory, sends/receives inbox, lists sessions; only handles the outside-workspace memory layer. The in-projectwork_log/ledger still usesjournal.pyand normal file tools; the plugin does not replace them.- Memory Injection: Experience-layer resource prompts are resident (English, consistent with the rest of the system prompt, including writing prompts); memory index goes into the cacheable prefix; unread inbox is injected only at the tail when present.
- Config Cards: Skill toggle, memory toggle and directory, diagnostic logs, etc.; see repository
SETTINGS.mdfor field ownership and effective timing. - Bundle Patches:
cordis.patch.ymlenablesskill-filesystemand registers this package; DSH packages with bundled skills must turn onskill-filesystem, which this package handles in its patch.
Included with the package is the skill client-require-whitelist (client require whitelist check), disabled by default.
Installation and Activation¶
The plugin runs with the current DSH process privileges; before installing, please review the repository source code and MIT license to ensure it meets your security and compliance requirements.
CLI Installation (Non-desktop managed profiles)¶
# Install plugin: register skills, inject memory, provide worklog_memory & settings card, and register into profile's bundles
dsh plugin --profile <profile> add dsh-lore@v0.9.5
# Uninstall plugin: cleans up dependencies, bundles entry, and node_modules together
dsh plugin --profile <profile> remove dsh-lore
The README notes: Desktop users can install/uninstall via the plugin page; Electron-managed profiles will reject CLI operations (error like profile "desktop" is managed exclusively by the Electron application). Also, do not use dsh plugin … install <local-directory>: pnpm creates a junction for local directories, which might not be deletable upon uninstall, causing ERR_PNPM_EPERM on reinstall (see repository PUBLISHING.md §7 for details).
Community directory page: dsh-lore on skillhub.cn. The directory is an independent community site with no official affiliation with DeepSeek / High-Flyer.
Regarding dependencies, package.json declares peerDependencies including @deepseek-ai/dsh-tools, @deepseek-ai/dsh-llm, @deepseek-ai/schemastery, etc., which must match the current DSH environment.
Typical Usage¶
Having an agent build logs in a project¶
After installation, you can ask the agent in your project to “build a work log / leave a record”, or execute manually (ROOT is the project root, commands accept [ROOT] or --root):
ROOT=.
python <skill>/scripts/journal.py new --title "Title" --insert
python <skill>/scripts/journal.py brief
python <skill>/scripts/journal.py check --strict --lint
brief shows status, to-dos, and recent records in one screen; check --strict --lint acts as two gates for structure and content. The repository gates being green does not mean your project records are qualified; the project container still needs to run the above check.
Daily Operations Reference¶
| What you want to do | What to use |
|---|---|
| Take over a project, check coordinates first | journal.py brief |
| See where the last few entries left off | journal.py snapshot --entries 12 |
| Find old conclusions | journal.py search "keyword" → show <entry#> |
| Start a new record | journal.py new --title "…" --insert |
| Wrap up: change status / check todos / extract experience | status --set, todo, lesson add |
| Archive a phase / slim down index | archive, index compact |
| Bring lessons to other projects | memory publish → memory collect (or use worklog_memory in DSH) |
| Regular maintenance | journal.py check --strict --lint; check _inbox.md and lessons/ once a month |
Use Cases and Notes¶
Who it is for: Projects requiring long-term maintenance or handover by multiple people or agents; those who want “decision basis, process evidence, reusable lessons” to stay in the repository rather than just in chat history; those willing to use fixed conventions (work_log/ + ledger + lessons) rather than purely free notes.
Independence: The skill layer does not depend on DSH and can run independently in environments without DSH; the tool written for models is mainly worklog_memory on the plugin side, while ledger operations remain at the CLI/file layer, avoiding a second system where “records cannot be opened without the plugin.”
Historical Naming: Previously named dsh-worklog (renamed on 2026-09-30); environment variables are still DSH_WORKLOG_*, the skill name project-work-log and tool name worklog_memory remain unchanged. reliability-guidelines has been split into an independent skill since 0.9.3, and this package no longer includes it or the related three settings.
Documentation and Verification: Design explanations are in the repository docs/ (including why.md, memory-spec.md, plugin-spec.md); record conventions and command gates are in skills/project-work-log/references/. Maintainers can run npm test, npm run test:plugin, etc. within the repository; users should rely on the in-project journal.py check.
Conclusion¶
dsh-lore separates “process, index, experience” into a skill layer and a cross-workspace memory layer, then uses the DSH plugin for registration and injection. The goal is to allow subsequent sessions and agents to pick up context rather than re-digging through chat history. To learn more, open the Community Directory Page and the GitHub Repository to read the README, SETTINGS.md, and docs/.