一键导入
asset-redundancy-analyzer
静态站点冗余资源分析器,识别"声明但缺失"与"存在但未引用"两类问题,支持 HTML 引用提取、文件存在性校验、SHA256 哈希对比与决策矩阵,适用于 Trae Work 等模板生成的站点归档前清理
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
静态站点冗余资源分析器,识别"声明但缺失"与"存在但未引用"两类问题,支持 HTML 引用提取、文件存在性校验、SHA256 哈希对比与决策矩阵,适用于 Trae Work 等模板生成的站点归档前清理
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Windows 文件夹三段式可验证归档(robocopy 复制 + 逐文件校验 + 可选删除源),保留属性/时间戳/空目录,支持外部引用检查避免误删,支持归档日志留存(含自动命名与追加模式)便于审计,支持归档前 HTML 声明一致性校验
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
搜索全网内容,返回脚本整理后的结构化结果(标题、链接、作者、摘要等)
获取知乎热榜列表,返回脚本整理后的结构化结果(标题、链接、缩略图、摘要)
搜索知乎站内内容,返回脚本整理后的结构化结果(标题、链接、作者、摘要等)
调用知乎开放平台的 zhida 接口,返回结构化回答结果
| name | asset-redundancy-analyzer |
| version | 1.0.0 |
| description | 静态站点冗余资源分析器,识别"声明但缺失"与"存在但未引用"两类问题,支持 HTML 引用提取、文件存在性校验、SHA256 哈希对比与决策矩阵,适用于 Trae Work 等模板生成的站点归档前清理 |
| metadata | {"openclaw":{"emoji":"🔍","requires":{"bins":["powershell"]},"platform":"windows"}} |
| argument-hint | -Path <site-dir> [-IncludeHash] [-WhatIf] |
| disable-model-invocation | false |
| user-invocable | true |
| paths | [] |
asset-redundancy-analyzer
本 Skill 实现 "静态资产冗余分析三步法" 方法论,提供静态站点的冗余资源识别能力:
<script src>、<img src>、<link href>、@font-face url()、<a href> 等引用声明适用于:静态站点归档前清理、模板冗余识别、Trae Work 生成产物的质量校验、docs 目录定期巡检。
{baseDir} 是 agent 框架在运行时自动替换的变量,指向当前 skill 目录的绝对路径。
powershell -ExecutionPolicy Bypass -File "{baseDir}/scripts/Analyze-Redundancy.ps1" -Path "D:\project\docs\react-survey"
powershell -ExecutionPolicy Bypass -File "{baseDir}/scripts/Analyze-Redundancy.ps1" -Path "D:\project\docs\react-survey" -IncludeHash
powershell -ExecutionPolicy Bypass -File "{baseDir}/scripts/Analyze-Redundancy.ps1" -Path "D:\project\docs\react-survey" -IncludeHash -WhatIf
$sites = @("react-survey", "agent-insight")
foreach ($site in $sites) {
powershell -ExecutionPolicy Bypass -File "{baseDir}/scripts/Analyze-Redundancy.ps1" -Path "D:\project\docs\$site" -IncludeHash
}
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
-Path | string | ✅ 是 | — | 静态站点目录绝对路径,必须存在 |
-IncludeHash | switch | ❌ 否 | $false | 启用 SHA256 哈希对比,识别完全重复的文件 |
-WhatIf | switch | ❌ 否 | $false | 仅预演,输出建议但不执行任何删除操作(本技能默认不删除,此参数仅影响输出格式) |
-Format | string | ❌ 否 | "text" | 输出格式:text(人类可读)或 json(机器可读) |
脚本返回一个 PSCustomObject,同时输出结构化报告到 stdout:
[PSCustomObject]@{
Path = "D:\docs\react-survey" # 分析路径
HtmlFiles = @("react-survey.html") # 发现的 HTML 文件
TotalFiles = 12 # 目录中文件总数
DeclaredRefs = 8 # HTML 声明的引用总数
MissingFiles = @(...) # 声明但缺失的文件清单
UnreferencedFiles = @(...) # 存在但未引用的文件清单
DuplicateFiles = @(...) # 重复文件清单(启用 -IncludeHash 时)
Recommendations = @(...) # 建议操作清单
ExitCode = 0 # 0=成功, 1=错误
}
MissingFiles 数组元素结构(声明但缺失):
[PSCustomObject]@{
RefFile = "react-survey.html" # 声明引用的 HTML 文件
RefType = "font-face" # script|img|link|font-face|a
Declared = "./_shared/fonts/NotoSansSC-Regular.ttf" # 声明的路径
Issue = "FileNotFound" # 问题类型
Suggestion = "移除声明或补全文件" # 建议操作
}
UnreferencedFiles 数组元素结构(存在但未引用):
[PSCustomObject]@{
File = "./_shared/js/echarts.min.js" # 文件相对路径
Size = 1030900 # 文件大小(字节)
SizeReadable = "1006.74 KB" # 可读大小
Issue = "NotReferenced" # 问题类型
Suggestion = "删除" # 建议操作
}
DuplicateFiles 数组元素结构(重复文件,启用 -IncludeHash 时):
[PSCustomObject]@{
Hash = "DBC15E9B..." # SHA256 哈希
Files = @("./js/echarts.min.js", "./lib/echarts.min.js") # 重复文件列表
Suggestion = "合并到公共目录或删除冗余副本" # 建议操作
}
Recommendations 数组元素结构(决策矩阵输出):
[PSCustomObject]@{
File = "./_shared/js/echarts.min.js"
Action = "Delete" # Delete|Keep|Merge|FixDecl
Reason = "未被引用且无重复" # 决策依据
Priority = "High" # High|Medium|Low
}
| 依赖 | 类型 | 说明 |
|---|---|---|
powershell | 系统命令 | PowerShell 5.1+ 或 PowerShell 7+(Windows 自带) |
Get-FileHash | PowerShell cmdlet | 仅 -IncludeHash 时需要(PS 4+ 内置) |
无外部依赖:不依赖 Python、Node.js 或任何第三方库,纯 PowerShell 实现。
无需安装。脚本为单文件 PowerShell,直接调用即可。
若遇到执行策略限制,使用 -ExecutionPolicy Bypass 参数绕过:
powershell -ExecutionPolicy Bypass -File "scripts/Analyze-Redundancy.ps1" ...
本技能的 HTML 解析与文件校验逻辑跨平台,但脚本使用 PowerShell 语法,主要面向 Windows。Linux/macOS 可通过 pwsh 运行。
| ExitCode | 含义 | 处理建议 |
|---|---|---|
| 0 | 成功 | 分析完成,查看输出报告 |
| 1 | 一般错误 | 路径不存在、参数错误等,查看错误信息 |
| 场景 | 现象 | 解决方案 |
|---|---|---|
| 路径不存在 | Path 不存在或不是目录 | 检查 -Path 路径拼写 |
| 无 HTML 文件 | 未找到 HTML 文件 | 确认目录中包含 .html/.htm 文件 |
| HTML 编码异常 | 引用提取不完整 | 确保 HTML 为 UTF-8 编码 |
-WhatIf 参数仅影响输出格式(增加"预演"标记),因本技能默认就是只读flowchart TD
A[阶段0:参数校验] --> B{Path 存在?}
B -->|否| X1[抛错退出]
B -->|是| C[阶段1:扫描目录]
C --> D[发现 HTML 文件]
D --> E{有 HTML?}
E -->|否| X2[抛错退出]
E -->|是| F[阶段2:HTML 引用提取]
F --> G[解析 script/img/link/font-face/a]
G --> H[阶段3:文件存在性校验]
H --> I[识别 MissingFiles]
I --> J[阶段4:未引用文件识别]
J --> K[识别 UnreferencedFiles]
K --> L{-IncludeHash?}
L -->|是| M[阶段5:哈希对比]
L -->|否| N[阶段6:决策矩阵]
M --> O[识别 DuplicateFiles]
O --> N
N --> P[生成 Recommendations]
P --> Q[输出报告]
Q --> R[✅ 完成]
-IncludeHash:完整分析时启用哈希对比,识别跨目录重复./、../、绝对路径与无前缀相对路径http://、https://、// 开头的引用不校验本地存在性Recommendations 基于规则推断,实际删除前请人工确认Q1: 为什么用正则而不是 HTML 解析器? A: PowerShell 内置无 HTML 解析器,引入第三方依赖违背"零依赖"原则。正则覆盖 95% 场景,畸形 HTML 罕见。
Q2: 本技能会删除文件吗? A: 不会。本技能是只读分析器,仅输出报告与建议。删除操作由用户或 archive-folder 技能执行。
Q3: 如何处理跨站点重复?
A: 对每个站点单独运行,然后人工对比 DuplicateFiles 中的哈希。跨站点自动对比需指定多个 -Path,暂不支持。
Q4: MissingFiles 中的"声明但缺失"如何修复? A: 两种方案:(1) 补全缺失文件;(2) 移除 HTML 中的声明。参考 task-summary 中的"声明但缺失资源治理决策矩阵"。
Q5: 如何与 archive-folder 技能协作?
A: 推荐流程:先跑 asset-redundancy-analyzer 识别冗余 → 人工清理 → 再跑 archive-folder 归档。可在 archive-folder 的 -CheckExternalRefs 之前作为预处理步骤。
Q6: 支持 Vue/React 等 SPA 吗?
A: 部分支持。SPA 的动态引用(如 import())无法通过静态分析识别,本技能主要面向静态 HTML 站点。