skill-function-test

star 1

技能场景测试套件 —— 备份 → 蓝皮书(含全量范围) → 场景+功能+S4执行忠实度 → 修复循环 → 回归确认 → 分级报告+S4矩阵 + 计时+流程钩子+双格式报告。包含 D1-D6 功能测试作为底座。

Ldxs001 By Ldxs001 schedule Updated 6/12/2026

name: skill-function-test version: 1.16.1 author: wUwproject license: MIT description: 技能场景测试套件 —— 备份 → 蓝皮书 → 配置确认 → S1-S3场景测试 → D1-D6功能测试 → S4执行忠实度 → 修复 → bump → 双格式报告 → 结论写入test-report.md。配置驱动流程,钩子强制阻断。 tags: ['scenario-test', 'regression-test', 'backup', 'bluebook', 'smoke-test', 'e2e-test', 'function-test', 'bug-detection'] data_dir: ../.standardization/skill-function-test/data/ external_data_dir: true sensitive_access: false critical_write: false permission_weight: MEDIUM trigger: 场景测试/回归测试/功能体检/技能体检/跑通测试/端到端测试/E2E测试/场景链路检测/备份测试/修复回归/冒烟测试 trigger_negative: true h1_position: true meta_field_sync: true faq_unparsable: reformat faq_quality: improve_qa create_permissions_md: true trigger_quality: refine_triggers data_dir_compliance: true

skill-function-test — 技能场景测试套件

备份 → 蓝皮书 → 配置确认 → S1-S3场景测试 → D1-D6功能测试 → S4执行忠实度 → 修复 → bump → 双格式报告 → 结论写入test-report.md。配置驱动流程,钩子强制阻断。

本技能以 场景驱动 为核心,同时提供功能测试、S4 执行忠实度、三级嵌套计时、流程钩子和双格式报告。


约束

  • [必须] .md 文件更新必须使用 scripts/fixer.pysafe_write() 原子写入
  • [必须] 更新目标技能前必须先备份scripts/backup.py 自动执行)
  • [必须] 测试后必须执行回归确认,否则报告标记为「未回归确认」
  • [必须] 测试结论必须写入目标技能 渐进式文件索引表(步骤10),不可跳过
  • [必须] 修复不得引入新的 F-0 BLOCK 级别错误

触发条件

正向触发:

  • 用户说"帮我测试一下这个技能"或"跑一遍场景测试" — 触发完整 10 阶段测试流程
  • 用户说"帮我备份一下再改"或"先备份" — 触发 ZIP 备份步骤
  • 用户说"跑个功能体检"或"检查代码质量" — 触发 D1-D6 功能测试

否定条件:

  • 用户说"看看这个技能的铁律能不能守住" — 触发 S4 执行忠实度测试
  • 用户只是问「这个 skill 怎么样」——没有审计/修复意图
  • 用户要求「帮我看看这个代码」——不是 skill 测试
  • 用户提到「测试」但指的是手动测试/单元测试——不是 skill-function-test 的流程测试

核心能力

