批处理 项目依赖许可证扫描与合规报告生成 AI 提示词 (Prompts)

适用场景

当你需要在上线前快速摸清一个项目的依赖许可证(License)与潜在合规风险时,这个在线工具可以把“扫描-归类-输出报告-给出处理建议”一次做完。它适用于:外包/交付验收、开源合规自查、法务/采购对接前的初筛、以及 CI 前置的人工复核。

你将得到什么

一个可部署的 Web 工具:支持上传 ZIP(前端直传/后端解压扫描)、或粘贴 package.json / requirements.txt / pom. / go.mod 等依赖清单;自动识别许可证、标记风险等级、生成可下载的 HTML/PDF/JSON 报告,并附带“如何处理”的可执行建议与检查清单。

Prompt(复制到 AI 直接生成项目)

你是一个资深全栈工程师+开源合规顾问。请为我生成一个“在线项目依赖许可证扫描与合规报告生成工具”的完整可运行项目,要求如下: 一、目标 - 用户上传一个项目压缩包(ZIP),或选择“粘贴依赖清单”模式(支持 package.json / package-lock.json / pnpm-lock.yaml / yarn.lock / requirements.txt / poetry.lock / Pipfile.lock / pom. / build.gradle / go.mod / go.sum)。 - 工具解析依赖信息,尽可能识别每个依赖的许可证(License),并输出:依赖树/清单、许可证分布统计、风险等级、疑似冲突点、以及处理建议。 二、技术栈(必须按此实现) - 前端:React + Vite + Type + Tailwind(页面简洁,支持拖拽上传、进度条、结果筛选、导出按钮)。 - 后端:Node.js 20 + Express(或 Fastify)+ Type 。 - 解析策略:优先本地解析 lock 文件;必要时使用开源数据源的离线包/缓存(不要强依赖外网实时查询;若提供可选在线查询开关,默认关闭并清晰提示)。 - 安全:上传文件大小限制、解压防 ZipSlip、沙箱目录、超时与并发限制;所有临时文件可配置是否保留。 三、核心功能 1) 上传扫描 - 支持 ZIP 上传;后端将 ZIP 解压到临时目录,自动探测项目类型(node/python/java/go)。 - 针对不同语言:  - Node:解析 package-lock.json / pnpm-lock.yaml / yarn.lock 并生成依赖列表;  - Python:解析 requirements.txt / poetry.lock;  - Java:解析 pom. (只需读取依赖坐标与版本);  - Go:解析 go.mod/go.sum。 2) 许可证识别 - 先从本地文件中识别:扫描依赖包的 LICENSE/NOTICE/COPYING 文件、package data(package.json 的 license 字段等)。 - 统一标准化输出为 SPDX 标识(如 MIT/Apache-2.0/GPL-3.0-only/UNKNOWN)。 - 对无法识别的条目标记为 UNKNOWN,并给出“下一步如何确认”的建议。 3) 风险与建议(给出可执行规则) - 生成风险等级:LOW/MEDIUM/HIGH;例如:GPL/AGPL 默认 HIGH(提示需法务评估),Apache-2.0 注意 NOTICE,MIT/BSD 通常 LOW。 - 识别潜在冲突:同一依赖多版本、许可证不一致、或上游声明不清。 - 输出“行动建议”清单:替换建议、保留署名/NOTICE 的要求、以及发布物中应附带的许可证文件清单。 4) 报告与导出 - 页面展示:统计卡片(总依赖数/未知数/高风险数)、可搜索表格、按风险/许可证过滤。 - 导出:  - JSON(机器可读);  - HTML(可打印);  - 可选 PDF(如果实现 PDF 需要额外依赖,请提供“可选安装”方式)。 四、交付物(必须完整输出) - 项目文件树(tree 形式)。 - 前端全部源码、后端全部源码、配置文件、示例数据。 - 本地运行命令(开发/生产)。 - Dockerfile + docker-compose(可一键启动)。 - 部署说明:Nginx 反代示例、环境变量、存储目录、日志与清理策略。 - 测试用例或 QA checklist:覆盖上传、解析、异常输入、超大文件、UNKNOWN 处理、导出一致性。 五、约束 - 不要生成任何图片/海报/渲染图相关能力。 - 所有页面文案用中文。 - 代码要可直接复制运行;关键模块要有必要的注释;错误处理要清晰。 现在开始输出:先给文件树,再逐文件给出代码与说明。

实现要点提示

建议把“解析器”做成可插拔模块:Node/Python/Java/Go 各自一个 parser,统一输出标准字段(name、version、license、licenseEvidence、risk、notes)。这样后续扩展 Rust、PHP、.NET 也不会重写整套逻辑。

QA checklist(示例)

上传 ZIP 是否限制大小与类型;解压是否阻止路径穿越;解析失败是否给出可读错误;UNKNOWN 是否有可操作的下一步;导出的 JSON/HTML 字段是否一致;高风险依赖是否醒目标记;临时目录是否按策略清理;并发扫描是否可控。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功