← Files get-fableARCHIVED FILE
skills/fable-simplify/evals/scenarios.json
3.97 KB · Oct 4, 2026 · 12:30 UTC
[
{
"id": "fable-simplify-clean-up-duplication",
"description": "Refactor repeated logic while preserving behavior",
"given": {
"intent": "Clean up duplication in the billing calculation module",
"phase": "executing"
},
"expected": {
"action": "simplify-code-preserve-tests",
"produces": "simplified-diff"
},
"forbidden": {
"action": "introduce-breaking-behavioral-changes"
}
},
{
"id": "fable-simplify-no-characterization",
"description": "Legacy behavior-rich code lacks tests or other preservation evidence",
"given": {
"intent": "Rewrite this 1200-line legacy parser to be cleaner",
"behaviorCoverage": "unknown"
},
"expected": {
"action": "characterize-behavior-before-refactor",
"produces": "simplified-diff"
},
"forbidden": {
"action": "rewrite-before-preservation-contract"
}
},
{
"id": "fable-simplify-dynamic-dead-code",
"description": "Function has no static imports but is loaded from a plugin registry by name",
"given": {
"staticCallers": 0,
"pluginRegistryReference": true
},
"expected": {
"action": "preserve-dynamically-reachable-code",
"produces": "simplified-diff"
},
"forbidden": {
"action": "delete-from-grep-absence"
}
},
{
"id": "fable-simplify-dry-semantic-mismatch",
"description": "Two similar blocks represent different business rules that may evolve independently",
"given": {
"syntaxSimilarity": "high",
"sharedInvariant": false
},
"expected": {
"action": "avoid-false-dry-extraction",
"produces": "simplified-diff"
},
"forbidden": {
"action": "merge-different-domain-rules-for-line-count"
}
},
{
"id": "fable-simplify-error-contract-drift",
"description": "Refactor changes a public error type/message used by callers while happy-path tests remain green",
"given": {
"happyPath": "green",
"errorContractChanged": true
},
"expected": {
"action": "restore-or-explicitly-separate-contract-change",
"produces": "simplified-diff"
},
"forbidden": {
"action": "claim-behavior-preserved-from-happy-path-only"
}
},
{
"id": "fable-simplify-while-here-scope",
"description": "Feature cleanup tempts a broad neighboring architecture rewrite",
"given": {
"target": "one parser",
"opportunity": "rewrite shared framework"
},
"expected": {
"action": "keep-simplification-bounded"
},
"forbidden": {
"action": "expand-into-unrequested-architecture-work"
}
},
{
"id": "fable-simplify-complexity-displacement",
"description": "Local function gets shorter by moving branching into every caller",
"given": {
"localLinesReduced": true,
"callerComplexityIncreased": true
},
"expected": {
"action": "evaluate-whole-affected-decision-surface"
},
"forbidden": {
"action": "claim-improvement-from-local-line-count"
}
},
{
"id": "fable-simplify-test-coupled-internals",
"description": "Refactor preserves public behavior but a test asserts a private helper call",
"given": {
"publicBehavior": "unchanged",
"failingAssertion": "private helper invoked once"
},
"expected": {
"action": "resolve-test-vs-contract-intentionally"
},
"forbidden": {
"action": "blindly-revert-or-update-test-without-contract-check"
}
},
{
"id": "fable-simplify-scenario-9",
"name": "fable-simplify realistic validation case 9",
"category": "should-trigger",
"prompt": "Execute fable-simplify workflow with realistic context and specific file paths for case #9.",
"shouldTrigger": true
},
{
"id": "fable-simplify-scenario-10",
"name": "fable-simplify realistic validation case 10",
"category": "should-not-trigger",
"prompt": "General non-fable-simplify query about routine task #10 in adjacent subsystem.",
"shouldTrigger": false
}
]
SHA-256: 603563060f171fa79fbfe0a95802a62b69694c552e80d0194d07f934725b3a91