{"id":21028,"plugin_id":"plugins_6aabf17d723481919bf6d18cd917fa77","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:16:44.781Z","digest":"b28ccb72ba3592138da992b7d7e2f24eddc10493a30077d3985681d8c9673331","against":null,"payload":{"description":"Use when moving, renaming, archiving, deleting, deduplicating, replacing, or reorganizing persistent project files, folders, release artifacts, or ChatGPT Library items.","included_files":[{"relative_path":"references/storage-adapters.md","size_in_bytes":1432}],"name":"organizing-persistent-files","skill_md_contents":"---\nname: organizing-persistent-files\ndescription: Use when moving, renaming, archiving, deleting, deduplicating, replacing, or reorganizing persistent project files, folders, release artifacts, or ChatGPT Library items.\n---\n\n# Organizing Persistent Files\n\n## Iron rule\n\n**Audit before structural/destructive mutation.** Use `auditing-persistent-state` unless exact roles, references, canon, successor, destination, and target state are already established from fresh complete evidence.\n\n## Idempotent transaction\n\n`pre-read/list -> classify -> precondition -> mutate -> capture returned final identity -> repair pointers/memory -> post-read/list -> verify`\n\nFor every structural mutation:\n\n1. resolve exact source identity and authoritative surface;\n2. resolve intended destination/successor and detect any **destination conflict**;\n3. identify references and canonical role;\n4. define a postcondition that makes the operation **idempotent**: re-observing the already-correct target must not trigger a duplicate mutation;\n5. perform the real persistent mutation once;\n6. capture the provider/tool **returned final identity** (id/path/name), including any **auto-rename** result;\n7. update pointers/routes and durable memory if truth changed;\n8. fresh re-list/re-read source and final destination;\n9. use `verifying-persistent-work` last.\n\nNever assume the requested destination name is the actual final name when the storage layer may dedupe or auto-rename. If status is ambiguous, use `recovering-persistent-work` before any repeat.\n\n## Deletion\n\nDelete only when the item is not active canon, required information survives, references are safe, required successor is readable, and post-state can be verified. Otherwise archive or stop.\n\n## ChatGPT Library\n\nUse native Library mutation on the exact Library item. `/mnt/data` is only a working surface. Read `references/storage-adapters.md` for provider-specific identity and conflict rules.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}