{
  "type": "bundle",
  "id": "bundle--aa8c6233-a46e-51e5-90fe-97d87b437b16",
  "objects": [
    {
      "type": "attack-pattern",
      "spec_version": "2.1",
      "id": "attack-pattern--90967719-4326-5540-ab62-8619bbc46a9a",
      "created": "2026-01-01T00:00:00.000Z",
      "modified": "2026-01-01T00:00:00.000Z",
      "name": "Destructive git command in a parallel session wipes untracked work",
      "description": "An agent in a separate terminal ran a destructive git command (clean -fd / checkout -f / reset --hard) that deleted never-tracked, uncommitted files all at once — git had no copy to restore.",
      "external_references": [
        {
          "source_name": "salvager-afm",
          "external_id": "AFM-0002",
          "url": "https://salvager.sh/catalog/afm-0002-destructive-git-command-in-a-parallel-session-wipes-untracked-work"
        }
      ],
      "x_salvager_recoverability": "reversible",
      "x_salvager_blast_radius": "project",
      "x_salvager_response": "recover",
      "x_salvager_intent": "accident"
    },
    {
      "type": "course-of-action",
      "spec_version": "2.1",
      "id": "course-of-action--66b41851-abe9-5fcf-b5d5-85b20e13f112",
      "created": "2026-01-01T00:00:00.000Z",
      "modified": "2026-01-01T00:00:00.000Z",
      "name": "Salvager response: recover",
      "description": "Salvager recovers the affected files from its own per-file revision store, independent of git — restoring the working tree to the instant before the destructive action."
    },
    {
      "type": "relationship",
      "spec_version": "2.1",
      "id": "relationship--6cb41fe1-99fb-508d-9e03-0baf5a2ac147",
      "created": "2026-01-01T00:00:00.000Z",
      "modified": "2026-01-01T00:00:00.000Z",
      "relationship_type": "recovers-from",
      "source_ref": "course-of-action--66b41851-abe9-5fcf-b5d5-85b20e13f112",
      "target_ref": "attack-pattern--90967719-4326-5540-ab62-8619bbc46a9a"
    }
  ]
}