name: inspequte-oss-fp-hunt
description: Run inspequte false-positive hunting against small OSS libraries (Kotlin and Java+Guava), enable inspequte-gradle-plugin in cloned fixtures, capture Jaeger trace screenshots via the shared scripts/capture-jaeger-trace-screenshot.mjs helper, and triage SARIF findings one by one.
inspequte OSS FP hunt
Inputs
- Repository root of this project (contains
gradle-plugin/andtarget/debug/inspequte). - Docker available for Jaeger.
- Java 21 available and set via
JAVA_HOME. - Network access to clone OSS fixtures from GitHub.
- Node.js + npm available for screenshot capture.
Outputs
- Fixture clones and temporary patches under
target/oss-fp/workdir/. - SARIF reports under
target/oss-fp/<fixture>/inspequte/. - Triage ledgers under
target/oss-fp/triage/. - Run summary in
target/oss-fp/report.md. - Jaeger screenshot and trace analysis under
target/oss-fp/jaeger/.
Fixture policy
Default fixture set:
- Kotlin fixture:
plasmoapp/plasmo-config - Java+Guava fixture:
launchdarkly/okhttp-eventsource
If one fixture is not buildable, replace it with another thin OSS fixture of the same category and record the reason in target/oss-fp/report.md.
Workflow
- Execute
.codex/skills/inspequte-oss-fp-hunt/scripts/run-once.shfrom repository root. - The script clones fixtures, enables
io.github.kengotoda.inspequtewith localincludeBuild, runs analysis tasks, exports SARIF, and writes triage ledgers with first-passTP/FP/FAILEDclassification plus reason andspec=...reference. - Export trace JSON and resolve trace ID:
trace_json="$(JAEGER_OUT_DIR=target/oss-fp/jaeger .codex/skills/jaeger-spotbugs-benchmark/scripts/export-jaeger-trace.sh)"trace_id="$(basename "${trace_json}" .json)"trace_id="${trace_id#jaeger-trace-}"
- Prepare Playwright runtime once per environment:
npm install --no-save --no-package-lock playwright@1.53.0npx playwright install --with-deps chromium
- Capture screenshot via shared script:
screenshot_png="$(JAEGER_OUT_DIR=target/oss-fp/jaeger node scripts/capture-jaeger-trace-screenshot.mjs "${trace_id}")"
- Analyze trace:
.codex/skills/jaeger-spotbugs-benchmark/scripts/analyze-trace-json.sh "${trace_json}"
- Review findings one-by-one in each triage ledger and adjust status only when code evidence contradicts the first-pass classification.
Finding triage rules
First-pass automated classification in run-once.sh:
FPwhen file is under/.gradle/caches/modules-2/(classpath dependency out of scope).FAILEDwhenline=0(non-actionable location; requires manual rule/location handling).FPwhen duplicated by exact key(rule, file, line, message)after first occurrence.- Other findings are marked
FAILEDwithspec=<path>to the corresponding rule spec file.
Manual review policy:
- Confirm referenced file/line exists in fixture source.
- Compare finding message and source code against the referenced
spec.md. - Resolve
FAILEDitems first, then override status only with short code-backed reason.
Guardrails
- Do not edit fixture repositories outside
target/oss-fp/workdir/. - Keep all artifacts under
target/oss-fp/. - Do not report performance bottlenecks without numeric evidence from trace summary.
- Keep screenshot files only under
target/oss-fp/jaeger/.