zhengqiuyang/dsh-janitor ↗★ 0

dsh-janitor

扫描并生成工作区残留文件的清理计划 适合需要对Agent会话遗留的临时脚本和文档进行确定性安全清理评估的用户。

套件
dsh-janitor
相容性
待驗證
Harness 依賴範圍
>=0.1.2-alpha.2
Cordis 依賴範圍
^4.0.0
版本
0.1.0
授權
MIT
最近更新
2026年10月12日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhengqiuyang/dsh-janitor

dsh-janitor

Deterministic artifact lifecycle for DeepSeek Harness (dsh).

Agent sessions leave debris: plan docs from finished tasks, scratch scripts, one-off fixtures. People fear agent-driven cleanup precisely because cleanup driven by an agent is unaccountable. This plugin registers a janitor_scan tool that runs the agent-janitor engine over the workspace and returns a reviewable cleanup plan — every candidate file with a deterministic verdict (protected / keep / recent / needs-review / safe-to-remove) and the evidence behind it.

The janitor is never an agent. The scan and verdicts are pure deterministic rules (reference analysis, git metadata, age thresholds); v0.1 never deletes anything — applying a reviewed plan stays with the upstream CLI or with you, on purpose.

Family: read-guard (what agents read) · pr-gate (what they write) · attest (what they did) · mcp-test (what they can call) · janitor (what they leave behind).

Why now (checked 2026-10-12)

Nothing in the dsh ecosystem does deterministic workspace hygiene. The @goodandready/dsh-time-machine plugin does checkpoints and rollback (snapshot safety), which is complementary: it answers "can I undo?", this answers "what is safe to remove?". Deterministic scan → reviewable plan → apply as a three-step, non-agent pipeline is unowned.

Verdicts (fixed order, first match wins)

verdictmeaning
protectedexact file or directory prefix in the protected list
keepreferenced by any code file
recentyounger than minAgeDays (git commit time preferred)
needs-reviewreferenced by docs/other, or otherwise ambiguous
safe-to-removeplan doc with task merged & zero refs, or zero refs + old enough

Install

dsh plugin --profile default add dsh-janitor

From npm — no build step, no allowBuilds authorization; git installs are equally prebuilt (lib/ ships in the repo).

Configure

- id: dsh-janitor
  name: dsh-janitor
  config:
    minAgeDays: 14
    protectedPaths: ["plans", "docs/decisions"]   # exact file or directory prefix

Develop

npm install
npm test   # syncs the vendored agent-janitor engine, builds, runs fixture tests

The scan/verdict engine is vendored from the sibling agent-janitor checkout (npm run sync; CI runs sync --check).

Roadmap

  • janitor_apply with an explicit per-path confirmation protocol (still deterministic — no agent judgment in the loop)
  • Session-debris presets (.dsh-* ledgers, scratch plugins dirs)
  • Plan archive integration with the upstream CLI's apply

Kill criteria

If dsh ships first-party workspace hygiene, or time-machine-style plugins add deterministic removal planning, this freezes at its last working version with a postmortem here. The engine stays owned by agent-janitor either way.