diff --git a/.claude/skills/blog-write/SKILL.md b/.claude/skills/blog-write/SKILL.md index 6d911f4f0..d927dcd0f 100644 --- a/.claude/skills/blog-write/SKILL.md +++ b/.claude/skills/blog-write/SKILL.md @@ -129,20 +129,15 @@ criteria scored, and the scores written into the commit message. Feature branch, commit, `gh pr create` with the evidence. Never push to master. -**Prove the post is in the PRODUCTION build before you call it delivered.** -`bin/hugo-build` does not prove it - that writes to `_dest/public-dev`, which -builds future-dated content, and production does not. Set `date:` to today or -earlier, then: - -``` -bin/rake test:links -find _dest/public-linkcheck -type d -name "" -``` - -Quote the page-count delta. A post dated one day ahead merges, passes every -gate, and does not publish - and the link check reports a clean zero because it -crawled everything except your post. "Merged" and "delivered" are different -claims; only the second one needs this check (2026-08-22). +**Say whether the post is LIVE or SCHEDULED.** Production skips future-dated +content, so a post dated ahead publishes on its date rather than now. **That is +a supported way to schedule (Paul 2026-08-22) - leave a future date alone unless +asked.** + +The only real error is claiming gate evidence the gate could not have produced: +`bin/rake test:links` reporting zero errors across a build that excluded your +future-dated post has validated everything except your post. Fine for a +scheduled piece, wrong to quote as proof it is good. **Do NOT wait for CI on a content-only PR** (Paul 2026-08-22). Prose and frontmatter cannot move the app build, so local gates decide and you merge as diff --git a/docs/workflows/blog-pipeline.md b/docs/workflows/blog-pipeline.md index 2af5258a8..a954e04d7 100644 --- a/docs/workflows/blog-pipeline.md +++ b/docs/workflows/blog-pipeline.md @@ -468,22 +468,26 @@ Before flipping draft: false or before any LinkedIn/external promotion drives tr If any of the above checks fail, fix before proceeding to STEP 7. STEP 7 — VALIDATE -- **CONFIRM THE POST IS IN THE PRODUCTION BUILD.** `bin/hugo-build` passing does - NOT prove this and never did: it writes to `_dest/public-dev`, which builds - future-dated content. Production does not. A post dated even one day ahead - merges cleanly, passes every gate, and silently does not publish — that - happened on 2026-08-22 with `how-to-audit-content-you-didnt-write`, dated - tomorrow, merged, absent from the live set. +- **Know whether the post is LIVE or SCHEDULED, and say which.** Production does + not build future-dated content; `bin/hugo-build` does, because it writes to + `_dest/public-dev`. So a post dated ahead is absent from the live set until + its date arrives. + + **That is a normal, supported way to schedule a post (Paul 2026-08-22) — not a + defect.** Do not "fix" a future date you were not asked to change. + + What matters is not confusing the two states in a handback. Say "live" or say + "scheduled for ", and if you claim gate evidence, check that the gate + actually saw the post: ``` bin/rake test:links # builds production into _dest/public-linkcheck find _dest/public-linkcheck -type d -name "" ``` - Quote the page-count delta as the evidence: the run above went 1,768 → 1,775 - pages when the post entered the set. A link check that reports zero errors - while your post is missing from the crawl is a vacuous green — it scanned - everything except the thing you wrote. + A link check reporting zero errors while your post is future-dated has not + validated your post — it crawled everything else. That is fine for a scheduled + post; it is only a problem if you quote it as proof the post is good. - bin/hugo-build must pass (zero errors) - Chrome DevTools: open the post page, verify: - Zero console errors