Skip to content
Conduit

skill

codefog

3arry2hu/codefogcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/3arry2hu/codefog itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 22, 2026

codefog (@barryzhu/codefog)

See which parts of your codebase you can actually trust.

codefog 是一款面向 TypeScript / JavaScript、Go、Rust、Java 及多语言混合仓库(Polyglot Monorepo)的“雾优先(Fog-first)”代码信任与风险分析工具。它结合覆盖率数据、静态语法调用图与断言分析、Git 演进历史以及变异测试结果,将代码库划分为五种证据状态,定位缺乏有效断言的“伪覆盖”与代码修改后测试失效的“回雾(Fog Returned)”区域,并为开发者与 AI 编码代理提供可自动验收的修复目标(Finding)。


核心概念:五态证据模型(Five-State Evidence Model)

传统覆盖率工具只统计“代码行是否被执行过”,容易将没有实质断言的冒烟测试误判为安全(绿灯)。codefog 采用雾优先视觉模型,将已验证代码退化为浅灰背景,突出展示未验证与信任退化区域:

状态 (EvidenceState)名称判定条件视觉色值Trust 权重Risk 权重
fog-returned回雾(雾回归)曾被测试覆盖,但最近一次运行时逻辑修改晚于关联测试修改(注释/文档/纯类型修改不触发)#BD4900(警示橙)-0.52.0
fog雾(未知区)没有任何测试执行或覆盖证据的代码区域#1D3656(深石板蓝)0.01.4
self-proof-fog自证雾生产代码与其结果断言在同一次 Git 提交中诞生,且尚未由独立预期确认。变异体全部被杀死不能单独升为已验证#6E88AA(斜纹灰蓝)+0.31.2
weak-evidence弱证据已被测试执行,但仅有存活性检查(Liveness Check,无结果断言)、分支覆盖不全(< 100%)或存在存活变异体#BCCCE2(浅石板蓝)+0.41.0
verified已验证具备实质结果断言(Outcome Assertion)、分支完整覆盖、无存活变异体且测试证据相对最新代码改动保持新鲜#EBEFF4(极浅灰背景)+1.00.0

完整领域术语定义见 GLOSSARY.md,架构设计决策见 docs/adr/。


多语言支持矩阵(Polyglot Support)

codefog 内置零外部二进制依赖的多语言适配器(LanguageAdapter),无需在宿主机安装额外 WASM 或语言插件即可分析单语言或多语言混合仓库:

