Bundle
dsh-graphlint
DeepSeek Harness plugin bundle: graphlint dead-code detection tools for agents (graphlint_query / graphlint_build / graphlint_config + graphlint skill).
- Source
- Yutong Zou
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-graphlint DeepSeek Harness plugin bundle for [graphlint](https://github.com/AngelosZou/graphlint) — dead-code detection for AI-generated codebases. Installing this bundle gives every agent in the profile three tools (`graphlint_query`, `graphlint_build`, `graphlint_config`) plus a `graphlint` skill describing when and how to use them. ## Requirements - Node.js >= 20. - A DeepSeek Harness profile (`dsh plugin` initializes one on first use). - The graphlint CLI on `PATH` (`pip install graphlint`) or inside the project's virtualenv (`env/`, `.venv/`, `venv/` are probed automatically). ## Install Install the published bundle into a DeepSeek Harness profile: ```bash dsh plugin --profile web add dsh-graphlint # or via the graphlint CLI (requires dsh on PATH): graphlint install dsh --profile web ``` Then restart the profile (and refresh the browser page). The bundle's patch layer inserts the plugin row at the profile root; you can address it by id `dsh-graphlint` in your own `cordis.patch.yml` (e.g. to disable it per profile). Development / repository install (linking a local checkout): ```bash # 1. Clone the repository and build the bundle git clone https://github.com/AngelosZou/graphlint.git cd graphlint/integrations/dsh npm install npm run build # 2. Link the bundle into a profile (run from the repository root) cd .. dsh plugin --profile web add link:./integrations/dsh # 3. Restart dsh web ``` ## Tools | Tool | Purpose | |------|---------| | `graphlint_query` | Query the dependency graph for dead code, circular refs, unused imports, and other warnings. Fast incremental mode; JSON result. Common filters: `warn_types`, `graph_id`, `exclude_clean`, `include_tests`, `public_as_entry`. | | `graphlint_build` | Full or incremental index rebuild as a **background job** (poll with `job_output`). | | `graphlint_config` | `show` / `get` / `set` entries in the project's `.graphlint/config.json`, plus `add-entry-rule` / `remove-entry-rule` / `add-exclude` / `remove-exclude` for custom entry rules and excludes. | The `graphlint` skill leads with these tools (they run inside the session working directory and return structured results); the canonical CLI guidance follows as reference. ### `root_dir` restriction Every tool accepts an optional `root_dir`. It **must stay inside the session working directory** (the default) — a hard guard rejects anything else with a clear error. Scanning a high-level root (such as a user home directory) makes graphlint build a huge first-time index and can block for many minutes. ## Development ```bash cd integrations/dsh npm install # first time only; afterwards npm ci npm run build # tsc → lib/ npm test # node --test lib/test/ ``` The test suite covers the pure logic layers (root guard, argv construction, JSON parsing) plus manifest/patch contract checks. A committed `package-lock.json` is required (CI runs `npm ci`).
Install
dsh plugin --profile web add dsh-graphlint@0.2.1
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-graphlint from the hub