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_memory Tool: Retrieves global memory, sends/receives inbox, lists sessions; only handles the outside-workspace memory layer. The in-project work_log/ ledger still uses journal.py and 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.md for field ownership and effective timing.
  • Bundle Patches: cordis.patch.yml enables skill-filesystem and registers this package; DSH packages with bundled skills must turn on skill-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/.