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_intake | project(必填)、description(可选) | 启动技术栈问卷,阻塞等待用户在页面面板完成全部回答后返回 answers(每项含 questionId / title / optionIds / optionLabels) |
问卷题目(恰好 7 题)
- 前端框架:React / Vue / Angular / Svelte / 不使用框架(SSR 优先)
- 后端框架:NestJS / Express·Fastify / FastAPI / Django / Gin / Spring Boot
- 数据库(可多选):PostgreSQL / MySQL / MongoDB / Redis / SQLite
- 开发语言:TypeScript / JavaScript
- 样式方案:Tailwind CSS / CSS Modules / Sass·Less / CSS-in-JS
- 测试方案(可多选):单元测试 / 端到端测试 / 轻量冒烟测试
- 部署与 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 工具加载:
- 将
plugin/host.js与plugin/client.js的代码体分别作为code.host/code.client传入cordis_define - 用
cordis_run激活(Client 半区首次激活需在 Run 卡片上授权) - 之后只要对会话说"帮我写一个大型项目/系统/平台…",问卷面板就会出现在输入框上方
方式二:持久化安装(推荐,每次对话自动加载)
让插件成为部署的一部分,每次新对话自动加载,并可在 设置 → 插件 列表中看到:
- 把
static/里的包安装到 DSH 部署的依赖目录(Node 解析需要):node_modules/dsh-project-intake/(与@deepseek-ai/*同级) - 在 DSH 用户 profile 组合
~/.dsh/profiles/web/cordis.patch.yml中加入:- insert: - id: project-intake name: 'dsh-project-intake' - 重启 DSH 生效。之后:
- 插件出现在 设置 → 插件(inventory)列表中;
- 每次会话自动注册
project_intake工具与工作流提示; - 浏览器问卷面板通过同源 HTTP API(
/project-intake/*)与宿主通信,无需动态插件通道。
说明:持久化版需要写入部署目录(升级 DSH 后需重新安装
static/)。两种方式二选一即可,不要同时使用以免重复注册。
依赖与要求
- DSH 运行时(Host:
systemPrompt;Client:slots/timer) - 无其他外部依赖(不依赖任何工具链、不依赖 GitHub CLI)