Back to home

GUOZIJAN

dsh-project-intake

DSH 动态插件:大型项目技术栈问卷(≤7 题、选项悬停详情),全部回答后才开始设计。仅包含提问与选项。

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-project-intake(大型项目技术栈问卷插件)

DSH 动态 Cordis 插件:当用户要求编写大型项目时,主动弹出最多 7 个技术栈问卷问题,每个选项标注适合的项目类型、鼠标悬停查看详细信息;用户回答完所有问题后才返回答案,agent 才能开始项目设计。

本插件的功能只包括向用户提问并提供选项——不包含功能检查、不包含提交 GitHub。

功能特性

  • 📋 主动提问:系统提示注入工作流规则,检测到"大型项目"类请求时,必须先完成问卷才能开始设计/写代码
  • 🎯 最多 7 题技术栈问卷:前端框架、后端框架、数据库、开发语言、样式方案、测试方案、部署与 CI
  • 💡 选项即答即懂:每个选项显示一行"适合:…"的简要说明;鼠标悬停弹出详细卡片(技术特点、适用场景、生态与取舍)
  • 🔒 全部回答后才返回:提交按钮在 7 题全部作答前不可用;Host 端二次校验完整性,未答完不返回答案
  • ⏱️ 等待与保护:阻塞等待用户回答,支持取消、30 分钟超时、任务中止自动结束

工作流程

用户要求大型项目
      │
      ▼
project_intake ──► 弹出技术栈问卷面板(≤7 题,悬停看详情)
      │              └── 用户全部回答后工具才返回 answers JSON
      ▼
以 answers 中的技术栈为准完成项目设计(问卷之外的步骤由 agent 自行完成)

工具说明

工具参数说明
project_intakeproject(必填)、description(可选)启动技术栈问卷,阻塞等待用户在页面面板完成全部回答后返回 answers(每项含 questionId / title / optionIds / optionLabels

问卷题目(恰好 7 题)

  1. 前端框架:React / Vue / Angular / Svelte / 不使用框架(SSR 优先)
  2. 后端框架:NestJS / Express·Fastify / FastAPI / Django / Gin / Spring Boot
  3. 数据库(可多选):PostgreSQL / MySQL / MongoDB / Redis / SQLite
  4. 开发语言:TypeScript / JavaScript
  5. 样式方案:Tailwind CSS / CSS Modules / Sass·Less / CSS-in-JS
  6. 测试方案(可多选):单元测试 / 端到端测试 / 轻量冒烟测试
  7. 部署与 CI:Docker 容器化 / GitHub Actions / 传统服务器 / 无服务器

每题的每个选项都带 brief(适合什么类型的项目,直接可见)与 detail(悬停显示的详细信息)。

目录结构

dsh-project-intake/
├── plugin/
│   ├── host.js        # Host 半区(动态版):问卷状态机、RPC、project_intake 工具、系统提示工作流
│   └── client.js      # Client 半区(动态版):问卷面板 UI(dock)+ 工具卡片状态行
├── static/            # 持久化安装版(组合行加载,每次对话自动生效)
│   ├── host.js        #   Host 半区:工具 + 工作流提示 + 轻量 HTTP API
│   ├── client.js      #   浏览器半区:问卷面板(同源 fetch 通信)
│   └── package.json   #   含 dsh.client 声明的客户端包
├── scripts/check.js   # 插件源码语法冒烟检查
├── package.json
└── README.md

使用方式

方式一:动态加载(当前会话,适合开发调试)

通过 DSH 的 cordis 工具加载:

  1. plugin/host.jsplugin/client.js 的代码体分别作为 code.host / code.client 传入 cordis_define
  2. cordis_run 激活(Client 半区首次激活需在 Run 卡片上授权)
  3. 之后只要对会话说"帮我写一个大型项目/系统/平台…",问卷面板就会出现在输入框上方

方式二:持久化安装(推荐,每次对话自动加载)

让插件成为部署的一部分,每次新对话自动加载,并可在 设置 → 插件 列表中看到:

  1. static/ 里的包安装到 DSH 部署的依赖目录(Node 解析需要): node_modules/dsh-project-intake/(与 @deepseek-ai/* 同级)
  2. 在 DSH 用户 profile 组合 ~/.dsh/profiles/web/cordis.patch.yml 中加入:
    - insert:
        - id: project-intake
          name: 'dsh-project-intake'
    
  3. 重启 DSH 生效。之后:
    • 插件出现在 设置 → 插件(inventory)列表中;
    • 每次会话自动注册 project_intake 工具与工作流提示;
    • 浏览器问卷面板通过同源 HTTP API(/project-intake/*)与宿主通信,无需动态插件通道。

说明:持久化版需要写入部署目录(升级 DSH 后需重新安装 static/)。两种方式二选一即可,不要同时使用以免重复注册。

依赖与要求

  • DSH 运行时(Host:systemPrompt;Client:slots / timer
  • 无其他外部依赖(不依赖任何工具链、不依赖 GitHub CLI)