| name | wiki-entity-upgrade |
| description | Upgrade bio-only blogger entity pages to comprehensive thought analysis format |
| category | wiki |
Wiki Entity Page Upgrade
Upgrade bio-only entity pages to comprehensive thought analysis format following mitchellh-com.md as reference.
Workflow
- Read existing bio-only entity page in
~/wiki/entities/
- Scrape author's blog (homepage + 3-5 recent articles)
- Extract core ideas, philosophy, key quotes, recent themes
- Write upgraded page following the format below
- Update wiki/index.md and wiki/log.md
- Commit:
cd ~/ai-topics && git add wiki/ && git commit -m "wiki: upgrade <slug> to thought analysis" && git push
Page Format
---
title: "Author Name"
type: entity
url: "blog.example.com"
category: blog-author
tags: [topic1, topic2]
---
| Field | Value |
|-------|-------|
| Name | Author Name |
| URL | blog.example.com |
| Known For | Key achievement |
| Themes | Primary writing topics |
Brief biographical context + writing philosophy (2-3 paragraphs)
| Year | Milestone |
|------|-----------|
Analysis + supporting evidence from their writing
Analysis + supporting evidence
- "Notable quote 1" โ [Source](url)
- "Notable quote 2" โ [Source](url)
- Theme 1 with explanation
- Theme 2 with explanation
- [[entities/related-author]] โ connection explanation
- URL 1
- URL 2
Progress Tracking
After each batch, run this audit to separate completed vs remaining:
import os
target = os.path.expanduser("~/wiki/entities/")
skip = {'agibot-10000-units', 'amazon-rivr', 'anthropic', 'claude-mythos', 'cursor-3',
'gemma-4', 'glm-5-zai', 'glm-5v-turbo', 'meta', 'mistral-voxtral-tts',
'muse-spark', 'openai-spud', 'qwen3-6-plus', 'zoox-expansion'}
bio_only, has_analysis = [], []
for f in sorted(os.listdir(target)):
if not f.endswith('.md') or f.replace('.md','') in skip: continue
with open(os.path.join(target, f)) as fh: content = fh.read()
if "## Core Ideas" in content or "## Key Themes" in content:
has_analysis.append(f)
else:
bio_only.append(f)
print(f"โ
Done: {len(has_analysis)}, ๐ Remaining: {len(bio_only)}")
for b in bio_only: print(f" - {b}")
Batch Processing Strategy
- Budget awareness: delegate_task has ~50 iteration budget per subagent. A batch of 5 entities can exhaust it, leaving some files unwritten. Always verify post-batch.
- Group by similar domains (AI researchers, security experts, infrastructure devs, etc.)
- Process 3-5 entities per subagent task using delegate_task
- Use 2-3 parallel subagent tasks per batch (don't exceed 4 โ budget compounds)
- After each batch: audit โ copy from wrong dir โ commit โ push โ next batch
- For the final ~10 entities: consider running sequentially or in 2 parallel tasks to ensure completion
- Non-entity pages (companies, models, products) use different formats โ skip them
- Target: ~69 blogger entities total (OPML has 84 feeds, but 14 are concepts/products)
Critical Pitfalls
- Canonical write target: delegate_task subagents must write directly to
~/wiki/entities/. If a delegated context exposes an isolated HOME or shows ~/.hermes/home/..., treat that as a runtime artifact and continue to target the canonical wiki path only.
- Subagent filename aliasing: Even when given exact filenames, subagents create files with DIFFERENT names (e.g.,
benjamin-clavi.md instead of bclavie.md, ethan-mollick.md instead of emollick.md, hynek-schlawack.md instead of hynek.md). After each batch:
- Check all new files:
ls -la ~/wiki/entities/*.md (sort by time)
- Look for skeleton duplicates: files with
status: skeleton in frontmatter
- Delete skeleton duplicates after confirming enriched version exists
- Common pattern: full-name-slug.md vs handle.md โ both exist for same person
- Subagent budget exhaustion: Each delegate_task subagent has ~50 iteration budget. When processing 5+ entities, the subagent may hit the limit and complete without writing all files. ALWAYS verify:
- Check subagent summary for which files were actually written vs just researched
- If
exit_reason: max_iterations, some files may be missing
- Run the progress tracking audit immediately after each batch
- Non-entity page confusion: OPML has 84 feeds but only ~69 are blogger entities. The rest are companies, products, or concepts. Use the skip set in progress tracking to avoid wasting time on these.
- Hillel Wayne newsletter duplication: Hillel Wayne has both
hillel-wayne.md and buttondown-com-hillelwayne.md. The newsletter version should cross-reference the main page, not duplicate all content.
X Account Enrichment Workflow
For X/Twitter accounts (from ~/x-accounts.yaml), the enrichment process is similar but with format differences:
X Account Page Format
---
title: "Full Name"
handle: "@twitter_handle"
created: 2026-04-10
updated: 2026-04-10
tags: [person, topic1, topic2]
aliases: ["handle", "alt-name"]
---
| | |
|---|---|
| **X** | [@handle](https://x.com/handle) |
| **Blog** | [URL](URL) |
| **GitHub** | [username](https://github.com/username) |
| **Role** | Job title |
| **Known for** | Key contributions |
| **Bio** | 2-3 sentence background |
X Account Enrichment Steps
- Check
~/x-accounts.yaml for account list
- Run
~/scripts/build_x_wiki.py to create skeleton pages (if not already done)
- Prioritize by importance: high-impact AI figures first
- Batch process 5 accounts per delegate_task subagent
- Use 3 parallel subagents per batch (don't exceed 4 โ budget compounds)
- After each batch: audit โ cleanup duplicates โ commit โ push โ next batch
- Target quality: 8-15KB per page, matching
antirez-com.md or simon-willison.md depth
Known Duplicate Patterns (X Accounts)
benjamin-clavi.md โ keep bclavie.md
chip-huyen.md โ keep chipro.md
ethan-mollick.md โ keep emollick.md
eugene-yan.md โ keep eugeneyan.md
hynek-schlawack.md โ keep hynek.md (or vice versa, check which is enriched)
lilian-weng.md โ keep lilianweng.md
samuel-colvin.md โ keep samuelcolvin.md
peter-steinberger.md โ keep if enriched (no alternate)
karri-saarinen.md โ keep if enriched (no alternate)
daniel-han.md โ keep if enriched (no alternate)
cl-mentine-fourrier.md โ keep clefourrier.md
late-interaction.md โ concept page, not person (delete if in entities/)