|
| 1 | +--- |
| 2 | +name: magazine-image-production |
| 3 | +description: Use when producing Frontend Technology Digest issues as direct full-page magazine images, packaging generated page images into a PDF, revising image-first magazine art direction, or handling requests that explicitly avoid HTML magazine assembly. |
| 4 | +--- |
| 5 | + |
| 6 | +# Magazine Image Production |
| 7 | + |
| 8 | +Repo-local skill for producing Frontend Technology Digest as direct full-page magazine images plus a PDF. Use this when the issue should be drawn as finished pages, not assembled as HTML and not generated as reusable assets. |
| 9 | + |
| 10 | +## Scope |
| 11 | + |
| 12 | +- This is a repo skill for `chatbotgang/fe-magazine`. |
| 13 | +- Communication with the user remains Traditional Chinese; magazine content, prompts, filenames, commits, and PR text remain American English. |
| 14 | +- The output is a sequence of page PNGs and `{YY-MM}/{YY-MM}.pdf`. |
| 15 | +- Do not create `{YY-MM}/index.html` unless the user explicitly asks for the legacy HTML workflow. |
| 16 | +- Do not treat generated page images as reusable assets. They are the magazine. |
| 17 | + |
| 18 | +## Intake |
| 19 | + |
| 20 | +1. Read `{YY-MM}/content.md`. |
| 21 | +2. If it contains a Content Index pointing to `{YY-MM}/content/*.md`, read every listed file in order. |
| 22 | +3. Read any user-provided extra local markdown files, keeping each article/topic separate. |
| 23 | +4. Build an issue map with: |
| 24 | + - source file |
| 25 | + - article/topic title |
| 26 | + - core claim |
| 27 | + - required facts, dates, names, numbers, and quotes |
| 28 | + - visual opportunities |
| 29 | + - copyright or source sensitivity |
| 30 | +5. Never merge unrelated extra articles into one omnibus spread. Each distinct topic deserves its own editorial treatment unless the user explicitly asks for a roundup. |
| 31 | + |
| 32 | +## Editorial Rules |
| 33 | + |
| 34 | +- Article content is the body of the magazine. Illustration is a lure, rhythm device, or explanatory aid. |
| 35 | +- Use a deliberate page mix. Some pages can be almost entirely image-led, some must carry full article body text, and some should be diagram or caption-heavy hybrids. |
| 36 | +- Prefer content spreads over decorative openers. Add an opener only when it gives the reader new orientation, a meaningful visual pause, or a standalone visual argument. |
| 37 | +- Never repeat opener content in the article page that follows. A visual page and a text page may share a topic, but they must advance different facts or angles. |
| 38 | +- Full-bleed and large-image pages are allowed. They may contain very little body copy if the image itself explains something concrete and the adjacent pages carry the article substance. |
| 39 | +- Avoid abstract-only pages when the article has concrete mechanisms, people, tools, workflows, timelines, or trade-offs that can be depicted. |
| 40 | +- Page numbers are optional. If used, design a folio system intentionally; never allow random or inconsistent page numbers. |
| 41 | +- Flat editorial spreads only. Do not generate 3D scanned-book mockups, book gutters, page curls, cast shadows, table surfaces, or visible book edges. |
| 42 | + |
| 43 | +## Page Mix And Content Ledger |
| 44 | + |
| 45 | +Before generating images, create a page ledger. The ledger prevents repeated content and forces good editorial pacing. |
| 46 | + |
| 47 | +For each planned page/spread, record: |
| 48 | + |
| 49 | +| Field | Purpose | |
| 50 | +| --- | --- | |
| 51 | +| Page id | Stable filename prefix, such as `04-opus-postmortem` | |
| 52 | +| Role | full-bleed-image, image-led, article-body, diagram-led, timeline, roundup, cover, contents, closer | |
| 53 | +| Source topic | The exact article or section it draws from | |
| 54 | +| New information | The facts, claim, quote, timeline step, or example that appears here and nowhere else | |
| 55 | +| Visual job | Why this page needs an image or diagram | |
| 56 | +| Text load | none, light caption, medium sidebar, full body | |
| 57 | +| Carryover | What the next related page must not repeat | |
| 58 | + |
| 59 | +Rules: |
| 60 | + |
| 61 | +- Every article-level topic needs at least one page whose role is `article-body`, unless the topic is intentionally a short brief or visual-only interlude. |
| 62 | +- `image-led` pages must not be treated as filler. They need a visual job: explain a system, dramatize a consequence, make a timeline memorable, or create a pause before a dense read. |
| 63 | +- `full-bleed-image` pages are valid page roles. They can use little or no body copy, but they must reserve detailed article facts for adjacent content pages unless the full-bleed image is itself the explanatory artifact. |
| 64 | +- Do not allocate the same claim, quote, timeline, diagram, or article summary to two pages. If a later page refers back, it must add a new layer. |
| 65 | +- If two pages about the same topic feel interchangeable, merge one, rewrite one as a different role, or delete the decorative one. |
| 66 | +- Keep complete body text where the reader expects an article. Do not replace a real article with only a slogan, stat card, or abstract illustration. |
| 67 | +- Good pacing is not "opener then repeated article." Good pacing is "visual argument, then body text, then evidence/detail" or another clear editorial sequence. |
| 68 | + |
| 69 | +For connected pages about the same topic, extend the ledger with continuity fields: |
| 70 | + |
| 71 | +| Field | Purpose | |
| 72 | +| --- | --- | |
| 73 | +| Consumed information | Facts, labels, quotes, or concepts already used by the previous page | |
| 74 | +| Reserved information | Facts intentionally held for the next page | |
| 75 | +| Visual vocabulary used | Main image system, metaphor, composition, medium, and recurring symbols | |
| 76 | +| Visual vocabulary forbidden next | Image systems and motifs that the next related page must not reuse | |
| 77 | +| Forbidden title language | Exact title words and nearby metaphors that follow-up pages must not repeat | |
| 78 | + |
| 79 | +Rules for connected full-bleed -> content sequences: |
| 80 | + |
| 81 | +- The full-bleed page may establish mood, metaphor, or stakes. The follow-up page must advance the article with different title language, different visual grammar, and new information. |
| 82 | +- Do not repeat the full-bleed page's title, main metaphor, hero image, scene, or composition on the follow-up page. |
| 83 | +- If the full-bleed page uses a strong metaphor, ban the lexical family on the follow-up page, not just the image. Example: after a page titled `The Fast Door`, also ban `door`, `doorway`, `room`, `vault`, and similar access metaphors. |
| 84 | +- Pair contrasting visual systems deliberately: cinematic full-bleed scene -> analytical memo; painterly metaphor -> data table; abstract cover image -> documentary evidence page. |
| 85 | +- A follow-up page can explain facts hinted at by the full-bleed page, but it must not restage the same image. |
| 86 | + |
| 87 | +## Style Islands |
| 88 | + |
| 89 | +Different sections should be allowed to look unrelated. The issue can feel curated without sharing a house style. |
| 90 | + |
| 91 | +For every major topic, define a style island before generation: |
| 92 | + |
| 93 | +| Axis | Examples | |
| 94 | +| --- | --- | |
| 95 | +| Editorial genre | investigative broadsheet, field manual, fashion feature, scientific atlas, trading-card sheet, instruction placard, industrial catalog, zine, annual report | |
| 96 | +| Grid | dense columns, modular cards, asymmetric poster, blueprint, timeline, scrapbook, specimen plate | |
| 97 | +| Typography mood | condensed grotesk, literary serif, mono technical, tabloid slab, quiet humanist sans | |
| 98 | +| Palette | high-key white, safety yellow, black/red, sea-glass, monochrome ink, fluorescent UI, muted newsprint | |
| 99 | +| Illustration medium | isometric diagram, cel illustration, pixel art, product photography simulation, technical cutaway, collage, etched line art | |
| 100 | +| Density | article-heavy, data-heavy, caption-heavy, visual breather | |
| 101 | + |
| 102 | +Quality gate: |
| 103 | +- Adjacent topics must differ on at least four axes. |
| 104 | +- Do not reuse the same color family, illustration medium, or layout skeleton for more than two pages unless the pages are part of the same article. |
| 105 | +- It is acceptable, and often better, for two chapters to look like they came from different magazines. |
| 106 | + |
| 107 | +## Mascot And Character Policy |
| 108 | + |
| 109 | +- There is no requirement to include the Claw'd mascot on every page. |
| 110 | +- Use the mascot only when it helps the topic. It should never replace the article's subject. |
| 111 | +- When used, reinvent it for the page's visual world. Keep only broad recognition cues: blocky seafood-colored crustacean, black square eyes, playful engineering context. |
| 112 | +- Prefer topic-specific illustrations: people at work, systems, tools, timelines, diagrams, environments, artifacts, and consequences. |
| 113 | + |
| 114 | +## Copyright-Safe Character Design |
| 115 | + |
| 116 | +When a page would benefit from a character inspired by a well-known fictional or commercial figure, do not put that figure, franchise, creator, actor, brand, logo, costume name, catchphrase, unique prop name, or other searchable identifier into the image prompt. |
| 117 | + |
| 118 | +Use this two-step process instead: |
| 119 | + |
| 120 | +1. **Anonymous design brief** |
| 121 | + - Describe the role and emotional function, not the source. |
| 122 | + - Describe anatomy, posture, age range, silhouette, clothing structure, materials, facial expression, color relationships, props, environment, lighting, and illustration medium in exhaustive neutral detail. |
| 123 | + - Change at least five identity-bearing traits: silhouette, palette, clothing, species/body type, era, setting, prop language, hairstyle/head shape, or personality. |
| 124 | + - Avoid exact costumes, logos, insignia, signature weapons, vehicles, sidekicks, catchphrases, and title typography. |
| 125 | +2. **Generation prompt** |
| 126 | + - Use only the anonymous brief. |
| 127 | + - Add `original character, no logos, no trademarks, no brand marks`. |
| 128 | + - If the character appears inside a full magazine page, keep article text in the layout but avoid text, logos, badges, slogans, or brand-like markings on the character, costume, props, and background artifacts. |
| 129 | + - Keep the character subordinate to the article concept unless the page is explicitly a character-led illustration. |
| 130 | + |
| 131 | +Reject and regenerate if the result reads as a recognizable named character, brand mascot, poster, album cover, game asset, or franchise still. |
| 132 | + |
| 133 | +## Direct Page Generation |
| 134 | + |
| 135 | +### Text Fidelity Contract |
| 136 | + |
| 137 | +Before writing the image prompt for any page, define a text contract: |
| 138 | + |
| 139 | +| Field | Use | |
| 140 | +| --- | --- | |
| 141 | +| Allowed exact text | Headlines, section labels, key stats, dates, and quotes allowed to appear verbatim | |
| 142 | +| Opaque labels | Acronyms, project names, people, product names, and repo names that must never be expanded or renamed | |
| 143 | +| Forbidden text | Common wrong expansions, made-up labels, fake dates, fake PR numbers, fake versions, and any brand terms to avoid | |
| 144 | +| Free paraphrase zones | Body text areas where magazine-style paraphrase is acceptable | |
| 145 | + |
| 146 | +Rules: |
| 147 | + |
| 148 | +- Treat project/team acronyms as opaque labels unless the source explicitly expands them. |
| 149 | +- If exact wording matters, say so. Otherwise prefer fewer larger paragraphs over many tiny columns. |
| 150 | +- For diagram-led pages, use strict visible text inventories and blank placeholder lines for nonessential microcopy. Do not ask the image model to invent file bodies, status fields, authors, dates, versions, or PR details. |
| 151 | +- For article-body pages, lock the headline, deck, sidebar labels, names, numbers, dates, and acronyms. Body paragraphs may be paraphrased only inside declared free paraphrase zones. |
| 152 | +- If a full article page must preserve exact body text after two direct-image attempts, switch strategy: generate the page design with intentional blank text areas, then compose the final page image with deterministic text overlay. This is still a final page image, not an HTML issue and not reusable asset production. |
| 153 | + |
| 154 | +For each page/spread, write a full-page prompt that includes: |
| 155 | + |
| 156 | +- issue and page role |
| 157 | +- exact source topic |
| 158 | +- the page ledger's unique information allocation |
| 159 | +- the text fidelity contract |
| 160 | +- target aspect ratio and orientation |
| 161 | +- editorial genre and style island |
| 162 | +- layout structure: headline, deck, body columns, sidebars, captions, diagrams, callouts |
| 163 | +- concrete article facts to include |
| 164 | +- illustration subject and how it explains the article |
| 165 | +- text density target: none, light caption, medium sidebar, or full body |
| 166 | +- strict negatives: no book mockup, no folded pages, no random page numbers, no fake logos, no made-up dates, no invented stats |
| 167 | + |
| 168 | +Use GPT Image generation for the final page image when available. Save outputs under a versioned folder such as `{YY-MM}/magazine-pages-v1/` or `{YY-MM}/magazine-pages-trimmed/`. |
| 169 | + |
| 170 | +## Proofing Loop |
| 171 | + |
| 172 | +Create a contact sheet after every generation round. Review the issue page by page, then as a full sequence. |
| 173 | + |
| 174 | +Use [review-rubric.md](references/review-rubric.md) to score each page. Treat hard failures as regeneration triggers even if the page is visually attractive. |
| 175 | + |
| 176 | +For pages with meaningful text, also perform original-size proofing: |
| 177 | + |
| 178 | +- inspect the title, deck, sidebars, and densest body area at original size |
| 179 | +- verify opaque labels are unchanged |
| 180 | +- verify no forbidden text appears |
| 181 | +- verify dates, stats, names, repo names, and quoted phrases match the source or the page ledger |
| 182 | +- verify diagram microcopy does not invent implementation details |
| 183 | + |
| 184 | +Regenerate any page with: |
| 185 | + |
| 186 | +- too little article text |
| 187 | +- a full article topic that has no article-body page |
| 188 | +- unreadable or decorative-only text |
| 189 | +- abstract imagery where concrete content exists |
| 190 | +- repeated information already allocated to another page |
| 191 | +- invented names, dates, stats, UI labels, or citations |
| 192 | +- random page numbers or folios |
| 193 | +- visible book edges, gutters, page shadows, or scanned-book perspective |
| 194 | +- repeated opener material |
| 195 | +- repeated chapter style without editorial reason |
| 196 | +- every page showing the same mascot or same character type |
| 197 | +- recognizable copyrighted character, logo, costume, prop, or franchise visual identity |
| 198 | +- a layout that feels like a slide instead of a magazine page |
| 199 | + |
| 200 | +Limit direct regeneration loops. After two attempts at the same page fail for the same reason, change the production strategy instead of repeating a nearly identical prompt. |
| 201 | + |
| 202 | +After user feedback, create a new versioned folder instead of overwriting the previous round unless the user explicitly asks to replace it. |
| 203 | + |
| 204 | +## PDF Packaging |
| 205 | + |
| 206 | +Use the approved page folder, excluding contact sheets: |
| 207 | + |
| 208 | +```bash |
| 209 | +magick {YY-MM}/magazine-pages-trimmed/[0-9][0-9]-*.png \ |
| 210 | + -units PixelsPerInch -density 300 -compress Zip \ |
| 211 | + {YY-MM}/{YY-MM}.pdf |
| 212 | +``` |
| 213 | + |
| 214 | +Verify: |
| 215 | + |
| 216 | +```bash |
| 217 | +file {YY-MM}/{YY-MM}.pdf |
| 218 | +pdfinfo {YY-MM}/{YY-MM}.pdf | sed -n '1,20p' |
| 219 | +node -e "const fs=require('fs'); const issues=JSON.parse(fs.readFileSync('issues.json','utf8')); for (const {id} of issues) { const p=id+'/'+id+'.pdf'; if (!fs.existsSync(p)) { console.error('missing '+p); process.exit(1); } }" |
| 220 | +``` |
| 221 | + |
| 222 | +If `pdfinfo` is unavailable, use `file` plus a platform PDF preview check. Do not claim the PDF is valid until it has been freshly verified. |
| 223 | + |
| 224 | +## Publish Checklist |
| 225 | + |
| 226 | +When publishing a finished issue: |
| 227 | + |
| 228 | +1. Add or update `{YY-MM}/{YY-MM}.pdf`. |
| 229 | +2. Add `{YY-MM}` to `issues.json` newest first. |
| 230 | +3. Add the issue row to `README.md` newest first. |
| 231 | +4. Do not publish generated page folders, alternate PDFs, or zips unless the user asks. |
| 232 | +5. Do not add `{YY-MM}/index.html` for direct image issues unless explicitly requested. |
| 233 | +6. Open a draft PR first unless the user explicitly asks to merge directly. |
0 commit comments