dsh-task-planner
Task planning with experience muscle-memory for DeepSeek Harness (dsh).
Give a task → the agent recalls past similar solutions (condition reflex), evaluates whether they fit, and produces a dynamic plan matched against its capabilities — never hard-coded combos. Every plan auto-drafts a lesson into the experience library; when the task closes, the agent updates the outcome. The more you work, the smarter the reflex.
Features
- 🧠 Experience library (
task_memory save/recall/list): persistent lessons as plain Markdown with signature keywords. Recall uses a 2–3-char sliding-window tokenizer, so "weekly report" still hits a "daily report" lesson.
- ⚡ Condition-reflex planning (
plan_task): recall → LLM evaluates fit (reuse & improve, or explain why not and plan fresh) → decomposed steps with capability matching → risks → next actions.
- 🤖 LLM-driven, not rule-driven: the model decides what to use per task; the plugin only supplies context (past experiences + optional capability catalog).
- ✍️ De-AI deliverable standard: any textual output step (docs/sheets/slides/copy/scripts) must include a humanize-then-review pass before delivery.
- 🗂️ Auto-persist:
plan_task drafts the lesson automatically (status: draft); the agent marks it verified with the outcome at loop close.
- 🔒 Zero keys, zero absolute paths: everything is configurable; the experience library lives in
~/.dsh/planner-lessons by default.
Install
dsh plugin --profile web add github:<your-user>/dsh-task-planner
or copy the repo and add it as a local bundle:
dsh plugin --profile web add /path/to/dsh-task-planner
Config (optional, in your profile's cordis.patch.yml)
- id: dsh-task-planner
name: dsh-task-planner
config:
lessonsDir: /path/to/your/lessons # default: ~/.dsh/planner-lessons
capabilityFile: /path/to/capability-map.md # optional catalog fed to the LLM
Point capabilityFile at a markdown catalog of your skills/plugins (e.g. an awesome list) and plan_task will match each step against it.
Usage
plan_task { task, goal?, constraints? } — plan before starting complex work.
task_memory save { task, plan, outcome } — persist a lesson (auto-called by plan_task for the draft).
task_memory recall { task } — condition-reflex lookup.
task_memory list — show all lessons.
Lesson lifecycle
plan_task writes a draft lesson (status: draft) automatically.
- When the task closes, the agent updates it with the outcome (
status: verified).
- A lesson reused successfully 3× → promote to a formal skill. A lesson rejected 2× → mark obsolete.
Notes
- Requires the
llm, shell, tools services (all present in the standard harness).
- The model call uses the harness default model (
agentDefaultModel); reasoning models need a generous maxTokens (8k is used internally).
- Lessons are plain Markdown — human-editable, greppable, portable.
License
MIT