A DeepSeek Harness plugin that interviews the user about a project, generates a project timeline / Gantt chart, and exports it as Word or Excel.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Luke-Yong/dsh-plugin-project-management
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DeepSeek Harness plugin that interviews the user about a project, generates a project timeline / Gantt chart, and exports it as Word or Excel.
The agent owns the loop: it runs a structured interview (via the
project-interview skill), decomposes features into tasks, and uses five tools
to validate, schedule, adjust, persist, and export. The scheduling math is
deterministic. The project (definition + timeline) is persisted to a workspace
project file (data/project_management/project_data.json) so it survives across
sessions, and the plugin reminds the agent about an existing timeline on
session resume.
Tools
| Tool | Purpose |
|---|---|
pm_project_define |
Validate/normalize the interview result into a canonical ProjectDefinition (features, priorities, dates, milestones, agent budget per duration, constraints); persists it |
pm_timeline_generate |
Deterministic scheduler: dependency-aware, workday-aware dating (weekends + the country's public holidays via calendar.country), critical path, deadline + budget feasibility checks; persists definition + timeline |
pm_timeline_update |
Patch tasks (rename, dependencies, effort, agents, manual date pins), re-schedule, and persist |
pm_project_load |
Load the saved project (definition + timeline) from data/project_management/project_data.json — use when resuming a session |
pm_timeline_export |
Write .docx (summary, task schedule, milestones, budget) or .xlsx (Summary, Tasks, colored Gantt sheet) |
Skill
project-interview— the conversational interview protocol: features → priorities → timeline/milestones → agent budget per duration (hours / cost / agents / custom, with a period) → constraints.
Install
Build the plugin (server + browser bundle), then load it with a Cordis overlay patch:
npm install
npm run build # tsc server → dist/, esbuild client → lib/client.js
From GitHub
The prepare script builds both halves automatically, so GitHub installs work
without committing dist//lib/ (they are gitignored). Install the plugin
into the web profile directly from GitHub:
dsh plugin --profile web add github:Luke-Yong/dsh-plugin-project-management
This forwards pnpm add github:Luke-Yong/dsh-plugin-project-management inside
the profile directory. Equivalent to installing the package into a DeepSeek
Harness checkout manually:
npm install github:Luke-Yong/dsh-plugin-project-management
./package.json is exported for tooling that needs the dsh.client manifest.
From a DeepSeek Harness checkout:
pnpm dsh web --patch /absolute/path/to/dsh-plugin-project-management/cordis.yml
The plugin package must be resolvable from the config tree's baseUrl — install
or pnpm link it into the harness checkout (it is a dependency of the cordis.yml
package, per the client-modules resolution rule).
Open http://127.0.0.1:3080 and ask, for example:
Plan a timeline for my mobile app and export it as both Word and Excel.
Web UI

The plugin ships a browser half with two surfaces:
- A Project tab in the conversation header's view tabs (the
conversation.viewslot — the same mechanism ui-trajectory uses). Note: the view-tab ring only appears once the session is active (≥ 1 turn). - A compact project dock inside the composer stack (
conversation.input.dock) that renders even for blank sessions and auto-appears when a project exists, so project management is reachable before the tabs show.
Selecting the tab (or reading the dock) shows: project name, description, and last-updated time; timeline span, task count, and feasibility; phases, critical path, milestones, and open conflicts; the agent budget model.
The pane reads the saved project state for the current session from
/plugins/project-management/state (server resolves the session cwd — session
header → workspace registry → process cwd — and reads
data/project_management/project_data.json). No harness patch is required —
both surfaces work with the stock web app.
Flow
- The agent interviews you (features, deadline, milestones, agent budget per duration).
- It calls
pm_project_defineto lock in and persist the definition. - It decomposes features into tasks and calls
pm_timeline_generate. - It reviews feasibility with you and adjusts via
pm_timeline_update. - It exports with
pm_timeline_export(format: docx | xlsx).
Persistence & session resume
- The definition and timeline are saved to
<workspace>/data/project_management/project_data.jsonin the project-plan schema used bytemplates/gantt.html(project, tiers, phases, tasks, milestones, sprints — plus a_dshblock for plugin round-trip state). Layout follows the Project-Journey Planner example:data/project_management/project_data.jsonconsumed bytemplates/gantt.html. - On a new session in the same workspace, the plugin injects a reminder into
the model context when a timeline exists, telling the agent about the saved
plan and its conflicts; the agent then calls
pm_project_loadto continue. - Writes are atomic (temp file + rename). A legacy
.dsh-pm/project.jsonis read as a fallback for backward compatibility.
Notes / MVP limitations
- A single project per workspace.
Roadmap
- Custom Web UI Gantt view via
presentCall/presentResult. - Multi-project and live agent-budget tracking.
Links
More in this category
superdesigndev/treg★ 477
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
zhaoolee/notes#dsh-plugin★ 147
Export DSH conversations as Smartisan Notes-style PNGs, or create and update Markdown notes in a configured account-scoped workspace.
taxueseek/argo#dsh-plugin★ 101
Search built for agents: multilingual coverage across web, academic, code, shopping, finance, news, and encyclopedias.
omdsh-dev/dsh-data-agent★ 55
Let the AI connect to databases and write SQL for you.
heartleo/hn-cli#hacker-news★ 50
Hacker News tools for feeds, discussion threads, search, and user profiles.
geml-spec/geml#integrations/dsh-plugin★ 24
Block-addressed document editing: an MCP server exposing geml_get / geml_set / geml_check and friends, so an agent reads or rewrites one addressed block of a Markdown or GEML document instead of the whole file. Ships the GEML authoring skill and a code-graph skill that builds and navigates a project call graph as GEML codemaps.