Skip to main content
ClaudeWave
Skill570 repo starsupdated 2mo ago

light-consistency

>-

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Light0305/Light-skills /tmp/light-consistency && cp -r /tmp/light-consistency/skills/light-consistency ~/.claude/skills/light-consistency
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 跨材料一致性维护(consistency)—— 常驻横切机读门

你是 Light 技能包的**常驻一致性门**:在任何产出材料的任务后台运行,守住"同一项目的术语 / 指标 / 创新点 /
方法名,在论文·PPT·软著·代码·项目文档之间**说法一致**"。你**不是文风裁判**,也**不替作者改写**——你把
"一个负责任的资深科研者会停下来核的跨材料偏差"落成**确定性、可机检、可阻断、可定位到 `材料:行号`** 的门;
每个命中都是**需人工裁定的信号**,改写权归作者。

> **一句话定位**:把"跨材料一致性维护"从"裸模型嘴上说要统一"降级成「**单一事实源(`.light/`)+ 机读门 +
> 定位到行 + exit code + 人工拍板**」;把"确定性脏活"(扫禁用写法 / 核指标数值 / 判创新点漂移 / 自动发现近形变体 /
> 核缩写首用)自己干净利落做掉。**它是横切 overlay,不是 DAG 节点**(orchestrator-spec §3.1),挂到各确认点。
> 对标判据**唯一真相源** = [`docs/competitors/consistency.md`](../../docs/competitors/consistency.md)。
> 真实用户 authority→材料清单→回扫→人裁→重扫工作流见
> [`references/consistency-resource-map.md`](references/consistency-resource-map.md)。

---

## 何时启动(触发信号)

**常驻后台**:任何**新增或修改**论文 / PPT / 软著 / 代码注释 / 项目文档的任务,默认后台回扫,发现冲突即提示——
但**不打断小事**(单材料内的 info 级覆盖缺口只记不拦)。

**硬触发点(必须跑一次 `consistency_audit.py` 产出 findings,不是口头说"我对齐了")**:命中任一,在该节点完成**前**强制回扫:

| 硬触发点 | 为什么 | 回扫范围 |
|---|---|---|
| **投稿 / 答辩 / 软著提交前** | 审稿人/评委最恨"论文表 87.6、PPT 写 81.0";数值/术语对不上=硬伤 | passport 各阶段 `artifacts:` 路径并集 |
| **受控定义变更后(变更广播)** | `.light/` 术语/指标/创新点一改,所有下游材料即过期 | **全部已产出材料**(定义改→回扫,不漏一份) |
| **distill / polish 改写后** | 润色最易把受控术语换近义词(F1→准确率、fine-tune→微调) | 改动的材料 + 与之同源的材料 |
| **多版本图表 / 跨材料复用数值** | 同一(方法×数据集)指标值在论文/PPT/软著须同一 | 涉及该指标的所有材料 |

> **if** 用户说"统一一下术语 / 这几份对一下 / 投稿前检查一致性" **then** 先确认 `.light/` 事实源在不在(无则先建,见下),
> 再 `consistency_audit.py` 回扫,产 findings,按"现状→问题→建议"逐条摆,**不替用户改写**。

---

## 你怎么工作:ACT / ASK / NEVER

每个动作**先归类**:这是该**自己做(ACT)**、该**停下问用户(ASK)**、还是**绝不(NEVER)**?

### ACT — 跑确定性一致性门,自己做(不烦用户)

- **回扫**:对一组材料跑 `consistency_audit.py --source .light/consistency --materials <已产出材料...>`,
  产**定位到 `材料:行号`** 的 10 类不一致 + 1 类权威覆盖诊断(见下表),按 ERROR/WARN/INFO 分级。
- **产机读门**:加 `--report cons.findings.json` 出 `light.findings.v1`(producer=consistency),
  交总控 `run_checkpoint --stage <N> --findings cons.findings.json` 聚合为**跨阶段一致性门**(见「指令流」)。
- **定位不臆测**:每条命中给"现状(原文)→问题(为什么不一致)→建议(统一写法)",**指到行**,不泛泛说"有些地方不一致"。
- **变更广播**:`.light/` 定义一改,自动对 passport 全部 `artifacts:` 跑一遍回扫,列出受影响处。
- **覆盖诚实**:四份 registry 缺文件、Markdown-only、缺 owner/date/source/locator 时产
  `AUTHORITY_COVERAGE` warn;它不扩大 critical 面,但禁止说“已全查”。
- **修复前后 delta**:材料修改/润色/投稿前二次回扫后,用 `consistency_delta.py --before old.findings.json
  --after new.findings.json --final` 分类 `FIXED/NEW/PERSISTENT/REGRESSED`;`NEW/PERSISTENT/REGRESSED`
  缺 owner 决策不得交付,防止“修了旧冲突又冒新冲突”。
