fix(blog): classify origin from git history instead of author allowlist
Merged
RI
2mo ago+304+304+012345678901234567890123456789-100-100-012345678901234567890123456789
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
| Origin | Count |
|---|---|
human | 100 |
ai | 303 |
| Total EN posts | 403 |
Previously (author allowlist): 12 human, ~380 ai.
Example human posts (introducing commit)
| Slug | Author | Message |
|---|---|---|
how-capgo-is-born | martindonadieu | fix: alternative to article and use old text to write backstory |
birth-of-capgo-revolutionizing-capacitor-app-updates | Martin Donadieu | doc: first version of birth article |
introducing-capgo-cloud-build | Martin Donadieu | feat: Add iOS Builds documentation and troubleshooting guide |
capgo-build-leaves-beta | WcaleNieWolny | feat(blog): add "Capgo Build leaves beta" announcement post |
capgo-2025-year-in-review | WcaleNieWolny | feat: Add a comprehensive blog post for 2025 Year in Review (#421) |
Example ai posts (introducing commit)
| Slug | Author | Message |
|---|---|---|
yarn-clear-cache | GitHub Action | chore: import Outrank articles |
what-is-network-latency | GitHub Action | chore: import Outrank articles |
2-way-communication-in-capacitor-apps | github-actions[bot] | chore: sync blog posts from SEObot |
5-common-ota-update-mistakes-to-avoid | github-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-buildareorigin: human - Outrank/Distrib/SEObot imports are
origin: ai - No Martin-first-add EN posts left as
ai - CI passes


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.