dsh-evolve-in-git
キュレーションリスト掲載メンテナンス: 活発kytolly/dsh-evolve-in-git
A deepseek-harness plugin, making your agent evolve in customed git repository.
$ dsh plugin add dsh-evolve-in-git82
スター
0
フォーク
TypeScript
言語
MIT
ライセンス
2026-08-21
作成日
2026-09-01
最終プッシュ
README
dsh-evolve-in-git
Git-backed long-term memory and evolution plugin for DeepSeek Harness.
Contents
- What it does
- Install
- Usage
- Architecture
- Data layout
- Config
- Harness entry points
- Browser half
- Development
- Delivery notes
- License
What it does
This plugin treats a user-chosen or preconfigured Git repository as the memory store. It can write session notes, branch-specific records, and reusable skill drafts into that repo, then commit them as ordinary Git history.
Install
# example: install into the web profile
dsh plugin --profile web add github:Kytolly/dsh-evolve-in-git
The bundle inserts one dsh-evolve-in-git row with the plugin defaults.
Later profile patches can override repoPath, repoUrl, auth, and the storage roots.
Usage
Natural language
You do not need to remember tool names — describe the outcome and the model
selects the right evolve_* / memory_* tool:
| You say (or similar) | The model uses |
|---|---|
| "Remember: whenever X happens, do Y" | evolve_remember / memory_save |
| "Any memory about the deploy flow?" | evolve_recall / memory_search |
| "Read my recent memory history" | evolve_timeline |
| "Turn this warning into a reusable skill" | evolve_skill_draft → evolve_skill_promote |
| "What is the memory repo's current state?" | evolve_status / evolve_branches |
| "Undo the last memory commit" | evolve_rollback |
Commands (/evolve)
For explicit, deterministic control, type /evolve <subcommand>:
/evolve remember warning "pitfall" :: <content>
/evolve search deploy
/evolve skill list
/evolve skill promote evolve-process
/evolve status
/evolve help
The full command reference is under Harness entry points.
Architecture
The package is split into a framework-free core and a thin DSH adapter:
src/core.ts(GitMemoryCore) is the portability boundary. It depends only on Node built-ins and sibling core modules — never on@deepseek-ai/*— and resolves config from the on-disk file over the host-provided base.src/index.ts(GitEvolutionService) is the adapter: it registers Cordis tools, the/evolvecommand, the system-prompt section, the skill provider, and the config-file route, then maps every surface ontoGitMemoryCore.
| Module | Responsibility |
|---|---|
src/git.ts |
Spawns git: clone/open, status, branch ops, push/fetch, commit, git mv, conflicts, rollback. |
src/memory.ts + src/memory-index.ts |
Markdown+YAML-frontmatter scanning, a metadata index cache (HEAD + mtime signature), budgeted recall, timeline. |
src/update.ts |
Versioned update: a new active record plus supersedes/supersededBy; the old file is never deleted. |
src/forget.ts |
Soft-delete (move to archiveRoot) and restore. |
src/privacy.ts |
Sensitive-content detection, sensitivity classification, redaction, export filtering. |
src/skill.ts |
drafts/ ↔ enabled/ skill discovery; promote/demote via git mv; bundled-skill sync. |
src/strategy.ts |
Slug/sanitize, draft generation from a memory, evolution suggestion, preview. |
src/harness.ts |
/evolve command normalization/parsing plus help/usage/safety text. |
src/config.ts + src/defaults.ts |
Config-file read/write/merge and the plugin defaults. |
src/invariant.ts |
No-op invariant companion (the source of truth is the configured Git repo). |
src/loopback.ts + src/config-route.ts |
Loopback-only /api/evolve-git/config route for the config-file editor. |
src/client/ |
Browser settings section (evolve-git slot) and config-file editor. |
Data layout
- Memory —
<repo>/<memoryRoot>/<kind>/<timestamp>-<slug>-<id>.md, one Markdown file per record with YAML frontmatter (kind,title,branch,source,tags,createdAt,id,updatedAt,status,supersedes,supersededBy,expiresAt,sensitivity) followed by the body. - Skills —
<repo>/<skillsRoot>/drafts/<name>/SKILL.md(promotable) and<repo>/<skillsRoot>/enabled/<name>/SKILL.md(discoverable). Promotion is agit mvbetween the two, never a copy, so it stays reversible and in history. - Archive —
<repo>/<archiveRoot>/…(same relative layout as memory);evolve_forgetmoves records here so they leave recall/timeline but stay recoverable.archiveRootmust remain outsidememoryRoot.
Config
Web settings UI (v0.1.4+). The plugin ships a browser half that registers a first-level Settings → 演进记忆 section on the web profile's Settings page (via the
settings.sectionslot). The form uses aSettingsScopeadapter that reads and writes the per-user config file directly through the loopback-only/api/evolve-git/configroute, so what the form shows is exactly what takes effect (defaults overlaid by the file) and saving writes the file immediately. Nestedauthis written as one merged object, and theauth.tokenfield is write-only (secret, redacted from read-back). Requires the profile to be restarted after install so the client manifest is rescanned.
ナレッジ・リサーチ の他のプラグイン
weknora
by tencent
Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.
honcho
by plastic-labs
Memory library for building stateful agents
webnovel-writer
by lingfengqaq
A long-form Chinese web-novel writing assistant for Claude Code and DeepSeek Harness, designed to reduce memory loss and hallucinations in serialized projects of up to 2 million characters.
billion-context
by ranxianglei
Compresses long agent conversations into reversible summaries and exposes native DSH compression tools through a bundled patch.
