$npx -y skills add quodsoler/unreal-engine-skills --skill ue-project-contextWhen the user wants to create or update their Unreal Engine project context document. Use when the user says 'project context,' 'set up context,' 'UE context,' 'configure project,' or wants to avoid repeating their project setup across UE development tasks. Creates `.agents/ue-pr
| 1 | # UE Project Context |
| 2 | |
| 3 | You help UE developers create and maintain a project context document that other UE skills reference. This captures the engine version, module structure, plugin dependencies, coding conventions, and team practices specific to the user's project, so advice is always tailored rather than generic. |
| 4 | |
| 5 | The document is stored at `.agents/ue-project-context.md`. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Workflow |
| 10 | |
| 11 | ### Step 1: Check for Existing Context |
| 12 | |
| 13 | First, check if `.agents/ue-project-context.md` already exists. |
| 14 | |
| 15 | **If it exists:** |
| 16 | - Read it and summarize what's captured |
| 17 | - Ask which sections the user wants to update |
| 18 | - Only gather information for those sections |
| 19 | |
| 20 | **If it doesn't exist, offer two options:** |
| 21 | |
| 22 | 1. **Auto-draft from codebase** (recommended): Scan the project files — `.uproject`, `Source/*/Build.cs`, `Source/*/*.Target.cs`, `Config/*.ini`, `Plugins/` — and draft a V1 of the context document. The user reviews, corrects, and fills gaps. Faster than starting from scratch. |
| 23 | |
| 24 | 2. **Interactive questionnaire**: Walk through each section conversationally, one at a time. |
| 25 | |
| 26 | Most users prefer option 1. After presenting the auto-draft, ask: "What needs correcting? What's missing?" |
| 27 | |
| 28 | --- |
| 29 | |
| 30 | ### Step 2: Gather Information |
| 31 | |
| 32 | #### If Auto-Drafting |
| 33 | |
| 34 | Scan these files and populate each section: |
| 35 | |
| 36 | **`.uproject`** |
| 37 | - `EngineAssociation` → engine version |
| 38 | - `Plugins[]` → enabled plugins (name + enabled state) |
| 39 | - `Modules[]` → module list and types |
| 40 | |
| 41 | **`Source/*/Build.cs`** (one per module) |
| 42 | - Module name (class name) |
| 43 | - `PublicDependencyModuleNames` and `PrivateDependencyModuleNames` |
| 44 | - `Type` field → Runtime, Editor, Developer, etc. |
| 45 | - Any `ThirdParty` include/library paths |
| 46 | |
| 47 | **`Source/*/*.Target.cs`** |
| 48 | - Target types: Game, Editor, Server, Client |
| 49 | - `DefaultBuildSettings`, `ExtraModuleNames` |
| 50 | - Platform-specific conditions |
| 51 | |
| 52 | **`Config/DefaultEngine.ini`** |
| 53 | - `ActiveGameNameRedirect`, `GameDefaultMap`, `GlobalDefaultGameMode` |
| 54 | - Any custom subsystem or plugin settings |
| 55 | |
| 56 | **`Config/DefaultGame.ini`** |
| 57 | - Project display name, version |
| 58 | |
| 59 | **`Plugins/*/`** |
| 60 | - Custom plugin directories → names and types |
| 61 | |
| 62 | After scanning, draft all sections and present the document. Ask what needs correcting or is missing. Iterate until the user confirms it's accurate. |
| 63 | |
| 64 | #### If Using Interactive Questionnaire |
| 65 | |
| 66 | Walk through each section below one at a time. Do not dump all questions at once. |
| 67 | |
| 68 | For each section: |
| 69 | 1. Briefly explain what you're capturing and why it matters |
| 70 | 2. Ask the relevant questions |
| 71 | 3. Confirm accuracy |
| 72 | 4. Move to the next section |
| 73 | |
| 74 | --- |
| 75 | |
| 76 | ## Sections to Capture |
| 77 | |
| 78 | ### 1. Engine & Project Overview |
| 79 | |
| 80 | Discovery questions: |
| 81 | - What is the project name and a one-sentence description of what it is? |
| 82 | - Which Unreal Engine version are you using (e.g., 5.3, 5.4)? Is this a launcher build or a source build? |
| 83 | - What type of project is this: game, simulation, visualization, tool, plugin, or something else? |
| 84 | - What genre or domain (e.g., first-person shooter, strategy, architectural viz, training sim)? |
| 85 | - What are your target platforms (Windows, Mac, Linux, PS5, Xbox, iOS, Android, VR)? |
| 86 | |
| 87 | ### 2. Module Structure |
| 88 | |
| 89 | Discovery questions: |
| 90 | - How many modules does the project have? What are their names? |
| 91 | - Which is the primary game module? |
| 92 | - What type is each module: Runtime, Editor, Developer, or ThirdParty? |
| 93 | - Are any modules shared libraries or standalone plugins? |
| 94 | - Are there any modules under active development vs. stable/locked modules? |
| 95 | |
| 96 | ### 3. Plugin Dependencies |
| 97 | |
| 98 | Discovery questions: |
| 99 | - Which engine plugins are enabled (e.g., GameplayAbilities, EnhancedInput, CommonUI, Niagara, PCG, MetaSounds, Chaos, OnlineSubsystem)? |
| 100 | - Do you use any Fab/Marketplace plugins? Which ones are critical to gameplay? |
| 101 | - Do you have any custom or in-house plugins in the `Plugins/` directory? |
| 102 | - Are any plugins licensed with restrictions the AI should know about? |
| 103 | |
| 104 | ### 4. Coding Conventions |
| 105 | |
| 106 | Discovery questions: |
| 107 | - Do you follow Epic's standard UE naming prefixes (F, U, A, E, I)? Any exceptions or additions? |
| 108 | - Do you use `#pragma once` or traditional header guards? |
| 109 | - What `DEFINE_LOG_CATEGORY` names does the project use most? |
| 110 | - What is your preferred assertion style: `check()`, `ensure()`, `checkf()`, or `verify()`? |
| 111 | - How do you organize headers — separate Public/Private folders per module, or flat? |
| 112 | - Any other code style rules the team enforces (e.g., no raw pointers for UObjects, always use TObjectPtr)? |
| 113 | |
| 114 | ### 5. Subsystems in Use |
| 115 | |
| 116 | Discovery questions: |
| 117 | - Do you have a custom GameMode or GameState? What are the class names? |
| 118 | - What custom PlayerController and Pawn |