维度TypeScript / JavaScriptGo (golang)RustJava
生产源码识别.ts, .tsx, .js, .jsx.go(排除 *_test.go).rs(自动剥离同文件 #[cfg(test)] 模块).java(src/main/java/**)
覆盖率格式(自动探测)LCOV (coverage/lcov.info)Go coverprofile (coverage.out) + go.mod 路径归一化LCOV (cargo llvm-cov --lcov)JaCoCo XML (jacoco.xml) 或 LCOV
结果断言 (Outcome Assertion)expect(x).toBe(y), toEqual, toThrow 等t.Errorf/Fatalf 具体值比较、reflect.DeepEqual、cmp.Diff、assert.Equalassert_eq!, assert_ne!, matches!, #[should_panic(expected = "...")]JUnit 5 assertEquals/assertThrows, AssertJ assertThat(x).isEqualTo(y)
存活性检查 (Liveness Check)toBeDefined(), toBeTruthy(), not.toThrow()err == nil, res != nil, require.NoError(t, err).unwrap(), .expect(), assert!(res.is_ok()), assert!(opt.is_some())assertNotNull(x), assertTrue(opt.isPresent()), isNotNull()
Git 新鲜度去噪忽略注释与纯 type / interface 变更忽略 GoDoc / 行注释与 import 变更忽略 //、/// 文档注释,支持同文件生产函数与 #[cfg(test)] 独立演进比对忽略 Javadoc、行注释与方法注解变更
外部变异报告 (--mutation-report)Stryker JSON (mutation.json)内置 codefog verify 引擎cargo-mutants (mutants.out/outcomes.json)PITest XML (mutations.xml)
闭环变异验证 (codefog verify)npx vitest rungo test ./...(多返回值零值变异 + 编译错误豁免)cargo test(Default::default() / Ok 变异 + 编译错误豁免)mvn test / ./gradlew test(类型安全默认返回值变异)

快速开始(Quick Start)

1. 安装与运行

无需全局安装,直接在任意 Git 仓库根目录运行:

# 自动探测仓库内的覆盖率与变异测试报告,生成 .codefog/report.html 并在终端打印摘要
npx @barryzhu/codefog

提示(npm / npx 版本要求):推荐使用 npm / npx >= 9.0.0。旧版 npm / npx(如 8.15.0)在未加 -- 分隔符时会拦截并吞掉 --coverage 等命令行参数;codefog 在检测到旧版 npm / npx (< 9.0.0) 时会自动输出升级提示(npm install -g npm@latest)并兼容被剥离的参数。

或者作为项目开发依赖安装:

npm install -D @barryzhu/codefog

2. 各语言使用示例

TypeScript / JavaScript (Vitest / Jest + Stryker)

vitest run --coverage.enabled=true --coverage.reporter=lcov
npx @barryzhu/codefog --coverage coverage/lcov.info --mutation-report reports/mutation/mutation.json

Go

go test -coverprofile=coverage.out ./...
npx @barryzhu/codefog --coverage coverage.out

Rust

cargo llvm-cov --lcov --output-path coverage/lcov.info
npx @barryzhu/codefog --coverage coverage/lcov.info --mutation-report mutants.out/outcomes.json

Java (Maven / Gradle + JaCoCo + PITest)

mvn test jacoco:report
npx @barryzhu/codefog --coverage target/site/jacoco/jacoco.xml --mutation-report target/pit-reports/mutations.xml

多语言混合仓库(Polyglot Monorepo)

--coverage 支持重复传参或逗号分隔,自动将多套覆盖率报告聚合为统一的仓库级 CodefogReport:

npx @barryzhu/codefog \
  --coverage coverage/lcov.info \
  --coverage services/billing/coverage.out \
  --coverage crates/engine/lcov.info \
  --coverage java-core/target/site/jacoco/jacoco.xml

3. 终端输出示例(Level 1 Summary)

codefog | payment-service (main @ 64c2ba2)
Trust Score: 74/100 | Files: 12 | LOC: 840 | Unverified (Fog): 26%
Metrics: Line 88.5% | Branch 79.2% | Checked 71.4% | Mutation 82.0% | Pseudo-tested: 1
States: Returned=18 Fog=92 Self-proof=34 Weak=74 Verified=622

Modules by Fog:
  - internal/settlement: Trust 58/100 | Risk 7.8 | Fog=42 Weak=30 Verified=110
  - src/core: Trust 86/100 | Risk 4.1 | Fog=12 Weak=18 Verified=320

Top Fog Hotspots & Findings:
  - [CF-8A2F] internal/settlement/ledger.go:42-89 (ReconcileBatch) | fog-returned | risk 7.8
  - [CF-3C19] src/core/discount.ts:15-48 (calculateTierDiscount) | weak-evidence | risk 5.4

一键安装 AI Agent Skill(Codex / Claude Code / CodeBuddy / Cursor)

codefog 内置了专用于 AI 编码代理的 代码质量与测试可信度评测优化闭环 Skill。通过一行 npx 命令即可自动为 Codex、Claude Code、CodeBuddy 和 Cursor 安装该 Skill。

📖 完整使用手册与 Prompt 模板库:请参阅 《codefog AI Skill 使用指南》(docs/ai-skill-guide.md)。

1. 一键安装 Skill

# 在当前项目根目录为全部四大 AI 平台(codex, claude-code, codebuddy, cursor)安装 Skill
npx @barryzhu/codefog@latest install-skill

# 仅针对指定 AI 工具安装(支持逗号分隔或重复传参)
npx @barryzhu/codefog@latest install-skill --agent cursor,claude-code

# 全局安装到用户主目录(~/.codex/skills、~/.claude/skills、~/.codebuddy/skills、~/.cursor/skills 等)
npx @barryzhu/codefog@latest install-skill --global
平台 (--agent)项目级安装路径全局安装路径 (--global / -g)
codex.codex/skills/codefog/SKILL.md & .agents/skills/codefog/SKILL.md~/.codex/skills/codefog/SKILL.md & ~/.agents/skills/codefog/SKILL.md
claude-code.claude/skills/codefog/SKILL.md~/.claude/skills/codefog/SKILL.md
codebuddy.codebuddy/skills/codefog/SKILL.md~/.codebuddy/skills/codefog/SKILL.md
cursor.cursor/skills/codefog/SKILL.md~/.cursor/skills/codefog/SKILL.md

2. AI Agent 自动评测与持续迭代闭环工作流

安装完成后,在 Codex、Claude Code、CodeBuddy 或 Cursor 中对 AI Agent 说:

“使用 codefog 对当前项目做代码质量评测,给出评测结论,并持续优化测试直到达标”

AI Agent 将按照 Skill 定义的四步闭环自动执行:

  1. 基线采集与扫描(Baseline Evaluation):自动识别项目语言(TS/JS、Go、Rust、Java),运行对应的覆盖率命令并执行 npx --yes @barryzhu/codefog@latest 获取基线报告。
  2. 输出结构化评测结论(Evaluation Conclusion):给出当前 Trust Score、五态代码行分布(fog-returned / fog / self-proof-fog / weak-evidence / verified)、Top 高风险 Finding (CF-xxxx) 的根因诊断(无覆盖、仅有存活性检查或测试滞后)以及明确的收敛目标。
  3. 持续迭代优化与反作弊验证(Iterative Optimization Loop):
    • 按风险优先级(fog-returned → fog → weak-evidence → self-proof-fog)逐个强化实质性结果断言(Outcome Assertions),严禁通过删减生产代码分支作弊;
    • 每修复一个目标文件,自动调用 npx --yes @barryzhu/codefog@latest verify <targetFile> --mutants --lines <start>-<end> 执行函数体零值清空与算子变异反作弊验证;
    • 若存在存活变异体或伪测试方法,Agent 会根据反馈继续补充边界与返回值断言,随后重新生成覆盖率与 codefog 报告,循环迭代直至达到目标 Trust Score 且消除高优风险项。
  4. 最终收敛报告(Final Convergence Report):输出优化前后的 Trust Score、检验覆盖率、变异得分对比表与 .codefog/report.html 报告路径。

CLI 命令与参数说明

codefog [rootDir] [options]

分析目标仓库并输出信任地图与发现项列表。

参数说明默认值
--coverage <path>覆盖率文件路径(支持 LCOV、Go coverprofile、JaCoCo XML;可重复传参或逗号分隔)自动探测 coverage/lcov.info、coverage.out、target/site/jacoco/jacoco.xml 等
--lcov <path>--coverage 的别名(向下兼容)同上
--mutation-report <path>外部变异测试报告路径(支持 Stryker JSON、PITest XML、cargo-mutants JSON)自动探测标准产出路径
--stryker <path>--mutation-report 的别名(向下兼容)同上
--diff <baseRef>与指定 Git 基准分支/提交(如 origin/main)进行增量对比,检测信任退化无
--pr-comment [dir]生成 PR 增量对比评论制品(pr-comment.md 与 pr-diff.svg).codefog
--html <path>交互式单文件 HTML 雾图输出路径.codefog/report.html
--open生成报告后在系统默认浏览器中打开 HTML 雾图false
--json将完整 CodefogReport JSON 结构输出至标准输出 (stdout)false
--fail-on <policy>CI 退出码门禁策略:returned | regression | any-fog | contested | nonereturned
--expectations <path>独立预期清单。默认在存在时读取 oracles/expectations.json自动探测
--defects <path>历史缺陷清单。默认在存在时读取 oracles/defects.json自动探测
-v, --version打印版本号-
-h, --help打印帮助信息-

--fail-on 门禁策略说明

  • returned(默认):当仓库中存在任何 fog-returned(代码逻辑已改但测试未跟进)时返回退出码 1。
  • regression:当存在 fog-returned、在 --diff 下存在证据降级文件(weakenedFiles),或出现“行覆盖率上升但有效证据下降(coverageUpEvidenceDown)”时返回退出码 1。
  • any-fog:最严格门禁,只要存在任何非 verified 状态的代码行即返回退出码 1。
  • contested:存在预期冲突(结果断言与独立预期或历史缺陷矛盾)时返回退出码 1。
  • none:始终返回 0(仅生成报告,不阻断 CI)。

codefog verify <targetFile> [options]

面向开发者与 AI 编码代理的单文件反作弊验收网关。在补齐某个 Finding 的测试后,运行该命令对目标文件执行轻量级合成变异验证,确保新增测试包含真正的业务结果断言,而非删减生产分支或编写无断言的伪测试。

npx @barryzhu/codefog verify src/pricing.ts --lines 10-45 --mutants
npx @barryzhu/codefog verify internal/tax/calc.go --mutants --test-cmd "go test ./..."
参数说明
<targetFile>待验收的目标源码文件路径(支持 .ts/.js、.go、.rs、.java)
--lines <start-end>仅针对指定行号区间内的函数生成并执行变异验证
--mutants启用合成变异测试(含条件/算子翻转与函数体零值清空检测)
--oracle对照独立预期与历史缺陷,拒绝与清单矛盾的结果断言
--test-cmd <cmd>自定义测试执行命令(未指定时按文件后缀自动选择 vitest / go test / cargo test / mvn test)
--allow-source-change允许在目标生产文件相比 HEAD 存在未提交改动时执行验证(默认禁止通过删减生产代码分支来消除雾区)

反作弊检查项(Anti-Gaming Gates):

  1. 生产源码保护:默认拒绝修改被测生产源码或减少条件分支数(防止通过删除业务分支来凑满覆盖率)。
  2. 基线测试通过:变异前现有测试套件必须通过,且测试文件中必须包含实质性断言。
  3. 伪测试拦截(Body Clearance):将目标函数体替换为对应语言的零值返回后,测试套件必须失败,否则判定为 Pseudo-tested Method。
  4. 算子变异击杀(Operator Mutations):注入算术、比较与布尔翻转等变异后,计算有效变异得分(静态类型语言下无法编译的合成变异标记为 CompileError 并自动从分母中豁免)。
  5. 预期冲突(--oracle):结果断言与独立预期或历史缺陷矛盾时验收失败,且不得把断言字面量改成当前返回值。

度量指标与计算公式(Metrics & Scoring)

1. Trust Score(信任分,0 – 100)

反映仓库、模块或文件的有效证据健康度:

[ \text{Trust Score} = \text{clamp}{[0, 100]}\left(\text{round}\left(\frac{1.0 \cdot L{\text{verified}} + 0.4 \cdot L_{\text{weak}} + 0.3 \cdot L_{\text{self-proof}} - 0.5 \cdot L_{\text{returned}}}{L_{\text{total}}} \times 100\right)\right) ]

2. Risk Score(风险分,0.0 – 10.0)

衡量单个文件或 Finding 的修复紧迫度,综合未验证代码行数((L_{\text{unverified}}))、近 90 天 Git 修改次数((\text{Churn}{90d}))、圈复杂度((\text{CC}))与状态权重((W{\text{state}})):

[ R_{\text{raw}} = \ln(1 + \max(1, L_{\text{unverified}})) \times \ln(1 + \max(1, \text{Churn}{90d})) \times \ln(1 + \max(1, \text{CC})) \times W{\text{state}} ]

[ \text{Risk Score} = \text{round}{0.1}\left(\min\left(10.0, \max\left(0.1, \frac{R{\text{raw}}}{R_{\text{raw}} + 3.5} \times 10\right)\right)\right) ]

3. 核心辅助指标

  • Checked Coverage(检验覆盖率):被测试执行且关联至少一个 Outcome Assertion(且未处于 fog-returned)的代码行占总可执行行的比例。
  • Pseudo-tested Methods(伪测试方法数):被测试执行过,但没有任何结果断言或清空函数体后测试依然全部通过的方法数量。

交互式 HTML 雾图与 PR 增量报告

四层渐进披露 HTML 雾图(.codefog/report.html)

运行 codefog 默认生成的单文件自包含 HTML 报告(零外部 CDN 依赖,可离线打开或作为 CI Artifact 归档):

  • Level 1(仓库总览):展示 Trust Score、五态比例条、核心指标卡片与 Top 5 高风险 Finding。
  • Level 2(模块摘要):按模块(如 src/*、internal/*、crates/*、src/main/java)汇总状态分布,自动折叠 100% verified 的安全文件。
  • Level 3(文件树图 Treemap):面积编码代码规模(LOC),颜色与纹理编码五态证据状态。
  • Level 4(源码行级审查与 Agent 复制):逐行高亮证据状态、存活变异体详情,并提供一键复制给 AI Agent 的修复指令与验收命令。

PR 增量对比与评论制品(--diff & --pr-comment)

npx @barryzhu/codefog --diff origin/main --pr-comment .codefog --fail-on regression
  • .codefog/pr-comment.md:可直接发布到 GitHub Pull Request 的 Markdown 报告,包含 Trust Score 前后对比、新增 fog-returned 文件列表以及 "Coverage Up, Evidence Down"(覆盖率上升但有效证据下降) 预警。
  • .codefog/pr-diff.svg:Before / After 证据状态对比矢量图。

编程接口(Programmatic API)

@barryzhu/codefog 提供完整的 ESM TypeScript API:

import {
  analyzeRepository,
  verifyTargetWithMutants,
  writeHtmlFogMap,
} from "@barryzhu/codefog";

// 1. 运行仓库级多语言信任分析
const report = await analyzeRepository({
  rootDir: process.cwd(),
  coveragePath: ["coverage/lcov.info", "coverage.out"],
  mutationReportPath: "mutants.out/outcomes.json",
  diffBase: "origin/main",
});

console.log(`Trust Score: ${report.summary.trustScore}/100`);

// 2. 生成交互式 HTML 雾图
await writeHtmlFogMap(process.cwd(), report, ".codefog/report.html");

// 3. 运行单文件合成变异验证
const verifyResult = await verifyTargetWithMutants({
  rootDir: process.cwd(),
  targetFile: "src/analyzer.ts",
  mutants: true,
});
console.log(verifyResult.passed, verifyResult.summary);

本地开发与自举验证(Dogfooding)

环境要求:Node.js >= 20.0.0。

# 安装依赖
npm install

# 运行全量测试套件(涵盖 TS/JS、Go、Rust、Java 端到端测试)
npm test

# TypeScript 类型检查与构建
npm run typecheck
npm run build

# 使用 codefog 分析自身代码库(自举验证)
npm run dogfood

License

MIT

↑↓ navigate openesc close