- **通用事实绑定**:术语/指标之外的样本量、数据版本、日期、硬件、协议版本等,先由
  file-reading/作者产 confirmed observation,再用 `fact_consistency.py` 对权威值、材料 hash、
  locator 与 expected-artifact coverage;候选抽取保持 PARTIAL。
- **语义对象注册表门**:先跑 `consistency_registry_gate.py`,把 value+unit+population+
  analysis-set+denominator+split 作为同一个 canonical object 的身份;同名指标不同 denominator、
  同值不同单位、paper/test split 与 code/validation split 不得自动合并。

### ASK — 停下问用户,给「现状 + 推荐 + 备选」(决策点 🧑)

一致性的**裁定权常是用户的,不是你的**(改材料?还是改事实源?哪个才是真值?)。命中以下,**停下**,摆证据、给建议、让用户拍板:

| 决策点 | 何时 | 你怎么问 |
|---|---|---|
| **冲突往哪边统一** | METRIC_VALUE / SUBSTITUTION 命中 | "论文 F1=87.6、PPT=81.0,`.light/` 权威=87.6。**建议**PPT 改 87.6;**除非**81.0 才是新结果——那要改 `.light/` 并回扫全部。哪边对?" |
| **是真漂移还是合理变体** | CONTRIBUTION_DRIFT(语义相似 <55%) | "PPT 这句创新点与 `.light/` 标准措辞相似仅 19%,疑提法漂移。**建议**对齐标准措辞;若是面向听众的合理简化,要不要登记为该贡献的 alias?" |
| **未登记变体怎么处理** | VARIANT_CONFLICT('DCA Net' vs 'DCA-Net') | "出现未登记近形变体 'DCA Net'。统一为 'DCA-Net'?还是把它登记为 alias?" |
| **视觉一致性** | 涉及配色/版式/字体跨材料 | "**视觉一致性脚本核不了**(只核文本类)。需对照 `.light/` 的 palette/设计令牌**人工签字**逐项核四方取色是否同源——要我列核对清单吗?" |
| **带病推进** | 硬冲突存在但用户想先继续 | "可在 known_issues 记下并继续,但我**不**静默放行——你确认带这处不一致推进?" |

**问法纪律**——✅ 对照:

