편집자 노트

DSH 批量问卷

Questionnaire-style batch questioning plugin for DeepSeek Harness — the do a survey tool asks 10+ questions in one go (single / multi / yes-no toggle / compare / open), each skippable, fullscreen overlay, with a two-column recap after submit.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.

dsh-survey

Questionnaire-style batch questioning plugin for DeepSeek Harness — the do_a_survey tool asks 10+ questions in one go (single / multi / yes-no toggle / compare / open), each skippable, fullscreen overlay, with a two-column recap after submit.

license dsh-plugin 中文

SingleMultiYes/NoCompareOpen
RadioCheckboxCompact toggleSide-by-side blocksMulti-line input

When the model calls do_a_survey, the Web UI renders the survey by mode: compact single-question card / inline embedded column / fullscreen overlay for compare / grid matrix for many simple questions. All text supports Markdown (code blocks, blockquotes, inline code, bold) and color ({color:red}text{/color}); a readable two-column recap is shown after submit.

Preview

Grid matrix — fullscreen overlay for many simple questions, one card each:

Grid matrix mode

Inline — survey embedded in the conversation column, filled and submitted together:

Inline mode

Overlay compare — fullscreen side-by-side comparison with Markdown & color:

Overlay compare mode

Compact — single-question card with rich question types:

Compact mode

Install

Bundle plugin (recommended, resident) — build artifacts are committed, one-line install:

dsh plugin --profile web add "github:jinhuang712/dsh-survey#main"
# restart dsh web, then refresh the page

Local directory install (when you have the source):

git clone https://github.com/jinhuang712/dsh-survey.git
cd dsh-survey
dsh plugin --profile web add .
# restart dsh web, then refresh the page

After install, the do_a_survey tool and its survey UI are available permanently. The companion skill dsh-survey registers with the install (dsh.skills declaration): it documents usage and ships a dynamic-plugin fallback recipe (references/dynamic-plugin-fallback.md) for environments without the bundle.

Usage

Tell the model what you want to collect; it calls do_a_survey(mode, questions). mode is required:

modeWhenPresentation
"compact"Exactly 1 questionCompact single-question card
"inline"Multiple questions, no compareEmbedded in the conversation column
"overlay"Compare questions or wide canvasFullscreen overlay (1180px)
"grid"Many simple questions (yes/no, single)Fullscreen grid matrix, one card each

Example:

{
  "mode": "inline",
  "questions": [
    { "id": "q1", "question": "Your **OS**?", "options": [{ "label": "macOS" }, { "label": "Linux" }] },
    { "id": "q2", "question": "Which question types?", "multi_select": true, "options": [{ "label": "Single" }, { "label": "Compare" }] },
    { "id": "q3", "kind": "boolean", "question": "Auto-save progress?" },
    { "id": "q4", "question": "Other feedback:" }
  ]
}

Question types

TypeTriggerUI
Singleoptions + no multi_selectRadio
Multioptions + multi_select: trueCheckbox
Yes/Nokind: "boolean"Compact toggle (omit options)
Comparekind: "compare" + compare: {left: {title,text}, right: {title,text}}Side-by-side blocks (overlay recommended)
Openno options, not boolean/compareMulti-line input

Features

  • Full Markdown — question text, option labels/descriptions, compare blocks, recap all render through the official safe renderer (micromark + protocol allowlist + shiki highlighting): code blocks, blockquotes, inline code, bold
  • Color{color:red}text{/color} (named / #hex / rgb()), usable in questions, options, compare blocks
  • Skip / restore — per-question ✕ grays out, ↺ restores; submitted as skipped: true
  • Fullscreen overlaymode: "overlay" centers fullscreen (mask + 1180px), breaking past the 748px conversation column
  • Grid matrixmode: "grid" fullscreen grid of many simple questions: equal-height cards, bottom-aligned toggles, per-card skip; compare questions degrade to left/right choice
  • Readable recap — strict two-column grid, one "question → answer" row each
  • Accessibility — radio/checkbox semantics + keyboard focus rings

Architecture

  • Host half (lib/index.mjs): Cordis entry — defineTool registers do_a_survey; webServer.register serves /api/dsh-survey/submit|cancel; execute suspends on the answer (exec.callId correlation, exec.signal abort cleanup)
  • Client half (lib/client.js): __ModuleLoader__.load bundle registering tool.call.toolview key=do_a_survey; four modes (compact/inline/overlay/grid) + Markdown & color rendering + fetch submit
  • Skill (skills/dsh-survey/SKILL.md): usage guide + dynamic-plugin fallback recipe (references/dynamic-plugin-fallback.md)

Verify

  • After install, __DSH_BOOT__ should include the dsh-survey client row; /plugins/dsh-survey/client.js returns 200
  • cordis_inspect_query (Tool.listTools) should show do_a_survey
  • Run a 4-6 question survey (with markdown + color text) and check all four modes

Uninstall

  • Remove the dsh-survey insert row from the web profile's cordis.patch.yml
  • Remove the dsh-survey dependency from the web profile's dsh.profile.bundles and run pnpm remove

License

MIT

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.