Flat-vector technical illustration: a central green index.md document surrounded by 5 persona-colored viewer lenses (P1 red direct_technical, P2 orange editor-grade, P3 purple one-liner, P4 gray silent, P5 gold comparison-matrix). Top-left shows a faded ghost smiley with 5 stars crossed out in red, labeled LLM default positive bias. A bright green arrow loops from the ghost back to the central document, labeled mock-reader-feedback/v1.

How I Built a 5-Persona Mock Reader Skill (with Claude Code)

TL;DR: The mock-reader-feedback skill is a Claude Code sub-command that uses 5 preset personas (P1-P5) to simulate reader feedback. It outputs a YAML feedback report to docs/feedback/<article>-<persona>.md. This article breaks it down: how the 5 personas are constructed, how the 7-step workflow runs, how the YAML schema is strictly enforced, and 5 anti-patterns I have already hit. Author’s note: This skill is what I crystallised after running 12 feedback reports against 3 articles in August 2026 (hugo-cloudflare-pages-pitfalls / claude-code-cli-setup-indie-blog / claude-code-editorial-pipeline). Every report, script, and persona file referenced here lives in the repo and is inspectable. ...

August 30, 2026 · 14 min
Flat-vector technical illustration: a steel-gray filing cabinet labeled content/posts/ with its draft drawer half-open, spilling green index.html documents into a darker archive below. One spilled document carries a red STALE stamp. A green arrow loops from the archive back to a clean drawer labeled fresh build/ on the right.

Why My Hugo Draft Still Shows Up After I Moved It to _drafts/

TL;DR: A Hugo draft = true article still shows up on my local dev server, and the root cause stacks three layers: hugo --gc does not clean public/, the dev server falls back to stale HTML, and taxonomy listing pages do not rebuild. Fix command: rm -rf public/{posts,tags,categories,index.json} + restart dev server. Author’s note (D19): I first ran into all three of these layers together on that D10 commit 581555b — the commit message itself said hugo --gc 验证:零 render-image 警告 (“verified zero render-image warnings”), and I trusted it, so the dev server’s 0 warnings at startup kept the browser serving stale public/ HTML. It wasn’t until the D17 review that I grep’d the whole site and found 4 subdirectories under public/tags/ + public/index.json — 5 stale leftovers in total. ...

August 27, 2026 · 9 min
Flat-vector hub-and-spoke topology on dark slate background: a central green hexagonal HUB node connected via thin geometric lines to five satellite nodes arranged in a pentagonal pattern, each representing one of the five Hugo + Cloudflare Pages error clusters covered by this troubleshooting hub.

Hugo + Cloudflare Pages Error Cluster: 5 Common Issues and How to Triage Them

Nature of this file: A Hub index page (not a single-topic article). Each error cluster has one dedicated Spoke article with the full fix commands; this Hub only does symptom identification + decision-tree triage and does not include step-by-step fix code (to avoid duplicating Spokes and tripping HCU’s thin-content red line). D22 structural decision: shifted from the original D12 B2 “Hub covers all 12 S1-S12 candidates” to 5 error clusters (image / redirect / OOM / stale / 7 traps), matching 2 published Spokes (A1 + S18) + 3 pending Spokes (S1 / S2 / S3). Deep-dives on selection / Workers / URL resolution go into later Hub candidates. ...

August 25, 2026 · 8 min
Laptop glowing mint-green on a dark developer desk at night, code editor and commit graph on screen, mechanical keyboard in foreground, faded six-stage pipeline loop in background

How I Cut My Solo Tech Blog Pipeline from 6 Hours to 2 Hours Per Post in 11 Days

Introduction: 11 Days, 4 Major Iterations, from 6 Hours to 2 Hours per Post Eleven days ago I grabbed heimaeden.com on NameCheap. At the time I only wanted to set up a Hugo + Cloudflare Pages pipeline — I had no plan to use AI to write articles. Today (D11) I have published 3 English long-form posts, evolving from “6 hours per post, Stack Overflow debugging” to “2 hours per post, AI pair debugging.” In between, there was 1 incident where AI ghostwrote for me and I reverted it on the spot (commit bc9a369), and I crystallised 6 hard rules into CLAUDE.md §3.8. Most recently I introduced a mock-reader skill to run P1/P3/P5 feedback, which surfaced several blind spots I had not noticed. ...

August 22, 2026 · 17 min
A blueprint illustration of a glowing deployment pipeline with three nodes and seven red lightning-shaped fault markers along the line, evoking hidden pitfalls in static site deployment.

Hugo + Cloudflare Pages Deployment: 7 Hidden Traps and How I Fixed Them

Building a static blog using Hugo and hosting it on Cloudflare Pages sounds like a breeze for developers—until you actually do it. Over the past 48 hours, I went through a massive debugging marathon, fighting hidden routing deadlocks, CSS asset pipeline drops, and bizarre deployment errors. To save your sanity, I have compiled my real-world troubleshooting notes, complete with raw error logs and the exact solutions that fixed them. Trap 1: The Cloudflare Dashboard “UI Illusion” (Workers vs Pages) The Nightmare When setting up my project in the new Cloudflare dashboard, I clicked the highly visible blue “Create application” button. After connecting my GitHub repository, I noticed the build settings were completely messed up: there was no Framework preset dropdown, only a Build command showing None and a Deploy command showing npx wrangler deploy. Forcing a deployment resulted in catastrophic errors. ...

August 13, 2026 · 8 min
Developer at a dual-monitor workstation writing code in dark theme, representing the hands-on static blog setup process.

Zero-Cost Static Blog Deployment with Cloudflare Pages and Hugo

Zero-Cost, Fully Automated Static Blog Setup with Cloudflare Pages + Hugo As a developer, once you’ve locked down your domain name, don’t burn money on a generic overseas VPS — and don’t sink hours into configuring Nginx or patching Linux CVEs. Pair GitHub for source hosting with Cloudflare Pages’ global edge network, and you can ship a serverless, millisecond-load, malware-proof geek static tech blog at zero cost. 1. Static vs Dynamic: A Quick Comparison Before committing, I weighed static blogs head-to-head against the traditional WordPress stack. For a technical audience, static is a decisive win: ...

August 10, 2026 · 7 min
Hand holding a credit card while typing on a laptop keyboard, depicting an online cross-border payment scenario.

Overseas Domain Purchase and Cross-Border Payment Guide

Beginner’s Practical Guide to Buying an Overseas Domain and Making Cross-Border Payments If you’re building an overseas-facing site, the domain is your core asset. As a first-timer buying my first overseas domain, I found the hidden pitfalls far more numerous than I’d imagined. This walk-through is the distilled result of my own hands-on process — it helps you steer clear of mainland-registrar surveillance risks, walk away with a .com at a top overseas wholesale registrar, and completely solve the cross-border payment problem when you don’t have a foreign-issued credit card. ...

August 10, 2026 · 9 min