happy-sim-component-guide
Help choose the right happysimulator components for a use case
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Help choose the right happysimulator components for a use case
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Run ruff linter and formatter on the project
Add observability (probes, trackers, charts) to a simulation
Analyze simulation results and provide insights
Troubleshoot a broken or misbehaving simulation
Walk through a library example with detailed explanation
Generate a complete simulation from a high-level description
| name | happy-sim-component-guide |
| description | Help choose the right happysimulator components for a use case |
Interactive wizard to help users pick the right happysimulator components for their simulation.
Ask the user what system they want to model if not specified. Get a brief description of the scenario (e.g., "a web service with retries", "a factory with breakdowns", "a social network with opinion spread").
Read the project's CLAUDE.md for the full component catalog.
Map the user's scenario to the best-fit components. Use this decision tree:
→ QueuedResource (override handle_queued_event() and has_capacity())
→ With priority? Use PriorityQueue policy
→ With balking? Use BalkingQueue policy
→ With reneging? Use RenegingQueuedResource
→ Deterministic: Source.constant(rate=N, target=entity)
→ Stochastic: Source.poisson(rate=N, target=entity)
→ Time-varying: Source.with_profile(profile=MyProfile(), target=entity)
→ Custom events: Implement EventProvider and pass to Source()
→ Network + add_bidirectional_link() + link condition factories
→ Need partitions? network.partition([a], [b]) / partition.heal()
→ Need clock skew? NodeClock(FixedSkew(...)) or NodeClock(LinearDrift(...))
→ Need causal ordering? LamportClock, VectorClock, or HybridLogicalClock
→ Leader election + log replication: RaftNode
→ Classic consensus: PaxosNode or FlexiblePaxosNode
→ Eventual consistency: CRDTStore with GCounter, PNCounter, LWWRegister, ORSet
→ Primary-backup: PrimaryNode + BackupNode
→ Chain replication: ChainNode
→ Fail-fast after errors: CircuitBreaker
→ Limit concurrency: Bulkhead
→ Limit wait time: TimeoutWrapper
→ Backup request: Hedge
→ Graceful degradation: Fallback
→ Token bucket: RateLimitedEntity + TokenBucketPolicy
→ Leaky bucket: RateLimitedEntity + LeakyBucketPolicy
→ Burst suppression (no throughput cap): Inductor
→ Adaptive: RateLimitedEntity + AdaptivePolicy
→ Resource("name", capacity=N) + yield resource.acquire(amount) + grant.release()
→ With preemption? PreemptibleResource
→ Pooled with fixed cycle? PooledCycleResource
→ Assembly line: ConveyorBelt + InspectionStation
→ Batch processing: BatchProcessor
→ Shift-based staffing: ShiftSchedule + ShiftedServer
→ Equipment breakdowns: BreakdownScheduler
→ Inventory management: InventoryBuffer or PerishableInventory
→ Scheduled arrivals: AppointmentScheduler
→ Gate/valve control: GateController
→ Fan-out/fan-in: SplitMerge
→ Conditional routing: ConditionalRouter
→ Individual agents: Agent + PersonalityTraits + decision model
→ Population: Population.uniform() or Population.from_segments()
→ Social influence: Environment + influence model (DeGrootModel, BoundedConfidenceModel, VoterModel)
→ Stimuli: broadcast_stimulus(), price_change(), influence_propagation()
→ Key-value: KVStore
→ With cache: CachedStore
→ Sharded: ShardedStore
→ LSM tree: LSMTree + compaction strategies
→ Transactions: TransactionManager with IsolationLevel
→ Pub/sub: MessageQueue + Topic
→ Event log: EventLog + ConsumerGroup
→ Stream processing: StreamProcessor
→ Dead letters: DeadLetterQueue
→ Latency tracking: Sink (auto-tracks from context["created_at"]) or LatencyTracker
→ Event counting: Counter
→ Throughput: ThroughputTracker
→ Time series: Probe + Data
Present the recommended components with:
examples/ for referenceAsk if the user wants to scaffold the full simulation (/happy-sim-scaffold).