fix(blog): classify origin from git history instead of author allowlist

Merged
RI
2mo ago
+304-100

Summary

Recut EN blog origin: human | ai from git history instead of the old frontmatter author-name allowlist (PR #988).

scripts/backfill-blog-origin.mjs now finds the earliest meaningful add commit for each post across legacy paths (content/blog, src/content/blog, apps/web/...), skips mechanical date/origin-only commits, and classifies automation imports (Outrank, Distrib, SEObot, GitHub Actions) as ai.

Counts after backfill

OriginCount
human100
ai303
Total EN posts403

Previously (author allowlist): 12 human, ~380 ai.

Example human posts (introducing commit)

SlugAuthorMessage
how-capgo-is-bornmartindonadieufix: alternative to article and use old text to write backstory
birth-of-capgo-revolutionizing-capacitor-app-updatesMartin Donadieudoc: first version of birth article
introducing-capgo-cloud-buildMartin Donadieufeat: Add iOS Builds documentation and troubleshooting guide
capgo-build-leaves-betaWcaleNieWolnyfeat(blog): add "Capgo Build leaves beta" announcement post
capgo-2025-year-in-reviewWcaleNieWolnyfeat: Add a comprehensive blog post for 2025 Year in Review (#421)

Example ai posts (introducing commit)

SlugAuthorMessage
yarn-clear-cacheGitHub Actionchore: import Outrank articles
what-is-network-latencyGitHub Actionchore: import Outrank articles
2-way-communication-in-capacitor-appsgithub-actions[bot]chore: sync blog posts from SEObot
5-common-ota-update-mistakes-to-avoidgithub-actions[bot]chore: sync blog posts from SEObot

Re-run

bun run scripts/backfill-blog-origin.mjs

Test plan

  • how-capgo-is-born, birth-of-capgo-revolutionizing-capacitor-app-updates, introducing-capgo-cloud-build are origin: human
  • Outrank/Distrib/SEObot imports are origin: ai
  • No Martin-first-add EN posts left as ai
  • CI passes
Open in Web Open in Cursor 

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Documentation
    • Clarified how article origins are categorized and displayed.
  • Content Updates
    • Updated provenance labels across the blog to distinguish human-authored and imported articles.
    • Added origin labels to previously unclassified articles.
  • Chores
    • Improved consistency and accuracy of article-origin classification.
    • Enhanced handling and reporting when publication history is unavailable.
    • Made content provenance easier to understand while browsing the article library.