@punal_manalan/blender-project-harness 1.0.1 → 1.0.2
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.
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blender-workflow-harness",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "blender-workflow-harness",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
12
12
|
"zod": "3.25.76"
|
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,282 +1,369 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
-
|
|
209
|
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
1
|
+
<h1 align="center">Blender Project Harness</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>A guarded, evidence-driven Blender production workflow for Kilo.</strong><br>
|
|
5
|
+
Requirements, bounded scene changes, worker tickets, sealed evidence, independent graders, and clean project history.
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://github.com/punal100/blender-project-harness/releases"><img alt="GitHub release" src="https://img.shields.io/github/v/release/punal100/blender-project-harness?display_name=tag&sort=semver"></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/@punal_manalan/blender-project-harness"><img alt="npm" src="https://img.shields.io/badge/npm-1.0.2-CB3837?logo=npm&logoColor=white"></a>
|
|
11
|
+
<a href="https://github.com/punal100/blender-project-harness/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/punal100/blender-project-harness"></a>
|
|
12
|
+
<img alt="Node" src="https://img.shields.io/badge/node-%3E%3D22-brightgreen">
|
|
13
|
+
<img alt="Blender" src="https://img.shields.io/badge/Blender-5.2-orange">
|
|
14
|
+
<img alt="MCP for Blender" src="https://img.shields.io/badge/MCP%20for%20Blender-2.2.6-blueviolet">
|
|
15
|
+
<a href="https://github.com/punal100/blender-project-harness/issues"><img alt="Issues" src="https://img.shields.io/github/issues/punal100/blender-project-harness"></a>
|
|
16
|
+
<a href="https://github.com/punal100/blender-project-harness/pulls"><img alt="PRs welcome" src="https://img.shields.io/badge/PRs-welcome-brightgreen"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="#why">Why</a> |
|
|
21
|
+
<a href="#features">Features</a> |
|
|
22
|
+
<a href="#install">Install</a> |
|
|
23
|
+
<a href="#quick-start">Quick start</a> |
|
|
24
|
+
<a href="#how-it-works">How it works</a> |
|
|
25
|
+
<a href="#safety-model">Safety</a> |
|
|
26
|
+
<a href="#tests">Tests</a> |
|
|
27
|
+
<a href="#star-history">Star history</a>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Why
|
|
33
|
+
|
|
34
|
+
Blender projects are easy to start and hard to keep honest. A scene can look right in the viewport while the geometry, topology, assets, exports, and project history are wrong. A long agent session can also lose track of what changed, what was reviewed, and what is safe to commit.
|
|
35
|
+
|
|
36
|
+
Blender Project Harness makes the workflow explicit:
|
|
37
|
+
|
|
38
|
+
- requirements are confirmed before work starts;
|
|
39
|
+
- scene edits are bounded by object names, paths, and declared scenes;
|
|
40
|
+
- a worker executes one ticketed apply batch at a time;
|
|
41
|
+
- visual evidence is inspected, not assumed;
|
|
42
|
+
- the final scene, renders, facts, manifest, and evidence key are sealed;
|
|
43
|
+
- independent graders review frozen evidence;
|
|
44
|
+
- project commits and checkpoints are harness-owned;
|
|
45
|
+
- assets, licences, and exports are verified before completion.
|
|
46
|
+
|
|
47
|
+
The user stays in plain language. The harness handles the production contract.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Features
|
|
52
|
+
|
|
53
|
+
| Area | What you get |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Guarded lifecycle | Registration, goals, bounded changes, tickets, WIP renders, seals, reviews, and checkpoints |
|
|
56
|
+
| Single writer | One Blender instance and one apply writer at a time; parallel read-only inspection is allowed |
|
|
57
|
+
| Exact scope | Object names, project-relative paths, declared scenes, requirements, and milestones |
|
|
58
|
+
| Evidence contract | Saved scene hash, per-scene renders, camera evidence, scene facts, manifest, and evidence key |
|
|
59
|
+
| Geometry checks | Dimensions, transforms, materials, topology, non-manifold edges, boundary edges, and loose vertices |
|
|
60
|
+
| Independent grading | Visual, technical, and spec graders with primary and backup models |
|
|
61
|
+
| Review modes | Off, Single, and All |
|
|
62
|
+
| Autonomy modes | Fully Autonomous and Partially Autonomous |
|
|
63
|
+
| Asset governance | Intake, hashes, MIME, dimensions, source, licence, sidecars, and strict asset checks |
|
|
64
|
+
| Multi-scene support | Declared scenes, duplicate/link semantics, per-scene evidence, and a master Video Sequencer scene |
|
|
65
|
+
| Export receipts | Format, path, bytes, SHA-256, source scene, and signature verification |
|
|
66
|
+
| Kilo integration | MCP routing, plugin permissions, goal state, skills, and subagent delegation |
|
|
67
|
+
| Installer | Versioned install, config preservation, dependency install, and automatic backups |
|
|
68
|
+
| Documentation | Setup guide, expected-flow reference, project templates, and contract tests |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Architecture
|
|
73
|
+
|
|
74
|
+
```mermaid
|
|
75
|
+
flowchart LR
|
|
76
|
+
U[User] --> K[Kilo]
|
|
77
|
+
K --> H[Blender Project Harness]
|
|
78
|
+
H --> T[Apply ticket]
|
|
79
|
+
T --> W[Worker]
|
|
80
|
+
W --> B[Blender]
|
|
81
|
+
B --> S[Saved scene]
|
|
82
|
+
S --> E[Sealed evidence]
|
|
83
|
+
E --> G[Visual, technical, spec graders]
|
|
84
|
+
G --> R[Review verdict]
|
|
85
|
+
R --> C[Commit and checkpoint]
|
|
86
|
+
C --> D[Completion]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
The harness is the only writer of workflow state. Workers execute assigned tickets. Graders read sealed evidence and write only their own reports.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Install
|
|
94
|
+
|
|
95
|
+
### Requirements
|
|
96
|
+
|
|
97
|
+
| Requirement | Version / notes |
|
|
98
|
+
|---|---|
|
|
99
|
+
| Blender | 5.2 is the current tested baseline; the MCP addon requires 3.0+ |
|
|
100
|
+
| MCP for Blender | Pinned `mcp-for-blender==2.2.6` |
|
|
101
|
+
| Node.js | 22 or newer |
|
|
102
|
+
| npm | Bundled with Node.js |
|
|
103
|
+
| uv / uvx | Required for the Blender MCP addon |
|
|
104
|
+
| Kilo | VS Code extension or CLI |
|
|
105
|
+
|
|
106
|
+
Install the Blender addon:
|
|
107
|
+
|
|
108
|
+
```powershell
|
|
109
|
+
uvx --from mcp-for-blender==2.2.6 mcp-for-blender install-addon
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Enable **Interface: MCP for Blender** under **Edit > Preferences > Add-ons**, then restart Blender.
|
|
113
|
+
|
|
114
|
+
### From npm
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
npx @punal_manalan/blender-project-harness@latest install
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
The 1.0.2 package is the current release. If the registry does not have it yet, use the release
|
|
121
|
+
tarball or a source checkout below.
|
|
122
|
+
|
|
123
|
+
### From the release tarball
|
|
124
|
+
|
|
125
|
+
```powershell
|
|
126
|
+
npm install --save-dev https://github.com/punal100/blender-project-harness/releases/download/v1.0.2/punal_manalan-blender-project-harness-1.0.2.tgz
|
|
127
|
+
npx blender-project-harness install
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### From source
|
|
131
|
+
|
|
132
|
+
```powershell
|
|
133
|
+
git clone https://github.com/punal100/blender-project-harness.git
|
|
134
|
+
Set-Location blender-project-harness
|
|
135
|
+
npm ci --prefix .kilo/blender-project-harness/tools/harness
|
|
136
|
+
npm run doctor --prefix .kilo/blender-project-harness/tools/harness
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### What the installer does
|
|
140
|
+
|
|
141
|
+
- Copies the harness into `.kilo/blender-project-harness/tools/`.
|
|
142
|
+
- Writes `VERSION`, `install.json`, `config.json`, and a copy of the package `AGENTS.md`.
|
|
143
|
+
- Runs `npm ci` for the installed harness.
|
|
144
|
+
- Updates `.kilo/kilo.jsonc` and `.kilo/plugins/blender-workflow.js`.
|
|
145
|
+
- Adds missing `AGENTS.md`, `.kilo/skills/`, `.kilo/agent/`, and `Blender/README.md`.
|
|
146
|
+
- Adds the local config and backups to `.gitignore`.
|
|
147
|
+
|
|
148
|
+
Run the same command to update. The previous installation is moved to:
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
.temp/blender-project-harness-backups/<version>-<timestamp>/
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The old copy is preserved, not deleted. The new version keeps `config.json` unless you pass
|
|
155
|
+
`--reset-config`. The package `AGENTS.md` is always available at
|
|
156
|
+
`.kilo/blender-project-harness/AGENTS.md`; the root `AGENTS.md` is only installed when missing and is
|
|
157
|
+
never overwritten.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Quick start
|
|
162
|
+
|
|
163
|
+
Open the workspace in Kilo and describe the project. Include the subject, style, key objects, camera
|
|
164
|
+
and lighting preferences, dimensions, deliverables, and whether external files or paid media
|
|
165
|
+
generation are allowed.
|
|
166
|
+
|
|
167
|
+
```text
|
|
168
|
+
Create a small cozy retro computer room. Use warm lamp light, a cool window accent, a desk with a
|
|
169
|
+
CRT monitor, keyboard, mug, chair, rug, and wall decor. Make one hero camera view and save the scene
|
|
170
|
+
inside a new Blender project.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
The agent then:
|
|
174
|
+
|
|
175
|
+
1. Confirms requirements and asks for the workflow mode: **Fully Autonomous** or **Partially
|
|
176
|
+
Autonomous**.
|
|
177
|
+
2. Asks for the review mode: **Off**, **Single**, or **All**.
|
|
178
|
+
3. Scaffolds the project, fills its records, registers it, and starts the goal.
|
|
179
|
+
4. Launches Blender through the harness and saves the bootstrap scene.
|
|
180
|
+
5. Builds the project in bounded changes using worker apply tickets.
|
|
181
|
+
6. Renders and inspects WIP evidence, then seals a review round.
|
|
182
|
+
7. Dispatches the configured graders and aggregates their reports.
|
|
183
|
+
8. Commits the scoped change, checkpoints the project, and reports the result.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## How it works
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
status and capabilities
|
|
191
|
+
-> requirements confirmation
|
|
192
|
+
-> workflow and review mode selection
|
|
193
|
+
-> scaffold, documents, registration, and goal
|
|
194
|
+
-> bounded scene change
|
|
195
|
+
-> apply ticket and worker execution
|
|
196
|
+
-> save and WIP render
|
|
197
|
+
-> finalize and seal
|
|
198
|
+
-> independent graders
|
|
199
|
+
-> review verdict
|
|
200
|
+
-> scoped commit and checkpoint
|
|
201
|
+
-> completion
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Bounded changes
|
|
205
|
+
|
|
206
|
+
- One observable outcome per change.
|
|
207
|
+
- Exact object names and project-relative paths.
|
|
208
|
+
- Declared scenes for multi-scene work.
|
|
209
|
+
- Requirement and milestone scoping.
|
|
210
|
+
- One open change per project.
|
|
211
|
+
- Apply batches up to ten operations.
|
|
212
|
+
- Ticket expiry and change-window recovery.
|
|
213
|
+
- Worker-only apply execution.
|
|
214
|
+
|
|
215
|
+
### Sealed evidence
|
|
216
|
+
|
|
217
|
+
A sealed round captures:
|
|
218
|
+
|
|
219
|
+
- the saved `.blend` hash;
|
|
220
|
+
- per-scene renders;
|
|
221
|
+
- camera evidence;
|
|
222
|
+
- scene facts including dimensions and topology;
|
|
223
|
+
- a manifest with every evidence hash;
|
|
224
|
+
- a reproducible evidence key;
|
|
225
|
+
- a review round folder;
|
|
226
|
+
- the strict asset-check receipt when assets were used.
|
|
227
|
+
|
|
228
|
+
Graders must cite the same scene hash and evidence key. Missing evidence or tooling problems produce
|
|
229
|
+
`BLOCKED`, not a pass.
|
|
230
|
+
|
|
231
|
+
### Review modes
|
|
232
|
+
|
|
233
|
+
| Mode | Behavior |
|
|
234
|
+
|---|---|
|
|
235
|
+
| Off | Self-review only |
|
|
236
|
+
| Single | One configured grader |
|
|
237
|
+
| All | Every configured grader, up to `max_parallel` |
|
|
238
|
+
|
|
239
|
+
Every worker and grader has a primary and backup provider/model/reasoning variant. A missing or
|
|
240
|
+
disabled grader is a tooling failure, not a silent pass.
|
|
241
|
+
|
|
242
|
+
### Assets and exports
|
|
243
|
+
|
|
244
|
+
- User-supplied files enter through guarded `intake`.
|
|
245
|
+
- Downloads stage public HTTPS assets only; they do not import or register automatically.
|
|
246
|
+
- Generated media is agent-owned and requires permission before credits are spent.
|
|
247
|
+
- External assets require `SOURCE.md` and `LICENSE.txt`.
|
|
248
|
+
- Non-redistributable binaries stay out of Git.
|
|
249
|
+
- Strict `check_assets` must pass on the final unchanged scene.
|
|
250
|
+
- Exports receive a verified receipt with format, path, bytes, SHA-256, source scene, and signature.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Safety model
|
|
255
|
+
|
|
256
|
+
| Guarantee | Behavior |
|
|
257
|
+
|---|---|
|
|
258
|
+
| One Blender instance | The workspace runs one guarded instance at a time |
|
|
259
|
+
| One writer | Apply operations execute through one worker at a time |
|
|
260
|
+
| Bounded edits | Every scene change has exact names, paths, and declared scenes |
|
|
261
|
+
| No raw Python | Arbitrary Blender Python and project Python execution are blocked |
|
|
262
|
+
| No manual project Git | Project commits go through the harness |
|
|
263
|
+
| No silent pass | Missing evidence and grader failures produce `BLOCKED` |
|
|
264
|
+
| No fake assets | Generated or downloaded files must be inspected, registered, and licensed |
|
|
265
|
+
| No hidden exports | Every export needs a verified receipt |
|
|
266
|
+
| No frozen-record edits | Registration changes require explicit re-registration |
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Configuration
|
|
271
|
+
|
|
272
|
+
Worker and grader configuration lives at:
|
|
273
|
+
|
|
274
|
+
```text
|
|
275
|
+
.kilo/blender-project-harness/config.json
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
The tracked template is:
|
|
279
|
+
|
|
280
|
+
```text
|
|
281
|
+
.kilo/blender-project-harness/config.example.json
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Review and autonomy modes are frozen at registration. Changing them requires explicit
|
|
285
|
+
re-registration, not an in-place edit.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Tests
|
|
290
|
+
|
|
291
|
+
```powershell
|
|
292
|
+
npm run test:installer
|
|
293
|
+
npm test --prefix .kilo/blender-project-harness/tools/harness
|
|
294
|
+
python -B -m unittest discover -s .kilo/blender-project-harness/tools -p "test_*.py" -v
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
The Node suite is comprehensive and can take several minutes on Windows. Use `npm run pack:check` to
|
|
298
|
+
inspect the npm package contents without publishing.
|
|
299
|
+
|
|
300
|
+
Current release checks:
|
|
301
|
+
|
|
302
|
+
- Installer tests: `6/6` passing.
|
|
303
|
+
- Python harness contract tests: `21` passing with `112` subtests.
|
|
304
|
+
- Targeted engine, plugin, shell-policy, and workspace tests: passing.
|
|
305
|
+
- Doctor: passing.
|
|
306
|
+
- npm package: `91` files, no `node_modules`, no local `config.json`.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## What's in the repo
|
|
311
|
+
|
|
312
|
+
```text
|
|
313
|
+
AGENTS.md Internal agent contract and workflow rules
|
|
314
|
+
README.md This human setup and usage guide
|
|
315
|
+
package.json npm package metadata and installer entry point
|
|
316
|
+
bin/ npm installer executable
|
|
317
|
+
installer/ Versioned installer, update, and backup logic
|
|
318
|
+
.kilo/ Workspace Kilo config, skills, agents, and plugin
|
|
319
|
+
.kilo/blender-project-harness/
|
|
320
|
+
Harness, config, and version records
|
|
321
|
+
.kilo/blender-project-harness/config.example.json
|
|
322
|
+
Default worker and grader configuration
|
|
323
|
+
.kilo/blender-project-harness/config.json
|
|
324
|
+
Local worker and grader configuration (ignored)
|
|
325
|
+
.kilo/blender-project-harness/tools/harness/
|
|
326
|
+
Guarded Node.js workflow, MCP bridge, and harness tests
|
|
327
|
+
.kilo/blender-project-harness/tools/harness/EXPECTED_FLOW.md
|
|
328
|
+
Developer reference for the expected lifecycle and evidence
|
|
329
|
+
Blender/ Blender project collection
|
|
330
|
+
Commands/ Approved non-project shell-command records
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
[`Blender/README.md`](Blender/README.md) covers the project-collection conventions. The generic
|
|
334
|
+
harness lifecycle and evidence contract are documented in
|
|
335
|
+
[`.kilo/blender-project-harness/tools/harness/EXPECTED_FLOW.md`](.kilo/blender-project-harness/tools/harness/EXPECTED_FLOW.md).
|
|
336
|
+
Licensing lives in [`LICENSE`](LICENSE) and [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Star history
|
|
341
|
+
|
|
342
|
+
<a href="https://www.star-history.com/#punal100/blender-project-harness&Date">
|
|
343
|
+
<picture>
|
|
344
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=punal100/blender-project-harness&type=Date&theme=dark">
|
|
345
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=punal100/blender-project-harness&type=Date">
|
|
346
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=punal100/blender-project-harness&type=Date">
|
|
347
|
+
</picture>
|
|
348
|
+
</a>
|
|
349
|
+
|
|
350
|
+
Star history is provided by [star-history.com](https://www.star-history.com/).
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Known limits
|
|
355
|
+
|
|
356
|
+
- No arbitrary Blender Python execution.
|
|
357
|
+
- No browser or authentication bypass.
|
|
358
|
+
- No automatic licence acceptance.
|
|
359
|
+
- Media generation is agent-owned; the harness intakes and records the result.
|
|
360
|
+
- Multi-scene, media-generation, and export paths are implemented, but the current live acceptance
|
|
361
|
+
run is a single scene. Verify those paths in the project where they are used.
|
|
362
|
+
- One live Blender instance and one writer at a time; parallel read-only inspection is allowed.
|
|
363
|
+
- Windows is the primary documented setup environment.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## License
|
|
368
|
+
|
|
369
|
+
MIT. See [`LICENSE`](LICENSE).
|