---
title: "Iliya Oblakov (@iliyaoblakov) | Hashnode"
description: "Iliya Oblakov (@iliyaoblakov) writes on Hashnode. Read their latest articles and follow their work."
url: "https://hashnode.com/@iliyaoblakov"
---

@iliyaoblakov

# Iliya Oblakov

@iliyaoblakov · Joined October 2026

## Comments

[The 30 hours was illustrative, and you've found the assumption hiding in it: that the mobile view behaves. A simple one-page site can come in under that. Once the phone layout starts fighting you, with columns stacking in the wrong order and text spilling out of buttons, every fix is a manual override inside the template's limits, and the total stops being predictable. Mobile is exactly where builders eat the time. On the custom sites RayaStats builds, the phone layout is designed alongside desktop from the start, so there's no template to fight.](https://hashnode.com/posts/custom-website-vs-website-builder/6aeb5236aaac4900b43e4be7/comment/6aeed9a8a78dfd07daa1c500#reply-6aef93cea071dbd40c146088)

Reply · Article · 3d ago · [Custom website vs website builder: which one does your small business need?](https://hashnode.com/posts/custom-website-vs-website-builder/6aeb5236aaac4900b43e4be7)

[Thanks, Ethan. The gate runs git status --porcelain --untracked-files=all, which defaults to v1, and refuses if it prints anything. Version 2 lists the same changed and untracked paths and adds file modes, object names, submodule state and rename details, which only matter when a script parses each entry. Neither version lists ignored files unless you ask for them, so a file under .gitignore never makes the gate refuse. Is your script reading the entries, or just checking for a clean tree?](https://hashnode.com/posts/why-my-review-gate-refuses-to-run-on-a-dirty-working-tree/6adafb87e956456802668e8e/comment/6ae043b0ca2be6c5760e3bed#reply-6aeec0925c8154293b3a98b1)

Reply · Article · 4d ago · [Why my review gate refuses to run on a dirty working tree](https://hashnode.com/posts/why-my-review-gate-refuses-to-run-on-a-dirty-working-tree/6adafb87e956456802668e8e)

[Thanks, Adam. By default, from v2.1.277, Claude Code reads AGENTS.md only when no CLAUDE.md, .claude/CLAUDE.md or CLAUDE.local.md sits in the working directory or above it, so with one of them present there's nothing to rank. With @AGENTS.md at the top of CLAUDE.md, the shared lines load first, but the docs say Claude Code can follow either line when two contradict. Codex has a fixed order: at most one file per directory, AGENTS.md ahead of any name in project\_doc\_fallback\_filenames, and the file closest to the working directory overrides the ones above it. So keep every shared rule in AGENTS.md and give CLAUDE.md only lines that don't contradict them.](https://hashnode.com/posts/claude-md-vs-agents-md/6aeb4f0597a9b19d61946e9c/comment/6aee4a2d7a7608d83c750ff4#reply-6aeec07aad182b2ffc5342dc)

Reply · Article · 4d ago · [CLAUDE.md vs AGENTS.md: one rules file for Claude Code and Codex](https://hashnode.com/posts/claude-md-vs-agents-md/6aeb4f0597a9b19d61946e9c)

[When you leave a hosted builder, your text and images go with you, but the design and code stay on the platform. Your rankings can come too if you keep a list of every URL from day one, so the new site can reuse each address or 301 redirect it to the closest new page.](https://hashnode.com/posts/custom-website-vs-website-builder/6aeb5236aaac4900b43e4be7/comment/6aeeb51dad182b2ffc530df0#reply-6aeec063ad182b2ffc5341af)

Reply · Article · 4d ago · [Custom website vs website builder: which one does your small business need?](https://hashnode.com/posts/custom-website-vs-website-builder/6aeb5236aaac4900b43e4be7)

[Thanks. Moving to a new host or CDN can block crawlers without anyone touching a setting: since July 2025 Cloudflare blocks AI crawlers by default on new sites until the owner turns that off. Check 4 catches it: fetch the page with curl as OAI-SearchBot, and a firewall or bot filter in the way shows up as a 403 or 503.](https://hashnode.com/posts/can-ai-engines-read-your-website/6aeb516d414e007db12b2a0b/comment/6aeeb7100ad05f20581fe113#reply-6aeec0495c8154293b3a9769)

Reply · Article · 4d ago · [Can AI engines read your website? A 15-minute check for small businesses](https://hashnode.com/posts/can-ai-engines-read-your-website/6aeb516d414e007db12b2a0b)

[Thanks. You're right that it's the weak spot, because the gate runs whatever tests are in the commit. It isn't in RULES.md. It's in the review prompt Codex gets: every test change has to fail on the old behaviour, nothing can be weakened without a stated reason, and the reviewer has to check the diff for any weakened or deleted test. So a loosened assertion with no reason comes back as CHANGES REQUIRED, but it's the reviewer's call rather than a hard check in the script. A script that flags removed asserts in the diff would be a good addition, and I'll look at it.](https://hashnode.com/posts/how-i-make-claude-code-and-codex-review-each-other-s-work/6ad7dfe549a1732434479887/comment/6ad9f70f6d071392161f0567#reply-6ada7d9d0d1b0c368da5d35e)

Reply · Article · Oct 22 · [How I make Claude Code and Codex review each other's work](https://hashnode.com/posts/how-i-make-claude-code-and-codex-review-each-other-s-work/6ad7dfe549a1732434479887)

[Thanks, that is a good tip, and an easy one for a small team to do. I didn't score service text on its own in this check, so I can't say whether those sites did better on the rest. It's a good question, and I'll add it as a separate check next time.](https://hashnode.com/posts/med-spa-websites-what-ai-engines-read/6ad93f221877198bcb76b222/comment/6ad9e868bc4868d3cac36190#reply-6ada7d80f34b8ed726c531f0)

Reply · Article · Oct 22 · [What 50 med spa websites tell AI engines about themselves](https://hashnode.com/posts/med-spa-websites-what-ai-engines-read/6ad93f221877198bcb76b222)

[Thanks. Yes, that's why the verdict file is named after the commit hash, so an ACCEPT for an older commit can't cover code that came after it. On acceptance criteria: yes, that's where I took it next. Each change now starts with a short "Done means" list, and Codex has to mark every line as met, not met or not checkable, with the house rules checked the same way. I count a "not checkable" answer as a finding about the brief, because it means I wrote a requirement nobody can verify. I wrote that up as a follow-up on my blog, "How to make Codex review Claude Code's commits", if it's useful.](https://hashnode.com/posts/how-i-make-claude-code-and-codex-review-each-other-s-work/6ad7dfe549a1732434479887/comment/6ad825a92e69f3a1ca8faf3f#reply-6ad9be61cbf3290f34172afa)

Reply · Article · Oct 22 · [How I make Claude Code and Codex review each other's work](https://hashnode.com/posts/how-i-make-claude-code-and-codex-review-each-other-s-work/6ad7dfe549a1732434479887)
