|
| 1 | +--- |
| 2 | +name: infographics |
| 3 | +description: Use when generating Basic Memory PR, changelog, release, or weekly infographics from Codex. |
| 4 | +--- |
| 5 | + |
| 6 | +# Basic Memory Infographics |
| 7 | + |
| 8 | +Generate repository visuals with evidence-grounded content and canonical output |
| 9 | +paths. The file names still say "infographic", but the image may be an |
| 10 | +infographic, map, poster, scene, tableau, cover, or other visual form when that |
| 11 | +better describes the intent of the PR. PR images are non-gating BM Bossbot |
| 12 | +artifacts; changelog and release-summary images are manual evidence-pack |
| 13 | +workflows. |
| 14 | + |
| 15 | +## Output Contract |
| 16 | + |
| 17 | +- Base output directory: `docs/assets/infographics/` |
| 18 | +- PR infographic: `docs/assets/infographics/pr-<number>.webp` |
| 19 | +- Changelog infographic: `docs/assets/infographics/changelog.webp` |
| 20 | +- Weekly infographic: |
| 21 | + - This is always a 2-Week Retro window: previous ISO week through current ISO |
| 22 | + week (`start-week = current-week - 1`, `end-week = current-week`). |
| 23 | + - Same year window: `docs/assets/infographics/<year>-w<start-week>-w<end-week>.webp` |
| 24 | + - Cross-year window: |
| 25 | + `docs/assets/infographics/<start-year>-w<start-week>-<end-year>-w<end-week>.webp` |
| 26 | + |
| 27 | +## PR Mode |
| 28 | + |
| 29 | +PR mode uses the BM Bossbot summary block as source material. Do not hand-write |
| 30 | +claims that are not present in the PR body. |
| 31 | + |
| 32 | +1. Fetch the PR body: |
| 33 | + |
| 34 | +```bash |
| 35 | +gh pr view <number> --json body --jq '.body // ""' > /tmp/bm-pr-body.md |
| 36 | +``` |
| 37 | + |
| 38 | +2. Generate the canonical asset: |
| 39 | + |
| 40 | +```bash |
| 41 | +uv run --script scripts/generate_pr_infographic.py \ |
| 42 | + --pr-number <number> \ |
| 43 | + --pr-body-file /tmp/bm-pr-body.md \ |
| 44 | + --theme "<optional visual theme>" \ |
| 45 | + --visual-format auto \ |
| 46 | + --provenance-output /tmp/bm-infographic-provenance.md \ |
| 47 | + --output docs/assets/infographics/pr-<number>.webp |
| 48 | +``` |
| 49 | + |
| 50 | +If the PR body contains a managed infographic theme block, the script reads it |
| 51 | +automatically: |
| 52 | + |
| 53 | +```markdown |
| 54 | +<!-- BM_INFOGRAPHIC_THEME:start --> |
| 55 | +<theme> |
| 56 | +<!-- BM_INFOGRAPHIC_THEME:end --> |
| 57 | +``` |
| 58 | + |
| 59 | +Before spending an image call, test the prompt path locally: |
| 60 | + |
| 61 | +```bash |
| 62 | +uv run --script scripts/generate_pr_infographic.py \ |
| 63 | + --pr-number <number> \ |
| 64 | + --pr-body-file /tmp/bm-pr-body.md \ |
| 65 | + --theme "<optional visual theme>" \ |
| 66 | + --visual-format auto \ |
| 67 | + --output docs/assets/infographics/pr-<number>.webp \ |
| 68 | + --print-prompt |
| 69 | +``` |
| 70 | + |
| 71 | +`--dry-run` is an alias for `--print-prompt`; both print the final prompt and |
| 72 | +exit without calling OpenAI. |
| 73 | + |
| 74 | +Use `--visual-format auto` by default so the model can choose the strongest |
| 75 | +form. Use `--visual-format infographic` when the user wants a structured, |
| 76 | +text-forward map/infographic. Use `--visual-format image` when the user wants an |
| 77 | +actual editorial scene, movie poster, painting, photograph, tableau, cover, or |
| 78 | +symbolic visual moment with minimal text. |
| 79 | + |
| 80 | +When the image is generated, also write provenance with |
| 81 | +`--provenance-output <path>`. BM Bossbot publishes that managed block into the |
| 82 | +PR body with these markers: |
| 83 | + |
| 84 | +```markdown |
| 85 | +<!-- BM_INFOGRAPHIC_PROVENANCE:start --> |
| 86 | +... |
| 87 | +<!-- BM_INFOGRAPHIC_PROVENANCE:end --> |
| 88 | +``` |
| 89 | + |
| 90 | +The provenance block records the generated asset path, image model, size, |
| 91 | +quality, visual format, theme source, theme or category-choice instruction, and |
| 92 | +the exact "Image prompt sent to" the image model. When the Images API provides |
| 93 | +a revised prompt, the block records that model interpretation too. Treat this |
| 94 | +block as debugging and creative provenance only; it is not a merge gate. |
| 95 | + |
| 96 | +The PR infographic is visual support only. The authoritative merge gate is the |
| 97 | +GitHub commit status named `BM Bossbot Approval`. |
| 98 | + |
| 99 | +## Changelog Mode |
| 100 | + |
| 101 | +Build an evidence pack before writing a prompt: |
| 102 | + |
| 103 | +- diff truth source: merged PR diffs, merge commits, or local reconstructed diffs |
| 104 | +- changed-file orientation: `git diff --stat` plus key file reads |
| 105 | +- impact ledger: before/after outcomes tied to actual changes |
| 106 | +- discard list: misleading titles, reverted work, rename-only churn, speculative TODOs |
| 107 | +- chosen visual format: infographic, map, poster, scene, tableau, cover, or let |
| 108 | + the model choose |
| 109 | +- chosen BM style category: exactly one category from the selection pool below |
| 110 | + |
| 111 | +Read these references before drafting the prompt: |
| 112 | + |
| 113 | +- `references/prompt-blueprint.md` |
| 114 | +- `references/style-balance.md` |
| 115 | + |
| 116 | +Read the current `CHANGELOG.md` entries and include the latest meaningful |
| 117 | +changes. |
| 118 | + |
| 119 | +## Style And Category Selection |
| 120 | + |
| 121 | +Select exactly one BM style category per infographic based on semantic fit. The |
| 122 | +visual language should be recognizable and tasteful, while staying |
| 123 | +business-readable. |
| 124 | + |
| 125 | +Also choose the visual form that best communicates the change. Use an |
| 126 | +infographic or map when the work has several discrete facts, gates, checks, or |
| 127 | +before/after points. Use a poster, scene, tableau, cover image, illustrated |
| 128 | +moment, or other image when the PR has a clear intent that is better described |
| 129 | +as a visual story. If neither is obvious, let the model choose. |
| 130 | + |
| 131 | +BM category pool: |
| 132 | + |
| 133 | +- computer science college textbooks: SICP-style diagrams, algorithms lectures, |
| 134 | + compiler pipelines, automata, database systems, type theory, operating systems |
| 135 | +- classic literature subjects: sea voyages, gothic manors, Dickensian city maps, |
| 136 | + Austen social graphs, library marginalia, travel journals |
| 137 | +- fantasy/D&D-inspired: quest maps, dungeon keys, guild ledgers, spellbooks, |
| 138 | + bestiaries, tavern notice boards; no copyrighted settings |
| 139 | +- Music: Metal, Hard Rock, Punk, techno, soul, reggae bands; no pop music, no |
| 140 | + direct band logos, album covers, or musician likenesses |
| 141 | +- sci-fi: Star Wars inspired knockoff, Spaceballs-adjacent space opera, fleet |
| 142 | + routes, mission consoles, contraband manifests; avoid copyrighted characters, |
| 143 | + logos, or named fictional universes |
| 144 | +- Conan the barbarian-inspired sword-and-sorcery: ruined temples, desert routes, |
| 145 | + battle standards, ancient maps; no named character likenesses |
| 146 | +- Comic books: issue covers, splash pages, action-panel maps, caption boxes, |
| 147 | + halftone energy, clean sound-effect typography |
| 148 | +- French new wave movies: poster style, stark typography, city route maps, |
| 149 | + jump-cut sequencing, high-contrast editorial photography cues |
| 150 | +- WWII propaganda posters: home-front public-information poster language, |
| 151 | + logistics arrows, ration charts, mobilization maps, bold simplified figures; |
| 152 | + no real-world party symbols, hate imagery, dehumanizing slogans, or false |
| 153 | + historical claims |
| 154 | +- Italian movie posters: hand-painted drama, bold credits, expressive color, |
| 155 | + route-map collage, 1960s or 1970s cinema energy; no direct film titles or |
| 156 | + actor likenesses |
| 157 | +- Shakespeare: stage maps, acts and scenes, dramatis personae, royal courts, |
| 158 | + backstage cue sheets |
| 159 | +- Greek mythology: temple diagrams, constellation routes, hero's journey maps, |
| 160 | + oracle tablets, labyrinths, ship routes |
| 161 | +- noir detective boards: case files, red-string maps, typed evidence labels, |
| 162 | + precinct wall charts |
| 163 | +- NASA mission-control dashboards: launch timelines, telemetry maps, orbital |
| 164 | + routes, status boards |
| 165 | +- space exploration and astronomy: celestial atlases, observatory charts, |
| 166 | + star-field maps, orbital mechanics diagrams, planetary survey routes, |
| 167 | + telescope annotations, mission trajectories, deep-space timelines |
| 168 | +- paintings: abstract painting, classical landscape, Remington-inspired western |
| 169 | + action painting, Rembrandt-inspired chiaroscuro, historical mural, stormy |
| 170 | + seascape, allegorical editorial painting |
| 171 | +- classic black-and-white photography: documentary field report, newsroom |
| 172 | + archive print, editorial photo essay, street photography, high-contrast |
| 173 | + darkroom print, contact sheet, civic infrastructure photograph |
| 174 | +- 80's action movies: practical explosions, smoky backlit warehouses, neon city |
| 175 | + streets, helicopter searchlights, mission dossiers, heroic silhouettes, |
| 176 | + high-stakes countdowns, painted ensemble posters; no direct actor likenesses, |
| 177 | + real film titles, franchise marks, or catchphrases |
| 178 | +- alchemy manuscripts: transformation diagrams, annotated symbols, recipe-like |
| 179 | + process maps, illuminated margins |
| 180 | +- brutalist civic planning: transit maps, concrete signage, zoning blocks, |
| 181 | + infrastructure diagrams |
| 182 | + |
| 183 | +Selection rules: |
| 184 | + |
| 185 | +- Pick one category only; do not create mixed mashups. |
| 186 | +- Pick the most appropriate visual form; do not force a text-heavy infographic |
| 187 | + when an actual scene, poster, painting, photograph, tableau, or cover would |
| 188 | + communicate the intent better. |
| 189 | +- Match metaphor to content, but do not overthink it. The category is a creative |
| 190 | + catalyst, not a semantic constraint. |
| 191 | +- Use a polished upscaled editorial rendering direction: smooth anti-aliased |
| 192 | + text, high contrast, clean edges, readable labels. |
| 193 | +- Go bold with a map backbone when using an infographic or map. For scene-first |
| 194 | + images, make the category drive the composition through a readable staged |
| 195 | + moment, editorial composition, symbolic environment, route, artifact, or |
| 196 | + visual metaphor. |
| 197 | +- Keep the structure literal enough to aid understanding, but not so heavy that |
| 198 | + it obscures engineering meaning. |
| 199 | +- Give the image generator creative latitude on layout, structure, color palette, |
| 200 | + and visual metaphors. Be precise about what content to show, loose about how |
| 201 | + to show it. |
| 202 | +- Do not use copyrighted characters, logos, or named fictional universes. Use |
| 203 | + genre cues, knockoffs, and original compositions instead. |
| 204 | + |
| 205 | +## Content-First Aesthetic Contract |
| 206 | + |
| 207 | +The meaning must be readable and clearly hierarchical. Everything else is |
| 208 | +creative territory: visual format, layout, visual metaphors, decorative |
| 209 | +elements, color choices, and category-specific visual language. |
| 210 | + |
| 211 | +Hierarchy: |
| 212 | + |
| 213 | +1. Meaning: what shipped, what changed, and why it matters must be clear. |
| 214 | +2. If the image uses text, labels, sections, or evidence bullets, they must be |
| 215 | + legible. |
| 216 | +3. The selected category's visual DNA should drive the composition, whether that |
| 217 | + is a readable map structure, a poster, a scene, a tableau, or a symbolic |
| 218 | + object arrangement. |
| 219 | +4. Do not play it safe. A visually striking image that someone wants to look at |
| 220 | + beats a correct but boring one. |
| 221 | + |
| 222 | +Hard rules: |
| 223 | + |
| 224 | +- Content sections and labels must be readable when present. Text cannot be |
| 225 | + obscured by decorations. |
| 226 | +- Do not use lore-heavy copy that competes with engineering or business meaning. |
| 227 | +- Every prompt must include a clear composition cue: map regions, route lines, |
| 228 | + checkpoints, node graphs, a staged scene, a poster composition, a symbolic |
| 229 | + tableau, or a hero object. |
| 230 | +- Do not over-prescribe exact coordinates or panel geometry; give a composition |
| 231 | + backbone and let the model compose around it. |
| 232 | + |
| 233 | +## Generation |
| 234 | + |
| 235 | +1. Write the final prompt to a temporary markdown file. |
| 236 | +2. Generate with the shared image helper: |
| 237 | + |
| 238 | +```bash |
| 239 | +uv run --script scripts/generate_infographic.py \ |
| 240 | + --prompt-file /tmp/bm-infographic-prompt.md \ |
| 241 | + --output docs/assets/infographics/<name>.webp |
| 242 | +``` |
| 243 | + |
| 244 | +3. Verify the image exists and is readable before reporting success. |
| 245 | + |
| 246 | +## Quality Bar |
| 247 | + |
| 248 | +- Tell a concrete before/after value story, not vague improvement claims. |
| 249 | +- Stay understandable for both engineers and non-technical stakeholders. |
| 250 | +- Use plain-language section titles and labels when text is present. |
| 251 | +- Include clear visual hierarchy: title, sections, evidence bullets, staged |
| 252 | + focal point, or symbolic scene. |
| 253 | +- Avoid invented facts; only use provided source material. |
| 254 | +- Favor shipped outcomes over intermediate or reverted work. |
| 255 | +- Preserve readability with high contrast, non-tiny labels, and uncluttered |
| 256 | + layout. |
0 commit comments