No Inference

禁止通过推断确定事实,必须通过实际验证获取。

azrael-hao Updated

File contents

禁止推断 - 强制验证

核心原则

禁止通过推断、猜测、假设来确定任何可以验证的事实。所有关键信息必须通过实际查询、测试或检查来确认。

零容忍原则:对于可验证的事实,0%的推断可接受,100%必须验证。

必须验证的场景

1. 数据库结构信息

❌ 禁止推断:基于命名规范推断字段名、基于业务逻辑推断表关联
✅ 必须验证:DESCRIBE table_nameSHOW COLUMNS

2. API接口和函数签名

❌ 禁止推断:基于函数名推断参数
✅ 必须验证:help(function)inspect.signature()

3. 配置文件和环境变量

❌ 禁止推断:假设配置项存在
✅ 必须验证:读取实际配置文件

4. 文件路径和资源位置

❌ 禁止推断:假设文件存在某位置
✅ 必须验证:lsfindglob工具

5. 代码逻辑和业务流程

❌ 禁止推断:假设代码按标准流程执行
✅ 必须验证:读取实际代码、追踪调用链

6. 依赖版本和兼容性

❌ 禁止推断:假设版本兼容
✅ 必须验证:检查package.jsonrequirements.txt

验证方法选择

场景 验证方法
数据库结构 SQL查询(DESCRIBE/SHOW)
代码中的方法/类/字段 Grep搜索 + Read读取
文件是否存在 Glob查找或Shell ls
API行为 查看文档 + 实际测试
配置项 Read读取配置文件
表之间关联关系 SQL查询测试JOIN
函数调用链 Grep搜索 + 逐层Read
环境变量 Shell echo $VAR

强制验证流程

  1. 发现需要信息 → 不要推断
  2. 选择验证方法 → 使用上表方法
  3. 执行验证 → 获取实际结果
  4. 基于验证结果决策 → 而非推断

自检清单

  • 我使用的每个字段名都已验证存在?
  • 我使用的每个方法都已确认签名?
  • 我假设的关联关系都已测试验证?
  • 我引用的文件路径都已确认存在?
  • 我依赖的配置项都已读取确认?

记住:可以验证的,就必须验证。没有例外。

azrael-hao/cursor-coding-rules-skills/tree/main/coding-rules-zh/coding-rules-no-inference commit 6a12ce7211

Frequently asked questions

npx skillmds@latest add azrael-hao/no-inference