Merge pull request 'fix: sync context contract, tool roster, and version with current platform' (#2) from fix/sync-context-and-tools into main

Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
2026-09-07 09:38:42 +00:00
3 changed files with 44 additions and 34 deletions
+6 -7
View File
@@ -30,16 +30,15 @@ Sign in once at [spaghetti.gg](https://spaghetti.gg) — your account is created
## Project context (optional) ## Project context (optional)
Your UE5 project can have a `.spaghetti` file at its root: Your UE5 project can be linked to a Spaghetti team and project. With the Spaghetti editor connector (UE 5.8+) installed, the link lives in the project's own configuration — Project Settings → Plugins → Spaghetti — persisted to `Config/DefaultGame.ini`:
```json ```ini
{ [/Script/Spaghetti.SpaghettiProjectSettings]
"team_id": "your-team-uuid", TeamId=your-team-uuid
"project_id": "your-project-uuid" ProjectId=your-project-uuid
}
``` ```
Team and project ids are UUIDs; a setup CLI that fetches them and writes this file automatically is coming. Until then, all tools also work on your personal account without this file. The file is safe to commit to Git/Perforce (no secrets). No secrets — safe to commit to Git/Perforce. Everyone opening the project works on the same team/project, while each user still signs in individually. Automatic team/project wiring is on the roadmap; until then, all tools also work on your personal account without any context. Details: [spaghetti.gg/docs](https://spaghetti.gg/docs).
## Structure ## Structure
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "unreal-workbench", "name": "unreal-workbench",
"version": "0.1.1", "version": "0.3.1",
"description": "Unreal Engine 5 agent tools — log analysis, asset auditing, engine docs research, script generation. Powered by Spaghetti Unreal AI Workbench.", "description": "Unreal Engine 5 agent tools — log analysis, asset auditing, engine docs research, script generation. Powered by Spaghetti Unreal AI Workbench.",
"author": { "author": {
"name": "Tinirau Ltd", "name": "Tinirau Ltd",
+37 -26
View File
@@ -1,7 +1,7 @@
--- ---
name: ue5-unreal name: ue5-unreal
description: > description: >
Unreal Engine 5 development assistant — crash analysis, asset auditing, Unreal Engine 5 development assistant — log analysis, asset auditing,
knowledge-base search, and Python script generation via Spaghetti Unreal AI knowledge-base search, and Python script generation via Spaghetti Unreal AI
Workbench. Call these tools when the user is working in a UE5 project and Workbench. Call these tools when the user is working in a UE5 project and
needs expert help with crashes, asset cleanup, engine docs, or editor needs expert help with crashes, asset cleanup, engine docs, or editor
@@ -17,28 +17,32 @@ connect — a browser window opens for sign-in at spaghetti.gg).
## Prerequisites ## Prerequisites
Your UE5 project must have a `.spaghetti` file at its root containing Project context is **optional**. If present, it lives in the project's
`team_id` and `project_id`. If no `.spaghetti` exists, the first tool call `Config/DefaultGame.ini` under `[/Script/Spaghetti.SpaghettiProjectSettings]`
returns an Agentic Directive instructing you to create one. Follow it. (`TeamId`, `ProjectId`, written by the Spaghetti editor connector's Project
Settings page). If the section is absent, tools run on the user's personal
account — that is a valid state, not an error. Do not hand-edit the ini while
the editor is running (the editor owns that file); context changes go through
the connector's Project Settings.
## Available tools (Phase 1 — MVP) ## Available tools
### Crash Investigator (`spaghetti/analyze_crash`) ### Log Analyzer (`analyze_logs`)
**When to call:** The user reports a UE5 crash, paste an output log, or **When to call:** The user reports a UE5 crash, pastes an output log, or
mentions a crash dump / minidump. mentions a crash dump / minidump — or wants structured findings from any UE
log file.
**What it does:** Parses the UE5 Output Log and crash dumps, identifies **What it does:** Parses the UE5 Output Log and crash dumps, identifies
root-cause nodes or C++ pointers, and returns a precise fix with context from root-cause nodes or C++ pointers, and returns a precise fix with context from
the proprietary UE5 bug knowledge base. the proprietary UE5 bug knowledge base.
**Input:** Crash log text (paste the Output Log contents or the relevant **Input:** Log text (paste the Output Log contents or the relevant section).
section).
**Safety:** Read-only analysis. Returns a diagnosis + suggested fix; does **Safety:** Read-only analysis. Returns a diagnosis + suggested fix; does
not modify project files. not modify project files.
### Asset Janitor (`spaghetti/audit_assets`) ### Asset Janitor (`tidy_assets`)
**When to call:** The user asks about asset cleanup, naming conventions, unused **When to call:** The user asks about asset cleanup, naming conventions, unused
assets, missing LODs, or compliance reports. assets, missing LODs, or compliance reports.
@@ -52,21 +56,26 @@ generates compliance reports.
**Safety:** Audit is read-only. If the user wants to apply fixes, use **Safety:** Audit is read-only. If the user wants to apply fixes, use
Tool-Maker to generate a dry-run Python script first. Tool-Maker to generate a dry-run Python script first.
### Smart Librarian (`spaghetti/search_kb`) ### Research tools (free)
**When to call:** The user asks about UE5 engine architecture, best practices, **When to call:** The user asks about UE5 engine architecture, best practices,
or how specific systems work. Also for snippet search (verified node setups, or how specific systems work — or wants to search their project's ingested
Blueprint patterns). logs and knowledge.
**What it does:** Semantic search over two knowledge bases: - **`search_docs_code`** — semantic search over curated UE engine
- **Team KB:** your project's private RAG index (studio docs, past bug documentation and source code.
resolutions, conventions). - **`search_patterns`** — known engine patterns and anti-patterns (verified
- **UE5 Engine Graph:** GraphRAG over the public UE 5.8 source for multi-hop node setups, Blueprint conventions).
reasoning about engine architecture. - **`search_logs_temporal`** — the project's ingested log events over time
(requires project context).
- **`query_temporal_relations`** — temporal knowledge-graph queries over the
project's entities and their relations (requires project context).
- **`investigate_incident`** — multi-source incident investigation across the
project's logs, entities, and relations (requires project context).
**Input:** Natural-language query about UE5 or your project's knowledge base. **Input:** Natural-language query about UE5 or the project's knowledge base.
### Tool-Maker (`spaghetti/make_tool`) ### Tool-Maker (`make_tool`)
**When to call:** The user wants to automate a UE5 editor task (batch-rename **When to call:** The user wants to automate a UE5 editor task (batch-rename
assets, apply materials, configure project settings, etc.). assets, apply materials, configure project settings, etc.).
@@ -92,9 +101,11 @@ script modifies assets, wrap in `unreal.ScopedTransaction` for undo support.
- **Use ScopedTransaction** for reversible operations (enables Ctrl+Z). - **Use ScopedTransaction** for reversible operations (enables Ctrl+Z).
- **Read the Output Log** for errors after any automated editor operation. - **Read the Output Log** for errors after any automated editor operation.
## Context ## Context and billing
The `.spaghetti` file at the project root identifies which team and project The `Config/DefaultGame.ini` Spaghetti section (see Prerequisites) identifies
this UE5 project belongs to. All tool calls are billed to the team's Spaghetti which team and project this UE5 project belongs to; billed tools draw from
wallet. If you see a `402 Payment Required`, direct the user to that team's wallet — the research tools are free. On `402 Payment Required`,
`spaghetti.gg/billing` to top up. direct the user to top up at `spaghetti.gg/billing`. A `403` with a portal
URL means the account needs to sign in or finish onboarding — open the URL;
retrying will not help.