{
  "name": "unreal-engine-skills-for-claude-code — 3 skills",
  "slug": "source-skills-31eec2d140dfab218f799e2f",
  "type": "skills",
  "category": "developer-tools",
  "example": false,
  "evidence_state": "pinned_source_listing",
  "stamp": "Pinned source listing — machine-checked",
  "summary": "Pinned source declarations and file hashes were listed.",
  "outcome": "Listed 3 skill declarations. Ran 17 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
  "rule_results": [
    "The retained source tree matches its acquisition manifest.",
    "Declared skill names (listing.json): create-toolset; unreal-mcp; unreal-skill"
  ],
  "task": "What declarations and files are present in this pinned source?",
  "setup": "Git blob acquisition followed by static source inspection.",
  "limitations": "Scope: acquisition and static inspection. Command results: commands.json.",
  "source_url": "https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin.git",
  "documentation_url": "https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin.git",
  "commit": "a6aa73ada02a9fb1f5415bec491f9942c519b297",
  "tree_sha256": "bf648307a46538c7cfc8ffc2d1436c8cfdc39172b502c10576b872268709688b",
  "file_sha256": {
    ".claude-plugin/plugin.json": "5aa984848f0fd48c94394651c66f5b200ee1e2583d8df8caeecc22bb550b4d44",
    ".gitignore": "0fad2f57a9fac18ab4a66ac23d44485544bdabb5057c99b684d485f27b81e538",
    "CODEOWNERS": "653d372559bee26d75fcee330142276c7d9cbccba214ef008ff5392b99550f0f",
    "LICENSE": "5b337be051359edcdec510103aee15f5f870efb38b6d42eecd685dc3582314a6",
    "README.md": "483693ad0e14d027525d25c3d3eb4883e774b2f8150013181f9625e2dd46b40e",
    "hooks/hooks.json": "259124f0631b7d4b92e9e744003e8798b910c00dac201656b97906b3b5ebdc0c",
    "hooks/unreal-context.sh": "d3f1c871cd4edd5210ee2f448c403e1a441e569a14a1405d1a3f199c65651fdd",
    "skills/create-toolset/SKILL.md": "e9d050087f36de51f7eeef49adb0ba9ebc603b65f74f475bc53a6debfc1f7b1c",
    "skills/unreal-mcp/SKILL.md": "7ef8b991a82f591c5776bb5fa167c2bc2269fd00338ed3e8534eacc551d038fa",
    "skills/unreal-mcp/references/operations.md": "dbed002b4a46ab104274a31eb6682c3d277ce669216d0378df709f51567c3113",
    "skills/unreal-mcp/references/setup.md": "bd16206ea142dc9cc1950b88af526a3137072ea152c5662e8549d21bc18a3b8a",
    "skills/unreal-skill/SKILL.md": "7a0af781c458c7d192d6b23c16b5737922dc482470e2e4ef617bcda80f435087"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-20T00:19:02Z",
  "source_date": "2026-10-16",
  "discovered_date": "2026-10-16",
  "retested_date": "2026-10-20",
  "reviewed_date": "2026-10-20",
  "published_date": "2026-10-20",
  "modified_date": "2026-10-20",
  "reviewer": "machine pipeline",
  "harness_version": "toolwitness harness at commit 80347ac5c68b1268b011b015a8797984151a16e7",
  "claude_code_version": "Not applicable: static source inspection (commands.json).",
  "model_id": "Not applicable: static source inspection (commands.json).",
  "scanner_version": "Not applicable: static source inspection.",
  "rulepack_version": "Not applicable: static source inspection.",
  "agents": [],
  "disclaimer": "This record lists declarations and file hashes from a pinned source tree. Git command results from acquisition and static inspection are retained in commands.json. Scope: acquisition and static inspection. It is not a security or quality verdict. Changed bytes are outside this record.",
  "commands": [
    "Ran 17 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection."
  ],
  "prompt_list": [
    "Not applicable: static source inspection (commands.json)."
  ],
  "history": [
    "2026-10-20T00:19:02Z: pinned source inspection"
  ],
  "application": {
    "name": "unreal-engine-skills-for-claude-code — 3 skills",
    "softwareVersion": "a6aa73ada02a9fb1f5415bec491f9942c519b297",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 17 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
    "sinkhole_log": "Not applicable: static source inspection (commands.json).",
    "canary_log": "Not applicable: static source inspection (commands.json).",
    "scanner_output": "Not applicable: static source inspection (commands.json).",
    "normalized_text": "{\n  \"listing\": {\n    \"skills\": [\n      {\n        \"path\": \"skills/create-toolset/SKILL.md\",\n        \"name\": \"create-toolset\",\n        \"description\": \"Use this skill when authoring or extending an Unreal Engine toolset, a class of static, AI-callable functions registered with `ToolsetRegistry` and exposed through the unreal-mcp server. Trigger when the user wants to add, expose, or register a new tool method, create a new toolset, or extend an existing one such as `BlueprintTools`, `StaticMeshTools`, `ObjectTools`, `LevelTools`, or `MaterialTools`. Concrete triggers: 'add a tool to X', 'expose this via MCP', 'register a function so Claude/the agent can call it', 'wire this into the toolset registry', 'create a new toolset for Y', 'add a Python toolset', 'make this AI-callable'; adding a `static` method to a `*Tools.cpp/.h/.py` file; editing files under a `Toolsets/` folder; designing tool parameters, return types, or struct schemas for a toolset. SKIP for: invoking existing tools at runtime (use unreal-mcp instead), authoring an Agent Skill (use unreal-skill), generic refactors that happen to touch a toolset file but don't add or redesign a tool, or unrelated uses of the word 'toolset'.\",\n        \"files\": {\n          \"skills/create-toolset/SKILL.md\": \"e9d050087f36de51f7eeef49adb0ba9ebc603b65f74f475bc53a6debfc1f7b1c\"\n        }\n      },\n      {\n        \"path\": \"skills/unreal-mcp/SKILL.md\",\n        \"name\": \"unreal-mcp\",\n        \"description\": \"Use this skill to perform actions inside an Unreal Engine project via a live-editor MCP connection. Trigger when the user wants to change, query, or run something in their Unreal Engine project, not for conceptual or docs questions. Concrete triggers: spawn/move/duplicate/transform actors in a level, open a `.uproject`, add things around a PlayerStart, create or edit a Blueprint/Widget/Material/Niagara/Control Rig/Sequencer/Behavior Tree/GAS ability, read or write properties on actors (e.g. `bIsLocked` on `BP_DoorActor`), Live Coding recompile after editing C++ (`AActor`, `UMyComponent::Method`, `UPROPERTY`), or modify Static/Skeletal Mesh assets. Treat as Unreal context even without the word \\\"Unreal\\\": asset prefixes `BP_`, `WBP_`, `M_`, `MI_`, `NS_`, `CR_`, `SK_`, `SM_`, `ABP_`; UE C++ types/macros; `.uproject`; Content Browser; Outliner; PlayerStart; \\\"in my game\\\" plus UE signals. Skip for: pure conceptual/docs questions, Unity, Godot, or unrelated uses of \\\"blueprint\\\"/\\\"sequencer\\\"/\\\"widget\\\".\",\n        \"files\": {\n          \"skills/unreal-mcp/SKILL.md\": \"7ef8b991a82f591c5776bb5fa167c2bc2269fd00338ed3e8534eacc551d038fa\",\n          \"skills/unreal-mcp/references/operations.md\": \"dbed002b4a46ab104274a31eb6682c3d277ce669216d0378df709f51567c3113\",\n          \"skills/unreal-mcp/references/setup.md\": \"bd16206ea142dc9cc1950b88af526a3137072ea152c5662e8549d21bc18a3b8a\"\n        }\n      },\n      {\n        \"path\": \"skills/unreal-skill/SKILL.md\",\n        \"name\": \"unreal-skill\",\n        \"description\": \"Use this skill when creating, editing, or reviewing an Unreal Engine Agent Skill, a named bundle of instructions registered with the unreal-mcp server (distinct from Claude Code's harness skills under `.claude/skills/`). Trigger when the user wants to add or change a skill that the in-editor agent will load. Concrete triggers: 'create a new Agent Skill', 'add a skill for X workflow', 'edit/update this skill', 'review my skill', 'make a Python skill class', 'create a skill UAsset', 'register a skill so Claude picks it up'; writing or editing a `SKILL.md` inside a UE plugin's `Skills/` or `Python/skills/` folder; defining a Python skill class registered with the skill registry; calling `CreateSkill`, `ListSkills`, or `GetSkills` MCP tools; designing a skill's name, description, or instruction body. SKIP for: authoring a toolset (use create-toolset), invoking an existing skill at runtime (use unreal-mcp), editing harness-level Claude Code skills under `.claude/skills/` or `~/.claude/skills/`, or generic uses of the word 'skill'.\",\n        \"files\": {\n          \"skills/unreal-skill/SKILL.md\": \"7a0af781c458c7d192d6b23c16b5737922dc482470e2e4ef617bcda80f435087\"\n        }\n      }\n    ],\n    \"hooks\": [\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"259124f0631b7d4b92e9e744003e8798b910c00dac201656b97906b3b5ebdc0c\",\n        \"event\": \"SessionStart\",\n        \"matcher\": \"startup|resume|clear\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bash ${CLAUDE_PLUGIN_ROOT}/hooks/unreal-context.sh\",\n          \"timeout\": 5\n        },\n        \"executed\": false\n      }\n    ],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "2dc8b31c053c3f6fb0d161697922c86e9fec685e2ee3e08c1a4366c620de5af0",
      "commands.json": "aa360da300af5f78f8bba9e6f3a9fac20e3d188e0503e236e9af94e1b8c273d1",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "0e868dd74efa40c12cc70644508293e83c8d4e04562997fd065c508c2f190dda",
      "listing.json": "4e3128b3875b7d93dfd97fab468b6a8f35f856517dd7671d9d590ea3c9294fe4",
      "selection.json": "0ee6cf5e2f4ac80ffc4bfc9e72e290a9fb8ed9071f6f87aa9ccbfb1f0280b786"
    },
    "claims": [
      {
        "id": "acquired",
        "field": "summary",
        "text": "Pinned source declarations and file hashes were listed.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "listed",
        "field": "outcome",
        "text": "Listed 3 skill declarations. Ran 17 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "tree",
        "field": "rule_results.0",
        "text": "The retained source tree matches its acquisition manifest.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "declared",
        "field": "rule_results.1",
        "text": "Declared skill names (listing.json): create-toolset; unreal-mcp; unreal-skill",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-20",
    "reviewed_sha256": "cdf056fb00ba14590a15a3bbb560bd64285153663d68e0386664a9f95109cf8c",
    "gates": "e2fbf2ea73603830fef2fb0b39917a9fd9e09d1af18d0e695f5fa8f538663e9e",
    "codex": "72ec76e21a18f941307cbe5d3fd3ff141760a9d1708728753084e5cc753dd383",
    "grok": "2fb3755474613e1559bd0e63bfb664d8337ca95d74d53f08be300757a3a104cb",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
