kmagwenzi/dsh-ai-suplex ↗★ 0

dsh-ai-suplex

提供7-7-7工作流执行循环与本地知识库 适合需要规范化管理Agent计划、执行和记忆沉淀循环的用户。

套件
dsh-ai-suplex
相容性
待驗證
Harness 依賴範圍
>=0.1.0-rc
版本
0.4.0
授權
MIT
最近更新
2026年10月4日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kmagwenzi/dsh-ai-suplex

dsh-ai-suplex

The execution loop your agent is missing.

A free, open-source DeepSeek Harness (dsh) plugin that makes the AI-Suplex 7-7-7 workflow pipeline a first-class citizen inside the harness — plan → run → capture → close → compound — over a local markdown vault.

Everyone is building memory that writes itself. This builds memory that has to earn its place — on a rhythm you control.

MIT · Node >= 20 · no network · no database · no daemon — files and a bundled CLI.


Why

Most agent tooling treats context as a session. Real work is a loop:

plan → execute → capture → close → compound

dsh-ai-suplex gives that loop a home inside dsh and backs it with a plain markdown vault you own. The vault stays the system of record; the harness is a surface. Swap the harness, keep the mind.

Live proof: wqr.co.zw — a real business run on the AI-Suplex loop.

Status

v0.4.0 — the full v0 loop ships. Nine tools run against a real vault, and a clean room bootstraps cold:

Pipeline stageToolState
Bootstrapai_suplex_initshipped
Context Coreai_suplex_contextshipped
Planai_suplex_tasklistshipped
Captureai_suplex_captureshipped
Session Endai_suplex_session_endshipped
Learnai_suplex_learnshipped
Promote (gated)ai_suplex_promoteshipped — approval-gated
Approvalsai_suplex_approvalsshipped
Statusai_suplex_statusshipped

Requirements

  • dsh (DeepSeek Harness)
  • Node >= 20 (ESM)
  • A workspace. No vault yet? ai_suplex_init creates one.

Install

dsh plugin --profile web add dsh-ai-suplex
dsh --profile web --dump-config | grep ai-suplex

Confirm the ai-suplex row appears — a plugin that installs but does not activate is a dependency, not a layer.

From a checkout (trial profile, before/without an npm release):

dsh plugin --profile dshtrial add /path/to/dsh-ai-suplex

Quick start

# 1 · bootstrap a vault (skip if you already have one)
ai_suplex_init path=/path/to/my-vault

# 2 · load context — staleness guard + mission brief
ai_suplex_context

# 3 · plan
ai_suplex_tasklist title="Ship the landing page" todos=[...]

# 4 · capture as you go, then close
ai_suplex_capture title="..." content="..." cycle=2 week=5
ai_suplex_session_end title="..." rating=5

The loop

ai_suplex_context      # staleness guard + mission brief
ai_suplex_tasklist     # to-dos -> a tasklist that opens with Phase 0
ai_suplex_capture      # artifact to the period-correct path
ai_suplex_session_end  # report + 3lm end
ai_suplex_learn        # extract lessons
ai_suplex_promote      # scored promotion — needs approved: true
ai_suplex_approvals    # the Hustler-decides inbox
ai_suplex_status       # memory stats + boss HP

Tools

ToolWhat it doesKey parameters
ai_suplex_initScaffold a minimal vault (period.md · seed Tools/3lm.js · Tasklists · Memory · Sessions)path
ai_suplex_contextRun 3lm start --context; return the staleness guard + briefstale_days
ai_suplex_tasklistRaw to-dos → the pipeline tasklist format, written to Tasklists/Active/title, todos[], type, focus, cycle, week, write
ai_suplex_captureWrite an artifact to the period-correct pathtitle, content, cycle, week, focus
ai_suplex_session_endAssemble the Session End Report and run 3lm endtitle, rating, narrative, key_insights, next_actions, run_3lm_end
ai_suplex_learnExtract lessons from the latest episode into Memory/lessons.md—
ai_suplex_promoteScore + promote lessons (3lm promote --min N) — approval-gatedapproved (must be true), min
ai_suplex_approvalsThe decisions inbox as machine-readable JSON—
ai_suplex_statusMemory stats · active tasklists · boss HP—

The gate

ai_suplex_promote refuses to fire without an explicit approved: true:

ai_suplex_promote approved=false   # BLOCKED — promote is approval-gated
ai_suplex_promote approved=true    # fires 3lm promote --min 70

Everyone is building memory that writes itself. This builds memory that has to earn its place — on a rhythm you control. The gate is the product.

How it works

A dsh plugin is two things:

  1. A Cordis plugin — lib/index.js exports apply(ctx) and registers its tools on ctx.tools.
  2. A bundle patch — package.json declares dsh.bundle.patch → cordis.patch.yml, which inserts the plugin row into the profile's composed tree.

A package without dsh.bundle installs but activates no layer. Verify, never assume:

dsh --profile web --dump-config | grep ai-suplex

Local-only by design: no network calls, no database, no ORM, no daemon.

What it is NOT

  • Not a memory layer — the vault is the memory; this is the loop around it.
  • Not memory that writes itself — every promotion needs an explicit human gate.
  • Not the full framework — Ultra Edition is the paid cockpit; this is the open loop.

Demo

GIF coming soon — a terminal capture of the loop (init → context → tasklist → capture → session_end), finishing on the promote gate refusing to fire.

Development

node test/smoke.mjs   # the full smoke suite: the real vault, a stub vault, and a clean-room init

Design rule

The plugin is a port, not the product. The vault stays the system of record and stays harness-agnostic; dsh is a surface.

Licence

MIT — see LICENSE.

Built by

Kudakwashe Magwenzi — AI agent developer in Harare.