Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .rulesync/skills/blog-images/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ There is no image-per-word quota. Add a visual when it explains, substantiates,

## Direct and make

Read [style.md](references/style.md) for the author-selected **editorial cut-paper** treatment, richer narrative composition, broader palette, reference strategy, and allowed variation. The selected material anchor is `assets/cut-paper-reference.png`; `assets/cut-paper-scene-reference.webp` demonstrates the current grounded scene treatment. Read [prompts.md](references/prompts.md) when preparing generation or editing briefs. For dimensions, crop geometry, social typography, accessibility, and exports, read the relevant sections of [production.md](references/production.md). The project's `docs/blog-images-research.md` records the research behind these choices.
Read [style.md](references/style.md) for the author-selected **editorial cut-paper** treatment, richer narrative composition, broader palette, reference strategy, and allowed variation. The selected material anchor is `assets/cut-paper-reference.png`; `assets/cut-paper-scene-reference.webp` demonstrates the current grounded scene treatment. Read [prompts.md](references/prompts.md) when preparing generation or editing briefs. For dimensions, crop geometry, social typography, accessibility, and exports, read the relevant sections of [production.md](references/production.md).

Use **GPT Image 2** (`gpt-image-2`) for conceptual bitmap art, as requested by the author, following the installed `imagegen` skill. Select the model through an exposed model control; writing its name in a prompt does not select it. When the built-in tool cannot verify the model, the bundled CLI supports explicit `--model gpt-image-2` and requires a locally configured `OPENAI_API_KEY`. Do not claim an unverified backend is GPT Image 2 or silently substitute another model. The author has explicitly authorised the built-in generator for this workflow even when its backend model is unverified; use it directly unless they restore a strict model requirement. Keep GPT Image 2 as the preferred model when selection is exposed. Use native editable sources for diagrams and exact typography.

Expand All @@ -51,7 +51,7 @@ Use text sparingly. Default to letting action, gesture, objects, and composition

## Integrate and review

Save selected assets inside the project and preserve editable sources or generation briefs. For a post receiving new artwork, keep compact production notes at `docs/blog-images/<slug>.md` outside the imported article tree with the final prompts, reference roles and paths, style version, actual output dimensions, capture/source attribution, and placements. Do not store rejected generations or private captures in the published content directory. Copying an asset should not silently replace unrelated existing artwork.
Save final selected assets in the project. Keep per-post prompts, generation settings, research, and production briefs transient; do not create repository notes or archives unless explicitly requested. Keep reusable style guidance in this skill. Do not store rejected generations or private captures in the published content directory. Copying an asset should not silently replace unrelated existing artwork.

Use the site's normal image/figure support, its existing spacing, and natural aspect ratios. Add useful captions and context-sensitive alt text. Keep the author's title, slug, dates, claims, and draft status unless the request includes changing them.

Expand Down
2 changes: 1 addition & 1 deletion .rulesync/skills/blog-images/references/production.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Before integrating a custom card, inspect:
- `src/app/(blog)/blog/[slug]/page.tsx`: explicitly declares the share-image URL for both social fields and BlogPosting's image.
- The adjacent `opengraph-image.tsx` and `twitter-image.tsx` routes: also generate file-based metadata. Resolve their interaction by examining final HTML; don't assume adding `twitter-image.png` alone selects it everywhere. Framework metadata precedence and version changes make source filenames insufficient evidence. [Next metadata documentation](https://nextjs.org/docs/app/api-reference/functions/generate-metadata).

Keep Markdown production notes in `docs/blog-images/<slug>.md`, outside `src/content/blog`. The current broad dynamic imports enumerate the article tree; a co-located `image-notes.md` is picked up as an unsupported module by a fresh Turbopack compile. Keep only runtime article modules and supported assets there.
Keep only runtime article modules and supported assets in `src/content/blog`. Its broad dynamic imports can pick up co-located Markdown notes as unsupported modules. Do not persist transient image-production notes elsewhere in the repository either.

Keep one custom 1200 × 630 image by default. Do not invent `metadata.hero`, `metadata.ogImage`, or an artwork prop on the fallback renderer. A custom static file is the smallest existing override for finished art. A requested deterministic illustrated card may use the existing co-located image-module convention; reuse the renderer's treatment without redesigning all articles.

Expand Down
4 changes: 1 addition & 3 deletions .rulesync/skills/blog-images/references/prompts.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Briefs and prompting recipes

These are original templates for this blog, informed by the project's `docs/blog-images-research.md`. Fill them from the finished post. Use GPT Image 2 (`gpt-image-2`), selected through the generation interface rather than named only in the prompt. They are instructions for the assistant/art director; send only the relevant visual brief to the image generator, not the entire publishing checklist.
These are reusable templates for this blog. Fill them from the finished post. Use GPT Image 2 (`gpt-image-2`), selected through the generation interface rather than named only in the prompt. They are instructions for the assistant/art director; send only the relevant visual brief to the image generator, not the entire publishing checklist.

## Plan visuals from a finished article

Expand Down Expand Up @@ -106,5 +106,3 @@ For a local defect, make a local edit. If the whole result has drifted into a di
## Review the set, not just the individual images

> Compare [selected images] beside the accepted house reference at the same displayed width. Check palette temperature, paper-edge character, shadow depth, texture density, viewpoint, and visual complexity. Then inspect each at its actual article/social size. Report only specific defects and correct those that affect meaning, readability, or family resemblance. Keep deliberate differences in subject and framing. Do not continue generating variants after the requirements pass.

Save the final brief and reference identities in the post's production notes under `docs/blog-images/`, with the selected asset path. If the tool exposes model/version/settings, record them; otherwise mark them unavailable. Keep a short reason for any deliberate style exception so the next post does not accidentally adopt it as the new default.
2 changes: 1 addition & 1 deletion .rulesync/skills/blog-images/references/style.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Judge the scene before judging its finish. Could a reader describe the visible a
3. Keep the stable style paragraph below in each prompt. Vary only the article-specific scene and its composition.
4. For a local defect, edit the selected result while stating what must remain. For later posts, return to the original accepted anchor rather than repeatedly inheriting an imperfect edit.
5. Compare the new image and reference at equal displayed widths. Check material, temperature, shadows, focal hierarchy, and complexity. Inspect the mobile version before adding detail.
6. Record the style version, reference path, final brief, actual dimensions, and generation route in `docs/blog-images/<slug>.md`. Change this guide when the author establishes a new recurring preference.
6. Update this guide when the author establishes a new recurring preference; keep per-image decisions transient.

A seed is not a style system. References improve repeatability but do not guarantee identical rendering across models or versions. Reuse an existing piece of artwork when exact identity matters.

Expand Down
2 changes: 2 additions & 0 deletions .rulesync/skills/blog-writing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ description: Write and revise Sid Jain's personal technical blog posts in his vo

Write a personal account of something the author did, noticed, or came to understand. The prose should reward reading, with the curiosity and specificity of a conversation between people who build things. Accuracy belongs in the editing process; the article should not sound like testimony about what a repository proves.

For Sid's repository, keep research reports, per-post prompts, and production briefs transient unless explicitly requested. Do not create a research archive; reserve `docs/` for maintained implementation and usage documentation.

## Find the material that can carry a story

Read the draft, the author's context, and the relevant artifacts. Find the human reason for the work and the discovery worth telling. Preserve the author's anecdotes, opinions, jokes and turns of phrase where they work. When context is missing, ask the smallest question that would reveal what happened or what surprised them; don't require an interview when the supplied material already carries the story.
Expand Down
2 changes: 2 additions & 0 deletions .rulesync/skills/site-seo/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ description: Audit and improve website and blog search discoverability, metadata

Make the site's content easy to find, understand, share and cite. Reuse its content model, metadata APIs, image renderer, feeds and deployment checks. Pair with `blog-writing` for Sid's articles; search optimisation should support the personal narrative.

For Sid's repository, keep research reports, per-post prompts, and production briefs transient unless explicitly requested. Do not create a research archive; reserve `docs/` for maintained implementation and usage documentation.

## Select the relevant checks

- **Publishing an article:** final title/description, author/dates, representative social image, article schema, internal links, feeds, sitemap and alternate content. Read [publishing.md](references/publishing.md).
Expand Down
9 changes: 4 additions & 5 deletions BLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ publication checks. Both include reusable prompts and researched references.
For images on an already-written post, use the
[blog-images skill](.rulesync/skills/blog-images/SKILL.md). It covers image
selection, exact insertion points, a shared illustration style, generation
prompts, and desktop/mobile/social crops. Its
[practitioner research](docs/blog-images-research.md)
extends the earlier writing research with actual AI-media workflows.
prompts, and desktop/mobile/social crops. Keep research reports, per-post image
prompts and production briefs transient; do not commit them to the repository.
Reserve `docs/` for current implementation and usage documentation.

Public identity URLs always use `https://f0rr0.dev`; preview deployments return
`noindex`. The sitemap lists intended search destinations, while alternate
Expand Down Expand Up @@ -157,5 +157,4 @@ Canonical URLs are derived from Vercel system environment variables when deploye
RSS, sitemap and Markdown export after deployment. Article publication does
not automatically include sending social posts or email.

The [research landscape](docs/blog-writing-landscape.md) explains the workflow
choices; the skill includes [starting prompts](.rulesync/skills/blog-writing/references/prompts.md).
The writing skill includes [starting prompts](.rulesync/skills/blog-writing/references/prompts.md).
Loading