跳到主要内容
知仓学习社ZHICANG

fuzz

Fuzz React Doctor rules for crashes, slowness, false positives, and mutation-sensitive diagnostics with @react-doctor/fuzz. Use after rule tests pas…

不碰外部(只输出文字)无严重或高危命中millionco/react-doctor

它会碰到什么

扫了多少1 个文本文件,3 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Fuzz rules

Use packages/fuzz after focused rule tests pass. Read its README.md for harness architecture and corpus setup.

Run the harness

Run the target rule first:

FUZZ_RULE=<rule-id> FUZZ_STRICT=1 FUZZ_ITERATIONS=500 nr fuzz

Useful variants:

nr fuzz
FUZZ_RULE=<rule-id> FUZZ_SEED=42 nr fuzz
FUZZ_INVARIANTS=1 nr fuzz
FUZZ_CORPUS_DIR=<repository-directory> nr fuzz
FUZZ_RULE=<rule-id> FUZZ_PRINT_SILENT=1 nr fuzz

Confirm that the target rule fires. A silent rule only exercises early exits. If it stays silent, add a triggering shape to packages/fuzz/src/snippet-pools.ts and rerun.

Use FUZZ_TAG=<tag> instead of FUZZ_RULE to exercise an entire registry cohort.

Recommended full sweep (e.g. before a rule-batch release), pointing the

corpus at real checkouts. Ready-made corpora work on any machine — see the

package README "Canonical corpora": bun scripts/sync-fuzz-corpus.ts

materializes a pinned 48-repo sample (symlinking the RDE cache when

present, cloning otherwise), and bun scripts/build-bench-corpus.ts

extracts react-bench's diagnostic-dense RD-health target files:

cd packages/fuzz
bun scripts/sync-fuzz-corpus.ts
FUZZ_INVARIANTS=1 FUZZ_ITERATIONS=100 FUZZ_CORPUS_DIR=tmp/corpus-repos nr fuzz

Run the direct false-positive check when a rule change affects common syntax:

cd packages/fuzz
bun scripts/hunt-false-positives.ts

Triage findings

Reproducers live in packages/fuzz/tmp/fuzz-findings/.

  • Crash: minimize the program, add a no-throw regression test, fix the rule, and replay the seed
  • Slow case: profile the pathological shape, bound the walk, and keep the existing threshold
  • Verdict drop: fix detection that depends on incidental syntax, then add the rule to the robustness gate when appropriate
  • Invariant violation: decide whether the rule should react to the rewrite; fix and test unexpected changes
  • False positive: add the valid program to the rule tests and fuzz regression corpus

Replay one finding:

FUZZ_RULE=<rule-id> FUZZ_SEED=<seed> FUZZ_ITERATIONS=1 nr fuzz

Preserve false positives

For every confirmed false positive:

  1. Add a minimal fixture to packages/fuzz/corpus/regressions/<rule-id>--<slug>.tsx.
  2. Include the rule ID, weakness class, and source in the fixture header.
  3. Add a focused valid case to the rule test suite.
  4. Add a generator snippet when the existing pools cannot produce the weakness.
  5. Run nr -C packages/fuzz test and replay the target rule.

Use a stable weakness name such as library-idiom, control-flow, wrapper-transparency, name-heuristic, alias-guard, cross-file, framework-gating, paren-shape, default-parameter, dynamic-computed, private-member, or copy-tracking.

Project-level dead-code and dependency findings belong in core tests, not the rule fuzzer.

Report results

Record the command, target-rule fire count, findings, replay seeds, corpus fixtures, and generator changes. Pass confirmed implementation findings to rule-validate.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 14,859
本站分层T1
该仓技能数17
原文件路径.agents/skills/fuzz/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 17 个技能