opp-repl-ai-workflows — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited opp-repl-ai-workflows (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill is a cookbook for agents driving opp_repl. Each recipe lists the prerequisite skills, the decision tree, and the actual tool calls. Load together with opp-repl-mcp-server for MCP-based integration, or opp-repl-cli-tools for pure-shell orchestration.
Prereqs: opp-repl-installation, opp-repl-opp-files, opp-repl-running-simulations, opp-repl-tasks-and-results, opp-repl-result-analysis.
.opp file exists for the target project, write one(template from opp-repl-opp-files/templates/), OR run create_project(name, path=...) on current opp_repl.
r = run_simulations( simulation_project=<name>_project, config_filter="...", sim_time_limit="1s")
r.get_error_results() andr.is_all_results_done(). On failure, rerun a failing task in debug mode and pull print_stderr() for diagnostics.
df = r.get_scalars() # DataFrame merged across reps means = df.groupby("name").value.mean()
Prereqs: opp-repl-fingerprint-tests, opp-repl-comparing-simulations, opp-repl-tasks-and-results.
r = run_fingerprint_tests( simulation_project=<p>, config_filter=<suspect>, sim_time_limit="1s") failures = r.get_fail_results()
cr = compare_simulations_between_commits( simulation_project=<p>, git_hash_1="v4.5", git_hash_2="HEAD", config_filter=<suspect>, run_number=0)
first = cr.results[0] first.fingerprint_trajectory_comparison_result first.print_different_statistical_results( include_relative_errors=True) first.show_divergence_position_in_sequence_chart()
explicitly referencing the first divergent event number and simulation time.
Prereqs: opp-repl-parameter-optimization, opp-repl-running-simulations.
get_simulation_task(...).expected_result_names, expected_result_values, andparameter_* arguments (see the skill).
optimize_simulation_parameters(...).evaluations.
If the objective is noisy, lengthen sim_time_limit or use repeats before giving up.
Prereqs: opp-repl-feature-and-release-tests, opp-repl-github-actions, opp-repl-cli-tools.
run_smoke_tests() on the default project.dispatch_workflow("release-tests.yml", ref="topic/my-feature")
run_fingerprint_tests() locally on thesubset of configs you actually touched (narrow filter).
Prereqs: opp-repl-installation, opp-repl-project-scaffolding, opp-repl-concepts, opp-repl-running-simulations, opp-repl-result-analysis.
On current opp_repl (>= commit a17fcab, Apr 2026):
from opp_repl.simulation.project import create_project
# Generates <name>.opp, .oppbuildspec, .nedfolders, package.ned,
# omnetpp.ini; loads the project; returns the SimulationProject.
p = create_project("mm1k", path="/tmp", namespace=False)
# Now add NED + C++:
# /tmp/mm1k/Mm1k.ned
# /tmp/mm1k/Source.{h,cc} Queue.{h,cc} Sink.{h,cc}
# and edit /tmp/mm1k/omnetpp.ini to set `network = Mm1k` +
# parameter assignments.
p.build()
r = run_simulations(simulation_project=p, sim_time_limit="100s")
df = r.get_scalars()On older opp_repl, copy templates from opp-repl-project-scaffolding/templates/ into a fresh directory instead, rename mm1k to your chosen name everywhere, then load_opp_file() + build_project() + run_simulations().
Prereqs: opp-repl-ssh-cluster, opp-repl-running-simulations, opp-repl-filtering.
filesystem, or by building on each node (there is no auto-copy helper):
p.build(mode="release")
c = SSHCluster(scheduler_hostname="node1", worker_hostnames=["node1", "node2"]) c.start() run_simulations(scheduler="cluster", cluster=c, config_filter="PureAlohaExperiment")
Prereqs: any opp-repl-*-tests skill for the test type.
update_fingerprint_test_results( simulation_project=<p>, working_directory_filter="examples/ethernet", sim_time_limit="10s")
folder alongside the code change. Never auto-update baselines in CI.
r.is_all_results_done() / is_all_results_expected()before reporting "green". A PASS summary can hide ERRORs in sub-sub-results.
--break-system-packages; always install into a venv.update_*_test_results without an explicit humaninstruction — that overwrites baselines.
execute_python call fails, fetch the stderr viaprint_stderr() before retrying; do NOT retry blindly with higher time limits.
--mcp-sockettransport (clients connect via opp_repl_mcp_bridge). TCP (--mcp-port) needs --mcp-token-hash (or --mcp-bypass-token-hash-check) outside opp_sandbox. Keep the MCP server OFF (both flags unset) in CI. See opp-repl-mcp-server.
opp-repl-overview — skill map.opp-repl-mcp-server — MCP endpoint details.opp-repl-shared-terminal — co-drive one REPL with a human.opp-repl-sandbox — isolate execute_python under bubblewrap.opp-repl-cli-tools — shell-only alternative.opp-repl-* skill referenced above.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.