deepsec 初始化工作区 SETUP.md 全解读:Agent 如何完成扫描前的代码情报填充与自定义匹配器决策

发布时间:2026/9/26 20:41:55
deepsec 初始化工作区 SETUP.md 全解读:Agent 如何完成扫描前的代码情报填充与自定义匹配器决策 应用安全漏洞扫描人工智能AI Agent【免费下载链接】deepsecDeepsec is a security harness for finding vulnerabilities in your codebase powered by coding agents项目地址https://gitcode.com/gh_mirrors/deeps/deepsec点击查看免费下载SETUP.md 是 deepsec 在注册项目时自动写入扫描工作区的Agent 任务书它告诉接入的 coding agent 该读哪些文档、如何按既定规范填充INFO.md项目情报、何时才值得编写自定义匹配器以及收尾时应执行的扫描命令。本文以该文件为骨架结合仓库源码init-project.ts的模板生成、repository-analysis.ts的校验规则、coordinator.ts的阶段编排深入讲解每一步的实操方法与底层原理读完后你可以独立完成任意 deepsec 项目的初始化设置。SETUP.md 从哪来注册项目时自动生成的 Agent 任务书在 deepsec 的初始化流程中每注册一个扫描项目工作区就会多出三个配套文件data/id/project.json项目元数据自动探测githubUrldata/id/INFO.md项目情报模板含占位段落data/id/SETUP.md面向 Agent 的初始化任务书即本文主体这一写入逻辑位于packages/deepsec/src/commands/init-project.ts的setupMdTemplate()它以项目 id 和相对路径为参数生成与本文开头完全一致的模板——声明项目已注册、目标路径为..、设置未完成、INFO.md 仍是占位符然后列出待办清单。无论是deepsec init首次初始化还是后续用init-project添加多仓库项目走的都是这条共享代码路径参见 init.ts 中的注释。因此SETUP.md 不是一个需要人工维护的文档而是 deepsec 交给 Agent 的交接单文件开头那句 Setup is incomplete —data/deepsec/INFO.mdstill has placeholder sections 就是明确的待办状态声明。整个文件共三步阅读 deepsec 技能文档建立工具认知按规范填充INFO.md核心任务视需要添加自定义 matcher可选且强调不投机。第一步先读 deepsec 技能文档建立文档即真相的认知任务书要求 Agent 在pnpm install之后从工作区内的node_modules/deepsec/SKILL.md开始阅读。在 deepsec 的文档体系里这份 SKILL 是一张导航图它把每个文档主题映射到node_modules/deepsec/dist/docs/下的具体文件packages/deepsec/SKILL.md并明确文档是真相来源而不是训练数据。任务书点名必读三篇、其余略读文档主题对应本仓库路径getting-started.md一次性初始化与恢复、日常命令docs/getting-started.mdconfiguration.mddeepsec.config.ts完整参考docs/configuration.mdwriting-matchers.md生成式声明 matcher 与手写 matcherdocs/writing-matchers.md注意路径的两个视角在扫描工作区.deepsec/内技能文档位于node_modules/deepsec/SKILL.md随安装的 deepsec 版本发布永远与当前安装版本一致而在本源码仓库中对应内容直接位于packages/deepsec/SKILL.md与根目录的docs/下。SKILL.md 对 Agent 的使用指引也值得一并记住——当需要无人值守初始化时先跑npx deepsec init --plan --output json查看只读计划再按策略执行--yes流程并解析每一行 JSON 输出packages/deepsec/SKILL.md。第二步填充 INFO.md —— 本次初始化的核心交付物任务书用最大篇幅讲解的是data/id/INFO.md的填充规范。原因在于它的特殊地位INFO.md 会被自动注入到每一批 AI 审查process、triage、revalidate的 prompt 中docs/configuration.md相当于扫描器对项目的领域知识卡片。长度预算50–100 行宁缺毋滥任务书明确要求总长度控制在 50–100 行理由很直白啰嗦的上下文会稀释扫描器 prompt 窗口中的有效信号。写作目标是如果审阅者没读过这些他们会漏掉什么而非穷举式罗列。这不是软性建议而是有源码强制的硬约束parseRepositoryAnalysis在解析时直接校验超过 120 行或超过 14,000 字符会被拒绝并要求 Agent 重写packages/deepsec/src/setup/repository-analysis.ts。所以50–100 行是预算区间120 行 / 14k 字符是不可逾越的校验红线。五段必备标题INFO.md 必须包含以下五个段落缺一不可——isCompleteInfoMarkdown()会逐一检查这些标题是否存在packages/deepsec/src/setup/repository-analysis.ts段落标题内容要点## What this codebase does这个应用做什么、用什么技术栈、服务哪些用户一段话讲清## Auth shape3–5 个最重要的认证原语如withAuthentication、auth.can()、isTeamAdmin## Threat model2–4 句攻击者最想要什么、最容易从哪下手## Project-specific patterns to flag3–5 个本代码库独有的危险模式## Known false-positives3–5 个看起来危险但实为有意为之的路径/模式同时占位符标记如one paragraph: ...、!-- deepsec:setup-incomplete --和setup 未完成标记都会被判定为未完成。换句话说写完但没替换占位符的 INFO.md 与没写等价。每节 rubric精选代表性模式而非穷举任务书给出四条可操作准则每条都有明确意图每节挑 3–5 个代表性条目——不要列出每一个文件、工具函数或调用点选模式。按公开名点名原语例如withAuthentication、auth.can()不写行号任何列表不超过 5 个路径。跳过通用 CWE 类别——内置 matcher 已覆盖 SSRF、SQL 注入、XSS只写项目特有内容内部认证辅助函数、自定义中间件名、fork 特有的 stub、有意暴露的公开端点。每节要么一个短段落要么 3–5 条短 bullet二选一不要两样都上。这条 rubric 背后的设计哲学是内置 matcher 负责通用漏洞模式INFO.md 负责上下文补盲——把审阅者不看代码就不知道的东西写清楚把看代码就知道的东西留给扫描器。资料来源阅读顺序填充 INFO.md 不是凭空写作任务书规定了资料来源的读取顺序并要求够了就停target/README.md目标仓库根目录的 READMEtarget下的任何AGENTS.md/CLAUDE.mdtarget/package.json或go.mod、pyproject.toml等清单文件5–10 个代表性代码文件入口点、认证辅助函数——不是完整代码巡游这与 setup 流程中信息收集阶段info阶段的 Agent prompt 一脉相承buildRepositoryAnalysisPrompt同样要求从 README、AGENTS.md/CLAUDE.md、清单文件、入口点和认证辅助函数入手并明令禁止读取.deepsec、node_modules、生成产物、测试与测试夹具、vendored 代码packages/deepsec/src/setup/repository-analysis.ts。人工填充与自动化分析遵循同一套信息边界。完成判定校验、注入、状态记录INFO.md 是否完成由两重机制把关结构校验isCompleteInfoMarkdown检查五段标题齐全、无占位符标记源码见上状态记录setup 的info阶段把 INFO.md 的 digest 写入设置状态作为检查点的一部分续跑时若 digest 未变则跳过该阶段packages/deepsec/src/setup/coordinator.ts。另外还有一个细节若项目配置里同时存在infoMarkdown字段它会覆盖data/id/INFO.mddocs/configuration.md所以填充前应先确认deepsec.config.ts中是否已声明infoMarkdown。第三步可选自定义 matcher —— 从真实 TP 出发拒绝投机任务书对自定义 matcher 的态度极其克制Dont add matchers speculatively — wait for a real TP不要投机式添加等一个真实阳性样本。正确的工作流起点是已确认的 finding而不是猜测。其依据来自 matcher 体系的分工内置 matcher见 packages/scanner/src/matchers 目录下数百个*.ts文件覆盖通用漏洞与主流框架路由生成的声明式 matchergenerated-matchers.ts由 setup 在覆盖率缺口出现时自动产生只针对具体缺口——例如未被覆盖的内部 RPC 注册表、队列消费家族、框架路由原语手写 matcherTypeScriptMatcherPlugin仅在声明式规则表达不了时才需要典型场景包括无认证辅助函数的路由声明这类负向条件、同一文件上的多次关联搜索、语法感知预处理、组织特有语义docs/writing-matchers.md。任务书要求先读writing-matchers.md再动手正是为了确认当前缺口到底属于哪一层。若确认需要手写按 docs/writing-matchers.md 的布局把 matcher 放在matchers/目录下通过内联插件与generatedMatchersPlugin并列注册slug 必须唯一。收尾scan、process 与删除 SETUP.md任务书最后给出完成判定与收尾动作pnpm deepsec scan --project-id deepsec pnpm deepsec process --project-id deepsec这两条命令从.deepsec/工作区内部执行scan是免费的本地模式匹配产出候选文件与命中统计process是调用 AI 的付费阶段对候选文件做深入审查docs/getting-started.md。完成这两步后任务书明确允许删除 SETUP.md 本身——它的使命引导 Agent 完成初始化已经结束。背后的机制SETUP.md 只是设置工作流的一张可见卡片把 SETUP.md 放回整个 deepsec 架构中看它只是自动化流程的一个人工可读切片。runSetupWorkflow定义了完整的阶段序列packages/deepsec/src/setup/coordinator.tsscaffold → install → login → info → baseline-scan → coverage → matchers → final-scan → process其中info阶段生成 INFO.md 与威胁模型和coverage/matchers阶段评估扫描覆盖、最多两轮 matcher 修复正是 SETUP.md 三步骤对应的自动化实现。每个阶段都有独立检查点与 digest 校验中断后重跑同一命令即可恢复pnpm deepsec setup --statusJSON可查看每个阶段的状态与陈旧原因packages/deepsec/src/setup/status.ts。理解这层机制后你会发现 SETUP.md 并非孤立的待办清单——它背后是一个可暂停、可恢复、可校验的设置状态机而 INFO.md 与 matcher 决策正是这个状态机最需要人工智慧介入的两个节点。赞分享应用安全漏洞扫描人工智能AI Agent【免费下载链接】deepsecDeepsec is a security harness for finding vulnerabilities in your codebase powered by coding agents项目地址https://gitcode.com/gh_mirrors/deeps/deepsec点击查看免费下载相关推荐Deepsec 扫描工作区实战指南在 .deepsec/ 中配置、运行并维护 AI 驱动的代码安全扫描Deepsec 扫描工作区实战指南在 .deepsec/ 中配置、运行并维护 AI 驱动的代码安全扫描 .deepsec/ 是 Deepsec一个由编码 A应用安全漏洞扫描人工智能AI AgentncmdumpGUI网易云音乐NCM格式转换完全指南解锁音乐播放自由ncmdumpGUI网易云音乐NCM格式转换完全指南解锁音乐播放自由 你是否曾在网易云音乐下载了心爱的歌曲却发现在其他播放器或设备上无法播放这种格式限制应用安全漏洞扫描人工智能AI Agent在 Novu 仓库中落地 deepsec从零配置一套正则 AI驱动的代码安全扫描工作区在 Novu 仓库中落地 deepsec从零配置一套正则 AI驱动的代码安全扫描工作区 Novu 是一个以 Nx monorepo 形态组织、含 Ne后端消息路由前端通信AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询