Cut the stale README and check.ps1 claims

README no longer tells the reader to run `brokkr-daemon -- serve`, a
subcommand that does not exist; it lists the real subcommands and says the
daemon is a CLI over cache files. The Unity install path is F:/. check.ps1
takes -CultLibRoot (default F:\Projects\CultLib) and fails, instead of
skipping, when the CultLib packages directory is absent; the Blender CultMesh
smoke loads the three Python packages through blender_target._load_cultmesh.

Cut M2 of docs/brokkr-adoption-cut.md. check.ps1 is a Starfire check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-29 13:50:45 +02:00
commit 404237a8ef
2 changed files with 26 additions and 14 deletions

View file

@ -32,8 +32,8 @@ broker.
- `surfaces/blender/brokkr_bridge`: Blender add-on target backed by
CultLib's Python CultMesh node/server, with optional debug export/import
probes.
- `brokkr-daemon`: Rust daemon skeleton that emits Brokkr's provider
advertisement and command policy.
- `brokkr-daemon`: Rust CLI that emits Brokkr's provider advertisement and
command policy and runs the Unity/Blender sync pass.
## First Smoke
@ -55,17 +55,26 @@ timeline bindings, and receipts. Unity and Blender editor plugins publish those
documents through CultMesh so a daemon sync loop can translate them into
host-owned command intents without stealing scene truth.
## Unity Smoke
## Commands
```powershell
cargo run -p brokkr-daemon -- serve
```
`brokkr-daemon` is a command-line tool over cache files, not a running service.
It has four subcommands:
Add the Unity package by local path:
- `provider` (alias `smoke`): print the provider advertisement.
- `sync-contract`: print the sync contract.
- `sync-once --unity-cache PATH --blender-cache PATH [--dry-run]`: run one sync
pass between the two editor caches.
- `sync-loop --unity-cache PATH --blender-cache PATH [--interval-ms N]
[--max-passes N] [--dry-run]`: repeat the sync pass.
## Unity Install
Add the Unity package by local path, alongside `org.gamecult.cultlib` (see
`surfaces/unity/README.md`):
```json
"com.gamecult.brokkr": "file:E:/Projects/Brokkr/surfaces/unity/Packages/com.gamecult.brokkr"
"com.gamecult.brokkr": "file:F:/Projects/Brokkr/surfaces/unity/Packages/com.gamecult.brokkr"
```
Then open `GameCult > Brokkr` in Unity and publish a snapshot to the local
daemon.
Then open `GameCult > Brokkr` in Unity. The window mirrors editor state to a
CultMesh cache file in the project.

View file

@ -1,3 +1,5 @@
param([string]$CultLibRoot = "F:\Projects\CultLib")
$ErrorActionPreference = "Stop"
function Assert-NativeSuccess {
@ -80,11 +82,12 @@ try {
& $pythonExe -m py_compile surfaces\blender\brokkr_bridge\blender_target.py surfaces\blender\brokkr_bridge\__init__.py
Assert-NativeSuccess "Blender adapter Python compile"
$cultLibPySrc = "E:\Projects\CultLib-main-work\packages\cultcache-py\src"
if (Test-Path $cultLibPySrc) {
& $pythonExe -c "import sys, tempfile; sys.path.insert(0, r'$cultLibPySrc'); sys.path.insert(0, r'surfaces\blender\brokkr_bridge'); import blender_target; cultmesh, cultcache = blender_target._load_cultmesh(r'$cultLibPySrc'); doc = cultcache.define_document_type('brokkr.check.v0'); node = cultmesh.CultMesh.start_node(tempfile.NamedTemporaryFile(suffix='.ccmp').name, runtime_id='brokkr-check'); node.database.register_document(doc); node.database.put(doc, 'check', {'ok': True}); assert node.database.snapshot()['brokkr.check.v0']['check']['ok'] is True; server = cultmesh.CultMesh.serve_node(node, host='127.0.0.1', port=0); assert server.port > 0; server.stop()"
Assert-NativeSuccess "Blender adapter CultMesh import"
$cultLibPackages = Join-Path $CultLibRoot "packages"
if (-not (Test-Path $cultLibPackages)) {
throw "CultLib packages directory not found: $cultLibPackages (pass -CultLibRoot)."
}
& $pythonExe -c "import sys, tempfile; sys.path.insert(0, r'surfaces\blender\brokkr_bridge'); import blender_target; cultmesh, cultcache = blender_target._load_cultmesh(r'$cultLibPackages'); doc = cultcache.define_document_type('brokkr.check.v0'); node = cultmesh.CultMesh.start_node(tempfile.NamedTemporaryFile(suffix='.ccmp').name, runtime_id='brokkr-check'); node.database.register_document(doc); node.database.put(doc, 'check', {'ok': True}); assert node.database.snapshot()['brokkr.check.v0']['check']['ok'] is True; server = cultmesh.CultMesh.serve_node(node, host='127.0.0.1', port=0); assert server.port > 0; server.stop()"
Assert-NativeSuccess "Blender adapter CultMesh import"
}
finally {
Pop-Location