Files
malkuthro-ComfyUI-Koolook/.github/copilot-instructions.md
ba39cb3658 Claude/goofy faraday d23e98 (#255)
* refactor(nodes): drop keyframe_batch alias from Easy Image Batch

The keyframe_batch input was a deprecated alias of keyframes_insert,
added in 0.4.1 during PR #246 review to keep pre-rename workflows
loading. The old name only ever existed in unreleased dev builds before
the rename, so no published workflow depends on it and the alias only
cluttered the node with a second IMAGE input.

Remove the input, its parameter, and the alias-routing fallback; the
node now exposes a single keyframes_insert insert input. Tests and the
behavior spec updated; CHANGELOG notes the removal under [Unreleased].

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(policy): make backward compatibility opt-in for Koolook nodes

Invert the default: backward compatibility is no longer a standing
constraint for Koolook-created nodes (the root k_*.py custom nodes).
By default, make the cleanest change — rename/drop/reorder IDs, inputs,
and outputs freely, no deprecation aliases or _v2 suffixes. Compatibility
with saved workflows is only preserved when the maintainer explicitly
says "check backward compatibility".

Forks are explicitly excluded: anything under forks/ (including the
Koolook-original nodes exposed via SKIP_VERSION_SUFFIX) keeps full
back-compat discipline by default, no request needed. The
__koolook_vX_Y_Z collision suffix always applies.

Scoped across the binding instruction files and skills: CLAUDE.md,
copilot-instructions, node-versioning.md, versioning.md, and the
preflight-release / add-external-fork / tdd skills. The preflight
workflows check is reframed as a drift detector for Koolook IDs and a
hard back-compat gate for fork IDs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs: clarify keyframe_batch alias removal

* fix: retain keyframe_batch compatibility alias

---------

Co-authored-by: AI Machine <ai.machine@x.baconcph.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:16:38 +02:00

80 lines
4.6 KiB
Markdown

# GitHub Copilot — repo orientation
Thin pointer. The canonical agent context lives in [`CLAUDE.md`](../CLAUDE.md)
at the repo root — read that first for source-of-truth conventions, dev-sync
rules, release rules, fork policy, and trigger phrases. This file only carries
the high-stability orientation that helps Copilot place a request before it
follows links.
## What this repo is
ComfyUI-Koolook is a custom-node pack for ComfyUI. Two shipped surfaces:
1. **Kforge Labs sidebar** — the main user-facing experience. A ComfyUI
sidebar tab that saves favorite nodes, workflows (with subdirectories +
archive + tags + reusable modules), and full-state snapshots to a
configurable on-disk library.
- Front-end entry: [`web/koolook_sidebar.js`](../web/koolook_sidebar.js);
module bodies under [`web/sidebar/`](../web/sidebar/).
- Back-end snapshot/preset routes: [`koolook_routes.py`](../koolook_routes.py)
(registers `/koolook/presets/*` aiohttp routes on ComfyUI's PromptServer).
- Bundled visual onboarding guide: [`web/guide/index.html`](../web/guide/index.html)
(also opened in-app via the sidebar's Tools-row Help button).
2. **Koolook custom nodes** — Python node classes at the repo root, each
exposing the standard ComfyUI node contract (`INPUT_TYPES`, `RETURN_TYPES`,
`RETURN_NAMES`, `FUNCTION`, `CATEGORY`):
- [`k_easy_wan22_prompt.py`](../k_easy_wan22_prompt.py) → `EasyWan22Prompt`
(reads [`config.json`](../config.json) at import time — edits to
`config.json` need a ComfyUI restart).
- [`k_easy_resize.py`](../k_easy_resize.py) → `EasyResize_Koolook`
(deprecated alias `EasyResize` still registered for back-compat).
- [`k_ai_pipeline.py`](../k_ai_pipeline.py) → `EasyAIPipeline` (paired
with front-end widgets in [`web/ai_pipeline.js`](../web/ai_pipeline.js)).
- [`k_easy_image_batch.py`](../k_easy_image_batch.py) → `easy_ImageBatch`.
- [`k_easy_track.py`](../k_easy_track.py) → `KoolookLoadCameraPosesAbsolute`.
- [`k_video_combine.py`](../k_video_combine.py) → `Easy_VideoCombine`
(runtime subclass of VHS `VideoCombine`; self-skips if VHS not installed).
- Radiance VAE wrappers under
[`forks/radiance_koolook/versions/v2_3_3/`](../forks/radiance_koolook/versions/v2_3_3/)
→ `Easy_hdr_VAE_encode`, `Easy_hdr_VAE_decode`.
[`__init__.py`](../__init__.py) imports each module's `NODE_CLASS_MAPPINGS` /
`NODE_DISPLAY_NAME_MAPPINGS` and exposes the merged set plus `WEB_DIRECTORY`.
## Things that bite if you don't know them
- **Backward compatibility is opt-in for Koolook-created nodes only** (the root
`k_*.py` custom nodes). For those, make the cleanest change by default —
rename/drop/reorder IDs, inputs, and outputs freely, no aliases or `_v2`
suffixes — unless the maintainer says `check backward compatibility`.
**Fork nodes are different: anything under `forks/` keeps full back-compat
discipline by default** (never rename a fork ID in saved workflows, version
via new suffix/namespace, keep the `__koolook_vX_Y_Z` collision suffix). See
[`docs/maintainers/node-versioning.md`](../docs/maintainers/node-versioning.md)
and [`CLAUDE.md`](../CLAUDE.md) → *Change management*.
- **Third-party code stays out of MAIN.** Modified fork code lives under
`forks/<name>/versions/<vX_Y_Z>/`; raw upstream checkouts live in
`../ComfyUI-Forks/`. See [`forks/README.md`](../forks/README.md) and
[`forks/THIRD_PARTY.md`](../forks/THIRD_PARTY.md).
- **`dev-sync` is user-triggered only.** Never run it automatically (e.g.
after a commit, after a merge, on session end). The maintainer runs
parallel worktrees and an unsolicited sync overwrites whatever they're
reviewing in their live ComfyUI. Wait for the explicit phrase. Full rules
in [`CLAUDE.md`](../CLAUDE.md).
- **UI work needs visual QA.** See [`AGENTS.md`](../AGENTS.md) — open the
changed page in a browser, take a screenshot, verify before claiming done.
- **Three independent version axes** (pack version / fork wrapper version /
upstream pinned commit) — see [`docs/reference/versioning.md`](../docs/reference/versioning.md)
before any version bump.
## Where to look next
- [`CLAUDE.md`](../CLAUDE.md) — full project conventions and protocols
- [`docs/maintainers/`](../docs/maintainers/) — release procedure, dev-sync
loop, registry API, sidebar starter preset, workflows-sidebar reference
- [`docs/reference/`](../docs/reference/) — glossary, versioning model
- [`docs/user_guide/`](../docs/user_guide/) — per-node end-user docs
- [`README.md`](../README.md) — public landing page + install
- [`CHANGELOG.md`](../CHANGELOG.md) — what changed, in detail