agentleFS
synaptiaisynaptiai/agent-capability-standard/skills/state/SKILL.md

state

Skill6 starsChanged 14 days agoApache-2.0View on GitHub

Create representation of current world state for a domain. Use when modeling system state, building world models, capturing entity relationships, or establishing baseline snapshots.

8 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a structured representation of the current state of a domain, system, or entity.

    line 15
  2. Distinctive:

    Map relationships: Document connections between entities

    line 50
  3. Distinctive:

    Document property values with evidence

    line 56
  4. Distinctive:

    Ensure required fields are populated

    line 63
  5. Distinctive:

    Verification tools: Read (to verify file references)

    line 250
  6. Distinctive:

    Do not modify state while modeling it

    line 260
  7. Distinctive:

    Do not invent entities without evidence

    line 263
  8. Very specific:

    Never use state for predictions (use predict)

    line 278
  9. Very specific:

    Avoid state for single-value measurement (use measure)

    line 279

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Intent

Create a structured representation of the current state of a domain, system, or entity. This is the foundation for world modeling, enabling tracking of entities, relationships, and properties over time.

Success criteria:

  • State captured in structured, queryable format
  • Entities and relationships clearly identified
  • Uncertainty and confidence explicitly represented
  • Evidence anchors for all state assertions

Compatible schemas:

  • schemas/output_schema.yaml
  • reference/world_state_schema.yaml

Inputs

ParameterRequiredTypeDescription
scopeYesstringWhat domain/system to model (e.g., "user authentication", "payment processing")
schemaNoobjectState schema defining expected structure
timestampNostringPoint in time for state (default: now)
observationsNoobject|arrayThe observation, or list of observations, to build the state from

Inputs not listed here are outside the capability's contract: a workflow step that binds them gets W604 (STANDARD v1.1 §5.5).

Procedure

  1. Define scope boundaries: Clarify what is included in the state model
    • Identify system or domain boundaries
    • Determine entity types to include
    • Establish relationship types to capture
  2. Identify entities: Enumerate entities within scope
    • Extract entity references from sources
    • Assign unique identifiers
    • Capture entity properties/attributes
  3. Map relationships: Document connections between entities
    • Identify relationship types (contains, depends_on, references)
    • Note relationship directionality
    • Capture relationship properties
  4. Capture current values: Record current state of each entity
    • Document property values with evidence
    • Note uncertainty where values are unclear
    • Record observation timestamp
  5. Apply schema: Structure state according to schema if provided
    • Validate against schema constraints
    • Note schema violations or extensions needed
    • Ensure required fields are populated
  6. Ground state claims: Attach evidence to all assertions
    • Reference source files, commands, or observations
    • Note confidence level for each assertion

Output Contract

Return a structured object:

state:
  world_id: string  # Unique identifier for this state snapshot
  scope: string  # Domain being modeled
  timestamp: string  # When state was captured
  entities: &entities
    - id: string  # Unique entity identifier
      type: string  # Entity classification
      properties: object  # Entity attributes
      confidence: number  # Confidence in entity state
  relationships: &relationships
    - from: string  # Source entity ID
      to: string  # Target entity ID
      type: string  # Relationship type
      properties: object  # Relationship attributes
  meta:
    version: string  # State schema version
    completeness: number  # 0-1 estimate of coverage
entities: *entities  # Same items as state.entities, for bindings like ${<step>.entities}
relationships: *relationships  # Same items as state.relationships
confidence: 0..1  # Overall state model confidence
evidence_anchors: ["file:line", "observation:id"]
assumptions: []

Field Definitions

FieldTypeDescription
state.world_idstringUnique identifier for state snapshot
state.scopestringDomain or system being modeled
state.entitiesarrayIdentified entities with properties
state.relationshipsarrayConnections between entities
state.meta.completenessnumberEstimated model completeness
entitiesarrayIdentified entities (the same items as state.entities)
relationshipsarrayEntity relationships (the same items as state.relationships)
confidencenumberOverall confidence in state accuracy
evidence_anchorsarrayReferences to the observations the state was built from
assumptionsarrayAssumptions about the modeled system

Examples

