{
  "schemaVersion": "plugins-directory/1.0.0",
  "snapshotId": "plugins-2026-09-12.p6",
  "localBriefFormat": "gptsapp-plugin-decision-brief/1.0.0",
  "plugin": {
    "id": "gpa:plugin:c9dcc8562b7aadf757133365348608699edaaea3c9d0ff75574a75c2415c5678",
    "key": "p5-trailofbits-second-opinion",
    "name": "Second Opinion",
    "ecosystem": "claude-code",
    "packageRole": null,
    "deliveryNote": "Claude-format distribution. The publisher describes Codex marketplace compatibility, not a separate native Codex package. Other interfaces and component activation remain unverified.",
    "sourceIssues": [],
    "sourceOwner": "trailofbits",
    "declaredAuthor": "Dan Guido (manifest declaration)",
    "canonical": "https://plugins.gptsapp.io/plugins/claude-code/trailofbits/second-opinion",
    "repository": "https://github.com/trailofbits/skills",
    "packageRoot": "plugins/second-opinion",
    "installation": {
      "url": "https://github.com/trailofbits/skills",
      "label": "Maintainer installation",
      "note": "Independent maintainer marketplace: trailofbits. Entry: second-opinion. Exact package root: plugins/second-opinion. Review publisher instructions and Claude host requirements; no installation is performed here.",
      "observationOnly": true
    },
    "purpose": "Compare an external-model review route with local review; a separate CLI and provider access are prerequisites.",
    "tasks": [
      "code-review"
    ],
    "documentedTargets": [
      {
        "id": "claude-code",
        "label": "Claude Code"
      }
    ],
    "version": "1.8.0",
    "revision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
    "observedAt": "2026-09-08T13:38:59.102Z",
    "componentDeclarations": [
      {
        "kind": "skill",
        "label": "Individually observed packaged Skill",
        "members": [
          "second-opinion"
        ],
        "scope": "Exact file read at d3323cefbcf645678b8dc481de204b02ad3d02dc; a partial sample, not a complete inventory or activation test.",
        "inventoryBasis": "exact-file-read",
        "inventoryComplete": false,
        "memberSources": [
          {
            "name": "second-opinion",
            "url": "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/skills/second-opinion/SKILL.md"
          }
        ]
      },
      {
        "kind": "mcp_server",
        "label": "Local-process MCP declaration",
        "members": null,
        "sourceUrl": "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/.mcp.json",
        "scope": "One local-process server declaration was parsed at d3323cefbcf645678b8dc481de204b02ad3d02dc. No remote endpoint identity was established; the command payload was not retained or executed.",
        "inventoryBasis": "exact-file-read",
        "inventoryComplete": false
      }
    ],
    "requirements": [
      {
        "key": "codex-review-cli",
        "label": "Codex CLI is one documented external review option.",
        "necessity": "alternative",
        "group": "external-review-tool",
        "minimum": 1,
        "tasks": [
          "code-review"
        ],
        "source": 5
      },
      {
        "key": "antigravity-review-cli",
        "label": "Antigravity CLI is the other documented external review option.",
        "necessity": "alternative",
        "group": "external-review-tool",
        "minimum": 1,
        "tasks": [
          "code-review"
        ],
        "source": 5
      },
      {
        "key": "external-review-access",
        "label": "The chosen external review tool needs its own configured provider access or subscription.",
        "necessity": "required",
        "tasks": [
          "code-review"
        ],
        "source": 5
      }
    ],
    "access": "Choose one external review CLI and confirm its provider access. A bundled local MCP declaration is not an installed tool or a remote connection.",
    "sourceUrls": [
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/.claude-plugin/marketplace.json",
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/.claude-plugin/plugin.json",
      "https://github.com/trailofbits/skills/tree/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion",
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/README.md",
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/LICENSE",
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/skills/second-opinion/SKILL.md",
      "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/.mcp.json"
    ],
    "licenseDeclaration": "Root README declares CC-BY-SA-4.0. This is not a manifest license or file-level clearance; only original reference metadata is retained here.",
    "coverage": "partial",
    "qualification": "manifest-inspected",
    "channel": {
      "curator": "Trail of Bits",
      "name": "trailofbits",
      "authority": "independent-maintainer-marketplace",
      "indexUrl": "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/.claude-plugin/marketplace.json",
      "indexRevision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
      "observedAt": "2026-09-08T13:38:52.299Z",
      "packagePins": [
        "d3323cefbcf645678b8dc481de204b02ad3d02dc"
      ],
      "revisionState": "source-pinned"
    },
    "distributions": [
      {
        "entry": "second-opinion",
        "marketplace": "trailofbits",
        "indexUrl": "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/.claude-plugin/marketplace.json",
        "indexRevision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
        "packageRevision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
        "resolvedSourceRevision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
        "packagePath": "plugins/second-opinion",
        "evidence": "manifest-and-index-observed"
      }
    ],
    "manifestObservation": {
      "sourceUrl": "https://raw.githubusercontent.com/trailofbits/skills/d3323cefbcf645678b8dc481de204b02ad3d02dc/plugins/second-opinion/.claude-plugin/plugin.json",
      "revision": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
      "observedAt": "2026-09-08T13:38:59.102Z",
      "version": "1.8.0",
      "declaredAuthor": "Dan Guido",
      "componentPathsOnly": true
    },
    "componentObservationScope": "d3323cefbcf645678b8dc481de204b02ad3d02dc",
    "evidence": "Source metadata only; no install, connection, authorization or task execution observed."
  }
}
