openpencil
ZSeven-W
The world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:ruby1304/dsh-public-plugins
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Public, reusable DeepSeek Harness (dsh) plugin bundles and skills. Everything here is generic tooling: workflow canvas JSON, blind A/B evaluation, LLM cost math, and an incident ledger. No vendor/company secrets, no internal app identifiers, no user/member identifiers, no credentials, no real prompts.
| Bundle | MCP server | Tools | Public skills |
|---|---|---|---|
dsh-plugin-workflow-canvas |
bundles/dsh-plugin-workflow-canvas/mcp/canvas_server.py |
canvas_normalize, canvas_contract, canvas_mutate, canvas_validate, canvas_diff |
workflow-canvas-lab |
dsh-plugin-eval-harness |
bundles/dsh-plugin-eval-harness/mcp/eval_harness_server.py |
eval_payload_build, eval_package_export, eval_aggregate, eval_report |
llm-badcase-blind-eval, effect-measure-before-after |
dsh-plugin-llm-cost-lab |
bundles/dsh-plugin-llm-cost-lab/mcp/cost_lab_server.py |
cost_config_validate, cost_node, cost_matrix, cost_html_report |
llm-node-cost-optimize |
dsh-plugin-incident-ledger |
bundles/dsh-plugin-incident-ledger/mcp/incident_ledger_server.py |
issue_init, issue_upsert, issue_list, issue_get, issue_board_build, issue_check |
production-incident-triage |
Each bundle is an npm-style package whose package.json contains:
"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
and whose cordis.patch.yml inserts one @deepseek-ai/dsh-mcp-client row (the Python stdio MCP server)
and one @deepseek-ai/dsh-skill-filesystem row (the bundle skills/ directory).
This is a monorepo of four bundles. dsh installs bundles as npm-style packages with a
dsh.bundle manifest, and npm/GitHub git installs address a repository, not a subdirectory —
so today the supported install path is the local checkout shown above
(dsh plugin --profile web add <absolute-bundle-path>).
If/when these get published, the plan is one npm package per bundle (plain JS/Python, no build
step), after which dsh plugin add <npm-name> will work. A dsh-plugin GitHub topic is set on
this repo for discoverability.
From this repository root, install each bundle into the desired dsh profile with (do not run this unless you intentionally want to install it):
dsh plugin --profile web add "$PWD/bundles/dsh-plugin-workflow-canvas"
dsh plugin --profile web add "$PWD/bundles/dsh-plugin-eval-harness"
dsh plugin --profile web add "$PWD/bundles/dsh-plugin-llm-cost-lab"
dsh plugin --profile web add "$PWD/bundles/dsh-plugin-incident-ledger"
The cordis.patch.yml files use !!js env-var overrides with absolute defaults that point back at
this checkout, so the bundles work from the repo path directly.
eval_payload_build writes the blind-eval keymap to a file and returns only its path; the mapping is never echoed into chat.# 1. Smoke: initialize + tools/list handshake for every MCP server (python3 stdlib only)
bash scripts/smoke_all.sh
# 2. Compile every Python file
find bundles scripts -name '*.py' -print0 | xargs -0 -n1 python3 -m py_compile
# 3. Ensure no !!js scalar uses backticks (the dsh YAML dialect rejects them)
if grep -Rn '!!js[^#]*`' bundles/*/cordis.patch.yml; then
echo "ERROR: backtick scalar near !!js" >&2; exit 1
fi
# 4. Quick tool-level self-tests (optional, stdlib only)
python3 - <<'PY'
import json, subprocess, sys
servers = [
"bundles/dsh-plugin-workflow-canvas/mcp/canvas_server.py",
"bundles/dsh-plugin-eval-harness/mcp/eval_harness_server.py",
"bundles/dsh-plugin-llm-cost-lab/mcp/cost_lab_server.py",
"bundles/dsh-plugin-incident-ledger/mcp/incident_ledger_server.py",
]
for s in servers:
p = subprocess.Popen([sys.executable, s], stdin=subprocess.PIPE, stdout=subprocess.PIPE, text=True)
def send(m):
p.stdin.write(json.dumps(m) + "\n"); p.stdin.flush(); return json.loads(p.stdout.readline())
send({"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26"}})
out = send({"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}})
tools = [t["name"] for t in out["result"]["tools"]]
assert tools, s
print(f"{s}: {len(tools)} tools")
p.stdin.close(); p.wait(timeout=10)
PY
bundles/
dsh-plugin-workflow-canvas/ # generic canvas toolkit + lab skill
dsh-plugin-eval-harness/ # blind A/B eval + badcase/before-after skills
dsh-plugin-llm-cost-lab/ # cost calculator + optimize skill
dsh-plugin-incident-ledger/ # incident JSONL ledger + triage skill
scripts/
smoke_all.sh # MCP handshake smoke test
eval_payload_build pairs variants for records with >2 variants (pairwise X/Y cases); exactly 2 is the most common and least noisy setup.cost_html_report expects meta.prices (or top-level prices) inside the report config.!!js YAML tags are intentionally not parseable by plain PyYAML; verification uses grep instead of YAML parsing.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: mcp、workflow。