Example 1: Model Authentication System State

Input:

scope: "user authentication system"

Output:

state:
  world_id: "auth-state-20240115-001"
  scope: "user authentication system"
  timestamp: "2024-01-15T10:30:00Z"
  entities: &entities
    - id: "auth-service"
      type: "service"
      properties:
        status: "running"
        version: "2.3.1"
        port: 8080
      confidence: 0.95
    - id: "user-db"
      type: "database"
      properties:
        type: "PostgreSQL"
        connection_pool: 20
        active_connections: 12
      confidence: 0.90
    - id: "session-cache"
      type: "cache"
      properties:
        type: "Redis"
        memory_used: "256MB"
        keys: 15420
      confidence: 0.90
  relationships: &relationships
    - from: "auth-service"
      to: "user-db"
      type: "depends_on"
      properties:
        connection_type: "direct"
        required: true
    - from: "auth-service"
      to: "session-cache"
      type: "depends_on"
      properties:
        connection_type: "direct"
        required: true
  meta:
    version: "1.0"
    completeness: 0.85
entities: *entities  # Same items as state.entities, for bindings like ${<step>.entities}
relationships: *relationships  # Same items as state.relationships
confidence: 0.88
evidence_anchors:
  - "config/services.yml:15-45"
  - "command:docker ps"
  - "command:redis-cli info"
assumptions:
  - "Service discovery reflects actual running state"
  - "Configuration matches deployed state"

Example 2: Model Code Module State

Input:

scope: "payment processing module"
schema:
  required_entities: ["class", "method", "dependency"]

Output:

state:
  world_id: "payments-code-20240115"
  scope: "payment processing module"
  timestamp: "2024-01-15T11:00:00Z"
  entities: &entities
    - id: "PaymentProcessor"
      type: "class"
      properties:
        file: "src/services/payment_processor.rb"
        lines: 145
        methods: 8
        complexity: 24
      confidence: 0.95
    - id: "process_payment"
      type: "method"
      properties:
        class: "PaymentProcessor"
        visibility: "public"
        params: ["order", "payment_method"]
        complexity: 12
      confidence: 0.95
    - id: "stripe-gem"
      type: "dependency"
      properties:
        name: "stripe"
        version: "8.0.0"
        usage: ["PaymentProcessor"]
      confidence: 0.90
  relationships: &relationships
    - from: "PaymentProcessor"
      to: "stripe-gem"
      type: "depends_on"
      properties:
        import_type: "require"
    - from: "process_payment"
      to: "PaymentProcessor"
      type: "member_of"
      properties:
        visibility: "public"
  meta:
    version: "1.0"
    completeness: 0.75
entities: *entities  # Same items as state.entities, for bindings like ${<step>.entities}
relationships: *relationships  # Same items as state.relationships
confidence: 0.85
evidence_anchors:
  - "src/services/payment_processor.rb:1-145"
  - "Gemfile:42"
assumptions:
  - "Static analysis reflects runtime behavior"
  - "No dynamic method definitions"

Verification

  • State includes world_id and timestamp
  • All entities have unique IDs and types
  • Relationships reference valid entity IDs
  • Confidence scores present for entities
  • Evidence anchors support state assertions

Verification tools: Read (to verify file references)

Safety Constraints

  • mutation: false
  • requires_checkpoint: false
  • requires_approval: false
  • risk: low

Capability-specific rules:

  • Do not modify state while modeling it
  • Note when state may be stale or dynamic
  • Flag entities with low confidence
  • Do not invent entities without evidence

Composition Patterns

Commonly follows:

  • observe - Observations feed into state modeling
  • retrieve - Retrieved data informs state
  • integrate - Merged data forms state

Commonly precedes:

  • transition - State enables transition modeling
  • compare - States can be compared (diff)
  • simulate - State is starting point for simulation

Anti-patterns:

  • Never use state for predictions (use predict)
  • Avoid state for single-value measurement (use measure)

Workflow references:

  • See reference/workflow_catalog.yaml#world_model_build for state in world modeling
  • See reference/workflow_catalog.yaml#digital_twin_sync_loop for state in digital twins

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.