بنقرة واحدة
property-stress
Stress-test property tests across many rounds to find rare bugs. Each round uses fresh random seeds.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Stress-test property tests across many rounds to find rare bugs. Each round uses fresh random seeds.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Suggest and apply a semver version bump based on commits since the last tag
Push current branch to remote origin
Scaffold a new Sharpy.Stdlib module (spy-sourced or handwritten C#) with all required files, conventions, docs, and tests
Implement a plan with a coordinated agent team
Run compiler or cross-language benchmarks and compare results
Regenerate C# snapshot tests and spy stdlib after intentional codegen changes
| name | property-stress |
| description | Stress-test property tests across many rounds to find rare bugs. Each round uses fresh random seeds. |
| argument-hint | [rounds=10] [filter] |
Run property tests repeatedly with fresh random seeds each round to surface rare failures that normal test runs miss. CsCheck generates different random inputs each invocation, so N rounds = N × (100–200) unique inputs per test.
Usage:
/property-stress — 10 rounds of all property tests (~10 min)/property-stress 50 — 50 rounds (~50 min)/property-stress 10 Parser — 10 rounds, only parser property tests/property-stress 20 Metamorphic — 20 rounds, only metamorphic testsOutput: A bug report with each unique failure, its CsCheck reproduction seed, the failing test, and which round it occurred in.
Log location: .claude/tmp/property-stress/ (one log per round + summary)
Parse $ARGUMENTS to extract rounds and optional filter:
"Category=RandomProperty&FullyQualifiedName~{filter}", otherwise "Category=RandomProperty"mkdir -p .claude/tmp/property-stress
rm -f .claude/tmp/property-stress/*.log
Run .claude/scripts/dotnet-serialized build sharpy.sln --nologo -v q 2>&1 | tail -5. If build fails, print "BUILD FAILED — cannot stress test" and stop.
For each round 1..N:
=== Round {i}/{N} ===.claude/scripts/dotnet-serialized test src/Sharpy.Compiler.Tests/Sharpy.Compiler.Tests.csproj --filter "{filter}" --no-build --logger "console;verbosity=normal" > .claude/tmp/property-stress/round-{i}.log 2>&1pkill -f testhost 2>/dev/null || true[FAIL] to get test names, and lines containing Set seed: to get CsCheck reproduction seeds.Round {i}: FAIL — {test_name} (seed: {seed})Round {i}: PASSAfter all rounds complete, produce a summary by scanning all round logs:
# Count passes/failures
passes=$(grep -c "^Round.*PASS$" output)
failures=$(grep -c "^Round.*FAIL" output)
# Extract unique failures (deduplicate by test name)
grep -h "FAIL" .claude/tmp/property-stress/*.log | sort -u
Print the final report in this format:
=== Property Stress Test Report ===
Rounds: N
Passed: X
Failed: Y
Failure rate: Z%
Unique failures:
1. TestClass.TestMethod
Seed: "xxxxx" (reproduce: CsCheck_Seed=xxxxx dotnet test --filter "DisplayName~TestMethod")
Error: <first line of error message>
Rounds: 3, 7, 12
2. ...
To reproduce any failure:
CsCheck_Seed=<seed> dotnet test --filter "DisplayName~<test>" --no-build
Full logs: .claude/tmp/property-stress/
--no-build after the initial build to avoid rebuilding each roundSet seed: "([^"]+)" or CsCheck_Seed=(\S+)Failed\s+(\S+)\s+\[ in the console outputError Message: and Stack Trace: in the console output