DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

noahengelking /

noahengelking/dsh-ramble-sorter

Verified

A DeepSeek Harness page that rewrites a dictated ramble into one clean, ambiguity-free instruction.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@202ecb84

Ramble sorter

checks License: MIT

Dictation in. One clean instruction out.

A DeepSeek Harness page that takes a messy voice-to-text ramble and rewrites it into a single, self-contained instruction a coding agent can execute without guessing.

You dictate on the right, you get a brief on the left of the page — goal, numbered requirements, hard constraints, reported problems, unverified hypotheses, parked ideas, and the assumptions the model had to make — then you copy it into the chat.

What it does

  • Rewrites, doesn't relabel. The ramble goes through a model, not a rule engine: grammar repaired, filler removed, references resolved, compound asks split, duplicates merged, order fixed.
  • Separates intent. Requests become requirements; "don't touch X" becomes a constraint; "I think it's the sort order" becomes a labelled hypothesis; "maybe we should also…" becomes a parked idea. Guesses never turn into requirements.
  • Keeps you in control of the guesswork. A review note lists the large assumptions only (scope, target, ordering, intent) with the phrase each came from. Ask all opens a dialog where you accept one or type what is actually true, and the instruction is re-sorted with your answers.
  • Questions you can answer. When the ramble genuinely allows two readings, the page asks at most three questions with option chips and a free-text field instead of guessing.
  • Copy is the instruction. No questions, no interview text, no meta commentary. A clean markdown brief with a goal, requirements, constraints and done-when conditions.
  • A tab, not a detour. Lives in the right Sidebar beside the conversation, so dictating and sending don't fight over the same window.

Dictation

The Dictate button records through the same local recognizer as the microphone in the chat composer (SenseVoice), so audio never leaves the machine. The button states whether voice is ready; if the voice-input plugin is off or the model is not prepared, it says so instead of failing silently. Takes are capped at three minutes.

Where it runs

  • Right Sidebar tab — open the Sidebar and pick Ramble sorter from its guide. The layout is compact for a narrow pane and persists per session.
  • Left-sidebar page — the same bench as a standalone page, kept as a fallback placement.

Both views share one draft.

How it works

The bundle has two halves:

File Runs in Job
client.js Browser Capture, questions, review, copy. Posts the transcript to the local route.
index.js Host POST /ramble-sorter/sort — calls the profile's default model and returns a structured brief.
cordis.patch.yml Host Inserts the bundle row.

The route asks the model for strict JSON:

{
  "goal": "...",
  "requirements": [{ "text": "..." }],
  "constraints": ["..."],
  "bugs": [{ "symptom": "...", "where": "...", "expected": "..." }],
  "hypotheses": [{ "text": "...", "basis": "..." }],
  "parked": ["..."],
  "assumptions": [{ "kind": "scope|target|ordering|intent", "text": "...", "basis": "..." }],
  "questions": [{ "q": "...", "options": ["..."], "blocking": true }],
  "doneWhen": ["..."]
}

Follow-up answers (from questions or Ask all) are sent as authoritative clarifications, and the model re-sorts. If the route is unavailable, the page falls back to the older local rule sorter and says so.

The page never stores or archives anything: the draft lives in memory while the page is mounted, and audio is never persisted. The transcript is sent to whichever model provider the profile is configured with — nothing else.

Requirements

  • DeepSeek Harness 0.2.x with a configured model provider.
  • A browser with microphone access for dictation (loopback is fine).
  • The official Voice input plugin enabled for the Dictate button.

Install

Install the directory as a bundle in the profile you use:

dsh plugin --profile <profile> add /path/to/dsh-ramble-sorter

For the Desktop app, the profile is usually desktop; follow the host's documentation for installing bundles while the app is closed. The bundle then appears in the right Sidebar guide as Ramble sorter.

Development

Node 22+ is required for the checks only.

node --check client.js
node --check index.js
node scripts/build.mjs

scripts/build.mjs validates the manifest, patch, locale files and icon, checks the client artifact, and runs the fallback sorter against sample transcripts.

Status

Early. 0.1.0 — the rewrite path, questions, Ask all and the right-sidebar placement work; layout and prompting are still being tuned. Issues and PRs welcome.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 202ecb84ee80

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout