AGENTS.md — Project Instructions

What is this

Bilingual (English + Hebrew) cybersecurity research blog built with Jekyll. Deployed on GitHub Pages from main branch.

Live site: https://danieloz147.github.io

Language — CRITICAL

File structure

_posts/           English posts (markdown)
_he/              Hebrew posts (markdown, same filenames)
_layouts/         default.html (main layout), post.html
_includes/        home.html, posts-list.html, analytics.html
_data/i18n.yml    All UI strings (EN + HE)
assets/css/       main.css (single file, no framework)
assets/js/        site-analytics.js
assets/images/og/ Auto-generated OG images (via scripts/generate-og.js)
scripts/          OG image generator (Node.js, Satori + resvg)
_config.yml       Jekyll config — requires server restart on changes

Running locally

.\server-up.ps1

This runs Jekyll in Docker on port 4000. _config.yml changes require stopping and re-running.

OG images

When adding a new post, generate its OG image:

cd scripts && node generate-og.js

Then add og_image: /assets/images/og/<slug>.png to the post’s front matter (both EN and HE versions). Hebrew posts get he- prefix: he-<slug>.png.

Post conventions

Hidden features

Formsubmit

Email hash: 8fbbc51c2ebddb2866cb47922566cc69 (in _config.yml). Do NOT change this — it’s the working hash that delivers emails.

Deployment

Style

Writing — avoid AI tells

The blog is written by a human. Content must read like a human wrote it.

Patterns to avoid:

Characters and phrases that scream AI (EN):

Characters and phrases that scream AI (HE):

How to check: Read it out loud. If it sounds like a LinkedIn post, a consulting deck, or a conference keynote — rewrite. If every paragraph lands on a neat conclusion — break one. If the structure is too clean — mess it up a little. Real expertise sounds confident but imperfect.