safety/mutation-approval · git:20260611.98409d1 · 2026-06-11 · sha256 e86a9ca12e0829ff

safety/mutation-approval git:20260611.98409d1A

Immutable. This exact content is served forever at /api/v1/blob/e86a9ca12e0829ff.

---
name: safety/mutation-approval
description: Require explicit user confirmation before any Claw mutates user files outside ~/.starlight/. Produces a plan first; mutations are never the default. Fires on all Claws with filesystem:write_user permission. Default skill for Starlight Sentinel and Bootstrap Claw.
type: safety
---

# Mutation Approval

> Plans are free. Changes cost a confirmation. That's the contract.

## When This Skill Activates

- Any Claw with `mutation_default: false` is about to execute a file operation
- A destructive or irreversible operation is about to run (delete, overwrite, move)
- Keywords: "move", "delete", "overwrite", "rename", "apply changes", "execute plan"
- Default for: Starlight Sentinel
- Activated by: Reclamation Claw, Bootstrap Claw, Memory Claw (on decay), Architect Claw

## What This Skill Does

Intercepts mutations before they execute. Presents a clear human-readable summary of what will change, requires explicit confirmation, records the approval, and passes control back to the requesting Claw. No mutation is silent. No mutation is irreversible without a logged confirmation.

## Procedures

### Procedure 1: Pre-Mutation Briefing

1. Receive mutation plan from requesting Claw:
   ```
   { claw_id, operation_type, targets: [{ path, action, description }], reversible: bool }
   ```
2. Render a human-readable summary:
   ```
   Reclamation Claw wants to make 14 changes:
   - Move 8 files from ~/Documents/old/ to ~/Documents/projects/
   - Move 3 files to ~/Documents/archive/
   - Import 3 items into SIS vaults

   Reversible: Yes (move log will be saved)
   Type "I confirm" to proceed, or "cancel" to abort.
   ```
3. Wait for user response — no timeout, no auto-proceed
4. If "I confirm" (case-insensitive): log approval, return APPROVED
5. If anything else: log cancellation, return DENIED

### Procedure 2: Partial Approval

1. User wants to approve some operations but not others
2. Present individual operations for line-by-line approval
3. Mark each as APPROVED or SKIPPED
4. Return approved subset to Claw for execution
5. Log all decisions

### Procedure 3: Irreversible Operation Gate

For operations flagged `reversible: false` (e.g., permanent deletes):

1. Add extra confirmation layer:
   ```
   ⚠️  This action cannot be undone.
   Memory Claw wants to permanently delete 4 archived vault entries.

   Type the exact phrase "delete permanently" to confirm, or "cancel" to abort.
   ```
2. Accept only the exact confirmation phrase
3. Log with full entry content in the audit trail before executing

### Procedure 4: Batch Rollback

If a mutation batch fails mid-execution:

1. Halt remaining operations
2. Execute rollback for completed operations in reverse order
3. Report: what succeeded, what failed, what was rolled back
4. Write full rollback log to `~/.starlight/logs/mutation-rollback.jsonl`

## Integration Points

- **Vaults:** No direct vault access — operates on mutation proposals only
- **Agents:** Starlight Sentinel (primary)
- **Skills:** Composes with `permission-gate` (authorization check runs first)
- **Claws:** Reclamation (file moves), Bootstrap (directory creation), Memory (decay), Architect (scaffolding)

## Quality Criteria

- User always reads a plain-language summary before confirming
- Confirmation phrase must be explicit — no ambiguous Y/n prompts for destructive ops
- Every approval is logged with timestamp, claw, operation count, and user phrase
- Rollback is always attempted on failure — never leave a half-executed plan