Canonical automation runner for Fission quality pipelines.
This crate is used to:
nir-check lanes over sentinel binariessource-semantic-checksummary.json, decision_insights.json, candidate lists)From repository root:
cargo run -p fission-automation -- nir-check --lane nir
By default, outputs are written under:
benchmark/artifacts/automation/<lane>-<profile>-<run_id>/and latest is mirrored to:
benchmark/artifacts/automation/latest/<lane>/Source semantic smoke check:
cargo run -p fission-automation -- source-semantic-check \
--no-build \
--fission-bin target/release/fission_cli \
--function-name fibonacci \
--jobs 1 \
--timeout-sec 30
This wraps benchmark/source_semantic_benchmark/run_source_semantic_benchmark.py.
The Python runner outputs stay under source_semantic/; automation-level
summary.json, summary.md, decision_insights.json, and
source_semantic_rows.json are written at the run root.
--lane <name>
nirpreview is accepted but deprecated alias--run-profile {fast|mid|full}
fast: short feedback loop (smaller effective limits/timeouts)mid: default balanced modefull: broader validation window--manifest <path>
crates/fission-automation/config/sentinel_sets.toml--focus-top-mismatch <N>
conditional_tail_exit_mismatch rows--baseline <path/to/summary.json>
--functions-limit <N> and --timeout-ms <N>
--no-build + --fission-bin <path>
fission_cli and use an existing binary--emit-legacy-preview-artifacts
preview_* filenames (same content as nir_*).nir_* files are written--manifest <path>
benchmark/source_semantic_benchmark/manifests/smoke_windows_small_c.json--baseline-dir <path>
--function-name <name>, --entry-id <id>, --tag <tag>
--include-ghidra-reference --ghidra-home <path>
--fail-on-stop
go_*Main artifacts inside each run directory:
summary.json
run_profile, target_count, timing fields)summary.md
decision_insights.json
go_stop_gate decisiondiagnosis.json, diagnosis.md
nir_quality_candidates.json
preview_quality_candidates.json, preview_explicit_blocked_candidates.json,
preview_explicit_aligned_candidate_report.json — only when --emit-legacy-preview-artifacts is setcargo run -p fission-automation -- nir-check \
--lane nir \
--run-profile fast \
--focus-top-mismatch 5 \
--no-build \
--fission-bin ./target/debug/fission_cli \
--baseline benchmark/artifacts/automation/latest/nir/summary.json
Use this to quickly validate whether the top mismatch rows move.
cargo run -p fission-automation -- nir-check \
--lane nir \
--run-profile mid \
--no-build \
--fission-bin ./target/debug/fission_cli \
--baseline benchmark/artifacts/automation/latest/nir/summary.json
cargo run -p fission-automation -- nir-check --lane nir --run-profile full
decision_insights.json includes:
go_p5h3g_candidate
stop_hold_p5h3f
stop_no_baseline
Treat this as an operational guardrail, not an absolute truth. Always inspect top mismatch rows and subtype distribution together.
main.rs + cli.rs: thin entry and Clap surfacelanes/nir_check.rs: NIR lane pipeline; lanes/mod.rs: manifest/target resolutionartifacts.rs: JSON/Markdown emission for a run directorygates.rs: go/stop exit code and performance regression checksreport/: summary/delta/decision-insight construction and markdown renderingdiagnosis.rs: diagnosis buckets and recommended patch classificationcorpus.rs: candidate aggregation and quality artifact assemblyinventory.rs: fission_cli inventory execution and loadingcrates/fission-automation/config/
sentinel_sets.toml: lane target definitions (paths inside are repo-root-relative)preview_explicit_source_inventory.json: optional source inventory overlay (if present)cargo test -p fission-automation