{
  "failsOnBase": true,
  "passesOnHead": true,
  "baseSha": "3a8c250cb0c8056f2f563091fd412fe5db809fa1",
  "headSha": "582a6aaef03dfd7842b5a9649e85874a55219e0c",
  "verdict": "Proven: the scenario fails on base `3a8c250cb0` and passes on head `582a6aaef0`.",
  "markdown": "Evidence: web Chromium, 1280\u00d7800, light theme, fresh isolated databases and the same synthetic plugin configuration on both commits. Create the manifest-bearing demo-wrapper personal plugin with a symlinked review/SKILL.md and no root SKILL.md or registry entry; confirm Claude lists demo-tools@skills-dir as loaded. In a fresh Claude composer, type $demo-tools, then Please /demo-tools. On head, additionally disable the plugin, refresh its workspace snapshot, verify absence, re-enable and refresh, then select demo-tools:review.\n\n### Scenario: Personal skills-directory plugin is offered in the Claude composer\n\n**Proven: the scenario fails on base [3a8c250cb0](https://github.com/pingdotgg/t3code/commit/3a8c250cb0c8056f2f563091fd412fe5db809fa1) and passes on head [582a6aaef0](https://github.com/pingdotgg/t3code/commit/582a6aaef03dfd7842b5a9649e85874a55219e0c).**\n\n|  | Base [3a8c250cb0](https://github.com/pingdotgg/t3code/commit/3a8c250cb0c8056f2f563091fd412fe5db809fa1) | Head [582a6aaef0](https://github.com/pingdotgg/t3code/commit/582a6aaef03dfd7842b5a9649e85874a55219e0c) |\n| --- | --- | --- |\n| Result | \u274c failed<br>ASSERTION_FAILED: expect.toBeVisible failed<br>locator: getByText(\"demo-tools:review\").first()<br>expected: visible<br>observed: no node (match count 0) | \u2705 passed |\n| personal plugin dollar picker | ![Base 3a8c250cb0: personal plugin dollar picker](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30d9b026e4ee0b10/base-001-personal-plugin-dollar-picker.png) | ![Head 582a6aaef0: personal plugin dollar picker](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/18eb9869ef364555/head-001-personal-plugin-dollar-picker.png) |\n| personal plugin mid message | ![Base 3a8c250cb0: personal plugin mid message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea620a697a8db87/base-002-personal-plugin-mid-message.png) | ![Head 582a6aaef0: personal plugin mid message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/295310ff2c271d22/head-002-personal-plugin-mid-message.png) |\n| failure | ![Base 3a8c250cb0: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b2f604efbd135378/base-003-failure.png) |  |\n| disabled plugin |  | ![Head 582a6aaef0: disabled plugin](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eef59feab8c0ee51/head-003-disabled-plugin.png) |\n| reenabled plugin |  | ![Head 582a6aaef0: reenabled plugin](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0ac092c5b0e5c36/head-004-reenabled-plugin.png) |\n| selected plugin skill |  | ![Head 582a6aaef0: selected plugin skill](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d39c4958c393d58/head-005-selected-plugin-skill.png) |\n\n\nRecordings (composer crop, private model control masked, startup trimmed, one-third speed): [Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d80e37bba088f257/before-interaction.mp4) | [After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/90a95429069c74f3/after-interaction.mp4).\n\n[Scenario](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4a84e870acbfd172/claude-skills-directory.e2e.ts) \u00b7 [Seed](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/886bfeb1ef90af04/seed-plugin.mjs) \u00b7 [App launcher](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a2de269eca8b024/start-app.ts) \u00b7 [Reproduction notes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/029f03d1537976d3/README.txt) \u00b7 [Claude plugin list](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/11a3e861958af947/native-plugin-list.txt). Uploaded scripts redact local configuration paths and private model labels.\n\nDiscovery, Personal scope, disable/re-enable and skill-chip selection are verified. Native command advertisement and execution are unverified: the isolated Claude configuration has no authentication. AI-assisted; verified with the tests and tools listed above."
}