ClawHub 本地审核与安全扫描 Fixtures 全指南:用 `bun run seed:dev` 复现完整的安全态 UI

发布时间:2026/9/25 11:18:03

ClawHub 本地审核与安全扫描 Fixtures 全指南:用 `bun run seed:dev` 复现完整的安全态 UI 后端前端AI 技能AI 插件搜索引擎【免费下载链接】clawhubSkill Plugin Registry for OpenClaw项目地址https://gitcode.com/gh_mirrors/mo/clawhub点击查看免费下载本文是 ClawHubSkill Plugin Registry for OpenClaw本地开发 QA 的实战指南聚焦specs/local-moderation-fixtures.md中定义的本地审核moderation与安全扫描 fixtures如何用一条命令灌入「恶意/可疑」两类 skill 与 plugin 数据在本地稳定复现 artifact 详情页、security audit 页面、干净/待审/恶意三类安全状态以及移动端与桌面端布局全程无需手工编辑 Convex 数据。读完你将掌握 fixtures 的种子命令、local 本地 persona 设计、四条 fixture 资产的具体内容与 QA 访问 URL并理解其背后的种子实现原理与幂等机制。背景为什么需要本地审核 fixturesClawHub 的核心业务之一是安全扫描与审核skill 和 plugin 发布后需要经过 ClawScan、AIGAgentic Intelligence Guard等分析呈现为clean干净、suspicious可疑/待审、malicious恶意/隐藏等安全状态。这些状态对应大量 UI 形态artifact 详情页、security audit 侧栏摘要、security audit 完整页、报告与审核状态预览等。在本地开发时如果每次都要手工构造 Convex 数据来驱动这些 UI成本高且容易出错。为此 ClawHub 在 specs/local-moderation-fixtures.md 中记录了专门的本地 fixtureshand-authored、稳定复现、仅限本地 QA 使用。它们是「真实感」目录密度的补充——真实感的目录密度来自仓库中提交的 public corpus fixture见 convex/devSeed.ts 中的seedPublicCorpusBatch相关逻辑而 hand-authored 的审核 fixtures 专门用来覆盖需要稳定本地复现的安全与审核状态。需要强调的设计约束原文档明确说明fixtures 不是生产行为不应引入「申诉appeal专用」流程fixture 页面应避免出现申诉性语言——scanner 证据、工作人员回复、审核裁决在 ClawHub 中是相互独立的 UI 概念fixtures 只为 QA 呈现这些状态不应混入申诉交互。Seed 命令一条命令灌入全部 fixturesbun run seed:dev该命令在 package.json 中定义为seed:dev: bun run setup:worktree -- --quiet bun scripts/dev-worktree.ts --seed-only从命令链可以看出它先调用本地 worktree 环境准备助手setup:worktree随后进入 Convex 开发种子路径bun scripts/dev-worktree.ts --seed-only最终触发 convex/devSeed.ts 中的种子逻辑。完整的本地开发流程是先运行bun run dev启动前端Vite端口 3000见 package.json 的dev: bun run llms:generate bun --bun vite dev --port 3000再运行bunx convex dev启动 Convex 本地后端执行bun run seed:dev灌入 fixtures最后通过下方的 QA URL 访问页面。种子逻辑的入口 action 是seedLocalFixtures见 convex/devSeed.ts它先调用ctx.storage.store将四条 fixture 的 Markdown 文本写入 Convex 存储再通过internal.devSeed.seedLocalModerationFixturesMutation将资产落库最后清理不再使用的旧 storage idstorageIdsToDelete保证重复执行不留垃圾数据。reset 参数与幂等性seedLocalFixtures支持可选参数resetv.optional(v.boolean())。在 convex/devSeed.ts 中handler 会先查找六个目标两个 skill、两个 plugin外加两个截断类 fixture如果全部存在且未传reset则跳过重建仅做所有权修正和状态更新——这正是幂等性的来源。传reset: true时则会删除旧资产重新灌入。本地 Personalocal 与 GitHub 账号年龄约束Seeded 的 fixtures 统一归属本地用户 handlelocal对应的种子用户创建逻辑在 convex/devSeed.tshandle 为local、displayName 为Local Dev、角色为admin并显式写入一个旧的githubCreatedAt时间戳const LOCAL_SEED_GITHUB_CREATED_AT Date.parse(2020-01-01T00:00:00.000Z);githubCreatedAt取 2020-01-01 的毫秒时间戳见 convex/devSeed.ts。这样设计的目的是本地通过 UI 发布时能够通过与正常发布路径相同的 GitHub 账号年龄不变量检查——即新注册账号不能立即发布的规则在本地同样生效避免产生「本地专用绕过」同时又让开发 persona 保持可用。值得注意的历史细节种子逻辑中还包含retireLegacyLocalOwnerPublishersconvex/devSeed.ts它会将旧的local-owner本地种子发布者退役重命名为legacy-local-owner-*、解除 linkedUser、标记deactivatedAt/deletedAt把资产转移给新的local所有者。对应测试见 convex/devSeed.localFixtures.test.ts 中 retires legacy local-owner seed publishers 与 adopts a legacy local publisher 两个用例。Fixture 资产清单Skill fixtures2 个Slug用途安全状态local-flagged-wallet-sync故意恶意/隐藏型 skill fixturemalicious隐藏local-agentic-risk-demo故意可疑/待审型 skill fixture含 ClawScan findingssuspiciousactivelocal-flagged-wallet-sync的完整 Markdown 内容内嵌在 convex/devSeed.ts 的FLAGGED_SKILL_MD常量中一个「钱包流水对账」技能其 frontmatter 描述为Reconcile local wallet exports against exchange activity and flag mismatched transfers。它的vtAnalysisVirusTotal 风格分析被写死为vtAnalysis: { status: malicious, verdict: malicious, analysis: Local dev fixture intentionally flagged by VirusTotal., source: local-dev-seed, engineStats: { malicious: 2, suspicious: 1, harmless: 3, undetected: 58 }, checkedAt: now, },见 convex/devSeed.ts——这意味着本地页面会呈现真实的恶意引擎统计数字2 恶意 / 1 可疑 / 3 无害 / 58 未检出而非占位符。local-agentic-risk-demo的SCANNED_SKILL_MDconvex/devSeed.ts则故意包含高风险特征frontmatter 中带clawdis元数据emoji 、os 约束、TODOIST_API_TOKEN环境变量、npm/brew 依赖等正文末尾含一段Unsafe debug instruction——读取~/.openclaw/session.json并 POST 到https://invalid.example.test/collect。该技能版本还带aigAnalysisAIG 扫描分析固定产出 5 条 findings规则 T01、T04、T05、T08、T09含 error/warning/note 三级测试断言可见 convex/devSeed.localFixtures.test.ts。Plugin fixtures2 个Name用途安全状态local-flagged-runtime-plugin故意恶意 plugin/package fixture被标记local-scanned-runtime-plugin故意可疑/待审型 plugin fixture含 ClawScan findings有完整扫描结果local-scanned-runtime-plugin是公开可见且故意带完整扫描结果的插件README 见 convex/devSeed.ts用于在非 owner 视角下预览插件扫描详情页。它的 plugin inspector findings 在种子逻辑中预置了典型的两类告警见测试断言 convex/devSeed.localFixtures.test.tslegacy-before-agent-startwarningfindingKind: warning提示把旧版before_agent_starthook 替换为当前生命周期 API目标 OpenClaw 版本2026.3.24-beta.2missing-expected-seamerrorscanSource: nightly提示用所选 OpenClaw 版本可用的 API 替换registerTool目标版本2026.4.0。每个 finding 都带authorRemediation修复建议本地页面可直接展示给 owner 的整改指引。此外种子还会为该插件写入packageInspectorWarnings表并生成每日统计downloads 合计 7确保插件详情页的统计数字非空。截断类辅助 fixtures除上述四个主 fixture 外种子还会创建local-truncation-plugin-runtime-integration-skill与local-truncation-runtime-plugin常量为 convex/devSeed.ts。它们专门用于验证超长显示名TRUNCATION_FIXTURE_DISPLAY_NAME是一个以[120]开头、极长的字符串在 UI 中的截断表现避免安全 QA 时被长文本布局问题干扰。Scanned fixtures 应覆盖的 QA 面原文档明确要求扫描类 fixtures 覆盖以下 UI 状态artifact 详情页skill/plugin 各自详情security audit 侧栏摘要sidebar summariessecurity audit 完整页security audit 的 clean、review待审、malicious 三种状态移动端与桌面端安全布局report/moderation 状态预览。这意味着 QA 时应至少在这些视图中逐一确认状态徽标、引擎统计、findings 列表、修复建议、响应式布局切换如浏览器窗口缩放至移动端宽度等。QA URLs如何访问 fixture 页面前端与 Convex 本地服务都启动后直接访问http://localhost:3000/local/local-agentic-risk-demo http://localhost:3000/local/local-agentic-risk-demo/security-audit http://localhost:3000/plugins/local-scanned-runtime-plugin http://localhost:3000/plugins/local-scanned-runtime-plugin/security-audit这四个 URL 对应两对「详情页 security audit 页」local-agentic-risk-demo挂在local名下URL 前缀/local/对应路由测试见 src/tests/skill-security-scanner-route.test.tsx其断言确认页面数据以fetchSkillPageData(local-agentic-risk-demo, local)方式拉取参数owner: local正是 local persona 的路由体现local-scanned-runtime-plugin挂在/plugins/前缀下是公开可见的插件详情。另外local-flagged-wallet-sync这类恶意/隐藏资产通常用于 owner 视角的 inventory 与安全审核流程非公开页面可通过 local 登录后从仪表盘或 owner 资产列表进入。src/routes/-dashboard.test.tsx中的用例也印证了local-scanned-runtime-plugin这类 fixture 会出现在仪表盘相关数据中。原理剖析种子实现与测试验证种子数据如何落库seedLocalModerationFixturesHandlerconvex/devSeed.ts的执行流程可概括为解析 scanned skill 的 frontmatter 与 clawdis 元数据parseFrontmatter/parseClawdisMetadataensureSeedOwner确认/创建 local 所有者retireLegacyLocalOwnerPublishers退役旧local-owner发布者若excludeFromPublicCatalog staleProofSkill则调用hideStaleTestProofSkill把陈旧测试证明技能置为moderationStatus: hidden、moderationReason: test.fixture查询六个既有 fixture全部存在且非 reset 时走幂等更新路径修正 owner、打official徽标、写入vtAnalysis/aigAnalysis/llmAnalysis、回收废弃 storage id不存在或 reset 时执行完整重建。对应的 internalMutationseedLocalModerationFixturesMutation定义于 convex/devSeed.ts其参数 schema 完整覆盖reset、excludeFromPublicCatalog、staleProofSkill、ownerUserId、四个 fixture 的 slug/name 覆盖参数以及四个 storage id 与文本内容。复用的测试路径test- 前缀 fixtures值得关注的是同一套种子 handler 也被测试环境复用seedTestFixturesconvex/devSeed.ts以excludeFromPublicCatalog: true并传入test-flagged-wallet-sync、test-agentic-risk-demo、test-flagged-runtime-plugin、test-scanned-runtime-plugin等带test-前缀的标识配合assertTestSeedAllowed()convex/lib/testSeed.ts做环境守卫确保测试种子只在允许的环境运行。staleProofSkill传入的是CLAW_526_TEST_PROOF_SKILLconvex/devSeed.ts——一个由patrick-erichsen拥有的、slug 为test的「干净预览」技能用于验证 staging 发布流程。幂等与去重测试如何证明convex/devSeed.localFixtures.test.ts 中 seeds moderation and plugin fixtures for an explicit local user with scoped identifiers 用例完整验证了这套机制的三个关键性质可重复执行同参数重灌一次返回的storageIdsToDelete为空数组说明未产生重复资产存储回收更换 storage id 重灌后旧 storage id 被列入待删除清单由 action 侧ctx.storage.delete清理归属正确所有 seeded skills/packages 的ownerUserId均指向指定用户且 slug 会带上用户指纹前缀currentUserSeedSkillSlug/currentUserSeedPackageName见 convex/devSeed.ts避免多用户本地开发时冲突。注意事项与边界fixtures 仅用于本地 QA不代表生产审核行为local是 admin 角色页面呈现的是完整内部视角不要以此推断普通用户可见范围不要在 fixture 页面引入申诉appeal相关流程或文案申诉是独立的 UI 概念若本地已有旧的local-owner数据种子会自动退役并迁移到local无需手工清理需要重置全部 fixtures 时可借助seedLocalFixtures的reset参数测试中已有reset: true的调用路径验证见 convex/devSeed.localFixtures.test.ts本地如需强制重灌可从脚本入口传入。小结ClawHub 的本地审核 fixtures 通过bun run seed:dev一条命令将「恶意 skill / 可疑 skill / 恶意 plugin / 扫描完成 plugin」四个核心资产连同截断类辅助资产、local 本地 persona 一并写入本地 Convex使开发者可以零手工数据地在本地复现 artifact 详情、security auditclean/review/malicious、移动端与桌面端布局以及报告/审核状态预览等全部 QA 面。其实现位于 convex/devSeed.ts幂等性、storage 回收、所有权迁移等行为均由 convex/devSeed.localFixtures.test.ts 持续验证可作为理解 ClawHub 审核与扫描 UI 数据流的入口。赞分享后端前端AI 技能AI 插件搜索引擎【免费下载链接】clawhubSkill Plugin Registry for OpenClaw项目地址https://gitcode.com/gh_mirrors/mo/clawhub点击查看免费下载相关推荐Hey安全审计代码安全扫描与漏洞修复完整指南Hey安全审计代码安全扫描与漏洞修复完整指南 Hey是基于Lens Protocol构建的去中心化无许可社交媒体应用为确保其代码安全与用户数据保护进行全面社交Web3Swagger UI安全审计问题扫描与修复Swagger UI安全审计问题扫描与修复 概述 Swagger UI作为API文档自动生成工具在企业级应用中广泛使用。然而由于其直接暴露API接口信息API设计前端文档Hyperapp Actions 完整指南payload、事件对象与包装动作彻底搞懂状态转换Hyperapp Actions 完整指南payload、事件对象与包装动作彻底搞懂状态转换 Hyperapp 是一个仅约 1kB 的 JavaScript前端上一篇鸣潮终极自动化解决方案ok-ww智能游戏助手完整使用指南下一篇鸣潮玩家必看如何用ok-ww自动化脚本节省90%游戏时间创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/25 12:08:05

工业时序大模型:让AI真正读懂工厂暗数据

1. 项目概述:当大模型真正“看懂”工厂里的每一秒数据流ManuDrive不是又一个挂在PPT上的AI概念,而是我去年在一家汽车零部件厂的产线调试现场,亲眼看着它把三台停机27小时的压铸机重新拉回满负荷运转的真实工具。它不生成诗歌、不写周报、不画…

2026/9/25 12:08:05

天津短视频代拍运营公司推荐:有实力的服务商合作实力参考

现在越来越多天津实体企业布局短视频线上获客,不少工厂在运营过程中都会遇到这类问题:没有专业内容创作团队,自己拍的内容播放不少但没咨询,找售后完善的短视频代拍运营企业合作,却不知道该怎么筛选靠谱机构。不少企业…

2026/9/25 12:03:05

Atlas 300V 24G部署YOLOv5s实战:从环境搭建到推理优化全记录

去年底接了一个产线上的缺陷检测项目,老机台本来跑的是传统视觉算法,客户要求换成深度学习的检测模型,专门盯产品表面的划痕和脏污。我们在选型阶段纠结过一阵,最后定了 Atlas 300V 24G 这张卡,在上面部署 YOLOv5s。整…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