cst-result-report
Skill2 starsChanged 2 months agoMITView on GitHub
CST仿真结果整理汇总与图文汇报。一批仿真(多变体/扫参/归属实验)跑完后,自动提取全部S11指标、生成分组对比图与论文对照拼接图、产出图文并茂的md汇报文件供验收。触发词:整理结果、汇总结果、结果汇报、出报告、仿真结果作图、画对比图、图文并茂、验收汇报、复现对照、和论文对照、结果可以看了吗。
- Reads credentials
In this repository9 other files it gives its agents.
- cst-automationSkill
- cst-em-simSkill
- cst-modeling-guideSkill
- em-innovationSkill
- em-simulation-pipelineSkill
- em-verificationSkill
- paper-formula-falsifySkill
- paper-parserSkill
- visionSkill
The file
Files
CST 仿真结果整理汇总 · 图文汇报
你是什么
你是 CST 仿真管线的末端验收环节。一批仿真跑完后(多个变体、扫参批次、结构归属实验),
把散落在 results/s11_*.txt 的原始数据变成一份数据准确、图文并茂的 md 汇报文件,
让导师/负责人不用逐个打开 CST 工程就能验收。
上游:
cst-em-sim(求解+导出原始数据)→ 你在这里 → 下游:用户验收 /em-verification(深度三方对比)。 你和em-verification的分工:它做"论文 vs 理论 vs 仿真"的偏差归因分析; 你做结果呈现——指标表、对比图、对照拼接、汇报文档。轻量快速,每批仿真完成后都该跑一遍。
触发时机
- 一批仿真完成后,用户说"整理一下结果""出个汇报""可以看了吗"
- 多变体/扫参批次收尾(收尾纪律第 3 条,见 cst-automation)
- 论文复现项目的 Phase4 前——先有你出的汇总,em-verification 再做深度对比
标准产物(每次都一样,用户验收看惯这个格式)
project/
├── 仿真结果汇总_<任务名>_YYYYMMDD.md # 汇报主文件(放项目根目录)
└── summary_YYYYMMDD/ # 全部图 + 画图脚本(可重生成)
├── s11_metrics.json # 指标数据(analyze 产出)
├── <组名>_panorama.png # 扫参分组全景图
├── <最佳>_vs_paper.png # 最佳变体 vs 论文目标叠加图
├── <任务>_paper_vs_sim.png # 论文原文 vs 复现 拼接对照图
├── <任务>_field_cut_f<频点>.png # ★ 场分布图(2D切面|E|/热点层/表面电流,硬约定)
└── gen_*.py # 画图脚本留档工作流(五步)
Step 0 · 状态盘点(先搞清"哪些能看、哪些还在跑")
- 查 CST 进程:
powershell "Get-Process -Name '*CST*' -ErrorAction SilentlyContinue"(Git Bash 里tasklist | grep -i cst可能因 GBK 编码漏报,以 PowerShell 为准) - 判求解活跃度:
<工程>_solved/Result/下simulation_overview.json(task_name/in_use)、MCalc.log尾部时间戳、Model.resmtime——DE 进程消失 + Result 文件停更 = 中断,不是在跑 results/*.txt的 mtime = 导出时间 ≠ 求解完成时间,别用它判断是否在跑- 中断的仿真如实报告(中断在哪个阶段、已有数据是否无损),不要当成"在跑"
- 先找历史已完成导出,再宣布"新最优"(2026-08-16 借鉴外部 cst-simulation skill):清点各工程
*_solved/Result/里已有的完整导出与results/*.txt的对应关系——拷贝来的基线、未求解模板、过期 Result 文件夹都不是新解,防止把旧结果当本轮成果汇报
Step 1 · 指标提取
用 templates/analyze_s11.py(本 skill 自带,蓝本经 Ch2/Ch4 两个项目实战):
CST_PY="<CST安装目录>/AMD64/python/Scripts/python.exe"
"$CST_PY" <skill目录>/templates/analyze_s11.py \
--results "<项目>/results" --pattern "s11_variant_*.txt" \
--paper-band "23.8-42.1" --paper-modes "25.4,33.5,39.5" \
--json-out "<项目>/summary_YYYYMMDD/s11_metrics.json"产出:谐振点(GHz/dB)、-10dB 最长连续段、全频段 <-10dB 占比——每变体一行。
Step 2 · 作图(matplotlib,四件套)
用 templates/plot_report.py(JSON 配置驱动,见 templates/plots_config_example.json):
- 最佳 vs 论文目标叠加图:最佳曲线 + 绿色阴影带(论文 -10dB 频段)+ 绿色竖虚线(论文谐振模式)+ 次优对照曲线
- 扫参分组全景图:≤4 条/子图,按物理逻辑分组(结构探索 / 微调 / 边界环境),1×N 横排共享 y 轴,每子图带论文目标带
- 结构演进/归属对比图(有累加结构实验时):A/B/C/D 累加变体四曲线同图
- ★ 场分布图(硬约定,2026-09-02;有场监视器数据时必做):从 cst-em-sim 导出的场点云
(
fields/efield_cloud_*.txt,9 列 x y z 复数分量)重绘——至少一张工作频点 2D 主平面切面 |E| 图; 推荐三件套:沿传播轴 max|E| 剖面 + 热点层俯视热图(标峰值位)+ 表面电流分布(源自 Hfield)。 作图思路:pandas 读点云 → 三图,可参考templates/plot_report.py扩展。
实测坑:
- 图内标签一律英文(CST 自带 matplotlib 无中文字体,中文会变方框),中文解释写在 md 里
- 每张图生成后用 vision 抽查渲染(见 Step 4)
- 曲线 ≥6 条的图例会互相遮挡——分组是硬要求,不是美化
- 批注防遮挡(硬性):图内批注(谐振点/目标频带标签、-10 dB 线文字、"偏移 x GHz"问题批注等)不得压住 S11 曲线——文字放空白区 + 引线箭头指向目标;避不开时加白色半透明底衬(
bbox=dict(fc="white", ec="none", alpha=0.85))并抬 zorder;规范见 sci-figurereference/style_spec.md§5
Step 3 · 论文对照(拼接图 + 数据交叉验证)
- vision 读论文 S11 页(
node ~/.zcode/skills/vision/vision.js "<论文页png>" "<问题>",模型见 vision/.env 配置): 问带宽范围、谐振点频率/深度、子图在页面中的位置- 精度约定:vision 曲线读数只作交叉验证参考,正式对照数据以 Phase1 从论文正文/表格提取的记录为准(各任务 NOTES.md / model_spec.yaml)。vision 两次读数不一致时尤其如此。
- 裁剪+拼接:
templates/paper_compare.py把论文页 S11 区域(vision 报的位置 ± 余量裁剪)与复现曲线图等高左右拼接,顶部标题条(PIL,中文字体C:/Windows/Fonts/msyh.ttc),中间分隔线 - 裁剪结果先 vision 确认 S11 图完整再拼接
Step 4 · 质检
- 每张成图 vision 抽查(flash 粗查渲染/图例遮挡/批注是否压曲线,plus 精读存疑细节;flash 回答"是/否"过于简略不可靠,重要图用 plus 复核)——批注遮挡曲线或字看不清的图必须重画后再交
- md 里全部图片引用做存在性校验:
坑:grep 输出带grep -o "summary_[0-9]*/[a-zA-Z0-9_.]*\.png" <md文件> | sort -u | tr -d '\r' | \ while IFS= read -r f; do [ -f "$f" ] && echo "OK $f" || echo "MISSING $f"; done\r(CRLF)会让[ -f ]全部误报 MISSING,必须tr -d '\r'
Step 5 · 写汇报 md(模板见 templates/report_template.md)
★ 图片必须内嵌(硬性约定):正文里每张图都要用  内嵌,不得只给文件路径/文件表——"只给地址"的验收报告被打回过一次。规则:
- 内嵌语法
,图前配一行文字说明(图号+它证明了什么); - 路径不得含括号/空格:不少 md 渲染器的图片路径解析不支持括号,
(20260819xx)任务夹/fig.png这类带括号路径会渲染失败——图在带括号文件夹里时,复制一份到项目根无括号文件夹(如report_figs_YYYYMMDD/)再引用,原图与数据不动; - 路径相对 md 所在目录写(验收报告放项目根 → 相对项目根);
- 文件路径索引表可以有,但只作为图内嵌之外的补充,不能替代内嵌。
章节结构(固定,验收方看惯):
0. ⚡ 验收速览(四要素表,必填放最前)——主标题后、正文首章前一张四行两列表:本轮做了什么 / 做到什么程度(✅⚠️❌+量化)/ 下一步建议(1-3条)/ 项目位置(项目根绝对路径+关键交付物)。四项措辞固定,让验收人一眼看到四件事;多任务时文件名按《仿真结果汇总_<任务>_YYYYMMDD.md》命名。模板见 templates/report_template.md 头部
- 一页概览——每任务一行:论文目标 / 当前最佳 / 差距 / 今日动态 + 结果状态标签(
CST-validated/CST-incomplete/model-built-not-solved等,定义见 cst-automation)+ 一句话结论 - 复现与原文对照(核心章)——拼接对照图 + 逐项对照表(论文 vs 复现 vs 偏差% vs 判定 ✅⚠️❌)+ 一段判读;方法论对照(论文做了什么实验 vs 我们做了什么)
- 场分布与电磁工作状态(★ 硬约定章,2026-09-02;有场监视器数据时必写)——工作频点 2D 切面 |E|/|H| 图 + 3D/热点层分布图 + 表面电流图,每图前一行"图号+它说明了什么物理状态"(场在哪集中、表面电流怎么走、功率往哪流、有无异常热点/击穿风险位);无场数据时如实写"本批未加场监视器(原因)",不许静默跳过
- 各任务详细——论文目标页图、最佳结果图、扫参全景图、全量数据表、关键结论、剩余差距
- 事件簿——当天时间线(建模/导出/中断),仿真环境异常与遗留隐患
- 文件索引——原始数据(含场点云 txt)、脚本、笔记的位置
写作纪律:数值全部来自 Step 1 脚本提取,不手抄旧笔记(旧笔记可能缺新变体);偏差% 以论文值为基准; 对照判定三分级:偏差 <1% ✅ 精确命中 / 1–10% ⚠️ 接近 / >10% ❌ 结构性差距。
最小可用版(没有论文对照需求时)
只有一两个工程、无论文图:跳过 Step 3,汇报 md 砍掉对照章,保留 验收速览 + 概览 + 指标表 + 对比图 + 场分布图(有场监视器数据时至少一张工作频点切面场图)+ 文件索引(速览表最小版也不可省)。 作图最少给一张全变体对比图(分组),不裸交 txt。
与管线其他 skill 的衔接
| 场景 | 动作 |
| cst-em-sim 一批求解导出完成 | 收尾时调本 skill 出汇报(收尾纪律第 3 条) |
| em-simulation-pipeline Phase4 | 本 skill 的汇总作为输入,em-verification 做深度三方对比与归因 |
| 用户发现汇报里某个变体异常 | 回 cst-em-sim 重跑/补测,本 skill 重新生成(脚本留档可增量重跑) |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

