deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
fuxin123z/dsh-skill-manage
DSH plugin: agent-managed procedural memory — a skill_manage tool that lets the agent write, patch, disable and delete its own skills at runtime (user + project scope), with hot-reload and layered delete guards.
PROJECT TOPICS
PROJECT README
A DSH (DeepSeek Harness) plugin that gives the agent procedural memory: a skill_manage tool for authoring its own skills — create, patch, disable, delete — with layered delete guards. Built on skill-filesystem's hot-reload watcher, so a skill created mid-session is usable in the same session, no restart.
Pair with dsh-auto-memory for declarative memory: that one remembers facts (logs, notes, preferences), this one remembers how to do things (workflows, pitfalls, procedures).
skill_manage tool — actions: create / patch / edit / delete / disable / enable / pin / unpin / write_file / remove_file / list
scope: 'user' (default, ~/.dsh/skills, all workspaces) or scope: 'project' (<projectRoot>/.dsh/skills, this workspace only). The project root is resolved exactly like the harness's own skill lookup: walk up from the session cwd to the nearest .git, falling back to the cwd itself. list shows both scopes in one table.<root>/<name>/SKILL.md, what create writes) and single-file skills (<root>/<name>.md), matching the two layouts the skill-filesystem watcher actually loads. list shows a layout flag; single-file skills refuse supporting-file actions.disable-model-invocation in SKILL.md frontmatter, the same key the harness's skill catalog filters on (isModelInvocable). Disabling hides a skill from the model's catalog without touching its content; enabling restores it. Prefer disable over delete for seasonal or off-context skills.pinned frontmatter flag the delete guard reads. A pinned skill cannot be deleted by skill_manage (patch/edit still allowed); pin skills that must survive cleanups.created_by: agent frontmatter marker are deletable — marketplace/user skills are refusedpinned: true frontmatter blocks delete (patch/edit still allowed)name + description, description ≤1024 chars, SKILL.md ≤100k chars, supporting files ≤1 MiB, supporting paths confined to references/ templates/ scripts/ assets/Option A — via dsh plugin (recommended; handles both steps below automatically):
dsh plugin --profile web add dsh-skill-manage
Option B — manual npm install, in your DSH profile dir (e.g. ~/.dsh/profiles/web):
# 1. add the dependency
npm install dsh-skill-manage # or: pnpm add dsh-skill-manage
# 2. register the bundle in package.json → dsh.profile.bundles:
# "dsh": { "profile": { "bundles": [ ..., "dsh-skill-manage" ] } }
# 3. restart dsh web
The plugin needs no configuration. Log line [dsh-skill-manage] ready confirms it loaded.
From source (local link) — for development:
# in your DSH profile dir (e.g. ~/.dsh/profiles/web)
# 1. package.json dependencies:
# "dsh-skill-manage": "link:/abs/path/to/dsh-skill-manage"
# 2. dsh.profile.bundles: append "dsh-skill-manage"
pnpm install
# 3. restart dsh web
node test.mjs # guard-level smoke tests (73 cases, sandboxed DSH_HOME)
node loadtest.mjs # host-shape contract + real round-trip (set DSH_HOME to sandbox it)
CI runs both on every push/PR (.github/workflows/ci.yml).
<root>/<category>/<name>/SKILL.md) are not listed or operable — the harness watcher does not load them either (it loads only <root>/<name>/SKILL.md and <root>/<name>.md)tags: [a, b] stays a raw string)MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。