Releases: D1a0y1bb/CloverSec-CTF-Build-Dockerizer-skill
Releases · D1a0y1bb/CloverSec-CTF-Build-Dockerizer-skill
v2.2.0-r7
Immutable
release. Only release title and notes can be modified.
修复
- 按官方 Skill 校验规则移除非标准顶层字段,把
challenge.yaml与--project-dir的输入提示移入SKILL.md正文和agents/openai.yaml默认提示。 - 保留 Docker artifact 工作流,继续输出
environment、docker_artifacts与xlsx_fields,用于归档阶段生成 amd64 镜像包、导出 tar 包和表格字段。 - 删除已不适合随 Git 管理的 Linux-QEMU 示例
initrd.img,并通过.gitignore阻止该大文件再次进入源码提交。
验证
- 本版本发布前执行官方 Skill 校验、发布脚本校验与 release build。
v2.2.0-r6
Immutable
release. Only release title and notes can be modified.
修复
- 修复
smoke_test.sh在 macOS 上生成solve_probe临时 YAML 时可能得到字面量XXXXXX.yaml文件名的问题,改为使用随机临时目录。 derive_config.py保证gates与manual_required一致;已有challenge.yaml明确提供 stack、端口和启动命令时,关闭对应确认 gate。audit_input.py区分明确配置和自动探测:显式challenge.stack优先,自动探测结果作为detected_stack_hint复核提示,不再覆盖明确配置。- Pwn 输入新增源码 flag 路径提示,识别
flag0、flag1、flag.txt、/home/ctf/flag*等线索,并要求确认challenge.flag.sync_paths。 workflow.py新增reviewed-render --reason "...",用于低风险、明确配置或已接受 proposal 的快速审查渲染;mixed/dirty/high_risk 输入仍会被 gate 阻断。- 新增
src/CloverSec-CTF-Build-Dockerizer/docs/solve_probe_recipes.md,提供 HTTP、TCP、container_exec、Pwn nc 和动态 flag 路径的业务断言片段。
验证
check_fast.sh通过;validate_examples.sh通过,39 通过、0 失败、0 跳过。smoke_test.sh --case python-flask-basic通过,challenge.verification.solve_probe使用随机临时目录中的solve_probe.yaml执行成功。release_build.sh --with-smoke通过,dist/CloverSec-CTF-Build-Dockerizer-v2.2.0-r6.release-status.json显示release_ready=true。- 定向行为验证通过:显式
stack=python优先于 AI 探测提示;Pwnflag0/flag1会提示并转换为/home/ctf/flag0、/home/ctf/flag1;reviewed-render可渲染低风险 Node 示例,并会阻断未接受 proposal 的 Pwn 输入。 - 真实 LLM A/B 使用
gpt-5.4、4 组输入比较 r5 安装版与 r6 当前工作区:r5 为 2/4,r6 为 4/4。报告保存在开发文档(不同步)/llm_ab_v220_r6_retry_20260611_191223/REPORT.md。
v2.2.0-r5
Immutable
release. Only release title and notes can be modified.
修复
- 运行时文档明确
challenge.verification.solve_probe的直接执行入口:bash scripts/smoke_test.sh --case python-flask-basic。此前 r4 已有正式 example,但真实 LLM A/B 仍会只给出render.py/validate.sh,没有走到业务入口断言。 examples/python-flask-basic/README.md不再让用户去仓库根 README 查命令,改为写出安装版 Skill 可直接执行的命令。SKILL.md、scripts README 与validation_guide.md收紧flag.sync_paths说明:默认同步发生在平台调用/changeflag.sh时;只有用户明确说明平台不会调用/changeflag.sh,才把启动时同步写成题目特定兼容逻辑。doc_guard.py允许运行时文档引用smoke_test.sh,但继续阻断发布治理和源码维护说明进入 Skill 运行包。
验证
check_fast.sh通过;smoke_test.sh --case python-flask-basic通过并执行challenge.verification.solve_probe;release_build.sh --with-smoke通过,release_ready=true。- 真实 LLM A/B 使用
gpt-5.4、flag_sync_lifecycle和solve_probe_example两组输入:r4 为 0/2,r5 为 2/2。报告保存在开发文档(不同步)/llm_ab_v220_r5_explicit_context_retry_20260611_183710/REPORT.md。
v2.2.0-r4
Immutable
release. Only release title and notes can be modified.
修复
python-flask-basic正式加入challenge.verification.solve_probe示例,smoke_test.sh --case python-flask-basic可直接验证从challenge.yaml读取业务入口断言的链路。- 文档明确
challenge.flag.sync_paths的生效边界:它由生成的/changeflag.sh同步业务路径,不代表任意start.sh启动时都会自动写好flag0/flag1等路径。 SKILL.md、schema、平台契约、栈手册和脚本 README 同步提醒:真实 Pwn/Web 题若不读/flag,仍需看源码配置业务路径并执行 smoke probe 或实际拿 flag 验证。
验证
- r4 发布前验证覆盖
check_fast.sh、validate_examples.sh、smoke_test.sh --case python-flask-basic、release_build.sh --with-smoke。
v2.2.0-r3
Immutable
release. Only release title and notes can be modified.
变更
- Compose/Vulhub-like 导入增强:draft 保留 ports、environment、depends_on、volumes、networks、healthcheck、command/entrypoint 等线索;renderable subset 支持 image tag/digest 别名匹配、host/container 端口带入、environment 带入和
depends_on写回。 - check-service 生成器增强:HTTP 支持状态码、正向/反向文本和 header 断言;Redis 支持 key/value 检查;MySQL 支持 query 结果断言;SSH 支持 banner 断言。
smoke_test.sh增加可选smoke_assert.yaml业务断言,支持 HTTP、TCP 和容器内命令;已有smoke_assert.sh保持兼容。- Linux-QEMU 样例维护规则细化:Fragnesia 继续作为外部真实资产样例;Copy Fail 记录为候选负例,缺资产 manifest、boot、flag readback 与 PoC 证据前不升级为真实样例。
- 新增
scripts/check_fast.sh,日常维护只执行 Python/Bash 语法、文档治理和git diff --check。 smoke_test.sh增加--case <name>与SMOKE_CASES=a,b,可只跑受影响的示例,避免每次都执行全量 Docker smoke。
修复
- 真实历史题复刻路径增强:Pwn/BOF 输入会优先识别 ELF、C 源码、Makefile、xinetd/socat/tcpserver/chroot 等强证据,减少被遗留
package.json或前端说明页误判为 Node 的情况。 - 历史运行时保留更明确:渲染基础镜像优先级调整为
--base-image > CLI --runtime-profile > challenge.base_image > challenge.runtime_profile > infer/default,避免challenge.yaml中明确写出的 PHP 7.4、Node 14、JDK 8 等老环境被自动推断覆盖。 parse_config_block.py保留更多已确认字段,包括runtime_deps、build_deps、extra.*、flag.sync_paths、verification.solve_probe、platform.docker_platform和support_level。workflow.py accept --refresh可在用户确认后重新记录当前challenge.yamlhash,适配人工修正配置后继续走 gate 的场景。workflow.py --pretty与子命令--pretty兼容,等价于--format json,避免真实使用中因参数不支持中断。- 动态 flag 同步能力增强:
changeflag.sh可把动态 flag 同步到题目业务实际读取路径,避免题目读/home/ctf/flag等路径时只更新/flag。 validate.sh明确说明自身只验证平台交付契约,不证明题目已经可解;如果配置verification.solve_probe,会提示业务入口断言应在 smoke 阶段执行。smoke_test.sh支持challenge.verification.solve_probe,可直接从challenge.yaml生成业务断言并执行 HTTP/TCP/容器命令类检查。- 发布包路径继续校验,安装版 Skill 文档不再引用
src/CloverSec-CTF-Build-Dockerizer/这类安装后不存在的源码路径。
验证
- 真实 LLM A/B:修复前 HEAD 为 3/6,当前 r3 候选为 6/6;Pwn BOF 混合输入、PHP 7.4 保留、业务 flag 路径 + solve_probe 均从失败变为通过。
- 本地完整验证通过:
check_fast.sh、golden_snapshot.py、platform_matrix.py --profile release、validate_build_test.py、validate_examples.sh、Linux-QEMU Fragnesia preflight、release_build.sh --with-smoke均通过。 - Docker smoke:35 通过 / 0 失败 / 4 按策略跳过。
- 定向反馈验证通过:真实 Pwn ELF + 遗留
package.json识别为pwn;PHP Dockerfile 保持FROM php:7.4-cli;动态 flag 精确写入flag{abc};verification.solve_probesmoke 通过。
v2.2.0-r2
Immutable
release. Only release title and notes can be modified.
修复
- Bundle/Recipe 支持显式 custom 组合:用户明确提供 base image、安装命令、启动命令、端口和服务清单后,可以生成单容器多服务交付目录;信息不完整时仍返回
BUNDLE_UNSUPPORTED_COMBINATION,不自动猜测依赖或版本。 - Linux-QEMU release/manual 验证补齐完整链路:新增外部 VM 资产清单校验、CI full check、Fragnesia PoC 自动复现脚本,可覆盖 Docker build、QEMU TCG boot、guest flag 写入和 PoC 验证。
- 修复 Linux-QEMU 动态 flag 写入顺序:在 QEMU guest 启动前通过外层
/start.sh写入 guest rootfs,避免 guest 已挂载 rootfs 后再改文件导致 flag 不生效。 - 修复
flag{...}在 Bash 参数展开中多出}的真实样例问题,并通过 Fragnesia 真实资产验证 guest/root/flag与动态 flag 一致。 golden_snapshot.py适配 Scenario 确认门槛,回归场景显式使用--accepted --reason,避免测试脚本绕过当前交互规则。- 运行时 Skill 文档继续聚焦题目构建:移除安装包内不必要的源码发布治理说明,并由
doc_guard.py阻止源码维护命令进入运行时文档。
验证
- 真实 LLM A/B:已安装
v2.2.0入口为 3/4,当前 r2 候选为 4/4;custom Bundle 用例从“不支持”变为正确进入显式 custom proposal。 - 完整 Docker smoke:35 通过 / 0 失败 / 4 跳过。
- Linux-QEMU full check:Docker build、QEMU TCG boot、guest SSH、动态 flag、PoC 均通过。
v2.2.0-r1
Immutable
release. Only release title and notes can be modified.
修复
- 修复安装版 Skill 文档路径表述,运行时文档统一使用相对于
SKILL.md的docs/、data/、scripts/、templates/、examples/路径。 doc_guard.py与release_build.py增加发布包运行时路径检查,阻止src/CloverSec-CTF-Build-Dockerizer/这类源码仓库前缀进入安装包文档。- 补齐
linux_qemu_manual_check.sh在 Skill 运行包内的入口,避免文档引用存在但发布包缺脚本。
发布
- 本版本计划通过
publish_release.sh --wait-release-full-check发布,等待 GitHub Actionsrelease-full-checkjob 成功后再公开 GitHub Release。 - 本版本不改变
challenge.yamlschema、Proposal Gate、render/validate 契约或 Linux-QEMU 渲染行为。
v2.2.0
Immutable
release. Only release title and notes can be modified.
新增
Build_test/升级为真实样例池,新增cases.yaml、每个样例的case_note.md和独立说明文档。- 新增
scripts/validate_build_test.py,按cases.yaml对真实样例执行输入审计与 Docker 契约期望匹配,支持--format json、--case和--fail-fast。 - 首批样例覆盖现有历史样例、cPanel/WHM 仿真、Linux-QEMU 缺资产、Web 历史题、Pwn compose/xinetd 输入和 PHP compose 输入。
- 新增 Linux-QEMU release/manual 验证套件:
linux_qemu_manual_validation.md、scripts/linux_qemu_manual_check.sh和真实 Fragnesia 外部资产记录。 - 新增 Bundle/Recipe 原型,提供两个固定组合、
render_bundle.py、validate_bundle.py、schema、设计文档和输入示例。 - 新增 compose import draft:
import_compose.py输出scenario.draft.yaml、scenario.renderable.yaml与import-report.json,并提供导入示例。 - 新增
generate_check_stub.py,支持 HTTP/TCP/Redis/MySQL/SSH check-service 可编辑骨架。 - 新增
validation_guide.md,承接SKILL.md中迁出的 validate、check-service、Linux-QEMU 静态校验和发布前检查细节。 - 新增
orchestrated_workflow.md,承接旧版SKILL.md的 CONFIG PROPOSAL、OK 门槛和 5 项确认协议。
变更
SKILL.md改为渐进加载入口,只保留任务定位、首选工作流、门槛规则、输入路由和按需读取索引。doc_guard.py增加SKILL.md行数、关键入口和大段迁出内容检查,防止入口文件再次膨胀。stack_cookbook.md补充旧版SKILL.md的 12 栈最小模板库索引,validation_guide.md补充模板变量速查。- 移除运行包中的迁移映射文档,避免 Agent 把审计记录当作执行手册;长参考文档补充目录以提升按需读取质量。
validate.sh读取support_level,发布 digest 门禁对partial原型样例记录 WARN 而不阻断;Redis 7.2 BaseUnit 组件改用 digest 固定镜像。validate.sh的 Linux-QEMU debugfs 检测支持sif别名,避免真实changeflag.sh被误判为没有写入 guest rootfs。validate_examples.sh识别bundle.yaml,在临时目录渲染并校验 Bundle 示例,保持 examples 只读。validate_examples.sh识别 compose 示例,默认校验导入后的可渲染 Scenario 子集。validate.sh将CHECK_REVIEW_REQUIRED视为未确认 check-service 标记,继续阻断发布。
验证
- Golden snapshot 对比基线:P1.8 前
29d470e,P1.8 后108977d。 SKILL.md从 1089 行降到 206 行,入口减少约 81.1%;字节数从 39254 降到 10204,减少约 74.0%。- OK 门槛、5 项确认、低风险 Node proposal/render/validate、Linux-QEMU 缺资产审计均保持一致。
- Bundle partial 严格 digest 和 Scenario Vulhub-like 严格 digest 从失败变为通过。
- 报告保存在
开发文档(不同步)/golden_snapshot_p18/REPORT.md与开发文档(不同步)/golden_snapshot_p18/summary.json;该目录不进入发布包。
v2.1.2
Immutable
release. Only release title and notes can be modified.
新增
- 新增
workflow.py推荐入口,提供intake / propose / accept / render / validate / status命令,并在题目目录维护.ctfbuild/session.json、proposal 与 accepted proposal 状态文件。 - 新增
audit_input.py输入审计,输出risk_level、recommended_path、support_level、verification_level、manual_required与findings[];derive_config.py的 JSON/YAML 输出同步携带input_audit。 render.py新增 Proposal Gate、--format text|json、--manual --reason。混合输入、脏目录、高风险输入或 derive gates 为 true 时,默认要求 accepted proposal。validate.sh新增--json-summary <path>,validate_scenario.py新增--format text|json,失败结果可稳定输出结构化错误码。
变更
validate_context.py在传入challenge.yaml后如遇文件缺失、PyYAML 缺失或 YAML 解析失败,会返回非 0,并统一归类为CONFIG_CONTEXT_PARSE_FAILED。- 发布检查升级:
release_build.py支持--with-smoke、SkillHub metadata 检查、当前版本 CHANGELOG 标题检查、agents/打包检查、SBOM 来源记录和release-status.json。 publish_release.sh正式发布默认执行 Docker smoke;如需跳过必须传入--skip-smoke-with-reason "..."。找不到当前版本 release notes 时发布失败。
发布
- 本版本聚焦工作流门槛、输入审计、结构化错误与发布前检查,不扩展样例池,不引入 Bundle/Recipe 或 Scenario import,也不重写
SKILL.md主体。
v2.1.1-r1
Immutable
release. Only release title and notes can be modified.
v2.1.1-r1 - 2026-06-10
本 GitHub release 重新发布 v2.1.1 Skill 包。Skill 包内部版本仍是 v2.1.1;使用 v2.1.1-r1 tag 是因为原 v2.1.1 release 已 immutable,无法替换或追加资产。
对应 commit:a9577b2d631625a07f2259a0098b3c32e4cdb64d
主要修复:
- 三语 README 增加
v2.1.1发布修复说明,公开 docs 标题同步到当前版本。 CHANGELOG.md补充 v2.1.1 文档同步与检查规则说明。scripts/doc_guard.py增加当前版本说明章节检查,防止只改顶部版本号而遗漏正文说明。SKILL.md、schema、template、stack cookbook、validate 提示文案统一为当前版本说明;v2.1.0仅保留为 linux-qemu 引入版本的历史说明。
资产 SHA256:
CloverSec-CTF-Build-Dockerizer-v2.1.1.zip:a7b846383225c247daa9aaa9ee93dc605ca5fa3dd79baeab0a028a80abd0b164CloverSec-CTF-Build-Dockerizer-v2.1.1.sbom.spdx.json:deaee706da00635976dd1d2821648ad161fbe38aec24b43e91c1e32cec6afff6CloverSec-CTF-Build-Dockerizer-v2.1.1.sbom.cdx.json:ed3a8a2650d2ee1aa123e9c455b365ff08f0ab90119cbf29aa0b10db99205944CloverSec-CTF-Build-Dockerizer-v2.1.1.deps.txt:a357d865ef0c65c2ad8da15c53b259c721272c4214fc28ae0c698a2b92377076