The 94 symlinks in ~/.agents/skills and the full second copy in ~/.pi/agent/skills/blender-skills were the same packs under two roots, so Pi reported a collision for every one of them on every start and silently dropped the loser. - The 93 upstream packs, the shared references/ notes and the LICENSE now live once, flat and one level down, in the common agent folder ~/.pi/agent/skills/. - The repository keeps only the project-specific pack: .agents/skills/blender-skills/blender-director/. Its ../references/ links now point at ~/.pi/agent/skills/references/ because it no longer sits beside them. Its SKILL.md declared metadata.role twice (specialist, orchestrator), which is fatal YAML - the pack had never actually loaded. - AGENTS.md and Docs/toolchain.md describe the split and warn against copying the common packs back into the repository. Verified by walking all three discovery roots and parsing every frontmatter: 97 skills loaded, 0 malformed, 0 collisions.
7.1 KiB
Toolchain
Pinned versions for this project. Record the exact build string a tool reports, not just the version family, and re-record it after every upgrade. The most common cause of scale, material, and import mismatches is silently mixing two versions of the same tool.
Audited 2026-11-06, updated 2026-11-07 on the development workstation.
State: initial setup is complete. Every pinned tool below has been exercised on real work — the engine compiled game code and packaged a build, Blender/MPFB/Blosm produced committed assets, and QGIS's PROJ produced the project origin. The demo level (/Game/Hollywood/DemoMap) and packaged build exercise the engine path end to end; the only unexercised path is a fresh checkout, tracked as a v0.1.0 release check.
Pins
| Component | Pinned | Source | Status |
|---|---|---|---|
| Bazzite | 45.20261105 (Kinoite, bazzite-dx-nvidia), kernel 7.2.15-ogc1.1.fc45 |
ujust update / rpm-ostree upgrade |
Booted and default. 44.20261026 retained as rollback. |
| NVIDIA driver | 615.78.08, open kernel module |
Bazzite image | Verified: desktop session renders through the RTX 5070 Ti; Vulkan GPU0 is the RTX 5070 Ti on driver 615.78.08, conformance 1.4.3.3. |
| Unreal Engine | 5.8.4 — CL 58902052, ++UE5+Release-5.8, promoted build |
Epic download | Fully extracted to /run/media/system/DATA/Engines/UE_5.8.4 (73 GiB on disk). Validated 2026-11-07: headless -NullRHI smoke test and full editor GUI launch with Vulkan RHI on the RTX 5070 Ti (loader 1.4.350, VULKAN_SM5, map check 0 errors). Pin is final. The verified 5.2.0 archive stays as fallback. |
| Unreal Linux toolchain | system clang 23.1.4 (Fedora 45) |
rpm-ostree layer |
This 5.8.4 build ships no bundled Linux clang (no clang++ anywhere in the engine tree, verified 2026-11-07); UBT compiles game code with the system toolchain. Accepted 2026-11-07: game-module compile and link (GigLineEditor, libUnrealEditor-GigLine.so) and a packaged Development build. Game targets use BuildSettingsVersion.V7 + EngineIncludeOrderVersion.Latest (Source/GigLine.Target.cs, Source/GigLineEditor.Target.cs) to share the installed editor's build environment. |
| Blender | 5.2.0 LTS (build 2026-07-14) |
Flatpak org.blender.Blender |
Installed. Run headless from the app tree with LD_LIBRARY_PATH + BLENDER_USER_SCRIPTS; flatpak run is unavailable to the agent shell. |
| MPFB | 2.0.18 (extension bl_ext.blender_org.mpfb, blender_version_min 4.2.0) |
Blender extensions platform | Installed. Fully verified 2026-11-07: generates a default human (19 158 verts, UVs), standard 137-bone rig with weights, and a baked 1024² skin; the character imports into Unreal as a SkeletalMesh with Skeleton, Material, and Texture. Headless runs must set XDG_CONFIG_HOME=$HOME/.var/app/org.blender.Blender/config or the extension is not discovered (Art/blender/README.md). |
| Blosm | 2.7.28 (legacy add-on, bl_info.blender = (4, 5, 0), manifest min 4.2) |
blosm.com | Installed and importing on Blender 5.2 in 3Dsimple mode. Two headless workarounds are required; see Art/blender/README.md. Paid material asset pack lives in ~/Downloads/blosm-assets/ and is not committed. |
| QGIS | 4.2.3, Flatpak stable, runtime org.kde.Platform 6.11; bundled PROJ 9.9.0 |
flathub | Installed 2026-11-06. Stale lts branch (3.28.9, EOL Qt5 runtime) uninstalled 2026-11-07; only stable remains. |
| Git | 2.56.0 |
Bazzite image | Installed. |
| Git LFS | 3.7.1 |
rpm-ostree layer |
Installed; git lfs install run, lfs filter active. |
| Host build tools | clang 23.1.4, cmake 4.3.0, ninja 1.13.2 |
rpm-ostree layer |
Installed. These are host tools, not the engine toolchain. |
| distrobox | 1.8.2.5 |
Bazzite image | Installed. |
| Python (tooling) | 3.14.8 system |
Bazzite image | Installed. Use a venv for geo/tool scripts. |
| ffmpeg | 8.1.3 |
Bazzite image | Installed. |
Unreal Engine 5.9 is in preview and Unreal Engine 6 has been announced as of November 2026. Neither is a pin candidate for 0.x. One engine family per milestone; a family change is a breaking change and belongs in CHANGELOG.md.
Agent skills
| Item | Value |
|---|---|
| Package | blender-skills 1.3.0, upstream commit 8f778d2, MIT |
| Source | https://github.com/arjun988/blender-skills |
| Location | Local only, common root: ~/.pi/agent/skills/ (93 packs, references/, LICENSE) — not distributed with the repository |
| Project-specific | .agents/skills/blender-skills/blender-director/ in this repository |
| Installed | 2026-11-06, copied from a local checkout of .claude/skills/ without edits; flattened to the common root on 2026-11-10 |
These are instructions and reference notes for agents, not code that runs in a build. Four of them assume a Blender MCP server; this project drives Blender headlessly through bpy (Tools/*.py) instead, so MCP is optional and nothing depends on it.
To update: copy .claude/skills/ from a newer upstream checkout over the local directory, then record the new version and commit hash in this table. Skills are read on demand, so the harness catalog may need a reload before they appear as first-class entries.
Pin rules
- One engine build per release. Record the launcher or source build, the patch version, and the build date in this file and in the release entry.
- Blender stays on an LTS family (
5.2). Every add-on version used for a shipped asset is recorded here. - Upgrading a pinned tool mid-milestone requires re-running the scale test and the Blender→Unreal import check before further asset work.
- Never install a tool from an unverified source. Record the download origin next to the version.
Open compatibility risks
- Blosm on Blender 5.2 — worked around, not resolved.
3Dsimpleimport works headless (see the blockout). Two headless-only defects are patched around in the script rather than in the add-on: an asset-directory check that fires beforemodeis honoured, and a background-mode import path that uses a broken relative import when the default level table is empty.3Drealisticmode has not been exercised; it loads the paid material pack and previously failed inside the realistic renderer setup. If realistic materials are wanted, test that mode separately before depending on it. - MPFB 2.0.18 on Blender 5.2. The extension declares Blender >= 4.2 but predates 5.x. Generation verified 2026-11-07:
mpfb.create_humanworks headless onceXDG_CONFIG_HOMEpoints at the Flatpak config tree. Remaining acceptance test is the0.1.0requirement to export one MPFB character with baked materials and a deform skeleton and import it into Unreal. - QGIS 4.x recipes. Only
stable(4.2.3) is installed now; the oldltswas removed 2026-11-07. QGIS 4.x uses Qt6, so any processing recipe copied from a 3.x tutorial needs re-checking before it is trusted. - Driver and Vulkan validation on Bazzite. Not an officially supported Unreal distribution. The engine install itself is proven (full init headlessly); only the Vulkan RHI on the RTX 5070 Ti is unproven, and one desktop-terminal run settles it.