{
  "file": "F25-skills.md",
  "bullet": "Already installed (`F25.install-conflict`).",
  "ids": [
    "F25.install-conflict"
  ],
  "line": 308,
  "script": "T1=$(control-agent-server api GET /api/skills/installed/qa-f25-skill --field installed_at)\ncontrol-agent-server api POST /api/skills/install --json '{\"source\": \"'\"$S\"'\"}' --expect 409 \\\n  --check detail contains force=true --save F25.install-conflict/conflict\ncontrol-agent-server api GET /api/skills/installed/qa-f25-skill --expect 200 --check installed_at eq \"$T1\"\ncontrol-agent-server api PATCH /api/skills/installed/qa-f25-skill --json '{\"enabled\": false}' --expect 200\ncontrol-agent-server api POST /api/skills/install --json '{\"source\": \"'\"$S\"'\", \"force\": true}' --expect 200 \\\n  --check enabled eq false --check installed_at ne \"$T1\" --save F25.install-conflict/force\ncontrol-agent-server api GET /api/skills/installed/qa-f25-skill --expect 200 --check enabled eq false --check installed_at ne \"$T1\"\ncontrol-agent-server api PATCH /api/skills/installed/qa-f25-skill --json '{\"enabled\": true}' --expect 200 --check enabled eq true\n",
  "exit_code": 0,
  "elapsed_ms": 3953,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 409,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/skills/install\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"source\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/fixtures/skills/qa-f25-skill\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 409,\n    \"headers\": {\n      \"content-length\": \"66\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Skill already installed. Use force=true to overwrite.\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 118,\n  \"checks\": [\n    {\n      \"check\": \"detail contains force=true\",\n      \"ok\": true,\n      \"actual\": \"Skill already installed. Use force=true to overwrite.\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/evidence/F25.install-conflict/conflict.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/skills/installed/qa-f25-skill\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"484\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"name\": \"qa-f25-skill\",\n      \"version\": \"1.0.0\",\n      \"description\": \"QA fixture skill qa-f25-skill; mention QA_SKILL_MARKER when asked about qa-f25-skill.\",\n      \"enabled\": true,\n      \"source\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/fixtures/skills/qa-f25-skill\",\n      \"resolved_ref\": null,\n      \"repo_path\": null,\n      \"installed_at\": \"2026-10-13T02:58:39.231689+00:00\",\n      \"install_path\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/home/.openhands/skills/installed/qa-f25-skill\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 166,\n  \"checks\": [\n    {\n      \"check\": \"installed_at eq 2026-10-13T02:58:39.231689+00:00\",\n      \"ok\": true,\n      \"actual\": \"2026-10-13T02:58:39.231689+00:00\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"PATCH\",\n    \"path\": \"/api/skills/installed/qa-f25-skill\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"enabled\": false\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"39\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"name\": \"qa-f25-skill\",\n      \"enabled\": false\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 49\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/skills/install\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"source\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/fixtures/skills/qa-f25-skill\",\n      \"force\": true\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"485\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"name\": \"qa-f25-skill\",\n      \"version\": \"1.0.0\",\n      \"description\": \"QA fixture skill qa-f25-skill; mention QA_SKILL_MARKER when asked about qa-f25-skill.\",\n      \"enabled\": false,\n      \"source\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/fixtures/skills/qa-f25-skill\",\n      \"resolved_ref\": null,\n      \"repo_path\": null,\n      \"installed_at\": \"2026-10-13T02:58:51.923307+00:00\",\n      \"install_path\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/home/.openhands/skills/installed/qa-f25-skill\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 63,\n  \"checks\": [\n    {\n      \"check\": \"enabled eq false\",\n      \"ok\": true,\n      \"actual\": \"false\"\n    },\n    {\n      \"check\": \"installed_at ne 2026-10-13T02:58:39.231689+00:00\",\n      \"ok\": true,\n      \"actual\": \"2026-10-13T02:58:51.923307+00:00\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/evidence/F25.install-conflict/force.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/skills/installed/qa-f25-skill\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"485\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"name\": \"qa-f25-skill\",\n      \"version\": \"1.0.0\",\n      \"description\": \"QA fixture skill qa-f25-skill; mention QA_SKILL_MARKER when asked about qa-f25-skill.\",\n      \"enabled\": false,\n      \"source\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/fixtures/skills/qa-f25-skill\",\n      \"resolved_ref\": null,\n      \"repo_path\": null,\n      \"installed_at\": \"2026-10-13T02:58:51.923307+00:00\",\n      \"install_path\": \"/workspace/verification-artifacts/runs/20261013-025747-be38-map-f25/home/.openhands/skills/installed/qa-f25-skill\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 76,\n  \"checks\": [\n    {\n      \"check\": \"enabled eq false\",\n      \"ok\": true,\n      \"actual\": \"false\"\n    },\n    {\n      \"check\": \"installed_at ne 2026-10-13T02:58:39.231689+00:00\",\n      \"ok\": true,\n      \"actual\": \"2026-10-13T02:58:51.923307+00:00\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"PATCH\",\n    \"path\": \"/api/skills/installed/qa-f25-skill\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": {\n      \"enabled\": true\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"38\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"name\": \"qa-f25-skill\",\n      \"enabled\": true\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 77,\n  \"checks\": [\n    {\n      \"check\": \"enabled eq true\",\n      \"ok\": true,\n      \"actual\": \"true\"\n    }\n  ]\n}\n",
  "stderr": ""
}
