Every recipe, newest first.
-
"Give concrete detail" made the LLM invent it
A give-concrete-detail brand-voice line made a content pipeline invent unverifiable specifics. Fix: a context constraint, a [FILL] channel, a banned list.
-
18 pre-commit rules that block the commit, not the launch
Eighteen pre-commit rules encode GDPR, consumer-protection, and thin-content checks as compliance-as-code — ~150ms per commit, blocking commits, not launch.
-
Five specialist subagents, delegated by description
Five domain-scoped .claude/agents/ subagents, each with its own restricted tool list and per-agent pre-commit skip-list, delegated by description not by name.
-
MarkItDown read the 19MB PDF WebFetch wouldn't
WebFetch caps fetches at 10MB, so a 19.5MB system-card PDF stayed unread. MarkItDown converted it in 66s — and recovered the number we couldn't verify.
-
ASR + an LLM corrupted my agent's memory twice in 6 weeks
Each layer was fine alone. Stacked, ASR and an LLM classifier wrote a grammatically valid false fact the agent stated on every call. The audit that catches it.
-
Cloudflare Pages serves stale HTML after every deploy
A Cache Rule makes Cloudflare Pages edge-cache HTML, so your next deploy stays invisible at the canonical URLs for up to 24h — until you purge.
-
Crawled – currently not indexed isn't always a bug
22 URLs hit Search Console's 'Crawled – currently not indexed' — all noindex'd markdown alternates. When that bucket is your noindex working, not a defect.
-
Four Notion API gotchas the docs don't mention
A Notion sync layer that read clean in the docs broke four ways in prod: UTF-16 rich_text limits, appending template enums, orphan writes, and a schema split.
-
We fact-checked the Opus 4.8 launch with Opus 4.8
We run Opus 4.8 with Ultracode (xhigh + Dynamic Workflows), so we aimed it at the launch claims: 15 agents, ~1.1M tokens, 3 of 32 claims refuted.
-
Astro sitemap doesn't filter noindex pages by default
24 noindex topic pages plus /404/ were leaking into sitemap-0.xml. The filter callback that drops them, and the .mjs-can't-import-.ts gotcha.
-
Cloudflare Pages won't edge-cache HTML without a Cache Rule
The _headers Cache-Control directive worked for /_astro/ assets but not HTML. The Cache Rule that fixed it, the UI gotcha, curl MISS-then-HIT.
-
ElevenLabs Conversational AI: four 200 OK gotchas
Four ElevenLabs Conversational AI gotchas that return 200 OK with wrong behavior: workspace-scoped keys, hidden override toggles, dual webhook auth, test gates.
-
Astro slot=head drops silently from nested components
Moved BreadcrumbList JSON-LD into a nested Astro component's slot=head. It vanished. Search Console: 0 items. The undocumented Astro slot rule.
-
GCP budgets don't cap spend — Pub/Sub is the only hard-stop
GCP budgets are alert-only. Pub/Sub → Cloud Function → updateBillingInfo is the real kill-switch — plus the Gen 2 logger gotcha that ate an afternoon.
-
WeasyPrint to Playwright PDF: five footguns
Migrating five PDF formats off WeasyPrint to Playwright + Chromium worked — after the asyncio deadlock, the systemd sandbox, and the per-user browser cache.
-
A Claude Code plugin's manifest is 12 lines
What ships in a Claude Code plugin: 12-line marketplace.json, 12-line plugin.json, no enumeration. Discovery is directory-based.
-
Six Cloudflare Pages build failures before _headers
First Astro 6 deploy to Cloudflare Pages: 6 failed builds, 2 rollbacks, 8 commits, 8 hours. The ordered list of fails the docs scatter across six pages.
-
SessionStart: systemMessage vs additionalContext
Wrote a SessionStart hook to surface open work. systemMessage shows it in the UI; additionalContext injects it into model context.
-
Cloudflare email-protection breaks screen readers
A11y audit on the live homepage caught a Cloudflare edge-side trick that source-code audits can't see: the footer email link reads 'email protected' aloud.
-
Fewer permission prompts: 15 sessions, one allowlist line
Scanned 15 Claude Code session transcripts for prompts to allowlist. ~50 commands extracted, one strict survivor. The auto-allow list is broader than expected.
-
Pytrends keyword research: 429 ceiling at 12 queries
Google Trends keyword research with pytrends: the urllib3 method_whitelist trap, a 429 on the 13th query, and two findings that flipped the plan.
-
Scheduled remote agents can't see gitignored files
Three /schedule routines proposed, two created, one declined. The recurring sweep would have read a gitignored folder — the remote agent can't see those.
-
Customer research on a pre-launch blog, no assets
Ran /customer-research with no customer assets and no G2 reviews. Mode 1 and Mode 2 both partly failed; the confidence-levels guardrail saved the run.
-
/seo-schema validates JSON-LD well. It won't extend it.
Ran /seo-schema against a site that already emits five schema types. It validates cleanly, won't help you add the next one — and that's a tell.
-
E-E-A-T audit: anonymity policy caps Authority at 5/10
E-E-A-T audit, 197 skills + 20 blog posts on anonymous wiki. Authority caps at ~5/10 by policy. Experience-on-display is the real defect — three fixes shipped.
-
20 broken links: three upstream repos restructured at once
Site-wide link audit on a static Astro wiki: 12,753 hrefs across 311 pages, 20 broken externals. Root cause: three upstream repos restructured the same week.
-
Competitor-profiling named one I didn't know existed
A profiling skill sized for Firecrawl + DataForSEO, run without either. The discoverability step it skipped is where the actual finding landed.
-
One dispatch, 160 files classified, the rubric was the bug
Dispatched an Explore agent to classify 160 wiki entries. The rubric the agent invented mapped to a phrase that appears in 142 of those files.
-
Verification caught half the audit claims weren't greppable
Ran evidence-before-assertion on a four-claim audit. Two passed grep. The other two were the agent's content read, accepted on trust.
-
From breadth to depth: pausing wiki imports at 12 sources
Wiki at 160 skills: 14 firsthand, 9 visibly TODO, 137 still-generic. Pausing new imports. Two moves earn more leverage: real engagements and cookbook posts.
-
Week one on Cloudflare Pages: 449 visitors, 5.99% cached
First seven days post-domain-attach: 449 visitors, 8.7 requests per visit, 5.99% cache rate. GPTBot spiked +3,763%. Three hypotheses, one already confirmed.
-
142 over-long meta descriptions, one 6-line fix
An n=8 sample flagged one over-long meta description on this Astro wiki. The full 153-skill sweep showed 142. One helper in Base.astro fixed all of them.
-
Two destructive git ops: a parallel-session .gitignore trap
My .gitignore cache was stale, so I read 20 vendored skill files as pollution. Ran git rm --cached, then reverted. Two commits that shouldn't exist.
-
Six personas in parallel, three findings with receipts
Six agency-agent personas dispatched as general-purpose subagents — emulated, not installed. Three findings: a frontmatter gap, a schema gap, three a11y gaps.
-
Four SEO skills on one homepage: only Sweep 4 found the gap
Four skills on the same live homepage. Three SEO rubrics returned clean scores. Only copy-editing's Sweep 4 caught the claim-vs-proof colocation gap.
-
skill-security-auditor isn't a website audit tool
A 30-second negative-fit receipt: the skill name reads like website security, but the actual scope is scanning skill code before install. Lesson included.
-
Claude Code CRO on a content blog with no funnel
Ran /page-cro on a content blog with no signup, no funnel. 4 of 7 framework dimensions applied. The convergence with /copy-editing was the lesson.
-
A static-site CSP that doesn't break Pagefind
The Content-Security-Policy on a static Astro blog with Pagefind search — the two directives nobody documents and what 'unsafe-inline' actually costs you.
-
Claude Code hook: Haiku 4.5 judges every content edit
A PostToolUse hook that sends every content edit to Haiku 4.5 for an editorial-bar verdict. The config, the rubric, and the prompt-caching floor.
-
Claude Code hook: validate frontmatter on every Edit
A PostToolUse hook validating blog and skill frontmatter against the same zod shape Astro uses at build. Real config, two live blocks captured.
-
Cloudflare's AI Audit silently rewrites your robots.txt
Cloudflare's AI Audit feature edge-injects Disallow rules into robots.txt — silently overriding the file you committed. What it blocks, what slips through.
-
Claude Code harness setup: 3 skills, 30 minutes
15 transcripts scanned, 1 permission survivor, 5 misplaced allow rules found, 2 remote agents scheduled: what three harness skills found in 30 minutes.
-
Claude Code PostToolUse hook: log every skill activation
A PostToolUse hook on the Skill tool: appends a stub to receipts-drafts/. The config, the Node script, and the watcher quirk that took a restart.
-
/copy-editing vs /humanizer: only one made edits
Two skills on the same 65-line technical post: copy-editing made 4 edits, humanizer made 0. The negative result and the decision rule it produces.
-
Three SEO skills on pre-launch Astro: what each caught
Three SEO skills, one pre-launch Astro site, no live URL: title fixed in 3 minutes, full-site scored at 82/100, content E-E-A-T at 65/100.
-
Claude Code hooks: a starter recipe with real config
One Claude Code hook, the actual JSON, what it blocks, and the two failure modes I hit. The full cookbook ships after 12 hooks in production.