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

mutate

Skill6 starsChanged 14 days agoApache-2.0View on GitHub

Change persistent state with checkpoint and rollback support. Use when modifying files, updating databases, changing configuration, or any operation that permanently alters state.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 16 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈16

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Verify checkpoint exists: Ensure recovery is possible

    line 40
  2. Distinctive:

    Verify checkpoint covers the target

    line 42
  3. Distinctive:

    STOP if no valid checkpoint

    line 43
  4. Distinctive:

    Read current state of target

    line 46
  5. Distinctive:

    Document what specifically will change

    line 48
  6. Distinctive:

    Use appropriate tool (Edit for files, Bash for commands)

    line 52
  7. Distinctive:

    Record mutation: Document what changed

    line 60
  8. Distinctive:

    Verification tools: Read (to verify state changes)

    line 223
  9. Distinctive:

    NEVER mutate without valid checkpoint

    line 233
  10. Distinctive:

    Always capture previous state before modification

    line 234
  11. Distinctive:

    Verify change matches intended operation

    line 235
  12. Distinctive:

    Stop immediately on unexpected errors

    line 237
  13. Distinctive:

    Do not chain multiple mutations without intermediate checkpoints

    line 238
  14. Distinctive:

    NEVER mutate without checkpoint

    line 253
  15. Distinctive:

    Never combine multiple risky mutations

    line 254
  16. Distinctive:

    Avoid mutation in exploratory workflows

    line 255

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Make controlled changes to persistent state with safety guarantees. This is the primary capability for modifications and REQUIRES a checkpoint for rollback capability.

CRITICAL: This capability requires checkpoint to have been called first.

Success criteria:

  • State change applied correctly
  • Previous state captured for rollback
  • Change is verifiable
  • Audit trail recorded

Compatible schemas:

  • schemas/output_schema.yaml

Inputs

ParameterRequiredTypeDescription
targetYesstringWhat to modify (file path, resource identifier)
operationYesobjectThe modification to apply
checkpoint_idNostringCheckpoint ID for rollback (from checkpoint capability)

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. Verify checkpoint exists: Ensure recovery is possible
    • Confirm checkpoint_id references valid checkpoint
    • Verify checkpoint covers the target
    • STOP if no valid checkpoint
  2. Capture previous state: Record what will change
    • Read current state of target
    • Store for comparison and rollback
    • Document what specifically will change
  3. Apply mutation: Make the change
    • Execute the specified operation
    • Use appropriate tool (Edit for files, Bash for commands)
    • Capture any errors during modification
  4. Verify change: Confirm mutation succeeded
    • Read new state
    • Compare to expected result
    • Note any unexpected side effects
  5. Record mutation: Document what changed
    • Store diff between previous and new state
    • Record timestamp and operation details
    • Link to checkpoint for audit trail
  6. Return result: Provide complete mutation record
    • Include success/failure status
    • Provide before/after state
    • Reference checkpoint for rollback

Output Contract

Return a structured object:

success: boolean  # Whether mutation completed
target: string  # What was modified
operation: string  # What was done
previous_state:
  snapshot: any  # State before mutation
  captured_at: string  # When captured
new_state:
  snapshot: any  # State after mutation
  verified_at: string  # When verified
diff:
  type: string  # unified, structural, summary
  content: string  # The actual diff
checkpoint_id: string  # For rollback reference
rollback_command: string  # How to undo this change
evidence_anchors: ["file:line", "command:output"]

Field Definitions

FieldTypeDescription
successbooleanWhether mutation completed successfully
targetstringResource that was modified
operationstringDescription of the change
previous_stateobjectState before modification
new_stateobjectState after modification
diffobjectDifference between states
checkpoint_idstringReference for rollback
rollback_commandstringHow to undo the change
evidence_anchorsarrayReferences to the changed location and the command output

Examples

Example 1: File Modification

Input:

target: "src/services/user_service.rb"
operation:
  type: "edit"
  description: "Add null check for user parameter"
  changes:
    - line: 42
      old: "user.email"
      new: "user&.email"
checkpoint_id: "chk-20240115-001"

Output:

success: true
target: "src/services/user_service.rb"
operation: "Added safe navigation operator for null user handling"
previous_state:
  snapshot: "def get_email(user)\n  user.email\nend"
  captured_at: "2024-01-15T10:30:00Z"
new_state:
  snapshot: "def get_email(user)\n  user&.email\nend"
  verified_at: "2024-01-15T10:30:01Z"
diff:
  type: "unified"
  content: |
    @@ -42 +42 @@
    -  user.email
    +  user&.email
checkpoint_id: "chk-20240115-001"
rollback_command: "git checkout src/services/user_service.rb"
evidence_anchors:
  - "src/services/user_service.rb:42"

Example 2: Database Mutation

Input:

target: "users table"
operation:
  type: "sql"
  description: "Add status column with default value"
  sql: "ALTER TABLE users ADD COLUMN status VARCHAR(20) DEFAULT 'active'"
checkpoint_id: "chk-20240115-002"

Output:

success: true
target: "users table"
operation: "Added status column with default 'active'"
previous_state:
  snapshot:
    columns: ["id", "email", "created_at"]
  captured_at: "2024-01-15T11:00:00Z"
new_state:
  snapshot:
    columns: ["id", "email", "created_at", "status"]
  verified_at: "2024-01-15T11:00:05Z"
diff:
  type: "structural"
  content: "+ status VARCHAR(20) DEFAULT 'active'"
checkpoint_id: "chk-20240115-002"
rollback_command: "ALTER TABLE users DROP COLUMN status"
evidence_anchors:
  - "command:psql:schema_after"

Example 3: Mutation Failure

Input:

target: "config/database.yml"
operation:
  type: "edit"
  description: "Update connection pool size"
checkpoint_id: "chk-20240115-003"

Output:

success: false
target: "config/database.yml"
operation: "Update connection pool size (FAILED)"
previous_state:
  snapshot: "pool: 5"
  captured_at: "2024-01-15T12:00:00Z"
new_state:
  snapshot: null
  verified_at: null
diff:
  type: "none"
  content: "Mutation failed: file locked by another process"
checkpoint_id: "chk-20240115-003"
rollback_command: "N/A - mutation did not complete"
evidence_anchors:
  - "error:file_locked"
error:
  message: "File locked by another process"
  recoverable: true
  suggestion: "Retry after process releases lock"

Verification

  • Checkpoint exists and is valid
  • Previous state captured before mutation
  • New state verified after mutation
  • Diff accurately reflects change
  • Rollback command is correct

Verification tools: Read (to verify state changes)

Safety Constraints

  • mutation: true
  • requires_checkpoint: true
  • requires_approval: true
  • risk: high

Capability-specific rules:

  • NEVER mutate without valid checkpoint
  • Always capture previous state before modification
  • Verify change matches intended operation
  • Provide working rollback mechanism
  • Stop immediately on unexpected errors
  • Do not chain multiple mutations without intermediate checkpoints

Composition Patterns

Commonly follows:

  • checkpoint - REQUIRED before any mutation
  • plan - Mutations execute planned changes
  • verify - Verify preconditions before mutating

Commonly precedes:

  • verify - Verify mutation results
  • audit - Record mutation for audit trail
  • rollback - Undo mutation if verification fails

Anti-patterns:

  • NEVER mutate without checkpoint
  • Never combine multiple risky mutations
  • Avoid mutation in exploratory workflows

Workflow references:

  • See reference/workflow_catalog.yaml#debug_code_change for mutation in bug fixes
  • See reference/workflow_catalog.yaml#digital_twin_sync_loop for mutation in sync loops

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.