# 🐘 Skill: Workload Metaphor Generation (Nano Banana Phase) This skill governs the systematic generation of individual wait event metaphors for the `Workloads/` directory. ## 🎨 Art Style: Nano Banana All images MUST follow these constraints for stylistic parity with *Learn You a Haskell for Great Good*: - **Line Art**: Deliberately wobbly, wiggly organic lines. Thick, uneven black outlines. - **Color**: Flat, solid pastel bucket-fills. Single uniform color per shape. No gradients or shading. - **Background**: Pure white (`#FFFFFF`). - **Subject**: One animal character interacting with one wobbly object. - **Constraints**: - Structurally sound biology (Correct limb counts, exactly 2 eyes). - No text or labels in the image. - Symmetrical anatomy. - Minimalist action marks (sweat drops/motion lines) only. ## 📋 The Metaphor Queue (Batch 4+) When continuing the Exhaustive Hardening, use the following animal-to-event mappings: | Cohort | Animal Subject | Object Metaphor | Target Files | | :--- | :--- | :--- | :--- | | **Shared Buffers** | **Hamster** | Cubby hole with a wobbly map | `LWLock/Buffers/Buffer*` | | **Parallel Workers** | **Crow** | Helper hat and pointing wing | `Activity/Parallel/ParallelWorker*` | | **File Operations** | **Frog** | Wobbly copy machine | `IO/CopyFile/CopyFileCopy*` | | **Buffer Pin** | **Koala** | Hugging a wobbly wooden post | `Workloads/BufferPin/*` | | **Logical Rep** | **Hummingbird** | Sipping from specific flowers | `LWLock/Parallel/LogicalRep*` | | **WAL Internals** | **Red Panda** | Filing envelopes into slots | `LWLock/WAL/XLog*` | | **MultiXact Member** | **Wombat** | Stamping a "Group Order" form | `LWLock/MultiXact/MultiXactMember*` | ## 🛠️ Implementation Protocol 1. **Generate Image**: Use `generate_image` with the Nano Banana prompt structure defined in `SKILL.md`. 2. **Standardize Naming**: Move asset to `assets/wl_[subsystem]_[event].png`. 3. **Update Frontmatter**: Set `image: "assets/..."` and `status: "hardened"`. 4. **Update Callout**: Ensure the `[!NOTE]` in the body uses the new asset: `> [!NOTE] ![[assets/...|256]]`. 5. **Verify Links**: Run `python3 check_workload_images.py` to ensure zero broken references. ## 🛑 Rate Limit Handling If the image generation quota is exhausted: 1. **Audit Only**: Run the audit script and identify missing refs. 2. **Ref Fixer**: Run `fix_descriptive_refs.py` to map descriptive placeholders to existing Hub assets. 3. **TODO Sync**: Update `workload_image_todo.md` with the current remaining debt.