[PR #23] [MERGED] feat(comfy-build): write the guidance the scaffold promised, and the recovery loop #21

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

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/comfy-skills/pull/23
Author: @james00012
Created: 8/21/2026
Status: ✅ Merged
Merged: 8/21/2026
Merged by: @james00012

Base: main ← Head: feat/comfy-build-content


📝 Commits (9)

  • a8aa5b5 feat(comfy-build): write the guidance the scaffold promised
  • 71e33b0 feat(comfy-build): teach the recovery loop a failed cut needs
  • 1e36cd8 fix(comfy-build): say that the freeze arrives as overrides, and gate every cut
  • 07ef49c fix(comfy-build): correct what the scan path actually gets from the importer
  • fb8e15f feat(comfy-build): predict the conflict instead of buying it
  • 0b2f973 fix(comfy-build): stop the login step hanging a session that was already signed in
  • 9a69d6e fix(comfy-build): make the conflict check work without a resolver installed
  • 981f406 fix(comfy-build): drop the false premise, and gate on what is actually true
  • cdab445 fix(comfy-build): instruction only, no commentary

📊 Changes

1 file changed (+266 additions, -41 deletions)

View changed files

📝 comfy-cli/comfy-build/SKILL.md (+266 -41)

📄 Description

TL;DR: Fill the merged scaffold with the guidance an agent needs to take a local ComfyUI install to a green build in one conversation, including the loop back from a failed cut.

BE-8156 Feature 4, a failed cut becomes a working build in the same conversation · also carries Feature 3, a local install becomes a distribution that builds · needs comfy-cli#738 to be true

Why: the scaffold from #21 tells an agent not to improvise and nothing else, so the CLI path is unusable without a person who already knows it. An earlier draft taught the workarounds the CLI needed at the time, and comfy-cli#738 deleted most of them.

What changed

  • [comfy-skills] comfy-cli/comfy-build/SKILL.md: the path, the four platform facts an agent cannot infer, the pin retargeting, what to say before a paid cut, how to read the import advisories, and a failure table.
  • [comfy-skills] the recovery loop: read the failed target's cause line, then the log tail because truncation keeps head and tail, one edit per failed cut, three cuts then stop, and a missing log falls back to the cause line rather than a guess.
  • [comfy-skills] deliberately absent: everything the CLI now decides. Hand-editing a pack source, the ComfyUI ref, or the base image is how a working definition gets broken, so the file names the command and moves on.

Contradicts: feature 4 is planned to wait on feature 3 and land separately. Both are prose in the same unmerged file, so stacking a second PR on an unmerged one costs a reviewer more than it buys; they land together. Separately, the feature 3 plan says the skill states the pinning method and the validate limits. The CLI having taken over pin verification makes most of that dead guidance, so the file keeps only the judgment left: the freeze describes the machine it came from, not the target.

Validation

  • Unit: comfy skills validate comfy-cli/comfy-build passes.
  • Read against the source, by a six-persona panel: every claim the recovery section makes about the evidence was checked in comfy-builder's contract on origin/main, not transcribed from the ticket: the log route prefers the failed target, truncated means head and tail kept, and an uncaptured log is an empty string rather than an error.
  • Local stack, end to end, three independent agents: each driven by this file alone, no other skill, no MCP, no hints, against the staging builder with real spend. All three reached deployable: true on the first cut. Two ran the same eight-pack install independently and both predicted the conflict offline, tracing it to WAS pinning opencv-python-headless<=4.7.0.72, a NumPy 1.x wheel that dies under NumPy 2; the third took the Desktop route. Both cost gates held: every agent stopped and asked before spending.
  • Not run: the file describes the CLI in comfy-cli#738, so a user on the released CLI will not find blob upload or from-snapshot. This should not merge before that does.
  • Not run: any claim in the failure table against a fresh build. Every row comes from a build I watched fail during this feature, but they are transcribed, not re-run here.

🔄 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/23 **Author:** [@james00012](https://github.com/james00012) **Created:** 8/21/2026 **Status:** ✅ Merged **Merged:** 8/21/2026 **Merged by:** [@james00012](https://github.com/james00012) **Base:** `main` ← **Head:** `feat/comfy-build-content` --- ### 📝 Commits (9) - [`a8aa5b5`](https://github.com/Comfy-Org/comfy-skills/commit/a8aa5b5c61570a8937838a56e0f4002fb4c000a1) feat(comfy-build): write the guidance the scaffold promised - [`71e33b0`](https://github.com/Comfy-Org/comfy-skills/commit/71e33b00dd67495d296d2b75ebb20134f19f1f30) feat(comfy-build): teach the recovery loop a failed cut needs - [`1e36cd8`](https://github.com/Comfy-Org/comfy-skills/commit/1e36cd844ee9c2acb4d935a880437182216b085a) fix(comfy-build): say that the freeze arrives as overrides, and gate every cut - [`07ef49c`](https://github.com/Comfy-Org/comfy-skills/commit/07ef49c037e173a390d7cf35c76b709433d453fd) fix(comfy-build): correct what the scan path actually gets from the importer - [`fb8e15f`](https://github.com/Comfy-Org/comfy-skills/commit/fb8e15f439fa81869c93e9f6e02b05835291d0af) feat(comfy-build): predict the conflict instead of buying it - [`0b2f973`](https://github.com/Comfy-Org/comfy-skills/commit/0b2f97353bd2eda93706eb23bbeb08024dadbf67) fix(comfy-build): stop the login step hanging a session that was already signed in - [`9a69d6e`](https://github.com/Comfy-Org/comfy-skills/commit/9a69d6eaa1e6c49f9e580ea1bd00e4d20835420b) fix(comfy-build): make the conflict check work without a resolver installed - [`981f406`](https://github.com/Comfy-Org/comfy-skills/commit/981f406207b0180bf14297cdeb420040b0b598d0) fix(comfy-build): drop the false premise, and gate on what is actually true - [`cdab445`](https://github.com/Comfy-Org/comfy-skills/commit/cdab4459614d6149f29f4982c82f575ebc27810d) fix(comfy-build): instruction only, no commentary ### 📊 Changes **1 file changed** (+266 additions, -41 deletions) <details> <summary>View changed files</summary> 📝 `comfy-cli/comfy-build/SKILL.md` (+266 -41) </details> ### 📄 Description **TL;DR:** Fill the merged scaffold with the guidance an agent needs to take a local ComfyUI install to a green build in one conversation, including the loop back from a failed cut. [BE-8156 Feature 4, a failed cut becomes a working build in the same conversation](https://linear.app/comfyorg/issue/BE-8156/feature-4-a-failed-cut-becomes-a-working-build-in-the-same) · also carries [Feature 3, a local install becomes a distribution that builds](https://app.notion.com/p/comfy-org/Feature-3-a-local-install-becomes-a-distribution-that-builds-3c26d73d365081fd8353d532eb56ca00) · needs [comfy-cli#738](https://github.com/Comfy-Org/comfy-cli/pull/738) to be true **Why:** the scaffold from [#21](https://github.com/Comfy-Org/comfy-skills/pull/21) tells an agent not to improvise and nothing else, so the CLI path is unusable without a person who already knows it. An earlier draft taught the workarounds the CLI needed at the time, and [comfy-cli#738](https://github.com/Comfy-Org/comfy-cli/pull/738) deleted most of them. **What changed** * **[comfy-skills] `comfy-cli/comfy-build/SKILL.md`**: the path, the four platform facts an agent cannot infer, the pin retargeting, what to say before a paid cut, how to read the import advisories, and a failure table. * **[comfy-skills] the recovery loop**: read the failed target's cause line, then the log tail because truncation keeps head and tail, one edit per failed cut, three cuts then stop, and a missing log falls back to the cause line rather than a guess. * **[comfy-skills] deliberately absent**: everything the CLI now decides. Hand-editing a pack source, the ComfyUI ref, or the base image is how a working definition gets broken, so the file names the command and moves on. **Contradicts:** feature 4 is planned to wait on feature 3 and land separately. Both are prose in the same unmerged file, so stacking a second PR on an unmerged one costs a reviewer more than it buys; they land together. Separately, the feature 3 plan says the skill states the pinning method and the validate limits. The CLI having taken over pin verification makes most of that dead guidance, so the file keeps only the judgment left: the freeze describes the machine it came from, not the target. **Validation** * **Unit**: `comfy skills validate comfy-cli/comfy-build` passes. * **Read against the source, by a six-persona panel**: every claim the recovery section makes about the evidence was checked in comfy-builder's contract on `origin/main`, not transcribed from the ticket: the log route prefers the failed target, `truncated` means head and tail kept, and an uncaptured log is an empty string rather than an error. * **Local stack, end to end, three independent agents**: each driven by this file alone, no other skill, no MCP, no hints, against the staging builder with real spend. All three reached `deployable: true` on the first cut. Two ran the same eight-pack install independently and both predicted the conflict offline, tracing it to WAS pinning `opencv-python-headless<=4.7.0.72`, a NumPy 1.x wheel that dies under NumPy 2; the third took the Desktop route. Both cost gates held: every agent stopped and asked before spending. * **Not run**: the file describes the CLI in [comfy-cli#738](https://github.com/Comfy-Org/comfy-cli/pull/738), so a user on the released CLI will not find `blob upload` or `from-snapshot`. This should not merge before that does. * **Not run**: any claim in the failure table against a fresh build. Every row comes from a build I watched fail during this feature, but they are transcribed, not re-run here. --- <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:04 +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#21
No description provided.