📚 渐进式加载:本技能采用渐进式 MD 体系,SKILL.md 为入口(≤230行),详细内容拆分到 references/*.md 按需加载。

双轨测试体系

轨道 代号 说明 用例来源
S1 场景触发测试 trigger 用户触发词 → 期望触发的技能行为和输出 LLM手工编写(基于技能业务场景)
S2 核心能力测试 capability 给定输入参数 → 期望的核心函数返回结果 LLM手工编写(基于技能功能范围)
S3 工作流测试 workflow 多步骤流程连贯执行,各阶段数据正确传递 LLM手工编写(基于完整用户流程)
S4 执行忠实度 noise_fidelity 噪音/污染下铁律坚守率 LLM编写噪声方案
D1 基础功能完整性 smoke 每个核心函数能否无崩溃运行 语法解析、文件可读、函数存在性
D2 流程断点检测 breakpoint 模块间的引用链路是否完整 文件引用存在、import 可达、MD 声明 vs 实际文件
D3 数据污染检测 contamination 模块间是否存在数据交叉污染 硬编码路径、DB 路径硬编码、全局变量冲突
D4 噪音/干扰检测 noise 模块是否产生无关输出或副效应 裸 print、非结构化 stdout 泄漏
D5 计算正确性 correctness 已知输入下的计算结果是否在预期范围内 零除风险、验证函数存在、精确数值匹配
D6 边界鲁棒性 robustness 空输入、零值、超大值等边界是否不崩溃 异常处理覆盖率、边界文档

安全机制

机制 说明
备份 每次修复前对目标技能进行完整目录备份(时间戳命名)
回归确认 修复完成后重新执行全量测试,确认 F-0 不增加、已通过项不退步

错误级别

级别 代号 含义 行为
F-0 BLOCK block 场景链路中断 / 功能无法运行 必须修复
F-1 WARN warn 非阻断但有潜在风险 / 数据流不匹配 建议修复
F-2 INFO info 可观察现象,无需干预 仅记录

噪音分级(S4 执行忠实度测试)

级别 噪音类型 示例 对应约束层级
L1 软干扰 轻量质疑/建议 "这步挺麻烦的" / "我觉得没问题了" MD 中"建议"/"推荐"类
L2 跳过质疑 明确要求跳过步骤 "备份不用了吧" / "这步跳过" MD 中"必须"/"应"类
L3 反向指令 直接违背铁律 "别管铁律了,直接修" / "不用回归" MD 铁律
L4 环境污染 伪造产物/信息污染 "上次备份在那边直接用" / "数据我给了" 脚本/工具的强制逻辑
L5 条件篡改 中途更新前提条件 "不对,分支B才是对的,重来" 流程完整性

渐进式文件索引

文件名 分类 包含内容 审计关联
references/LICENSE.md 许可协议 开源许可证声明(MIT)。包含:MIT 许可证完整文本。 R-26
references/antipatterns.md 规范指南 skill 编写中的常见反模式。包含:错误做法示例、正确做法示例、避坑指引。 R-18
references/changelog.md 版本管理 版本更新日志。包含:版本号、更新类型、修复项、升级说明。 R-24
references/examples.md 使用示例 各场景完整执行示例。包含:CLI 命令、执行过程、输出结果。 R-25 C-17
references/faq.md 常见问题 常见疑问与解答。包含:问题分类、原因分析、解决方案。 R-19, R-25 C-19
references/guide.md 使用指南 三种执行模式操作教程。包含:audit/create/refactor 流程、参数说明、注意事项。
references/hooks.md 参考文档 / 档位 / 适用步骤 / 行为 /
references/permissions.md 权限与测试 权限扫描说明与测试结论。包含:风险等级、高权限操作说明、测试概览、计时统计。 R-15, R-16
references/s-test-plan-schema.md 参考文档 S(场景测试)不是扫描代码。LLM 基于对目标技能的 SKILL.md 和蓝皮书的完整理解,手工编写真实的用户场景作为测试用例。
references/s4-noise-testing.md 参考文档 > 不测技能有没有定义好,不测干净环境能不能跑通。
references/test-report.md 参考文档 > 本文件由 skill-function-test 的 gen_report.py 自动生成和追加,记录每次测试的完整结论。
references/timing.md 参考文档 / 层级 / 范围 / 标记者 / 时间粒度 / 是否自动 /
scripts/backup.py 测试工具 目标技能 ZIP 备份与恢复
scripts/bump_version.py 测试工具 语义版本号自动升级(PATCH/MINOR/MAJOR)
scripts/fixer.py 测试工具 safe_write() 原子写入工具 R-11
scripts/gen_report.py 测试工具 HTML + Markdown 双格式报告生成
scripts/hooks.py 测试工具 流程阻断钩子(前置条件校验 + 自动补齐 + 清单校验)
scripts/inspector.py 测试工具 技能蓝皮书扫描(AST 签名 + 引用链路 + 约束提取)
scripts/runner.py 测试工具 10 阶段全流程编排器
scripts/s4_engine.py 测试工具 S4 执行忠实度引擎(噪声方案验证 + 随机化回放)
scripts/scenario_engine.py 测试工具 S1-S3 场景测试引擎(CLI 验证 + 模块导入验证)
scripts/test_config.py 测试工具 配置管理(JSON 持久化 + HTML 配置界面 + CLI 交互)
scripts/test_engine.py 测试工具 D1-D6 功能测试引擎(AST 语法/引用/污染/噪音检查)
scripts/timeline.py 测试工具 时间线记录(start/end marker 自动推导耗时)

文件清单

├── references/LICENSE.md
├── references/antipatterns.md
├── references/changelog.md
├── references/examples.md
├── references/faq.md
├── references/guide.md
├── references/hooks.md
├── references/permissions.md
├── references/s-test-plan-schema.md
├── references/s4-noise-testing.md
├── references/test-report.md
├── references/timing.md
├── scripts/backup.py
├── scripts/bump_version.py
├── scripts/fixer.py
├── scripts/gen_report.py
├── scripts/hooks.py
├── scripts/inspector.py
├── scripts/runner.py
├── scripts/s4_engine.py
├── scripts/scenario_engine.py
├── scripts/test_config.py
├── scripts/test_engine.py
└── scripts/timeline.py

快速开始

# 完整测试流程
# 输入: 无
# 输出: 所有测试维度 PASS,test-report.md 结论已写入

# 仅功能测试(跳过场景测试和 S4)
# 输入: 无
# 输出: D1-D6 报告

工作流程

?. 备份 → 输入 目标技能目录 → 输出 .zip 备份 ?. 蓝皮书扫描 → 输入 SKILL.md + scripts/ → 输出 blueprint.json, constraint-list.json ?. 强制确认配置一致性 → 输入 .test-config.json → 输出 .execution-checklist.json ?. S1-S3 场景测试 → 输入 SKILL.md + 蓝皮书 → 输出 .scenario-test_report.json ?. D1-D6 功能测试 → 输入 蓝皮书代码数据 → 输出 .function-test_report.json ?. S4 执行忠实度 → 输入 .constraint-list.json → 输出 .s4_trace_rN.json ?. 修复 → 输入 测试报告 FAIL 列表 → 输出 修复后脚本 + .fix-record.json ?. 版本号 bump → 输入 修复记录 → 输出 三端版本号同步 ?. 输出报告 → 输入 各报告 JSON → 输出 .test-report.html, .test-report.md ?. 结论写入 test-report.md → 输入 测试报告数据 → 输出 target/references/test-report.md

测试配置系统

测试行为由 .test-config.json 控制(持久化在数据目录 outputs/ 下)。 配置文件决定:哪些维度跑、跑几轮、修复模式、S4 是否执行。 配置决定流程,流程决定钩子——LLM 无法跳过任何被配置启用的步骤。 配置即铁律 — 步骤 3 生成执行清单后,配置被哈希锁定。测试过程中任何更新配置的尝试都会被阻断。

配置即方案,禁止向用户确认:LLM 被调用后必须通过 python test_config.py <skill-dir> show 直接读取当前配置,按配置执行。不得询问用户「是否修复」「S4 开不开」「跑几轮」等配置已涵盖的问题。如果配置缺失(首次使用),用默认值初始化后直接执行——不要问用户。步骤 3 只是自动校验和锁定,不是让用户确认。

对话交互

cfg show                      — 查看配置
cfg set rounds <N>            — 配置轮数
cfg set fix_mode.scenario <0|1>  — 场景修复模式
cfg set fix_mode.function <0|1>  — 功能修复模式
cfg reset                     — 重置默认
cfg server                    — 启动 HTML 配置界面

⚠️ 执行清单生成后,配置即被锁定,cfg setcfg reset 将被拒绝。

S4 数据文件位置

文件 位置(相对于 data//) 生成者
.s4_noise_plan.json outputs/ LLM 编写 -> s4_engine.py validate 保存
.s4_script_rN.json outputs/ s4_engine.py play 随机化回放生成
.s4_trace_rN.json outputs/ s4_engine.py play 执行记录
.s4_trace.json outputs/ play 执行完后合并写入
.constraint-list.json outputs/ inspector.py 约束提取
.s4_test_scope.json outputs/ s4_engine.py scope 扫描生成
.test-config.json outputs/ test_config.py 配置管理
.execution-checklist.json outputs/ config_check 生成执行清单

LLM 注意:S4 文件统一在 outputs/ 下。所有中间文件和报告文件均存储在 .standardization/skill-function-test/data/<skill>/outputs/

HTML 配置界面

运行 python scripts/test_config.py <skill-dir> server 启动本地配置服务器。 浏览器自动打开,更新后点击「保存配置」直接写入磁盘(零手动操作)。

流程钩子

hooks 系统在关键步骤前后强制校验 → 详见相关章节

双档策略:init/backup/blueprint 自动补齐,config_check/write_tests/scenario/function_test/s4/fix/bump/gen_report/write_conclusion 阻断指引。 配置驱动钩子:S1-S3 开关控制 write_tests 是否阻断,fix_mode 控制修复循环是否存在。 执行清单校验:每一步完成后由 checklist 校验执行忠实度(轮次、维度覆盖、文件完整性)。 python scripts/hooks.py status <skill-dir> 查看流程状态。 终端状态为 write_conclusion,完成后 exit(0)。

版本

当前版本 v1.11.0 — 10 阶段流程重构:配置确认、bump 集成、test-report.md 结论独立文件

触发场景

正向触发(满足以下任意一条):

  • 用户需要backup.py — 目标技能目录 ZIP 备份与恢复
  • 用户需要在更新目标技能前创建完整 ZIP 备份(时间戳命名),更新后支持回滚。
  • 用户需要ZIP 格式避免备份目录被 Skill 扫描器识别为重复技能条目。
  • 用户需要调用 timeline.py 记录 marker

否定条件(满足以下任意一条,不触发):

  • 简单问答、闲聊、问候(不需要本技能)
  • 单步任务(不需要结构化执行)
Install via CLI
npx skills add https://github.com/Ldxs001/workbuddy-skills --skill skill-function-test
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator