ディレクトリに戻る

dsh-evolve-in-git

キュレーションリスト掲載メンテナンス: 活発

kytolly/dsh-evolve-in-git

A deepseek-harness plugin, making your agent evolve in customed git repository.

GitHub で見る
$ dsh plugin add dsh-evolve-in-git

インストール方法

dsh には中央のインストールコマンドはありません。このプラグインのエントリ(README に記載)をプロファイルまたはパッチ設定に追加し、再起動します。

インストールの仕組み

82

スター

0

フォーク

TypeScript

言語

MIT

ライセンス

2026-08-21

作成日

2026-09-01

最終プッシュ

README

dsh-evolve-in-git

DeepSeek Harness plugin version 0.6.3 license MIT

English · 中文

Git-backed long-term memory and evolution plugin for DeepSeek Harness.

Contents

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 /evolve command, the system-prompt section, the skill provider, and the config-file route, then maps every surface onto GitMemoryCore.
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 a git mv between the two, never a copy, so it stays reversible and in history.
  • Archive — <repo>/<archiveRoot>/… (same relative layout as memory); evolve_forget moves records here so they leave recall/timeline but stay recoverable. archiveRoot must remain outside memoryRoot.

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.section slot). The form uses a SettingsScope adapter that reads and writes the per-user config file directly through the loopback-only /api/evolve-git/config route, so what the form shows is exactly what takes effect (defaults overlaid by the file) and saving writes the file immediately. Nested auth is written as one merged object, and the auth.token field is write-only (secret, redacted from read-back). Requires the profile to be restarted after install so the client manifest is rescanned.

GitHub で README 全文を読む →

DSH Plugins は DeepSeek Harness プラグインの独立したコミュニティ ディレクトリです。DeepSeek との提携・公認はありません。サードパーティ製プラグインはセキュリティ監査を受けていません。インストール前にソースコードをご確認ください。

DeepSeek Harnessの新着プラグインを毎週お届け。スパムはありません。