dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Project Memory gives coding agents a single, trustworthy memory for a software repository — so they stop re-learning the same facts and stop writing conflicting "memory" files.
Durable, evidence-backed memory for coding agents.
Project Memory gives every coding agent a single, trustworthy knowledge base for your repository — so it stops re-learning the same facts and writing conflicting "memory" files.
Discover → Verify → Classify → Compound → Reconstruct → Single Source of Truth
Code tells agents what exists. Project Memory helps them remember why — and reconciles every place that already tried to write it down.
Without reconciled memory, every agent (and every AI tool) re-discovers the architecture, re-tries the rejected approach, and writes its own slightly different conclusion. You end up with several disagreeing "sources of truth."
With Project Memory, that knowledge is discovered, verified against actual code, and rebuilt into one canonical memory that the next agent loads from a single trustworthy place.
Install Project Memory Agent (EMA) across all platforms with DeepSeek Harness prioritized:
Linux / macOS / WSL:
curl -fsSL https://raw.githubusercontent.com/LoveDoLove/Project-Memory-Agent/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/LoveDoLove/Project-Memory-Agent/main/install.ps1 | iex
The installer automatically:
@lovedolove/dsh-project-memory plugin to your active profile.ema CLI to your PATH (~/.local/bin/ema or %USERPROFILE%\.local\bin\ema.cmd).~/.agents/skills/, Claude Code (~/.claude/skills), and OpenCode./ema and /project-memory slash commands in DeepSeek Harness chat.DeepSeek Harness users can install the complete suite in a single command using DSH's native plugin manager (matching the official dsh-univer-office system bundled skills standard):
# Add to your active DSH profile (e.g. 'web')
dsh plugin --profile web add @lovedolove/dsh-project-memory
This single command automatically:
source: 'bundled', rank: 600) via ctx.skills.registerProvider — accessible immediately in every session with zero file copying./ema and /project-memory slash commands.ema_recall, ema_distill, ema_add, ema_context, ema_validate, ema_promote).sqlite-vec RRF hybrid retrieval.Once installed, simply open any DSH session and type:
/ema
or
/project-memory
The agent will automatically orchestrate memory recall, verification, and compounding.
| Target | Primary Use | Skills Location | Slash Command / Agent |
|---|---|---|---|
| DeepSeek Harness (DSH) | Primary Target | DSH Skill Registry / Plugin | /ema, /project-memory |
| CLI / Terminal | Visual Graph & Ingest | Standalone Node.js CLI | ema ui, ema ingest, ema recall |
| Claude Code | Compatible | ~/.claude/skills/ | @project-memory |
| OpenCode | Compatible | ~/.config/opencode/skills/ | @project-memory |
| Codex | Compatible | ~/.agents/skills/ | @project-memory |
Engineering Memory Agent (EMA) extends Project Memory with a formal four-dimensional lifecycle model, authoritative 6-stage retrieval, six-boundary hard isolation, grounded evidence anchors, candidate queueing, and a standalone stdio MCP server.
ema ui).#10b981) for Canonical/Verified, Amber (#f59e0b) for Quarantined Candidates, Crimson (#ef4444) with animated glowing rings for Contradictions & Conflicts, Slate (#64748b) for Historical/Superseded.sqlite-vec.EMA_EMBEDDING_API_KEY, OPENAI_API_KEY, EMA_EMBEDDING_URL).ema ingest).ema://evidence/...#sym:..., #line:...)..ema/candidates/ with authority_level: Candidate and validation_state: Unreviewed (never directly modifying canonical docs/).status: Draft | Current | Deprecated | Superseded | Historical | Abandonedvalidation_state: Unreviewed | Needs Review | Potentially Stale | Verified | Invalid | Quarantinedauthority_level: Candidate | Derived | Canonicalconfidence: High | Medium | LowStage 1: Authorization Gate → Stage 2: Candidate Retrieval (Hybrid RRF) → Stage 3: Lifecycle Filtering → Stage 4: Multi-Dimensional Ranking → Stage 5: Contradiction Surfacing → Stage 6: Context Assembly..ema/candidates/ with authority_level: Candidate. Promoting to global scope requires $\ge 2$ independent repository sources.ema://evidence/<repo-id>/<git-ref>/<file-path>#<logical-anchor>.docs/ remain the single source of truth. The SQLite + sqlite-vec index (.ema/index.db) is derived and fully rebuildable.The EMA CLI is available directly via Node.js in bin/ema-cli.mjs (or globally via ema / npx ema):
# Launch the interactive Visual Memory Graph Web UI
node bin/ema-cli.mjs ui --port 3888
# Auto-distill and capture knowledge from working tree git changes into candidate queue
node bin/ema-cli.mjs ingest --git
# Auto-distill from a specific patch or diff file
node bin/ema-cli.mjs ingest --diff ./fix.patch
# Distill engineering knowledge from an explanation or incident text
node bin/ema-cli.mjs ingest --text "Fixed race condition in token refresh by using mutex"
# Review and promote an approved candidate to project canonical storage
node bin/ema-cli.mjs promote <candidate_id> project
# Check database health, schema version, unit counts, and candidate queue
node bin/ema-cli.mjs status
# Validate all repository knowledge documents against EKU Schema v2
node bin/ema-cli.mjs verify docs
# Execute authoritative 6-stage hybrid memory recall (FTS5 + sqlite-vec RRF)
node bin/ema-cli.mjs recall "cordis plugin injection"
# Rebuild the derived SQLite + sqlite-vec vector index from canonical Markdown
node bin/ema-cli.mjs index docs
# View CLI help and usage options
node bin/ema-cli.mjs help
EMA includes a standalone stdio JSON-RPC 2.0 MCP server:
# Start the MCP server over stdio
node bin/ema-mcp.mjs
Available tools registered by the MCP server:
ema_recall: Authoritative hybrid recall across authorized scopes (query, limit, scope, actor).ema_distill: Automatically distill knowledge from Git diffs or text into the candidate queue with grounded evidence anchors.ema_add: Submit new candidate knowledge manually into .ema/candidates/.ema_context: Assemble budget-capped static context injection for prompts.ema_validate: Update validation state and record validation audit trail.ema_promote: Promote knowledge units to broader scopes (project, workspace, global).When mounted in DeepSeek Harness, the plugin registers both /project-memory and /ema:
/ema recall <query> # Authoritative recall with provenance headers
/ema status # Memory health, index stats, and candidate queue
/ema verify # Validate all documentation units
/ema promote <id> <scope> # Promotes a validated candidate EKU
/ema # Interactive memory inspection & compounding workflow
The project ships as a native DSH bundle plugin (@lovedolove/dsh-project-memory) that mounts all 8 Project Memory skills into any DSH profile as native system bundled skills. It also registers cbm_* tools (codebase-memory bridge) when codebase-memory-mcp is available, injects a first-time-init hint when no AGENTS.md is found, registers the /project-memory and /ema slash commands, and provides full MCP tooling and Visual Graph UI.
# Interactive — shows the commands for your profile
.\install.ps1 -Target dsh
# Explicitly target your web profile
.\install.ps1 -Target dsh -DshProfile web
The installer will print the plugin add command. Run it manually:
dsh plugin --profile web add @lovedolove/dsh-project-memory
After install, the one-click command is available in any DSH session:
/project-memory
This automatically detects the repository's Project Memory state and runs the appropriate workflow — no Agent selection, no skill picking, no mode arguments.
Optional --trace flag enables retrieval tracing for debugging:
/project-memory --trace
For full control, dispatch the orchestrator as a subagent:
use_agent(agent: "project-memory", prompt: "compound my last task")
Plugin internals: the npm package (@lovedolove/dsh-project-memory) uses a single-row Cordis patch that loads the runtime glue (dsh/plugin.mjs), which dynamically registers skills as native system bundled skills, registers the /project-memory and /ema slash commands, and injects a first-time-init hint when no AGENTS.md is found.
/project-memory
See the DSH Plugin section for installation and full usage.
Invoke the orchestrator agent directly in any supported agent:
@project-memory
It discovers existing knowledge, inspects the repository, verifies claims against real evidence, and reports what to keep, change, merge, or remove — across every origin tool, not just its own files.
Typical tasks: audit this repo, build memory for a repo that already has docs, reconcile conflicting AGENTS.md / CLAUDE.md, compound lessons after this feature.
| Capability | Description |
|---|---|
| [D] Discover | Inventories every pre-existing knowledge source with provenance |
| [V] Verify | Claims checked against code, tests, config, CI, Git — never assumed current |
| [C] Classify | One canonical type per claim; conflicts settled by evidence, not file age |
| [Co] Compound | Durable Solutions and Lessons instead of more documents |
| [Cl] Clean | Deletes obsolete knowledge regardless of origin |
| [S] Single Truth | One primary home per concept; everything else references it |
| [L] Lean | Aggressively deduplicated — no rule in two places |
| [A] Self-Audit | Quality bar (Memory Health) + Self-Audit directive to catch drift |
Eight specialized skills instead of one huge prompt:
| Skill | Responsibility |
|---|---|
knowledge-discovery | Inventory every pre-existing knowledge source, with provenance |
repository-audit | Gather repository evidence (code, tests, CI, Git) |
knowledge-classification | Classify claims and resolve cross-source conflicts |
knowledge-compounding | Turn experience into reusable Solutions & Lessons |
memory-architecture | Design hierarchy, navigation, progressive loading |
obsolete-knowledge | Handle stale, deprecated, or superseded knowledge |
memory-edit | Apply approved documentation changes |
memory-verification | Final consistency and quality gate |
The orchestrator loads these progressively — you rarely invoke one directly. It can also delegate to codebase-memory (read-only code graph) and cavecrew-builder (bounded edits). Every rule has exactly one canonical owner across the agent and skills; skills reference each other instead of duplicating, so guidance can't drift apart.
AGENTS.md is the single entry point; everything else is referenced, not duplicated.
AGENTS.md
+-- docs/architecture.md -> system design, DSH plugin internals
+-- docs/solutions/ -> diagnosed fix patterns
+-- docs/lessons/ -> reusable engineering principles
+-- skills/<name>/SKILL.md -> detailed skill instructions
+-- templates/ -> document templates
Domains are a pattern, not a mandatory scaffold — only create what holds verified knowledge.
Templates provide starting points for new knowledge documents:
templates/TEMPLATE.md — Solution document with dual-track schema (Bug + Knowledge)templates/CONCEPTS.md — Project vocabulary with accretion/seeding/mutationstemplates/SOLUTIONS.md — Index template for tracking all Solutionstemplates/schema.yaml — Canonical frontmatter contractDetailed guidance lives in each skill:
skills/knowledge-compounding/references/ — Grounding validation, durable bar, quality constraints, session history, auto-memory>= 18.0.0 (Node.js 20+ or 24 recommended).better-sqlite3 and sqlite-vec in root package.json..ema/index.db is purely a local cache; deleting it does not destroy any canonical knowledge.sqlite-vec KNN hybrid RRF retrieval are fully active.# Run the complete EMA unit, integration, and security test suite (185 tests)
npm test
# Run installer test suite
Invoke-Pester ./install.tests.ps1
12 tests cover installer targets, the no-double-load rule, and a guardrail keeping the 8 skills, their manifest, and both agent files in sync. The EMA suite covers 172 tests across schema validation, evidence grounding, derived SQLite indexing, fail-closed policy, 6-stage retrieval, promotion pipelines, DSH hooks, and stdio MCP server.
For detailed architecture specifications and the phased implementation reports:
MIT — see LICENSE.