关于 gathering-security
gathering-security 是一项安全工作流技能,协调彼此隔离的子 Agent 处理身份验证、代码审计和加固。指挥者负责交接与 CI 检查,不直接修改代码。
主要功能
- 01调度 Agent 处理验证、审计和加固
- 02使用隔离上下文与结构化交接
- 03在工作流阶段之间运行 CI 检查
- 04按安全任务选择参与的 Agent
- 05迭代处理发现并验证修复
适用场景
- 01实现身份验证并进行安全审查
- 02在生产部署前审计代码
- 03加固处理敏感数据的功能
- 04响应密钥泄露或安全事件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ autumnsgrove/ lattice --skill gathering-security安装后在 Claude Code 中输入/gathering-security确认已加载。
附带文件references/conductor-dispatch.md
详细介绍
安全集结 🌲🕷️🦝🐢
鼓声在阴影中回荡。但这一次,指挥者站在空地边缘——不亲自执行任务,而是负责统筹。每只动物都带着全新的视角到来,阅读各自的指示,并全神贯注地进行对抗性检查。蜘蛛精准地编织身份验证。浣熊带着怀疑翻查细节。乌龟耐心地加固防线。三个彼此隔离的头脑,没有丝毫共享情谊,共同筑起一座坚固的堡垒。
何时召集
- 实施身份验证系统
- 添加 OAuth 或会话管理
- 发布前进行安全审计
- 安全事件发生后
- 准备部署到生产环境
- 需要协同处理身份验证、安全审计和深度加固
- 构建处理敏感数据的新功能
- 加固现有代码,实现纵深防御
重要: 这次集结是一个指挥者。它绝不会直接编写代码或修复漏洞,而是派遣子 Agent——每只动物各一名——各自拥有隔离的上下文,并使用指定的模型。指挥者只负责管理交接和门禁检查。
集结
SUMMON → DISPATCH → GATE → DISPATCH → GATE → DISPATCH → GATE → FORTIFY
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
Spec Spider Check Raccoon Check Turtle Check Final
(self) (opus) ✓ (sonnet) ✓ (opus) ✓ Verify
派遣的动物
| 顺序 | 动物 | 模型 | 角色 | 全新视角? |
|---|---|---|---|---|
| 1 | 🕷️ 蜘蛛 | opus | 编织身份验证 | 是——只查看安全规范 |
| 2 | 🦝 浣熊 | sonnet | 审计机密、漏洞和死代码 | 是——只查看蜘蛛提供的文件列表 |
| 3 | 🐢 乌龟 | opus | 对抗性加固 | 是——只查看文件列表,不了解蜘蛛的推理 |
参考: 加载 references/conductor-dispatch.md,查看准确的子 Agent 提示词和交接格式
阶段 1:召集
鼓声响起。阴影变幻……
指挥者接收安全请求并准备派遣计划:
明确安全工作:
- 添加新的身份验证提供方?(OAuth、SSO)
- 保护路由和 API?
- 常规安全审计?
- 深度安全加固?
- 事件后的清理工作?
- 生产环境部署前的加固?
选择性动员:
并非每次集结都需要三只动物全部出动:
| 情况 | 所需动物 |
|---|---|
| 新建身份验证系统并进行全面安全检查 | 三只全部出动:蜘蛛 → 浣熊 → 乌龟 |
| 已有身份验证,需要加固 | 浣熊 → 乌龟 |
| 新功能,确保设计安全 | 仅乌龟(或乌龟 → 浣熊) |
| 机密泄露/事件响应 | 浣熊 → 蜘蛛(轮换凭据)→ 乌龟(验证) |
| 生产环境部署前 | 浣熊 → 乌龟 |
错误代码与安全态势:
所有错误都必须使用 Signpost 代码——这是安全要求,而不只是惯例:
- 所有服务器错误都使用适当目录中的代码(
API_ERRORS、AUTH_ERRORS等) userMessage始终通用且友好——不得向客户端泄露技术细节adminMessage提供详细信息——仅保留在服务器日志中- 身份验证错误绝不透露用户是否存在(使用“凭据无效”,而不是“找不到用户”)
- 所有服务器错误都使用
logGroveError()——绝不能只用console.error
与人工确认后再继续。
输出: 已确认的安全规范、动物名单和派遣计划。
阶段 2:编织(蜘蛛)
指挥者发出信号。蜘蛛从树冠上降下……
Agent(spider, model: opus)
Input: security specification only
Reads: spider-weave/SKILL.md + references (MANDATORY)
Output: auth implementation + file list
派遣一个 opus 子 Agent 来实现身份验证。蜘蛛只会收到安全规范,不会收到预分析或意见。它会读取自己的技能文件并执行完整工作流。
蜘蛛构建的内容:
- OAuth/PKCE 流程实现
- 会话管理
- 路由保护中间件
- CSRF 保护
- 令牌处理
交接给指挥者: 身份验证文件列表(所有创建/修改的文件)、身份验证摘要(实现内容、关键决策)、集成点。
关卡检查: 运行 gw dev ci --affected --fail-fast——必须编译通过。如果构建失败,则恢复蜘蛛 Agent 并提供错误输出。
阶段 3:审计(浣熊)
浣熊从灌木丛中现身,鼻子抽动着……
Agent(raccoon, model: sonnet)
Input: file list from Spider + security scope summary
Reads: raccoon-audit/SKILL.md (MANDATORY)
Output: audit report + applied fixes
派遣一个 sonnet 子 Agent 来审计代码库。浣熊会收到文件列表和简要的范围摘要,但不会收到蜘蛛的推理或实现细节。审计需要全新的视角。
浣熊审计的内容:
- 代码中的机密信息(硬编码的密钥、令牌)
- 依赖项漏洞
- 死代码和未使用的导入
- 不安全模式(eval、innerHTML、字符串 SQL)
- 日志中的敏感数据
交接给指挥者: 审计报告(发现项、已应用的修复、尚存的隐患)、更新后的文件列表。
关卡检查: 运行 gw dev ci --affected --fail-fast——审计修复后仍必须编译通过。如果构建失败,则恢复浣熊 Agent。
阶段 4:加固(乌龟)
乌龟缓缓走来。它只看得到已构建的内容,不知道原因……
Agent(turtle, model: opus)
Input: combined file list ONLY (not Spider's or Raccoon's reasoning)
Reads: turtle-harden/SKILL.md + references (MANDATORY)
Output: hardening report + applied fixes
派遣一个 opus 子 Agent 进行对抗性安全加固。乌龟只会收到文件列表,不会收到蜘蛛的身份验证决策或浣熊的审计推理。这是有意安排的:乌龟应以对抗性的全新视角检查代码,而不是认同先前动物的推理。
乌龟加固的内容:
- 输入验证(所有入口点都使用 Zod 模式)
- 输出编码(根据上下文进行编码,富文本使用 DOMPurify)
- 参数化查询(SQL 中不使用字符串拼接)
- 安全标头(带 nonce 的 CSP、HSTS、X-Frame)
- 标识错误码(验证蜘蛛是否正确使用)
- Rootwork 边界安全性(验证信任边界处没有
as断言) - 对敏感端点进行速率限制
- CSRF、CORS、会话安全性
- 非常规攻击向量(原型污染、时序攻击、SSRF、竞态条件)
交接给指挥者: 加固报告(发现的漏洞、已应用的修复、防御层、尚存的风险)、更新后的文件列表。
关卡检查: 运行 gw dev ci --affected --fail-fast——加固后仍必须编译通过。
阶段 5:迭代(当乌龟发现深层问题时)
循环仍在继续。有些漏洞并非一只动物就能修复……
┌──────────────────────────────────────────────────┐
│ SECURITY ITERATION │
├──────────────────────────────────────────────────┤
│ │
│ Turtle hardening report │
│ │ │
│ ▼ │
│ Auth vulnerability found? │
│ / \ │
│ Yes No │
│ │ │ │
│ ▼ ▼ │
│ RESUME Spider Raccoon/Turtle │
│ (same agent) fixes directly │
│ │ │
│ ▼ │
│ Gate check │
│ │ │
│ ▼ │
│ RESUME Turtle │
│ (re-verify only changed files) │
│ │ │
│ ▼ │
│ Clean? ──→ ✅ Proceed to FORTIFY │
│ │ │
│ No ──→ Max 3 iterations, then escalate │
└──────────────────────────────────────────────────┘
迭代规则:
- 乌龟发现身份验证漏洞 → 使用具体发现恢复蜘蛛 Agent → 蜘蛛打补丁 → 恢复乌龟以重新验证
- 乌龟发现非身份验证漏洞 → 由乌龟直接修复,或由指挥者应用修复
- 浣熊发现机密信息 → 浣熊清理 → 恢复乌龟,验证是否还有残留泄露
- 每个问题最多迭代 3 次(若还需更多次,则上报给人工处理)
- 每次迭代只处理新发现/修复的项目
- 始终恢复 Agent(保留上下文),不要启动新的 Agent
阶段 6:加固
网络稳固。审计确认无误。外壳坚不可摧……
指挥者运行最终验证:
pnpm install
gw dev ci --affected --fail-fast --diagnose
验证清单:
Authentication:
[ ] Login redirects to provider
[ ] Callback exchanges code for tokens
[ ] Sessions created correctly
[ ] Logout clears sessions server-side
[ ] Expired tokens rejected
Authorization:
[ ] Protected routes require auth
[ ] API endpoints verify tokens
[ ] Users can't access others' data (IDOR)
Hardening:
[ ] SQL injection prevented (parameterized queries)
[ ] XSS prevented (output encoding + CSP)
[ ] CSRF prevented (tokens + SameSite cookies)
[ ] Rate limiting active on sensitive endpoints
[ ] Signpost error codes on every error path
[ ] Rootwork boundary safety at all trust boundaries
完成报告:
🌲 GATHERING SECURITY COMPLETE
Security Work: [Description]
DISPATCH LOG
🕷️ Spider (opus) — [auth implemented, X files created/modified]
🦝 Raccoon (sonnet) — [audit complete, Y findings fixed]
🐢 Turtle (opus) — [Z hardening fixes, N defense layers applied]
GATE LOG
After Spider: ✅ compiles clean, auth functional
After Raccoon: ✅ compiles clean, audit findings resolved
After Turtle: ✅ compiles clean, hardening applied
Iterations: [N iterations, all resolved / none needed]
Final CI: ✅ gw dev ci --affected passes
HARDENING SUMMARY
| Defense Layer | Status | Details |
| Input Validation | ✅ | Zod schemas on all entry |
| Output Encoding | ✅ | Context-aware + DOMPurify |
| SQL Injection | ✅ | All queries parameterized |
| Security Headers | ✅ | CSP, HSTS, X-Frame |
| CORS | ✅ | Exact origin allowlist |
| Session Security | ✅ | HttpOnly, Secure, SameSite |
| Rate Limiting | ✅ | Per-endpoint limits |
Woven tight, audited clean, hardened deep — the forest endures.
指挥者规则
绝不亲自完成动物的工作
指挥者负责派遣,不负责实现身份验证、审计机密信息或加固代码。如果发现自己正在编写安全代码,请停下来——派遣子 Agent。
全新视角是一项优势
乌龟收到的上下文有意少于完整历史记录。它看不到蜘蛛的推理或浣熊的审计逻辑。对抗性的全新视角能带来更好的安全审查。
检查每次交接
每个动物之间都运行 CI。不要让错误状态级联。
恢复,不要重启
如果检查失败或需要迭代,恢复失败的 Agent,并提供错误上下文。不要启动新的 Agent——恢复的 Agent 会保留先前工作的上下文。
有选择地调度
并非每次安全任务都需要三个动物齐上。仅涉及认证的工作跳过 Turtle。仅涉及加固的工作跳过 Spider。由指挥者根据请求决定。
反模式
指挥者不会:
- 自己编写安全代码(而是调度子 Agent)
- 将完整对话历史传递给每个 Agent(仅使用结构化交接)
- 跳过动物之间的检查
- 允许 Agent 跳过阅读其技能文件(每个提示词中都必须包含)
- 让 Turtle 看到 Spider 的推理(对抗性隔离正是目的)
- 检查失败后不修复就继续
- 未升级给人工处理就迭代超过 3 次
快速决策指南
| 情况 | 要调度的动物 | 模型 |
|---|---|---|
| 新增认证 + 全面安全保障 | Spider → Raccoon → Turtle | opus、sonnet、opus |
| 已有认证,需要深度加固 | Raccoon → Turtle | sonnet、opus |
| 新功能,安全设计优先 | Turtle(可选 + Raccoon) | opus(+ sonnet) |
| 事件响应 | Raccoon → Spider → Turtle | sonnet、opus、opus |
| 投产前部署 | Raccoon → Turtle | sonnet、opus |
| 仅涉及认证的工作 | Spider → Raccoon | opus、sonnet |
紧密编织,审计无误,深度加固——森林长存。 🌲