← Files get-fableARCHIVED FILE

skills/fable-plan/evals/scenarios.json

4.23 KB · Oct 3, 2026 · 06:31 UTC

↓ Download file

[
  {
    "id": "fable-plan-architecture-task",
    "description": "Cross-module refactor needs dependency-aware work cards and acceptance evidence",
    "given": {
      "intent": "Refactor the session store to support Redis clustering across multiple server instances"
    },
    "expected": {
      "action": "produce-bounded-cards",
      "produces": "accepted-card"
    },
    "forbidden": {
      "action": "execute-without-plan"
    }
  },
  {
    "id": "fable-plan-boundary-unknown-facts",
    "description": "Blocking external/architectural unknowns must be resolved before planning",
    "given": {
      "intent": "Plan migration to the new payment gateway without knowing the API version or auth model"
    },
    "expected": {
      "action": "fallback-to-discover",
      "selectedSkill": "fable-discover"
    },
    "forbidden": {
      "action": "guess-architecture"
    }
  },
  {
    "id": "fable-plan-disjoint-files-shared-invariant",
    "description": "Different files still cannot be parallelized when both redefine one serialized token format",
    "given": {
      "intent": "Split token writer and token reader into parallel cards",
      "evidence": "both independently change the token wire format"
    },
    "expected": {
      "action": "serialize-shared-contract-work",
      "produces": "accepted-card"
    },
    "forbidden": {
      "action": "parallelize-because-files-disjoint"
    }
  },
  {
    "id": "fable-plan-shared-integration-file-sequential",
    "description": "Two coherent cards may touch the same integration file sequentially when ownership/order is explicit",
    "given": {
      "intent": "Reject both cards because each must update the central router after implementing separate adapters"
    },
    "expected": {
      "action": "model-sequential-integration-dependency",
      "produces": "accepted-card"
    },
    "forbidden": {
      "action": "require-universal-file-disjointness"
    }
  },
  {
    "id": "fable-plan-data-migration-coexistence",
    "description": "Persisted old and new formats can coexist during rollout and require compatibility planning",
    "given": {
      "intent": "Migrate all account records to schema v3",
      "evidence": "rolling deploy means v2 and v3 processes overlap"
    },
    "expected": {
      "action": "plan-staged-compatible-migration",
      "produces": "accepted-card"
    },
    "forbidden": {
      "action": "assume-atomic-flag-day-migration"
    }
  },
  {
    "id": "fable-plan-weak-acceptance",
    "description": "A card acceptance check only proves a file was created, not the requested behavior",
    "given": {
      "intent": "Accept the OAuth callback card when src/oauth.ts exists"
    },
    "expected": {
      "action": "strengthen-acceptance-condition",
      "produces": "acceptance-condition"
    },
    "forbidden": {
      "action": "accept-file-existence-as-behavior-proof"
    }
  },
  {
    "id": "fable-plan-risk-first-ordering",
    "description": "High-risk third-party capability should be proven before broad adapter refactor",
    "given": {
      "intent": "Refactor 18 call sites first, then check whether the provider supports required streaming semantics"
    },
    "expected": {
      "action": "reorder-plan-risk-first",
      "produces": "accepted-card"
    },
    "forbidden": {
      "action": "defer-load-bearing-proof-until-after-broad-change"
    }
  },
  {
    "id": "fable-plan-scope-explosion",
    "description": "A supposedly bounded card repeatedly reveals new architecture decisions",
    "given": {
      "intent": "Keep adding substeps to the card",
      "newArchitecturalDecisions": 4
    },
    "expected": {
      "action": "replan-scope-boundaries"
    },
    "forbidden": {
      "action": "hide-architecture-inside-execution-card"
    }
  },
  {
    "id": "fable-plan-scenario-9",
    "name": "fable-plan realistic validation case 9",
    "category": "should-trigger",
    "prompt": "Execute fable-plan workflow with realistic context and specific file paths for case #9.",
    "shouldTrigger": true
  },
  {
    "id": "fable-plan-scenario-10",
    "name": "fable-plan realistic validation case 10",
    "category": "should-not-trigger",
    "prompt": "General non-fable-plan query about routine task #10 in adjacent subsystem.",
    "shouldTrigger": false
  }
]

SHA-256: 6d27800b72ba9d89746f51c9241d39d2676c4d493eafbdb7a6705766a7db7792