openai/runtime-behavior-probe
Plan and execute runtime-behavior investigations with temporary TypeScript probe scripts, validation matrices, state controls, and findings-first reports. Use only when the user explicitly invokes this skill to verify actual runtime behavior beyond normal code-level checks, especially to uncover edge cases, undocumented behavior, or common failure modes in local or live integrations. A baseline smoke check is fine as an entry point, but do not stop at happy-path confirmation.
npx skills add https://github.com/openai/openai-agents-python --skill runtime-behavior-probe
Use this skill to investigate real runtime behavior, not to restate code or documentation. Start by planning the investigation, then execute a case matrix, record observed behavior, and report both the findings and the method used to obtain them.
openai-agents-js, treat this skill as a disposable-probe workflow, not a repository implementation workflow..agents/skills/runtime-behavior-probe/** when the user is editing this skill itselfopenai-agents-js, do not modify examples/, packages/, any package.json, README.md, workspace config, or build config.openai-agents-js, use disposable probe files outside git-tracked paths by default. Do not add one-off probes, harnesses, benchmarks, or examples under examples/, packages/, or other repository directories unless the user explicitly asks for a checked-in artifact.OPENAI_API_KEY and other expected default names for the system under test.request_user_input tool is available, use that tool instead of a plain-text approval question. Ask one concise question with mutually exclusive choices such as Allow once (Recommended) and Do not allow, omit autoResolutionMs, and make the approval single-probe and limited to the exact named variables and destination. If the tool is unavailable, fall back to a concise plain-text approval question and do not proceed until the user explicitly approves.openai-agents-js, default to a light local loop for probe authoring: temporary probe.ts plus temporary tsconfig.json, pnpm exec tsc --noEmit -p <tmp-tsconfig>, then pnpm exec tsx <tmp-probe>. Escalate to pnpm build only when the runtime question is specifically about dist/, emitted exports, or packaged output.openai-agents-js, do not treat a request for runtime verification, benchmarking, or model comparison as permission to add a reusable example, benchmark harness, package script, or checked-in sample. Those repository changes require explicit user intent.tool_choice when the question depends on tool invocation.container_auto and container_reference as separate cases, not interchangeable setup details.openai-agents-js, declare the allowed write scope before you do any implementation work. For a normal disposable probe, that means a temporary directory only.single-shot for deterministic one-run checks.repeat-N for cache, retry, streaming, interruption, rate-limit, concurrency, or other run-to-run-sensitive behavior.warm-up + repeat-N when first-run cold-start effects could distort the result. Use these defaults unless the task clearly needs something else:repeat-3.warm-up + repeat-10.repeat-3, then expand only if the answer remains unclear. If it is genuinely unclear whether extra runs are worth the time or cost, ask the user before expanding the probe.origin/main, the latest release, or the same request without the suspected option.10. Plan state controls before execution when hidden state could affect the result. Record whether each case uses fresh or reused state, how cache reuse or cache busting is handled, what unique IDs isolate repeated runs, and how cleanup is verified.
11. If any live case will read environment variables, list the exact variable names and purpose for each case, then ask the user for approval before execution. Prefer request_user_input for this gate when it is available, with no auto-resolution and choices that grant or deny only this specific probe. Keep the approval ask short and include destination, read-only versus mutating or costly risk, exact variable names, and cleanup or rollback if relevant.
12. Build task-specific probe scripts in a temporary location. Keep the script small, observable, and easy to discard.
13. If you are about to propose a checked-in script, example, benchmark, or workspace script for openai-agents-js, stop and verify that the user explicitly asked for a reusable repository artifact. If not, keep the probe temporary.
14. In openai-agents-js, make the runtime context explicit:
pnpm exec tsx when practical.probe.ts and a sibling temporary tsconfig.json under mktemp -d, then run pnpm exec tsc --noEmit -p <tmp-tsconfig> before the first live execution./tmp/node_modules. If the probe needs repository code, import it from a repository-relative file:// URL rooted at process.cwd().src/ imports when the question is "what does this branch do now?" and prefer dist/ imports only when the question is specifically about packaged output after a build.pnpm build for dist/ probes or when emitted output is itself part of the question.15. Execute the matrix and capture evidence. Record request shape, setup, observation summary, unexpected or negative result, error details, timing, runtime context, approved environment-variable names, repeat counts, warm-up handling, variance when relevant, cleanup behavior, and for comparisons note what was held constant plus any response-shape or usage notes that affect interpretation.
16. Update the matrix with actual outcomes, not guesses.
17. Keep temporary artifacts until the final response is drafted. Then delete them unless the user asked to keep them or they are needed for follow-up. Benchmark and repeat-heavy probes often need follow-up, so keeping artifacts is normal when the result may be revisited. If deleted, retain and report a short run summary.
18. Report findings first, with unexpected or negative findings first. Then summarize how the validation was performed and which cases were covered.
19. If the probe isolates one clear defect, you may include a short implementation hypothesis or minimal repro direction. Do not expand into a larger next-step plan unless the user asked for it.
Use a matrix that makes the news easy to scan. Start from the runtime question and the observation summary, not just from expected and pass or fail.
Use a matrix with at least these columns:
case_idscenariomodequestionsetupobservation_summaryresult_flagevidenceAdd these columns when they materially improve the investigation:
comparison_basisvariable_under_testheld_constantoutput_constraintstatusconfidencestate_setuprepeatswarm_upvarianceusage_noterisk_profileenv_varsapprovalcontrolTreat result_flag as a fast scan field such as unexpected, negative, expected, or blocked. Use status only when there is a credible comparison basis, baseline, or documented contract to compare against.
Always consider whether the matrix should include these categories:
Open validation-matrix.md when you need a stronger prioritization model or a reusable case template.
Write one-off scripts in a temporary file or temporary directory such as one created by mktemp -d. Keep the script outside the repository by default, even when it imports code from the repository.
For openai-agents-js, a disposable runtime probe should stay disposable. Do not add a package script, modify workspace config, or create a checked-in benchmark or example unless the user explicitly asks for a reusable repository artifact.
For openai-agents-js, the default authoring loop should be:
tmpdir=$(mktemp -d)probe.ts and tsconfig.json into $tmpdirpnpm exec tsc --noEmit -p "$tmpdir/tsconfig.json"pnpm exec tsx "$tmpdir/probe.ts"pnpm build if the probe intentionally imports dist/ or validates packaged outputUse a temporary tsconfig.json that extends the repository example settings but includes only the disposable probe, for example:
{
"extends": "/absolute/path/to/openai-agents-js/tsconfig.examples.json",
"compilerOptions": {
"noEmit": true
},
"include": ["./probe.ts"]
}
If the probe needs repository code:
pnpm exec tsx /tmp/probe.ts from the repository root when practical.pnpm exec tsc --noEmit -p /tmp/probe-tsconfig.json as the default quick typecheck step before executing the probe.file:// URL built from process.cwd() and a repo-relative path. Do not assume bare workspace imports such as @openai/agents-core will resolve from /tmp.src/ imports for current-branch behavior probes and dist/ imports for packaged-output probes.Design the probe to maximize observability:
Before deleting the temporary script or directory, keep a short run summary of the script path, command used, runtime context, and whether the evidence was kept or deleted.
Open typescript_probe.ts when you want a lightweight disposable TypeScript probe scaffold. Open repo-import-patterns.md when you need to load current-branch workspace code from a temporary script.
Report in this order:
For comparative probes, the report should also say what was held constant, what variable was under test, and whether the result supports only pattern parity or a broader quality claim.
Open reporting-format.md for the recommended response template.
Take openai/runtime-behavior-probe from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.