# Improvement Path

This file is a current-state improvement map. It should stay concrete: add work
here when it reflects an observed workflow problem, a new metadata path, or a
specific generated prompt failure.

## Current Baseline

- Categories, subcategories, item templates, scene pools, expression pools, and
  composition pools are JSON-driven.
- New pool content can be added through extension data instead of Python edits.
- Prompt rows and Insta/OF pairs carry structured metadata for Krea2, SDXL, and
  caption routes.
- Krea2, SDXL, and caption formatting prefer metadata over raw prompt text.
- Seed behavior is axis-based: global seed, seed control, seed locker,
  per-character slot seed, and deterministic route simulation are available.
- Character slots support chained casts, saved profiles, side-node
  characteristics, per-character expression, and per-character clothing state.
- Insta/OF pairs can generate softcore and hardcore prompts from a shared cast,
  scene, and camera configuration.
- Hardcore position/action routing is split by action family and configurable
  through position-pool and action-filter nodes.
- Camera is first-class: manual camera control, orbit/Qwen camera translation,
  POV policy, and location-aware scene-camera adapters are separate concerns.
- Utility nodes cover index switching, loop control, accumulation, image
  preview management, persistent text preview, SDXL buckets, and Krea2
  resolution selection.
- `tools/prompt_map_audit.py`, `tools/prompt_route_simulation.py`, and
  `tools/prompt_smoke.py` cover the main registration, metadata, formatter, and
  seed-control drift paths.

## Improvement Rule

Do not add broad checks or generic prompt rewrites just because an issue is
possible. Improve a path when one of these is true:

- A generated prompt shows concrete noise, contradiction, or hidden logic drift.
- A workflow action is awkward in ComfyUI and needs a better node surface.
- A new metadata field, node, category family, formatter route, or location
  adapter is added.
- A formatter starts relying on raw prompt text where structured metadata should
  exist.

## Concrete Next Work

1. Add route-level smoke fixtures only for observed generated edge cases or new
   metadata fields that affect Krea2, SDXL, or caption output.
2. Extend `scene_camera_adapters.py` one location family at a time, after the
   actual generated prompts show the location needs camera-aware wording.
3. Add characteristic side nodes only when repeated manual slot fields become
   workflow friction.
4. Tune hardcore, softcore, SDXL, or caption wording only from real output
   examples, not from speculative prompt rules.
5. When adding a node/path, update the route map and audit coverage in the same
   change so organization stays discoverable.
