What do I edit?
This table is the whole point. Bookmark it.
| File | Edit? | Meaning |
|---|---|---|
ir.build.ts | Yes | First-party / code-authored source. Change topology here. |
workflow.ts (imported package) | Yes, if you adopt it | Convenience emission from cwf import / cwf init. Optional. |
Generated node SDK (*/nodes, src/nodes/gen) | No | From /object_info. Regenerated by cwf codegen. |
workflow.ir.json | No | Generated semantic artifact. |
comfy.workflow.json | Usually generated | Package manifest. Edit only when you intend to change published metadata. |
comfy.lock.json | Update on purpose | Environment lock. Recapture with cwf lock, do not tweak hashes. |
Comfy API JSON / prompt.template.json | No | Compiled execution artifact. |
object_info.json | No | Snapshot of a live Comfy. Recapture, don't patch. |
NODES.md / catalog.json | No | Codegen companions. |
Two normal package shapes
Imported package
workflow.json ← you already had this
↓ cwf init / import
workflow.ir.json ← generated
workflow.ts ← optional, editable convenience
comfy.workflow.json ← generated, then you expose paramsFirst-party / code-authored package
ir.build.ts ← you edit this
↓ build
workflow.ir.json ← generated
comfy.workflow.json ← generated / derived
↓ compile
API JSON ← generatedRule of thumb
If changing a value changes which nodes exist, that is topology. Put it in TypeScript.
If it only changes a widget (prompt, seed, steps, a filename on the server), that is a runtime parameter.
Linked from
This page is linked from the homepage, the code-first quickstart, the package guide, and product integration on purpose. The mix-up (editing IR because "IR is canonical") is the most expensive conceptual bug in this project.