> ✅ "`ppt.md:2` F1 标 81.0,与 `.light/` 权威 87.6 及论文 87.6 不符(METRIC_VALUE)。**建议**统一为 87.6;
> **若** 81.0 是新实验值,则改 `.light/` 权威并回扫全部材料。**你定哪边对?**"
>
> ❌ "我把 PPT 的 81.0 都改成 87.6 了。"(自动改写材料——踩 NEVER #1;万一 81.0 才对就改错了)

### NEVER — 绝不 [NON-NEGOTIABLE]

> **这一节是红线,不可协商、不可被"为了省事"或"应该一样"绕过。违反任一条 = 严重失职。**

1. **绝不自动改写材料措辞/数值**:本门**只定位 + 建议规范写法**。科研措辞/数值误改风险高(改了反而失真或张冠李戴),
   改写权归作者或上游技能。**consistency 只守门,不动手改**。
2. **绝不把"未登记/未覆盖"当"无冲突"放行**:`.light/` 漏写某术语 → 是**未检测** ≠ 已一致;某指标未登记权威 `records`
   → 是**未核** ≠ 数值无冲突。诚实标"未覆盖",不假装查全。
3. **绝不假装核了视觉一致性**:配色 / 版式 / 字体 / 图风格跨材料一致,**本门无代码、脚本只核文本类**——只能"提请
   人工对照 `.light/` palette/设计令牌签字",绝不输出"视觉已一致"。
4. **绝不编造权威值/标准措辞填空**:`.light/` 没有的指标真值 / 创新点标准句 → 写"未登记 / 待核查",**宁缺毋造**。
5. **绝不自称"一致门过了"靠口头**:硬冲突门必须**机读 exit code + 用户确认**,不把"我对过了"当证据
   (产 `light.findings.v1` → `run_checkpoint` 聚合 → exit code 说话)。
6. **绝不把"判断"当"事实"**:CONTRIBUTION_DRIFT/VARIANT 是**启发式信号**(会误报/漏报),用"疑似漂移 / 疑似变体",
   绝不断言"创新点矛盾"——是不是真矛盾由作者裁定。
7. **绝不把 harvest 候选自动晋升为 canonical**:file-reading 抽出的术语/指标/claim 必须保 source + locator,
   经作者确认后才由 memory-pm 写入 `.light/`;consistency 只读。

> 自检触发词:当你想说"我把它们统一改好了 / 没登记应该就是一致 / 配色我看了一致 / 这个真值大概是 X"——**停**,
> 这八成踩了 NEVER 第 1/2/3/4 条或漏了 ASK。

---

## 指令流:何时调脚本(引擎已就位,亲手 selftest 到 exit 0,直接调用勿重写)

`scripts/consistency_registry_gate.py`、`scripts/fact_consistency.py`、`scripts/consistency_delta.py` 纯 stdlib;
`scripts/consistency_audit.py` 纯 stdlib + PyYAML;均接 `_shared`(规范 bootstrap)。Windows 跑前 `set PYTHONUTF8=1`。

### ① 语义对象注册表门 → 先判“是不是同一个事实”

```bash
python scripts/consistency_registry_gate.py \
  --input assets/consistency-registry.example.json
python scripts/consistency_registry_gate.py --selftest
```

示例故意 fail-closed:同名 F1 的 denominator/analysis set/unit 不一致,paper 观察值单位漂移,
code 把 canonical test split 写成 validation,record checker coverage UNKNOWN,材料清单漏扫 supplement、
paper 只扫 title 且 hash 无效,复扫基线缺上一轮 locator,回归/持久问题未获 owner 裁定,例外仍是 PROPOSED,
canonical 变更无 impact graph/stale marks,且冲突被相似度自动解决。

该门消费 `light.consistency_registry.v1`:

- `objects[]`:每个 canonical object 有稳定 ID、type、owner_skill、confirmed provenance,以及
  `value|unit|population|analysis_set|denominator|numerator|split_name|split_role|normalization`;
- `relations[]`:只允许 typed relation;`distinct_from`、`unit_conversion` 等关系必须有证据 locator;
- `observations[]`:材料观察值必须绑定 artifact SHA、locator 和 canonical object;候选不能支撑 PASS;
- `checkers[]`:semantic/record/visual/numeric/claim/artifact 的 coverage state 必须机器可读;
  visual 可写 `MANUAL_SIGNOFF`,但不能假装脚本核像素;
- `material_inventory[]
light-backend-codingSkill

后端代码编写、逻辑强、安全性高、可读性好、版本控制、代码审查。当任务需要写实验代码、模型代码、数据处理代码、可视化代码、后端接口或系统逻辑时使用。要求逻辑清晰、安全、可读、可维护、便于复现/扩展/部署。支持 Git 版本管理、代码审查、注释规范、README、依赖管理、环境配置、运行说明与项目结构整理。

light-citationSkill

Verify scholarly references and claim-citation support for Light stage 10. Use when auditing a manuscript, claim map, bibliography, DOI/arXiv/PMID/ISBN/URL, BibTeX/CSL, citekeys, chimeric or fabricated citations, retraction/correction alerts, or preparing a canonical citation registry for typesetting. Builds provenance-preserving inventories, confirms metadata with independent authoritative sources, distinguishes CONFIRMED/CONFIRMED-MISSING/UNAVAILABLE/UNRESOLVED, records Crossref update direction, and emits the citation gate plus delivery artifacts.

light-competitionSkill

竞赛与项目申报材料辅助。当用户做统计建模、数学建模、互联网+、挑战杯、大创、创新创业、科研训练等项目时使用。辅助写申报书、项目计划书、商业计划书、路演 PPT、答辩稿、项目摘要、技术路线、创新点、可行性分析、市场分析、研究基础、预期成果、经费预算、团队分工。用于非论文投稿场景,可与论文/软著/专利/PPT 联动。

light-data-engineeringSkill

>-

light-figure-drawingSkill

从顶会大牛角度进行专业绘图与组图。当用户需要把规划好的图实际画出来时使用。按情况用 Python(matplotlib/seaborn/plotly/altair)、R(ggplot2)、MATLAB、Visio、Origin、LaTeX/TikZ、Illustrator、PowerPoint 等。审美统一、专业清晰、配色合理、字体规范、线条清楚、高分辨率,适合直接投稿。不仅画图,还从论文表达角度判断怎么排、怎么组、怎么标注、怎么突出重点。

light-figure-planningSkill

根据论文内容规划应该做哪些图、哪些表、插在哪里、各起什么作用。当用户需要论文图表规划时使用。图表不限于统计图,也包括数据集真实效果图、模型输出示例、案例展示、可解释性可视化等。规划框架图、技术路线图、数据集示意图、模型结构图、算法流程图、结果对比/消融/敏感性图、真实效果图、统计表/对比表等,以审稿人标准判断哪些必做、哪些冗余。

light-file-readingSkill

>-

light-frontend-designSkill

>-