claude-code-arcane 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +104 -55
- package/agents/career/career-strategist.md +88 -0
- package/agents/career/cv-reviewer.md +81 -0
- package/agents/career/hiring-manager.md +68 -0
- package/agents/career/mock-interviewer.md +76 -0
- package/agents/freelance/client-screener.md +84 -0
- package/agents/freelance/discovery-call.md +65 -0
- package/agents/freelance/pipeline-strategist.md +99 -0
- package/agents/freelance/proposal-reviewer.md +82 -0
- package/agents/game/ue-blueprint-specialist.md +125 -0
- package/agents/game/ue-gas-specialist.md +133 -0
- package/agents/game/ue-umg-specialist.md +131 -0
- package/dist/cli.js +57 -13
- package/docs/RELEASE-SETUP.md +1 -1
- package/docs/SKILLS-CATALOG.md +67 -4
- package/docs/USER-GUIDE.md +77 -72
- package/docs/agent-hierarchy.md +21 -1
- package/docs/presentations/build_arcane_deck.py +2 -2
- package/docs/presentations/build_arcane_deck_12.py +2 -2
- package/hooks/detect-unreal.sh +90 -0
- package/package.json +2 -2
- package/profiles/freelance.yaml +43 -0
- package/profiles/job-hunt.yaml +5 -2
- package/profiles/unreal-dev.yaml +97 -0
- package/rules/drafter-reviewer.md +16 -3
- package/rules/freelance-guardrails.md +53 -0
- package/rules/gamedev/unreal-code.md +125 -0
- package/skills/career-registry/SKILL.md +95 -0
- package/skills/career-registry/scripts/career_registry.py +488 -0
- package/skills/client-screen/SKILL.md +83 -0
- package/skills/client-screen/references/red-flags.md +95 -0
- package/skills/cover-letter/SKILL.md +4 -3
- package/skills/cv-tailor/SKILL.md +11 -2
- package/skills/freelance-deliver/SKILL.md +90 -0
- package/skills/freelance-hunt/SKILL.md +126 -0
- package/skills/freelance-hunt/references/templates/Connects.md +39 -0
- package/skills/freelance-hunt/references/templates/Contrato.md +60 -0
- package/skills/freelance-hunt/references/templates/Propuesta.md +66 -0
- package/skills/freelance-kickoff/SKILL.md +94 -0
- package/skills/freelance-pipeline/SKILL.md +109 -0
- package/skills/freelance-pipeline/scripts/import_history.py +425 -0
- package/skills/freelance-profile/SKILL.md +93 -0
- package/skills/freelance-proposal/SKILL.md +112 -0
- package/skills/freelance-scan/SKILL.md +196 -0
- package/skills/freelance-scan/references/dedup.md +35 -0
- package/skills/freelance-scan/references/platforms.md +167 -0
- package/skills/freelance-scan/scripts/freelance_search.py +1077 -0
- package/skills/install-mcp/SKILL.md +135 -46
- package/skills/install-mcp/references/unreal-operations.md +55 -0
- package/skills/interview-prep/SKILL.md +11 -3
- package/skills/job-aplicar/SKILL.md +5 -1
- package/skills/job-hunt/SKILL.md +17 -0
- package/skills/job-outcome/SKILL.md +15 -1
- package/skills/job-upskill/SKILL.md +10 -2
- package/skills/ue-actor-component-architecture/SKILL.md +509 -0
- package/skills/ue-actor-component-architecture/references/actor-lifecycle.md +301 -0
- package/skills/ue-actor-component-architecture/references/component-types.md +592 -0
- package/skills/ue-ai-navigation/SKILL.md +526 -0
- package/skills/ue-ai-navigation/references/behavior-tree-patterns.md +392 -0
- package/skills/ue-ai-navigation/references/behavior-tree-workflow.md +107 -0
- package/skills/ue-ai-navigation/references/custom-bttask.md +104 -0
- package/skills/ue-ai-navigation/references/eqs-reference.md +423 -0
- package/skills/ue-animation-system/SKILL.md +521 -0
- package/skills/ue-animation-system/references/anim-notify-reference.md +486 -0
- package/skills/ue-animation-system/references/locomotion-setup.md +550 -0
- package/skills/ue-async-threading/SKILL.md +433 -0
- package/skills/ue-async-threading/references/thread-safety-guide.md +213 -0
- package/skills/ue-async-threading/references/threading-patterns.md +345 -0
- package/skills/ue-audio-system/SKILL.md +527 -0
- package/skills/ue-audio-system/references/audio-setup-patterns.md +700 -0
- package/skills/ue-blueprints/SKILL.md +134 -0
- package/skills/ue-blueprints/references/communication.md +82 -0
- package/skills/ue-character-movement/SKILL.md +475 -0
- package/skills/ue-character-movement/references/cmc-extension-patterns.md +335 -0
- package/skills/ue-character-movement/references/movement-pipeline.md +189 -0
- package/skills/ue-cpp-foundations/SKILL.md +533 -0
- package/skills/ue-cpp-foundations/references/components-and-gc.md +107 -0
- package/skills/ue-cpp-foundations/references/container-patterns.md +544 -0
- package/skills/ue-cpp-foundations/references/delegate-patterns.md +497 -0
- package/skills/ue-cpp-foundations/references/gameplay-classes-cpp.md +136 -0
- package/skills/ue-cpp-foundations/references/property-specifiers.md +306 -0
- package/skills/ue-data-assets-tables/SKILL.md +527 -0
- package/skills/ue-data-assets-tables/references/asset-loading-patterns.md +306 -0
- package/skills/ue-data-assets-tables/references/data-driven-design.md +378 -0
- package/skills/ue-editor-tools/SKILL.md +523 -0
- package/skills/ue-editor-tools/references/detail-customization-patterns.md +395 -0
- package/skills/ue-editor-tools/references/editor-module-setup.md +480 -0
- package/skills/ue-game-features/SKILL.md +477 -0
- package/skills/ue-game-features/references/experience-system.md +222 -0
- package/skills/ue-game-features/references/game-feature-patterns.md +308 -0
- package/skills/ue-gameplay-abilities/SKILL.md +518 -0
- package/skills/ue-gameplay-abilities/references/ability-task-reference.md +391 -0
- package/skills/ue-gameplay-abilities/references/gameplay-effect-reference.md +397 -0
- package/skills/ue-gameplay-abilities/references/gas-setup-patterns.md +369 -0
- package/skills/ue-gameplay-framework/SKILL.md +466 -0
- package/skills/ue-gameplay-framework/references/framework-class-map.md +243 -0
- package/skills/ue-input-system/SKILL.md +394 -0
- package/skills/ue-input-system/references/cpp-setup.md +131 -0
- package/skills/ue-input-system/references/enhanced-input-workflow.md +117 -0
- package/skills/ue-input-system/references/input-action-reference.md +731 -0
- package/skills/ue-mass-entity/SKILL.md +476 -0
- package/skills/ue-mass-entity/references/mass-entity-patterns.md +319 -0
- package/skills/ue-mass-entity/references/mass-fragment-reference.md +119 -0
- package/skills/ue-materials-rendering/SKILL.md +526 -0
- package/skills/ue-materials-rendering/references/material-parameter-reference.md +216 -0
- package/skills/ue-materials-rendering/references/post-process-settings.md +383 -0
- package/skills/ue-module-build-system/SKILL.md +487 -0
- package/skills/ue-module-build-system/references/build-cs-reference.md +418 -0
- package/skills/ue-module-build-system/references/common-build-errors.md +381 -0
- package/skills/ue-naming-conventions/SKILL.md +142 -0
- package/skills/ue-naming-conventions/references/asset-name-modifiers.md +233 -0
- package/skills/ue-naming-conventions/references/content-structure.md +83 -0
- package/skills/ue-networking-replication/SKILL.md +452 -0
- package/skills/ue-networking-replication/references/replication-patterns.md +526 -0
- package/skills/ue-networking-replication/references/rpc-decision-guide.md +393 -0
- package/skills/ue-niagara-effects/SKILL.md +531 -0
- package/skills/ue-niagara-effects/references/niagara-data-interfaces.md +491 -0
- package/skills/ue-niagara-effects/references/niagara-parameter-types.md +153 -0
- package/skills/ue-niagara-effects/references/niagara-workflow.md +115 -0
- package/skills/ue-packaging/SKILL.md +116 -0
- package/skills/ue-physics-collision/SKILL.md +423 -0
- package/skills/ue-physics-collision/references/collision-channel-setup.md +218 -0
- package/skills/ue-physics-collision/references/trace-patterns.md +499 -0
- package/skills/ue-procedural-generation/SKILL.md +505 -0
- package/skills/ue-procedural-generation/references/pcg-node-reference.md +381 -0
- package/skills/ue-procedural-generation/references/procedural-mesh-patterns.md +940 -0
- package/skills/ue-project-context/SKILL.md +305 -0
- package/skills/ue-sequencer-cinematics/SKILL.md +506 -0
- package/skills/ue-sequencer-cinematics/references/sequencer-patterns.md +629 -0
- package/skills/ue-serialization-savegames/SKILL.md +524 -0
- package/skills/ue-serialization-savegames/references/save-system-architecture.md +705 -0
- package/skills/ue-state-trees/SKILL.md +489 -0
- package/skills/ue-state-trees/references/state-tree-mass-integration.md +184 -0
- package/skills/ue-state-trees/references/state-tree-patterns.md +321 -0
- package/skills/ue-testing-debugging/SKILL.md +520 -0
- package/skills/ue-testing-debugging/references/automation-test-patterns.md +387 -0
- package/skills/ue-testing-debugging/references/profiling-commands.md +357 -0
- package/skills/ue-ui-umg-slate/SKILL.md +431 -0
- package/skills/ue-ui-umg-slate/references/common-ui-setup.md +484 -0
- package/skills/ue-ui-umg-slate/references/widget-types.md +487 -0
- package/skills/ue-world-level-streaming/SKILL.md +518 -0
- package/skills/ue-world-level-streaming/references/streaming-patterns.md +414 -0
- package/templates/gamedev/unreal-project-context.md +107 -0
|
@@ -1,45 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: install-mcp
|
|
3
|
-
description: "
|
|
3
|
+
description: "Conecta Claude Code con el MCP del engine: Unity (package UPM CoplayDev) o Unreal (plugins del engine). Detecta, registra y verifica. Usar para: mcp unity, mcp unreal, setup MCP del editor."
|
|
4
4
|
category: "gamedev"
|
|
5
|
-
argument-hint: "[--secondary] [project-path]"
|
|
5
|
+
argument-hint: "[unity | unreal] [--secondary] [project-path]"
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Glob, Grep, Bash, Write, Edit
|
|
8
8
|
---
|
|
9
|
-
# install-mcp —
|
|
9
|
+
# install-mcp — Engine MCP Setup
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Conecta Claude Code con el editor del engine via MCP. Los dos engines difieren en algo importante:
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
| | Unity | Unreal |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| **De donde viene el MCP** | Package de terceros (CoplayDev) | **Plugins propios del engine** (`ModelContextProtocol` + `AllToolsets`) |
|
|
16
|
+
| **Se suma algo al proyecto** | Si — package UPM en `Packages/manifest.json` | **No** — ya viene con el engine, solo se habilita |
|
|
17
|
+
| **Que hace este skill** | Instalar + registrar + verificar | Habilitar + conectar + verificar |
|
|
15
18
|
|
|
16
|
-
>
|
|
19
|
+
> En Unreal **no hay nada que instalar**. El server y los toolsets son plugins del engine; el trabajo es habilitarlos en el `.uproject`, prender auto-start y generar el `.mcp.json`. No agregues packages ni plugins de terceros.
|
|
17
20
|
|
|
18
21
|
## Input
|
|
19
22
|
|
|
20
|
-
- `
|
|
21
|
-
-
|
|
23
|
+
- `unity` | `unreal` (opcional): fuerza el engine. Sin argumento, se autodetecta.
|
|
24
|
+
- `project-path` (opcional): raiz del proyecto. Default: directorio actual.
|
|
25
|
+
- `--secondary` (opcional, **solo Unity**): ademas del primario, instala el package CoderGamester.
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
25
|
-
##
|
|
29
|
+
## Phase 1: Detectar el engine
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
Desde `project-path` (o cwd), buscar marcadores:
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
| Marcador | Engine |
|
|
34
|
+
|---|---|
|
|
35
|
+
| `Packages/manifest.json` + `ProjectSettings/ProjectVersion.txt` | Unity |
|
|
36
|
+
| `*.uproject` (o `GenerateProjectFiles.*` en un source tree) | Unreal |
|
|
32
37
|
|
|
33
|
-
Si
|
|
38
|
+
- Si el argumento explicito contradice los marcadores, **avisar y preguntar** antes de seguir.
|
|
39
|
+
- Si no hay marcadores, **abortar**: "No parece un proyecto Unity ni Unreal. Pasa la ruta con `/install-mcp [unity|unreal] <project-path>`."
|
|
40
|
+
- Si aparecen ambos, preguntar cual.
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
Confirmar el engine detectado y la ruta antes de tocar archivos.
|
|
36
43
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Phase 2A: Unity — instalar y registrar
|
|
47
|
+
|
|
48
|
+
### 1. Verificar prerrequisitos
|
|
49
|
+
|
|
50
|
+
`uv --version` y `uvx --version` (server del primario). Si falta `uv`, **no abortar**: avisar, dar el comando y seguir editando el manifest.
|
|
51
|
+
|
|
52
|
+
- Windows: `winget install astral-sh.uv`
|
|
53
|
+
- alternativa: `pipx install uv`
|
|
54
|
+
|
|
55
|
+
Solo con `--secondary`: `node --version`. Si falta, avisar (el server CoderGamester no podra correr).
|
|
41
56
|
|
|
42
|
-
###
|
|
57
|
+
### 2. Agregar el package UPM
|
|
43
58
|
|
|
44
59
|
Leer `Packages/manifest.json`. Dentro de `"dependencies"`, agregar **solo si la key no existe** (idempotente — nunca duplicar):
|
|
45
60
|
|
|
@@ -47,61 +62,135 @@ Leer `Packages/manifest.json`. Dentro de `"dependencies"`, agregar **solo si la
|
|
|
47
62
|
"com.coplaydev.unity-mcp": "https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main"
|
|
48
63
|
```
|
|
49
64
|
|
|
50
|
-
Con `--secondary`, agregar
|
|
65
|
+
Con `--secondary`, agregar tambien:
|
|
51
66
|
|
|
52
67
|
```json
|
|
53
68
|
"com.gamelovers.mcp-unity": "https://github.com/CoderGamester/mcp-unity.git"
|
|
54
69
|
```
|
|
55
70
|
|
|
56
|
-
Usar `Edit` puntual sobre el bloque `dependencies` preservando el JSON
|
|
71
|
+
Usar `Edit` puntual sobre el bloque `dependencies` preservando el JSON valido (indentacion, comas). Si la key ya estaba, reportar "ya presente, sin cambios".
|
|
57
72
|
|
|
58
|
-
> **Antes de escribir**, mostrar el diff propuesto sobre `manifest.json` (y el `.mcp.json` del paso
|
|
73
|
+
> **Antes de escribir**, mostrar el diff propuesto sobre `manifest.json` (y el `.mcp.json` del paso 3B si aplica) y pedir aprobacion al usuario. No editar sin confirmacion.
|
|
59
74
|
|
|
60
|
-
###
|
|
61
|
-
|
|
62
|
-
Dos caminos, en orden de preferencia:
|
|
75
|
+
### 3. Registrar el server en Claude Code
|
|
63
76
|
|
|
64
77
|
**A. Recomendado (auto-config desde Unity).** Instruir al usuario:
|
|
65
|
-
1. Abrir el proyecto en Unity (
|
|
78
|
+
1. Abrir el proyecto en Unity (importara el package nuevo).
|
|
66
79
|
2. `Window → MCP for Unity`.
|
|
67
|
-
3.
|
|
80
|
+
3. Usar el boton de auto-configuracion para **Claude Code** — instala el server `uv` y registra el cliente.
|
|
68
81
|
|
|
69
|
-
**B. Fallback manual.**
|
|
82
|
+
**B. Fallback manual.** Registrar el transport HTTP de CoplayDev:
|
|
70
83
|
|
|
71
84
|
```bash
|
|
72
85
|
claude mcp add --transport http unity-mcp http://127.0.0.1:8080
|
|
73
86
|
```
|
|
74
87
|
|
|
75
|
-
|
|
76
|
-
|
|
88
|
+
> El server solo responde con Unity abierto y `MCP for Unity` activo. Registrar el cliente no levanta el server.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase 2B: Unreal — habilitar y conectar
|
|
93
|
+
|
|
94
|
+
Nada se instala. Tres pasos, en orden. **No edites el `.uproject` sin confirmar la ruta con el usuario.**
|
|
95
|
+
|
|
96
|
+
### 1. Habilitar los plugins del engine en el `.uproject`
|
|
97
|
+
|
|
98
|
+
Dos plugins, ambos requeridos. `ModelContextProtocol` es el server y el transport; `AllToolsets` provee las tools. Con solo `ModelContextProtocol` el server arranca pero **no expone ninguna tool**.
|
|
99
|
+
|
|
100
|
+
En el array `Plugins` del `.uproject`, asegurar las dos entradas:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{ "Name": "ModelContextProtocol", "Enabled": true },
|
|
104
|
+
{ "Name": "AllToolsets", "Enabled": true }
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Si el array no existe, crearlo. Si alguna entrada esta en `"Enabled": false`, pasarla a `true`. Mostrar el diff y pedir aprobacion antes de escribir.
|
|
108
|
+
|
|
109
|
+
`AllToolsets` es un agregador editor-only con `EnabledByDefault` apagado, asi que hay que habilitarlo explicitamente. Para exponer solo un subconjunto, habilitar los plugins de toolset puntuales en lugar de `AllToolsets`.
|
|
110
|
+
|
|
111
|
+
### 2. Prender auto-start
|
|
77
112
|
|
|
78
|
-
|
|
113
|
+
Por default el server queda detenido. Para arrancarlo a mano en una sesion: `ModelContextProtocol.StartServer` desde la consola del editor.
|
|
79
114
|
|
|
80
|
-
|
|
115
|
+
Para que arranque en cada launch, agregar al config per-user del editor:
|
|
81
116
|
|
|
82
|
-
|
|
117
|
+
`<Project>/Saved/Config/<Platform>Editor/EditorPerProjectUserSettings.ini`
|
|
118
|
+
|
|
119
|
+
```ini
|
|
120
|
+
[/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]
|
|
121
|
+
bAutoStartServer=True
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Es per-user y no va a source control. Overrides opcionales si el default choca con otro servicio local:
|
|
125
|
+
|
|
126
|
+
```ini
|
|
127
|
+
ServerPortNumber=8000
|
|
128
|
+
ServerUrlPath=/mcp
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Alternativa por command line: `-ModelContextProtocolStartServer` (y `-ModelContextProtocolPort=<port>`). Preferir el `.ini` porque persiste.
|
|
132
|
+
|
|
133
|
+
### 3. Generar el `.mcp.json`
|
|
134
|
+
|
|
135
|
+
El editor no lo escribe solo.
|
|
136
|
+
|
|
137
|
+
**Con el editor corriendo (preferido):** `ModelContextProtocol.GenerateClientConfig ClaudeCode` en la consola (o `All` para todos los clientes soportados). Re-correrlo mergea sobre el JSON existente, asi que es seguro despues de cambiar puerto o path.
|
|
138
|
+
|
|
139
|
+
El destino depende del tipo de build:
|
|
140
|
+
- **Source build** (el repo contiene `Engine/`): se escribe en la raiz del workspace, al lado de `Engine/` — **no** junto al `.uproject`.
|
|
141
|
+
- **Installed/launcher build**: se escribe junto al `.uproject`.
|
|
142
|
+
|
|
143
|
+
**Sin lanzar el editor**, escribir a mano en la ubicacion que corresponda:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"unreal-mcp": {
|
|
149
|
+
"type": "http",
|
|
150
|
+
"url": "http://127.0.0.1:8000/mcp"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Ajustar la URL si se override el puerto o el path en el paso 2.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Phase 3: Verificar
|
|
83
161
|
|
|
84
162
|
```bash
|
|
85
163
|
claude mcp list
|
|
86
164
|
```
|
|
87
165
|
|
|
88
|
-
Reportar si
|
|
166
|
+
Reportar si el server aparece **conectado** (`unity-mcp` o `unreal-mcp` segun el engine). En Unreal, dos senales extra: el Output Log muestra mensajes de arranque del MCP, y `list_toolsets` responde.
|
|
89
167
|
|
|
90
|
-
|
|
168
|
+
**Si NO esta conectado, avisar explicitamente** y aclarar que las operaciones de engine (scenes, assets, blueprints, prefabs, UI wiring) NO se aplicaron — no asumir exito.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Phase 4: Resumen
|
|
91
173
|
|
|
92
174
|
Reportar:
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
175
|
+
- Engine detectado y ruta del proyecto.
|
|
176
|
+
- **Unity:** que keys se agregaron a `manifest.json` (o si ya estaban).
|
|
177
|
+
- **Unreal:** que plugins se habilitaron en el `.uproject`, si se prendio auto-start, y donde quedo el `.mcp.json`.
|
|
178
|
+
- Estado del registro y resultado de `claude mcp list`.
|
|
179
|
+
- Proximo paso manual, si queda alguno.
|
|
97
180
|
|
|
98
181
|
**Verdict:**
|
|
99
|
-
- **READY** —
|
|
100
|
-
- **PENDING** —
|
|
101
|
-
- **BLOCKED** — falta un prerrequisito (`uv` ausente) o no es un proyecto
|
|
182
|
+
- **READY** — server registrado y conectado en `claude mcp list`.
|
|
183
|
+
- **PENDING** — config lista, pero falta abrir el editor para que el server conecte (Unity: `Window → MCP for Unity`; Unreal: lanzar el editor con auto-start, o `ModelContextProtocol.StartServer`). Avisar que las operaciones de engine aun NO estan disponibles.
|
|
184
|
+
- **BLOCKED** — falta un prerrequisito (`uv` ausente en Unity), el `.uproject` no se pudo editar, o no es un proyecto valido. Indicar el fix.
|
|
102
185
|
|
|
103
|
-
|
|
186
|
+
## Next Steps
|
|
187
|
+
|
|
188
|
+
- **Unity:** `/unity-game-architecture` o `/scaffold-unity` para trabajar el proyecto
|
|
189
|
+
- **Unreal:** `/ue-project-context` primero (el resto de los `ue-*` lo leen), despues `/ue-cpp-foundations` o `/ue-blueprints`
|
|
190
|
+
- Si el server no conecta, ver el troubleshooting de la referencia del engine que corresponda
|
|
104
191
|
|
|
105
192
|
---
|
|
106
193
|
|
|
107
|
-
> → Read references/manual-setup.md for
|
|
194
|
+
> → Read references/manual-setup.md for el flujo manual de Unity (`Window → MCP for Unity`), troubleshooting (uv no encontrado, puerto 8080 ocupado, MCP no conecta) y la variante secundaria CoderGamester
|
|
195
|
+
|
|
196
|
+
> → Read references/unreal-operations.md for los console commands de Unreal (`StartServer`, `StopServer`, `RefreshTools`, `GenerateClientConfig`), el modo tool-search y la matriz de troubleshooting (puerto ocupado, toolset faltante, tool calls que cuelgan)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Unreal MCP — Console Commands, Settings, Recovery
|
|
2
|
+
|
|
3
|
+
> Adapted from the `unreal-mcp` skill in [EpicGames/unreal-engine-skills-for-claude-code-plugin](https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin) (MIT). References to the upstream `setup.md` were remapped to Phase 2B of this skill.
|
|
4
|
+
|
|
5
|
+
Read this when something is misbehaving with the Unreal MCP server (tools missing, port collision, stale tool registry), or when you need a non-default configuration.
|
|
6
|
+
|
|
7
|
+
Remember: the server and toolsets are **engine plugins**. Nothing here installs anything into the project — it enables, restarts and reconfigures what the engine already ships.
|
|
8
|
+
|
|
9
|
+
## Console commands
|
|
10
|
+
|
|
11
|
+
Run these from the Unreal Editor console (`~`).
|
|
12
|
+
|
|
13
|
+
| Command | Use it for |
|
|
14
|
+
|---------|------------|
|
|
15
|
+
| `ModelContextProtocol.StartServer [port]` | Start the MCP server. Pass a port to override the default (e.g. when 8000 is in use). |
|
|
16
|
+
| `ModelContextProtocol.StopServer` | Stop the server. Useful if the registry is in a bad state and you want a clean restart. |
|
|
17
|
+
| `ModelContextProtocol.RefreshTools` | Re-register every toolset. Run this after enabling a new toolset plugin. |
|
|
18
|
+
| `ModelContextProtocol.GenerateClientConfig <client>` | Regenerate the per-client config file. Args: `ClaudeCode`, `Cursor`, `VSCode`, `Gemini`, `Codex`, `All`. |
|
|
19
|
+
|
|
20
|
+
Codex is the exception for config generation: it uses TOML and the writer refuses to overwrite an existing `.codex/config.toml`. Edit that one by hand if it already exists.
|
|
21
|
+
|
|
22
|
+
## Tool-search mode
|
|
23
|
+
|
|
24
|
+
`tools/list` has two modes, controlled by the `bEnableToolSearch` UPROPERTY on `UModelContextProtocolSettings` (default `true`):
|
|
25
|
+
|
|
26
|
+
- **`True`** (default): `tools/list` returns only `list_toolsets`, `describe_toolset`, `call_tool`. Toolset tools are dispatched server-side through `call_tool` and stay out of the prompt; the catalog never changes mid-session, so the prompt cache stays warm.
|
|
27
|
+
- **`False`**: every toolset tool is registered as a native MCP tool at startup, with schemas visible upfront.
|
|
28
|
+
|
|
29
|
+
Override in the same `.ini` used for `bAutoStartServer` (see Phase 2B):
|
|
30
|
+
|
|
31
|
+
```ini
|
|
32
|
+
[/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]
|
|
33
|
+
bEnableToolSearch=False
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Troubleshooting matrix
|
|
37
|
+
|
|
38
|
+
| Symptom | What to do |
|
|
39
|
+
|---------|------------|
|
|
40
|
+
| `unreal-mcp` not in `claude mcp list` / `/mcp`, or `list_toolsets` errors | The editor isn't running, or the server isn't started. Launch the editor and run `ModelContextProtocol.StartServer`, or enable `bAutoStartServer` per Phase 2B. Then check the Output Log for startup errors. |
|
|
41
|
+
| Editor logs "Failed to listen on port" | Another process holds the default port. Change `ServerPortNumber` in the per-user `EditorPerProjectUserSettings.ini`, or pass `-ModelContextProtocolPort=<port>` on the next launch. Restart the editor, then re-run `ModelContextProtocol.GenerateClientConfig ClaudeCode` to refresh `.mcp.json`. |
|
|
42
|
+
| A toolset you expect (e.g. `NiagaraTools`) is missing | Run `ModelContextProtocol.RefreshTools`. If still missing, that toolset's plugin may not be enabled in the `.uproject` — check there. Remember `AllToolsets` is the aggregator and is off by default. |
|
|
43
|
+
| Tool calls hang or return errors | The editor may be busy compiling, loading a level, or in PIE. Wait and retry. For long compiles, prefer `LiveCodingToolset.CompileLiveCoding`, which returns when the compile actually finishes. |
|
|
44
|
+
| `AIAssistantToolset.GetDockedContext` returns empty | The Claude Code tab must be docked inside an asset editor (Blueprint, Material, etc.) to provide docked context. Undocked, that tool has nothing to report. |
|
|
45
|
+
| Sequential tool calls collide | Tool calls execute on the game thread. Don't issue them in parallel, even when they look independent. Serialize them. |
|
|
46
|
+
|
|
47
|
+
## Safety notes when driving the editor
|
|
48
|
+
|
|
49
|
+
These matter because every MCP call mutates live editor state on the game thread:
|
|
50
|
+
|
|
51
|
+
- **Save before and after** any bulk change. MCP edits are not always undoable, especially across compilation boundaries.
|
|
52
|
+
- **Wait for compilation** to finish before issuing further calls.
|
|
53
|
+
- **Never parallelize** tool calls.
|
|
54
|
+
- **Read every result.** Many tools return a status that flips between success and failure without raising. Treat anything that isn't an explicit success as a stop.
|
|
55
|
+
- **Mind PIE.** Editor-only tools, asset creation in particular, behave differently while Play-in-Editor is active.
|
|
@@ -4,7 +4,7 @@ description: "Prepare for a job interview: company research, likely question ban
|
|
|
4
4
|
argument-hint: "[application-note | company + role + round]"
|
|
5
5
|
category: "career"
|
|
6
6
|
user-invocable: true
|
|
7
|
-
allowed-tools: Read, Glob, Grep, Write, Edit, WebFetch
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Edit, WebFetch, Task
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Interview Prep - Preparación de entrevista
|
|
@@ -57,13 +57,21 @@ Preparás al usuario para una entrevista concreta: research de la empresa, banco
|
|
|
57
57
|
1. Leer aplicación + empresa + perfil. WebFetch del sitio/notas de la empresa.
|
|
58
58
|
2. Crear nota en `06-Entrevistas/` con el template `Entrevista`.
|
|
59
59
|
3. Llenar research, banco de preguntas (marcando las top), STAR de las 3-5 historias clave, preguntas a hacer, red flags.
|
|
60
|
-
4. Ofrecer un **mock
|
|
60
|
+
4. Ofrecer un **mock** con el agente `mock-interviewer` (ver abajo).
|
|
61
61
|
5. Post-entrevista: ayudar a registrar feedback y definir próximo paso / follow-up (con `/cold-outreach`).
|
|
62
62
|
|
|
63
|
+
## El mock va en un agente, no en esta sesión
|
|
64
|
+
|
|
65
|
+
El mock lo corre el agente `mock-interviewer`, no vos. La razón es dura: vos acabás de escribir las respuestas STAR del usuario, así que ibas a preguntar exactamente lo que preparó, iba a salir perfecto, y el usuario iba a entrar a la entrevista real con confianza falsa.
|
|
66
|
+
|
|
67
|
+
Al lanzarlo, pasale **inline**: el JD, la ronda, y el CV que se mandó. **No** le pases el perfil maestro ni la nota de `06-Entrevistas/` con las respuestas preparadas - eso invalida el simulacro, y el agente tiene instrucción de rechazarlos.
|
|
68
|
+
|
|
69
|
+
Cuando devuelve el feedback, tu trabajo es registrarlo: agregá en la nota de `06-Entrevistas/` qué respuestas hay que rehacer y por qué. Ese es el valor que queda para la próxima ronda.
|
|
70
|
+
|
|
63
71
|
## Idioma
|
|
64
72
|
|
|
65
73
|
En el idioma de la entrevista. Preparar respuestas en inglés si el rol es internacional, aunque la prep se converse en español.
|
|
66
74
|
|
|
67
75
|
## Handoff
|
|
68
76
|
|
|
69
|
-
Pedí aprobación (approval) antes de escribir la nota en `06-Entrevistas/`. Cuando la prep está READY, ofrecé
|
|
77
|
+
Pedí aprobación (approval) antes de escribir la nota en `06-Entrevistas/`. Cuando la prep está READY, ofrecé el mock con `mock-interviewer` y registrá su feedback; post-entrevista, seguí con `/cold-outreach` para el follow-up.
|
|
@@ -54,7 +54,11 @@ Usar el skill **cover-letter** según el canal de aplicación (formulario ATS
|
|
|
54
54
|
|
|
55
55
|
## Paso 7 - Reviewer (regla drafter-reviewer, obligatorio)
|
|
56
56
|
|
|
57
|
-
Seguir `.claude/rules/drafter-reviewer.md`: lanzar
|
|
57
|
+
Seguir `.claude/rules/drafter-reviewer.md`: lanzar el agente **`cv-reviewer`** de contexto fresco con el JD + borradores inline y el perfil usado. Aplicar la Parte A (reemplazos exactos) e incorporar lo relevante de la Parte B. Una sola ronda. Never stuff keywords: los gaps se reconocen en el cover, no se rellenan en el CV. Normalizar guiones largos del texto sugerido.
|
|
58
|
+
|
|
59
|
+
**Segunda lente si el rol es senior o la postulación importa:** lanzar `hiring-manager` **en paralelo** con `cv-reviewer` (no en cadena). Contesta si el CV convence a quien contrata, que es una pregunta distinta a si pasa el filtro. Sus 3 preguntas van a `## Notas` de la nota: son material directo de `/interview-prep`.
|
|
60
|
+
|
|
61
|
+
Si el directorio de agentes no está instalado, el fallback con `general-purpose` está en la regla.
|
|
58
62
|
|
|
59
63
|
## Paso 8 - CONFIRMACIÓN 2: aprobar CV final
|
|
60
64
|
|
package/skills/job-hunt/SKILL.md
CHANGED
|
@@ -67,6 +67,7 @@ Según el estado del workspace, recomendar el skill siguiente (ver routing).
|
|
|
67
67
|
| Corrida de búsqueda con CLIs y dedup entre corridas | `/job-scrape` |
|
|
68
68
|
| Postulación completa (nota + CV + cover + review + PDF) | `/job-aplicar` |
|
|
69
69
|
| Registrar resultado/avance de una postulación | `/job-outcome` |
|
|
70
|
+
| ¿Ya me postulé acá? / exportar el registro a CSV | `/career-registry` |
|
|
70
71
|
| Gaps de skills agregados + plan de estudio | `/job-upskill` |
|
|
71
72
|
| Adaptar CV a una oferta | `/cv-tailor` |
|
|
72
73
|
| Exportar CV a PDF ATS | `/cv-ats-export` |
|
|
@@ -75,6 +76,22 @@ Según el estado del workspace, recomendar el skill siguiente (ver routing).
|
|
|
75
76
|
| Optimizar perfil de LinkedIn | `/linkedin-optimize` |
|
|
76
77
|
| Crear/actualizar portfolio web | `/portfolio-site` |
|
|
77
78
|
| Preparar una entrevista | `/interview-prep` |
|
|
79
|
+
| Diagnosticar por qué se frena la búsqueda | agente `career-strategist` (vía `/job-upskill`) |
|
|
80
|
+
|
|
81
|
+
## Los 4 agentes del perfil
|
|
82
|
+
|
|
83
|
+
El perfil instala `agents/career/`. Los agentes existen por una sola razón: **hay lecturas que solo sirven con contexto fresco**. Vos no podés revisar un CV que acabás de escribir, ni entrevistar a alguien cuyas respuestas preparadas leíste. Son read-only: devuelven análisis, los archivos los escribe la sesión principal.
|
|
84
|
+
|
|
85
|
+
| Agente | Contesta | Lo lanza |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| `cv-reviewer` | ¿Pasa el filtro del ATS y del recruiter? | `/job-aplicar`, `/cv-tailor`, `/cover-letter` |
|
|
88
|
+
| `hiring-manager` | ¿Convence a quien contrata? (evidencia de impacto, no keywords) | `/job-aplicar`, `/cv-tailor` (opcional) |
|
|
89
|
+
| `mock-interviewer` | ¿Aguanta la entrevista real? | `/interview-prep` |
|
|
90
|
+
| `career-strategist` | ¿Por qué me frenan siempre en la misma etapa? | `/job-upskill` (10+ aplicaciones resueltas) |
|
|
91
|
+
|
|
92
|
+
`cv-reviewer` y `hiring-manager` se lanzan **en paralelo** cuando van los dos: son lentes independientes, encadenarlos solo suma latencia.
|
|
93
|
+
|
|
94
|
+
Si el usuario instaló el perfil sin el directorio de agentes, la regla `drafter-reviewer` documenta el fallback con `general-purpose`.
|
|
78
95
|
|
|
79
96
|
## Workflow estándar para una nueva oportunidad
|
|
80
97
|
|
|
@@ -35,14 +35,28 @@ Empresa/oferta indicada: `$ARGUMENTS`
|
|
|
35
35
|
- `rechazado` con feedback → anotar la lección en la nota; si se acumulan 3+ resoluciones, ofrecer `/job-upskill` y revisar los criterios de búsqueda contra los resultados reales.
|
|
36
36
|
- `sin_respuesta` a los 10-14 días → ofrecer follow-up con `/cold-outreach`.
|
|
37
37
|
- `contratado` → 🎉 y actualizar el resto de las aplicaciones abiertas (¿retirarse de procesos?).
|
|
38
|
+
- **Freelance** - `en_conversacion` → ofrecer ensayar con el agente `discovery-call`; `contrato_activo` → crear la nota en `08-Contratos/`; `sin_respuesta` o `rechazado` acumulados (10+ propuestas resueltas) → ofrecer `/freelance-pipeline`, que es donde se ve si el problema es la propuesta o el targeting.
|
|
38
39
|
|
|
39
40
|
6. **Confirmar** al usuario qué se registró (nota, campos tocados, fila del dashboard).
|
|
40
41
|
|
|
41
42
|
## Vocabulario de `estado` (frontmatter)
|
|
42
43
|
|
|
44
|
+
Depende del `tipo:` de la nota. Leelo primero: son dos pipelines distintos y confundirlos rompe el dashboard y los reportes.
|
|
45
|
+
|
|
46
|
+
**`tipo: aplicacion` (empleo, perfil `+job-hunt`):**
|
|
47
|
+
|
|
43
48
|
`interesado → aplicado → entrevista → oferta` y cierra en: `contratado | rechazado | sin_respuesta | declinada | descartado`
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
**`tipo: freelance` (propuestas, perfil `+freelance`):**
|
|
51
|
+
|
|
52
|
+
`interesado → screeneado → propuesta_enviada → en_conversacion → contrato_activo → entregado` y cierra en: `ganado_cerrado | sin_respuesta | rechazado | descartado | disputa`
|
|
53
|
+
|
|
54
|
+
En freelance hay dos registros extra que no existen en empleo, y sin ellos `/freelance-pipeline` no puede calcular nada:
|
|
55
|
+
|
|
56
|
+
- Al marcar `propuesta_enviada`, preguntar y registrar **cuántos Connects costó** (frontmatter `connects_gastados`) y agregar la fila al ledger de `07-Recursos/Connects - <año>.md`.
|
|
57
|
+
- Si la oferta se cerró sin que el cliente contratara a nadie, el resultado en el ledger es `oferta_nunca_contrato`, no `sin_respuesta`. Son cosas distintas: la primera es Connects perdidos por mal screening, la segunda es tu propuesta que no convenció.
|
|
58
|
+
|
|
59
|
+
Emojis del dashboard: ⬜ interesado/screeneado · ✅ aplicado/propuesta_enviada · 📅 entrevista/oferta/en_conversacion · 🔨 contrato_activo/entregado · ❌ rechazado/sin_respuesta/declinada · 🚫 descartado/cerrada · ⚠️ disputa
|
|
46
60
|
|
|
47
61
|
## Reglas
|
|
48
62
|
|
|
@@ -4,7 +4,7 @@ description: "Aggregate skill gaps across all scored job applications, weigh the
|
|
|
4
4
|
argument-hint: "[url | nota de aplicación]"
|
|
5
5
|
category: "career"
|
|
6
6
|
user-invocable: true
|
|
7
|
-
allowed-tools: Read, Glob, Grep, Write, Bash, WebFetch, WebSearch
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Bash, WebFetch, WebSearch, Task
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# /job-upskill - Análisis de gaps y plan de estudio
|
|
@@ -13,6 +13,14 @@ Detecta qué skills te están costando puntos de match en las ofertas reales y a
|
|
|
13
13
|
|
|
14
14
|
Argumento: `$ARGUMENTS` (vacío = modo agregado; URL o nota = modo targeted)
|
|
15
15
|
|
|
16
|
+
## Antes del plan: ¿el gap es real o de presentación?
|
|
17
|
+
|
|
18
|
+
Este skill asume que la respuesta es estudiar. A veces no lo es: si la experiencia está en el perfil maestro pero no llega al CV, el plan de estudio manda al usuario a aprender meses lo que ya sabe.
|
|
19
|
+
|
|
20
|
+
En **modo agregado con 10+ aplicaciones resueltas**, lanzar primero el agente `career-strategist` (contexto fresco, read-only). Diagnostica el embudo completo y separa gap real de gap de presentación. Si el punto de fuga no es la etapa técnica, decílo antes del heatmap: el plan de estudio no es la palanca y conviene ir a `/cv-tailor` o `/interview-prep`.
|
|
21
|
+
|
|
22
|
+
Con menos de 10 resueltas, saltear: no hay volumen para un embudo y el propio agente lo va a rechazar. Seguí directo al modo agregado.
|
|
23
|
+
|
|
16
24
|
## Modo agregado (sin argumento)
|
|
17
25
|
|
|
18
26
|
1. **Recolectar evidencia.** Grep de `match_score:` en `03-Aplicaciones/*.md` (excluir `_index`; aceptar también el campo legacy `score:` de notas viejas). De cada nota leer: `match_score`, `estado`, `perfil`, y los gaps mencionados en las secciones "Match con mi perfil" / "Gaps reales" y los gaps reconocidos en `## Notas`.
|
|
@@ -55,4 +63,4 @@ Argumento: `$ARGUMENTS` (vacío = modo agregado; URL o nota = modo targeted)
|
|
|
55
63
|
|
|
56
64
|
## Handoff
|
|
57
65
|
|
|
58
|
-
Reporte COMPLETE en `07-Recursos/`. Retomar el pipeline con `/job-aplicar` en las ofertas abiertas, o `/job-scrape` para una corrida nueva apuntando a los gaps que ya se están cerrando.
|
|
66
|
+
Reporte COMPLETE en `07-Recursos/`. Retomar el pipeline con `/job-aplicar` en las ofertas abiertas, o `/job-scrape` para una corrida nueva apuntando a los gaps que ya se están cerrando. Si el `career-strategist` ubicó la fuga fuera de la etapa técnica, el siguiente paso es ese (`/cv-tailor`, `/interview-prep` o `/job-search`), no el plan de estudio.
|