preload-panellisted
Install: claude install-skill pillumina/ascend-sleuth
# Preload Panel
DSH 会话中加载可视化面板(诊断 / 指标 / 自演进)。每个面板是独立动态插件,各占
conversation.view 一个 tab(list 插槽,按 order 排列,可共存)。
## 触发
用户需要面板但当前会话没有对应 tab 时,用本 skill 加载。
## 面板清单
| 面板 | 目录 | tab id / label | 视图 |
|---|---|---|---|
| 诊断面板 | `dsh-plugins/ascend-panel/` | `ascend-diagnose`(20) / `ascend-metrics`(21) | 会话列表/轨迹/证据 + 指标闭环判决(判据→结论/证据/下一步)/容量逐格/趋势 |
| 自演进看板 | `dsh-plugins/ev-panel/` | `ascend-evolve`(22) | 首屏是**体检判决**(要处理的判据 + 下一步动作)与**触及面**(这批改动落在机器的哪一层);卡收在默认收起的抽屉里作为 diff 日志(决策链全文按需拉取) |
## 依赖预检(激活前跑,避免面板加载后白屏/报错)
面板 host 已做优雅退化(自演进 JSON 不截断、无 traces/ 显示空态、缺 pyyaml 给提示),
但 loader 在激活前跑一次预检,能把"依赖缺失"改成**主动告知**而不是面板里一条报错:
- **通用**:确认会话工作区是 ascend-sleuth 仓库(Host 从 `session.header.cwd` 解析数据目录)。
- **ev-panel(自演进)**:确认 Python 3 + PyYAML 可用——面板 host 会自动探测解释器
(`python3` → `python` → `py -3`,取第一个能打印 Python 3.x 的;Windows 上 `python3` 常不存在),
预检照探测结果来:
```bash
python3 -c "import yaml; print('pyyaml ok')" # 失败 → 试 python / py -3;再失败 → pip install pyyaml
```
若失败,先告知用���"自演进看板需要 PyYAML,请 `pip install pyyaml`",再决定是否仍加载
(host 也会给同样提示,但 loader 提前讲更友好)。
- **ascend-panel(诊断)**:`traces/` 可能不存在(gitignored、按需生成)——host 已把
"目录不存在"当空态处理,无需预建;但如果用户预期有历史诊断却显示为空,提示
"运行 /skill:diagnose 后生成 traces/"。指标 tab 需要 Python 3 + **PyYAML**:
「闭环判决」跑 `scripts/metrics_health.py --json`(判据读 `metrics/gates.yaml`),
「实时计算」跑 `scripts/trace_metrics.py`;缺依赖时面板会显示「体检不可用」并给出
安装/路径提示,**不会**假装闭环正常——所以预检失败仍可加载,只是首屏没有判决条。
## 流程
1. **确定要加载的面板**:用户要诊断可视化 → ascend-panel;要自演进状态(EV 卡/
容量/归因)→ ev-panel;两者可同时加载