From agent-capability-standard
Define how state changes over time through rules, triggers, and effects. Use when modeling state machines, defining workflows, specifying event handlers, or documenting system dynamics.
npx claudepluginhub synaptiai/synapti-marketplace --plugin agent-capability-standardThis skill is limited to using the following tools:
Define the rules governing how a system's state changes over time. This capability captures state machine semantics: what triggers transitions, what preconditions must hold, and what effects occur.
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.
Define the rules governing how a system's state changes over time. This capability captures state machine semantics: what triggers transitions, what preconditions must hold, and what effects occur.
Success criteria:
Compatible schemas:
schemas/output_schema.yaml| Parameter | Required | Type | Description |
|---|---|---|---|
from_state | Yes | object | Initial state or state pattern |
to_state | No | object | Target state (optional for discovery mode) |
triggers | No | array | Events or conditions that cause transition |
scope | No | string | Domain to analyze for transitions |
Identify state variables: Determine what can change
Discover triggers: Find what causes state changes
Define preconditions: Specify when transitions can occur
Specify effects: Document what changes during transition
Validate completeness: Check for missing transitions
Ground rules: Document evidence for each transition rule
Return a structured object:
rules:
- id: string # Unique rule identifier
name: string # Human-readable name
from: object # Source state pattern
to: object # Target state pattern
trigger:
type: string # event, condition, timeout
specification: any # Trigger details
preconditions: array[string] # Required conditions
effects: array[string] # State changes
priority: number # Resolution priority for conflicts
analysis:
reachability: object # Which states are reachable
completeness: number # Coverage estimate
non_determinism: array # Ambiguous transitions
confidence: 0..1
evidence_anchors: ["file:line", "doc:section"]
assumptions: []
| Field | Type | Description |
|---|---|---|
rules | array | Transition rules |
rules[].from | object | Source state pattern |
rules[].to | object | Target state pattern |
rules[].trigger | object | What causes the transition |
rules[].preconditions | array | Conditions that must hold |
rules[].effects | array | Changes caused by transition |
analysis | object | State machine analysis results |
Input:
from_state:
entity: "order"
status: "*"
scope: "order lifecycle"
Output:
rules:
- id: "order-create"
name: "Create Order"
from: { status: null }
to: { status: "pending" }
trigger:
type: "event"
specification: "OrderCreated"
preconditions:
- "cart is not empty"
- "user is authenticated"
effects:
- "order.status = 'pending'"
- "order.created_at = now()"
- "emit OrderCreatedEvent"
priority: 1
- id: "order-confirm"
name: "Confirm Order"
from: { status: "pending" }
to: { status: "confirmed" }
trigger:
type: "event"
specification: "PaymentReceived"
preconditions:
- "payment.amount >= order.total"
- "inventory available"
effects:
- "order.status = 'confirmed'"
- "order.confirmed_at = now()"
- "reserve inventory"
- "emit OrderConfirmedEvent"
priority: 1
- id: "order-cancel"
name: "Cancel Order"
from: { status: ["pending", "confirmed"] }
to: { status: "cancelled" }
trigger:
type: "event"
specification: "CancelRequested"
preconditions:
- "order.status != 'shipped'"
effects:
- "order.status = 'cancelled'"
- "release inventory"
- "emit OrderCancelledEvent"
priority: 2
analysis:
reachability:
pending: ["confirmed", "cancelled"]
confirmed: ["shipped", "cancelled"]
shipped: ["delivered"]
delivered: []
cancelled: []
completeness: 0.9
non_determinism: []
confidence: 0.85
evidence_anchors:
- "app/models/order.rb:45-120"
- "app/services/order_service.rb:15-80"
assumptions:
- "State machine defined in Order model"
- "All transitions go through OrderService"
Input:
from_state:
entity: "user_session"
status: "unauthenticated"
scope: "authentication flow"
Output:
rules:
- id: "login-success"
name: "Successful Login"
from: { authenticated: false }
to: { authenticated: true }
trigger:
type: "event"
specification: "CredentialsValidated"
preconditions:
- "credentials.valid == true"
- "user.locked == false"
- "failed_attempts < max_attempts"
effects:
- "session.authenticated = true"
- "session.user_id = user.id"
- "session.expires_at = now() + 24h"
- "reset failed_attempts"
priority: 1
- id: "login-failure"
name: "Failed Login Attempt"
from: { authenticated: false }
to: { authenticated: false, failed_attempts: "+1" }
trigger:
type: "event"
specification: "CredentialsRejected"
preconditions: []
effects:
- "increment failed_attempts"
- "if failed_attempts >= max_attempts: lock user"
priority: 1
- id: "logout"
name: "Logout"
from: { authenticated: true }
to: { authenticated: false }
trigger:
type: "event"
specification: "LogoutRequested"
preconditions: []
effects:
- "session.authenticated = false"
- "session.destroy()"
priority: 1
analysis:
reachability:
unauthenticated: ["authenticated", "locked"]
authenticated: ["unauthenticated"]
locked: ["unauthenticated"]
completeness: 0.95
non_determinism: []
confidence: 0.9
evidence_anchors:
- "app/controllers/sessions_controller.rb:10-50"
- "app/models/user.rb:80-95"
assumptions:
- "Session timeout handled by middleware"
- "Lock mechanism implemented in User model"
Verification tools: Read (to verify code references)
mutation: falserequires_checkpoint: falserequires_approval: falserisk: lowCapability-specific rules:
Commonly follows:
state - State model provides basis for transitionsobserve - Observations reveal transition patternsdiscover - Discovery finds unknown transitionsCommonly precedes:
simulate - Transitions drive simulationplan - Transitions inform action planningverify - Transitions specify expected behaviorAnti-patterns:
mutate)Workflow references:
reference/workflow_catalog.yaml#world_model_build for transitions in world modelingreference/workflow_catalog.yaml#digital_twin_sync_loop for transition application