[PR #37] [MERGED] feat(commands): title every built node and hand back a saved canvas link #37

Closed
opened 2026-10-26 22:34:17 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/comfy-skills/pull/37
Author: @mattmillerai
Created: 10/5/2026
Status: ✅ Merged
Merged: 10/22/2026
Merged by: @mattmillerai

Base: main ← Head: matt/be-18917-canvas-readable-builds


📝 Commits (3)

  • 1e6a7d5 feat(commands): title every built node and hand back a saved canvas link
  • 9883424 fix(commands): a workflow request skips the partner_generate shortcut
  • 4de818c fix(commands): route partner-node discovery at partner/, not the empty api node/

📊 Changes

14 files changed (+58 additions, -24 deletions)

View changed files

📝 README.md (+2 -0)
📝 claude-code/commands/generate-3d.md (+5 -3)
📝 claude-code/commands/generate-audio.md (+4 -2)
📝 claude-code/commands/generate-image.md (+4 -2)
📝 claude-code/commands/generate-video.md (+4 -2)
📝 claude-code/commands/remove-background.md (+3 -1)
📝 claude-code/commands/upscale-image.md (+3 -1)
📝 openclaw/comfy/SKILL.md (+11 -3)
📝 skills/comfy-generate-3d.md (+4 -2)
📝 skills/comfy-generate-audio.md (+4 -2)
📝 skills/comfy-generate-image.md (+4 -2)
📝 skills/comfy-generate-video.md (+4 -2)
📝 skills/comfy-remove-background.md (+3 -1)
📝 skills/comfy-upscale-image.md (+3 -1)

📄 Description

Summary

The generate-video/image/3D/audio, upscale-image and remove-background commands tell the agent to "Build a ComfyUI API-format workflow JSON" and then submit_workflow. No step leaves anything a user can read on the canvas, so someone who opens the result sees a grid of raw class names.

  • Titled nodes. Every "Build a ComfyUI API-format workflow JSON" step (6 commands in claude-code/commands/, plus their 6 legacy skills/ copies) now also says: give every node a _meta.title that names its role in plain words.
  • Saved canvas link. Each of those 12 files gets one new conditional step at the end of its numbered list, and the existing steps keep their numbers. If the user asked to build or create a workflow, the agent calls save_workflow with the same JSON after the run, then get_workflow_canvas_url with the returned id, and gives the user that link. It also tells them the layout is auto-generated, and explains how to open the collapsed node if a subgraph template was run.
  • Partner shortcut skipped for builds. partner_generate returns only an output and never a workflow. In generate-image/audio/3D/video, Step 0's partner shortcut, and OpenClaw's "do not hand-build" rule, now send a build/create request on to the workflow steps, with the graph built around the partner node. Before this change, such a request stopped at Step 0 and never reached the save-and-link step.
  • Partner category prefix. The generate-3d/audio/image commands filtered partner nodes on api node/, which matches no node. They now use partner/, the prefix the skills already use, and generate-3d gains the skill's "does not serve type" fall-through to the template path. Step 0 in each command now matches its skill exactly.
  • OpenClaw. openclaw/comfy/SKILL.md has no numbered build step. The same two rules are added as prose in its "fully custom graphs" paragraph.
  • README. Adds one authoring-rule bullet: build steps must leave a canvas-readable artifact (titled nodes plus a saved workflow link).

Verification

  • grep -rn "API-format workflow JSON" skills claude-code openclaw: 12 hits, and all 12 lines contain the _meta.title sentence (grep -vc "_meta.title" → 0).
  • get_workflow_canvas_url now appears in 13 files: the 12 commands/skills plus the OpenClaw skill.
  • Every file under skills/, claude-code/ or openclaw/ that mentions submit_workflow now carries the _meta.title instruction (0 files left out).
  • claude plugin validate ./claude-code: passed. git diff --check: clean. This repo has no test suite. Its only CI workflow is the unreviewed-merge detector.
  • I checked the tool names against the MCP server source, read-only, without calling anything. save_workflow and get_workflow_canvas_url both exist. save_workflow accepts API-format JSON and converts it to save format with synthesized positions; this is why the step says the layout "may need tidying". The API→save converter maps _meta.title onto the node title, so the titles do reach the canvas. get_workflow_canvas_url with a workflow_id only builds an editor URL and publishes nothing; passing a filename would publish a snapshot instead.
  • I checked the subgraph wording against the ComfyUI frontend source. Double-clicking a subgraph node's body opens it, but double-clicking its title starts a rename, so the step says "double-click the node body, not its title". "Unpack Subgraph" is the real menu label.

Judgment calls

  • skills/ is still edited. The README calls skills/ frozen legacy, but the ticket names those files explicitly and its acceptance grep covers skills.
  • OpenClaw is prose, not a numbered step. The OpenClaw skill is a tool-routing guide with no numbered build step, so I added the rule as a sentence where it talks about custom graphs.
  • No AGENTS.md change. The open PR #34 that adds AGENTS.md has not merged, so the bullet went into README.md only.

Residual

  • AGENTS.md. Once PR #34 merges, that file should get the same authoring-rule bullet as the README ("Build steps must leave the user a canvas-readable artifact: titled nodes + a saved workflow link").
  • combine-people recipe. skills/technique-combine-people.md and claude-code/commands/combine-people.md describe building a graph ("Submit 3 workflows with different seeds") but have no "API-format workflow JSON" step. They were outside the ticket's grep scope and were not changed: 2 files, the only build-shaped files left uncovered.
  • Not tested with a live agent. No agent run has been executed against Comfy Cloud to confirm it follows the new steps. These are instruction-text changes only, and nothing was submitted or saved to a cloud workspace while verifying.

Provenance

  • Authored by: agent-work loop
  • Verified:
    • acceptance grep: all 12 build steps carry the _meta.title sentence, and all 13 targeted files carry the save/canvas step
    • all 9 partner-shortcut paths (8 Step 0 copies + OpenClaw) carry the build-request bypass
    • no api node/ left in the repo; the 3D/audio/image commands' Step 0 is byte-identical to its skills/ copy (generate-video's two copies already differed on main and are unchanged here)
    • claude plugin validate ./claude-code passed; git diff --check clean
    • tool names and the subgraph UI gesture checked against server and frontend source
  • Deviations:
    • OpenClaw mirror written as prose (no numbered build step exists there)
    • AGENTS.md not edited (PR #34 unmerged)

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/comfy-skills/pull/37 **Author:** [@mattmillerai](https://github.com/mattmillerai) **Created:** 10/5/2026 **Status:** ✅ Merged **Merged:** 10/22/2026 **Merged by:** [@mattmillerai](https://github.com/mattmillerai) **Base:** `main` ← **Head:** `matt/be-18917-canvas-readable-builds` --- ### 📝 Commits (3) - [`1e6a7d5`](https://github.com/Comfy-Org/comfy-skills/commit/1e6a7d5b4bd8b89b8a5d4ace3731d8d117109fbb) feat(commands): title every built node and hand back a saved canvas link - [`9883424`](https://github.com/Comfy-Org/comfy-skills/commit/98834247a3ed523281d425fdb493566ad4b4a1ea) fix(commands): a workflow request skips the partner_generate shortcut - [`4de818c`](https://github.com/Comfy-Org/comfy-skills/commit/4de818c3ddda687caf8ed418fefb20aea03f18c5) fix(commands): route partner-node discovery at partner/, not the empty api node/ ### 📊 Changes **14 files changed** (+58 additions, -24 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+2 -0) 📝 `claude-code/commands/generate-3d.md` (+5 -3) 📝 `claude-code/commands/generate-audio.md` (+4 -2) 📝 `claude-code/commands/generate-image.md` (+4 -2) 📝 `claude-code/commands/generate-video.md` (+4 -2) 📝 `claude-code/commands/remove-background.md` (+3 -1) 📝 `claude-code/commands/upscale-image.md` (+3 -1) 📝 `openclaw/comfy/SKILL.md` (+11 -3) 📝 `skills/comfy-generate-3d.md` (+4 -2) 📝 `skills/comfy-generate-audio.md` (+4 -2) 📝 `skills/comfy-generate-image.md` (+4 -2) 📝 `skills/comfy-generate-video.md` (+4 -2) 📝 `skills/comfy-remove-background.md` (+3 -1) 📝 `skills/comfy-upscale-image.md` (+3 -1) </details> ### 📄 Description ## Summary The generate-video/image/3D/audio, upscale-image and remove-background commands tell the agent to "Build a ComfyUI API-format workflow JSON" and then `submit_workflow`. No step leaves anything a user can read on the canvas, so someone who opens the result sees a grid of raw class names. - **Titled nodes.** Every "Build a ComfyUI API-format workflow JSON" step (6 commands in `claude-code/commands/`, plus their 6 legacy `skills/` copies) now also says: give every node a `_meta.title` that names its role in plain words. - **Saved canvas link.** Each of those 12 files gets one new conditional step at the end of its numbered list, and the existing steps keep their numbers. If the user asked to build or create a workflow, the agent calls `save_workflow` with the same JSON after the run, then `get_workflow_canvas_url` with the returned id, and gives the user that link. It also tells them the layout is auto-generated, and explains how to open the collapsed node if a subgraph template was run. - **Partner shortcut skipped for builds.** `partner_generate` returns only an output and never a workflow. In generate-image/audio/3D/video, Step 0's partner shortcut, and OpenClaw's "do not hand-build" rule, now send a build/create request on to the workflow steps, with the graph built around the partner node. Before this change, such a request stopped at Step 0 and never reached the save-and-link step. - **Partner category prefix.** The generate-3d/audio/image commands filtered partner nodes on `api node/`, which matches no node. They now use `partner/`, the prefix the skills already use, and generate-3d gains the skill's "does not serve type" fall-through to the template path. Step 0 in each command now matches its skill exactly. - **OpenClaw.** `openclaw/comfy/SKILL.md` has no numbered build step. The same two rules are added as prose in its "fully custom graphs" paragraph. - **README.** Adds one authoring-rule bullet: build steps must leave a canvas-readable artifact (titled nodes plus a saved workflow link). ## Verification - `grep -rn "API-format workflow JSON" skills claude-code openclaw`: 12 hits, and all 12 lines contain the `_meta.title` sentence (`grep -vc "_meta.title"` → 0). - `get_workflow_canvas_url` now appears in 13 files: the 12 commands/skills plus the OpenClaw skill. - Every file under `skills/`, `claude-code/` or `openclaw/` that mentions `submit_workflow` now carries the `_meta.title` instruction (0 files left out). - `claude plugin validate ./claude-code`: passed. `git diff --check`: clean. This repo has no test suite. Its only CI workflow is the unreviewed-merge detector. - I checked the tool names against the MCP server source, read-only, without calling anything. `save_workflow` and `get_workflow_canvas_url` both exist. `save_workflow` accepts API-format JSON and converts it to save format with synthesized positions; this is why the step says the layout "may need tidying". The API→save converter maps `_meta.title` onto the node `title`, so the titles do reach the canvas. `get_workflow_canvas_url` with a `workflow_id` only builds an editor URL and publishes nothing; passing a filename would publish a snapshot instead. - I checked the subgraph wording against the ComfyUI frontend source. Double-clicking a subgraph node's body opens it, but double-clicking its title starts a rename, so the step says "double-click the node body, not its title". "Unpack Subgraph" is the real menu label. ## Judgment calls - **`skills/` is still edited.** The README calls `skills/` frozen legacy, but the ticket names those files explicitly and its acceptance grep covers `skills`. - **OpenClaw is prose, not a numbered step.** The OpenClaw skill is a tool-routing guide with no numbered build step, so I added the rule as a sentence where it talks about custom graphs. - **No `AGENTS.md` change.** The open PR #34 that adds `AGENTS.md` has not merged, so the bullet went into `README.md` only. ## Residual - **`AGENTS.md`.** Once PR #34 merges, that file should get the same authoring-rule bullet as the README ("Build steps must leave the user a canvas-readable artifact: titled nodes + a saved workflow link"). - **combine-people recipe.** `skills/technique-combine-people.md` and `claude-code/commands/combine-people.md` describe building a graph ("Submit 3 workflows with different seeds") but have no "API-format workflow JSON" step. They were outside the ticket's grep scope and were not changed: 2 files, the only build-shaped files left uncovered. - **Not tested with a live agent.** No agent run has been executed against Comfy Cloud to confirm it follows the new steps. These are instruction-text changes only, and nothing was submitted or saved to a cloud workspace while verifying. ## Provenance - **Authored by:** agent-work loop - **Verified:** - acceptance grep: all 12 build steps carry the `_meta.title` sentence, and all 13 targeted files carry the save/canvas step - all 9 partner-shortcut paths (8 Step 0 copies + OpenClaw) carry the build-request bypass - no `api node/` left in the repo; the 3D/audio/image commands' Step 0 is byte-identical to its `skills/` copy (generate-video's two copies already differed on `main` and are unchanged here) - `claude plugin validate ./claude-code` passed; `git diff --check` clean - tool names and the subgraph UI gesture checked against server and frontend source - **Deviations:** - OpenClaw mirror written as prose (no numbered build step exists there) - `AGENTS.md` not edited (PR #34 unmerged) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-26 22:34:17 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/comfy-skills#37
No description provided.