.agents/skills/runtime-behavior-probe/SKILL.md
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.
ioredis, 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 itselfioredis, do not modify examples/**, lib/**, test/**, any package.json, README.md, build config, or generated files unless the user explicitly asks for a reusable repository artifact or implementation change.ioredis, use disposable probe files outside git-tracked paths by default. Do not add one-off probes, harnesses, benchmarks, or examples under examples/, lib/, test/, or other repository directories unless the user explicitly asks for a checked-in artifact.REDIS_URL, REDIS_PASSWORD, and other expected default names for the system under test.ioredis, default to a light local loop for probe authoring: temporary probe.ts plus temporary tsconfig.json, npx tsc --noEmit -p <tmp-tsconfig>, then TS_NODE_TRANSPILE_ONLY=true node -r ts-node/register <tmp-probe>. Escalate to npm run build only when the runtime question is specifically about built/, emitted declarations, or packaged output.ioredis, do not treat a request for runtime verification, benchmarking, or comparison as permission to add a reusable example, benchmark harness, package script, or checked-in sample. Those repository changes require explicit user intent.ioredis, 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/master, the latest release, or the same request without the suspected option.ioredis, stop and verify that the user explicitly asked for a reusable repository artifact. If not, keep the probe temporary.ioredis, make the runtime context explicit:TS_NODE_TRANSPILE_ONLY=true node -r ts-node/register <tmp-probe> when practical.probe.ts and a sibling temporary tsconfig.json under mktemp -d, then run npx tsc --noEmit -p <tmp-tsconfig> before the first live execution./tmp/node_modules. If the probe needs repository code, import it from an absolute path resolved from process.cwd() and a repo-relative path.lib/ imports when the question is "what does this branch do now?" and prefer built/ imports only when the question is specifically about packaged output after a build.npm run build for built/ probes or when emitted output is itself part of the question.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 ioredis, a disposable runtime probe should stay disposable. Do not add a package script, modify build config, or create a checked-in benchmark or example unless the user explicitly asks for a reusable repository artifact.
For ioredis, the default authoring loop should be:
tmpdir=$(mktemp -d)probe.ts and tsconfig.json into $tmpdirnpx tsc --noEmit -p "$tmpdir/tsconfig.json"TS_NODE_TRANSPILE_ONLY=true node -r ts-node/register "$tmpdir/probe.ts"npm run build if the probe intentionally imports built/ or validates packaged outputUse a temporary tsconfig.json that extends the repository base settings but includes only the disposable probe, for example:
{
"extends": "/absolute/path/to/ioredis/tsconfig.json",
"compilerOptions": {
"noEmit": true,
"types": ["node"],
"typeRoots": ["/absolute/path/to/ioredis/node_modules/@types"]
},
"include": ["./probe.ts"]
}
If the probe needs repository code:
TS_NODE_TRANSPILE_ONLY=true node -r ts-node/register /tmp/probe.ts from the repository root when practical.npx tsc --noEmit -p /tmp/probe-tsconfig.json as the default quick typecheck step before executing the probe.process.cwd() and a repo-relative path. Do not assume bare imports such as ioredis will resolve to the current checkout from /tmp.lib/ imports for current-branch behavior probes and built/ 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.