ワンクリックで
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 站点。