From agent-capability-standard
Run what-if scenarios to explore outcomes and test hypotheses. Use when evaluating alternatives, stress-testing designs, exploring edge cases, or predicting system behavior under different conditions.
npx claudepluginhub synaptiai/synapti-marketplace --plugin agent-capability-standardThis skill is limited to using the following tools:
Execute mental simulations of scenarios to explore outcomes without making real changes. This capability enables safe exploration of "what-if" questions and helps identify risks before action.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Execute mental simulations of scenarios to explore outcomes without making real changes. This capability enables safe exploration of "what-if" questions and helps identify risks before action.
Success criteria:
Compatible schemas:
schemas/output_schema.yaml| Parameter | Required | Type | Description |
|---|---|---|---|
scenario | Yes | object | Scenario to simulate (intervention, change, event) |
initial_state | No | object | Starting state for simulation |
steps | No | integer | Number of simulation steps/iterations |
explore | No | string | What to explore: single_path, branches, exhaustive |
Set up scenario: Define what is being simulated
Initialize state: Establish starting point
Execute simulation: Step through scenario
Explore branches: Consider alternative paths
Evaluate outcomes: Assess simulation results
Document simulation: Record process and results
Return a structured object:
outcomes:
- branch_id: string # Unique branch identifier
probability: number # Estimated likelihood
final_state: object # State after simulation
key_events: array[string] # Notable events during simulation
risks: array[string] # Identified risks
trajectory:
- step: number
state: object # State at this step
changes: array[string] # What changed
final_state: object # Most likely final state
insights:
- type: string # risk, opportunity, surprise
description: string
severity: string # low, medium, high
simulation_meta:
steps_executed: number
branches_explored: number
assumptions: array[string]
confidence: 0..1
evidence_anchors: ["model:component", "assumption:id"]
| Field | Type | Description |
|---|---|---|
outcomes | array | Possible outcomes with probabilities |
trajectory | array | State changes over simulation |
final_state | object | Most likely end state |
insights | array | Risks, opportunities, and surprises found |
simulation_meta | object | Simulation parameters and assumptions |
Input:
scenario:
type: "dependency_upgrade"
change: "Upgrade Rails from 6.1 to 7.0"
initial_state:
rails_version: "6.1.7"
ruby_version: "3.1.0"
gems_count: 85
steps: 5
Output:
outcomes:
- branch_id: "success_path"
probability: 0.60
final_state:
rails_version: "7.0.8"
breaking_changes_resolved: true
tests_passing: true
key_events:
- "ActiveStorage API changes detected"
- "Zeitwerk autoloading adjustments needed"
- "Deprecation warnings resolved"
risks:
- "Minor performance regression in asset pipeline"
- branch_id: "partial_failure"
probability: 0.30
final_state:
rails_version: "7.0.8"
breaking_changes_resolved: true
tests_passing: false
key_events:
- "ActiveRecord callback order changed"
- "3 test failures in UserService"
risks:
- "Subtle behavior changes in model callbacks"
- "Extended debugging time required"
- branch_id: "blocked"
probability: 0.10
final_state:
rails_version: "6.1.7"
upgrade_blocked: true
key_events:
- "Incompatible gem: devise_token_auth requires Rails < 7"
risks:
- "Upgrade blocked until gem updated"
trajectory:
- step: 1
state: { phase: "analysis" }
changes: ["Identified 12 deprecation warnings", "Found 3 incompatible gems"]
- step: 2
state: { phase: "gem_updates" }
changes: ["Updated 8 gems", "1 gem requires replacement"]
- step: 3
state: { phase: "code_changes" }
changes: ["Modified 15 files for API changes"]
- step: 4
state: { phase: "testing" }
changes: ["Tests executed", "85% passing initially"]
- step: 5
state: { phase: "resolution" }
changes: ["Fixed remaining issues"]
final_state:
rails_version: "7.0.8"
breaking_changes_resolved: true
tests_passing: true
effort_estimate: "2-3 days"
insights:
- type: "risk"
description: "devise_token_auth compatibility is the main blocker"
severity: "high"
- type: "opportunity"
description: "Rails 7 Hotwire enables simpler frontend code"
severity: "medium"
- type: "surprise"
description: "More callback order dependencies than expected"
severity: "medium"
simulation_meta:
steps_executed: 5
branches_explored: 3
assumptions:
- "Test suite provides good coverage"
- "No undocumented monkey patches"
- "CI environment matches production"
confidence: 0.75
evidence_anchors:
- "Gemfile:dependencies"
- "rails upgrade guide:7.0"
- "gem:devise_token_auth:compatibility"
Input:
scenario:
type: "failure_injection"
change: "Database becomes unavailable for 5 minutes"
initial_state:
database: "available"
cache: "warm"
queue_depth: 0
steps: 10
explore: "branches"
Output:
outcomes:
- branch_id: "graceful_degradation"
probability: 0.40
final_state:
service_status: "degraded"
data_loss: false
user_impact: "read_only_mode"
key_events:
- "Circuit breaker activates at t+30s"
- "Cache serves stale reads"
- "Writes queued for retry"
risks:
- "Cache expires during outage"
- branch_id: "cascade_failure"
probability: 0.35
final_state:
service_status: "down"
data_loss: false
user_impact: "complete_outage"
key_events:
- "Connection pool exhausted at t+60s"
- "Health checks fail"
- "Load balancer removes all instances"
risks:
- "Recovery requires manual intervention"
- branch_id: "data_inconsistency"
probability: 0.25
final_state:
service_status: "recovered"
data_loss: "possible"
user_impact: "partial_data_loss"
key_events:
- "In-flight transactions lost"
- "Retry logic creates duplicates"
risks:
- "Data reconciliation needed"
trajectory:
- step: 1
state: { db: "available", errors: 0 }
changes: []
- step: 2
state: { db: "unavailable", errors: "increasing" }
changes: ["First connection timeout"]
- step: 3
state: { db: "unavailable", circuit: "open" }
changes: ["Circuit breaker triggered"]
final_state:
database: "available"
service_status: "recovering"
queue_depth: 1250
insights:
- type: "risk"
description: "No circuit breaker on write path"
severity: "high"
- type: "risk"
description: "Connection pool timeout too long (30s)"
severity: "medium"
- type: "opportunity"
description: "Add read replica failover"
severity: "medium"
simulation_meta:
steps_executed: 10
branches_explored: 3
assumptions:
- "Database failure is total, not partial"
- "No manual intervention during outage"
- "Cache TTL is 5 minutes"
confidence: 0.65
evidence_anchors:
- "config/database.yml:pool_settings"
- "app/services/circuit_breaker.rb"
- "architecture:failure_modes"
Verification tools: Read (to verify model components)
mutation: falserequires_checkpoint: falserequires_approval: falserisk: lowCapability-specific rules:
Commonly follows:
state - State model provides simulation basistransition - Transition rules drive simulationplan - Simulate plan outcomes before executionCommonly precedes:
compare - Compare simulation outcomesplan - Inform planning with simulation insightscritique - Critique designs based on simulationAnti-patterns:
verify for real testing)Workflow references:
reference/workflow_catalog.yaml#world_model_build for simulation in modeling