Anthropic Articles Full Translation & Interpretation Implementation Plan¶
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Translate all Anthropic official articles already snapshotted under docs/books/claude-agents/sources/ into Chinese with local images, add per-article interpretations, and keep a unified index page visible in mkdocs.yml.
Architecture: Use existing snapshots for English source text, create per-article translation/interpretation Markdown files keyed by URL slug, download images into docs/assets/books/claude-agents/<slug>/, and update the unified index page to link to originals, translations, and interpretations.
Tech Stack: Markdown, Python (bs4/requests), curl, MkDocs.
Context/Constraints¶
- Do not re-download or duplicate original snapshots in
docs/books/claude-agents/sources/. - All images must be localized into
docs/assets/books/claude-agents/<slug>/and referenced with relative paths. - Use existing reference numbers in
docs/books/claude-agents/references.md(e.g., [61], [62], [103]) in each translated article. - Keep only the unified index in nav (
docs/books/claude-agents/anthropic-articles-index.md). - Required checks before completion:
python3 tools/check_citations.pyandmkdocs build --strict.
Task 1: Generate working manifest of remaining Anthropic articles¶
Files:
- Read: docs/books/claude-agents/sources/index.jsonl
- Read: docs/books/claude-agents/sources.md
- Read: docs/books/claude-agents/references.md
- Modify: docs/books/claude-agents/anthropic-articles-index.md
Step 1: Produce a remaining-articles checklist (slug, title, ref #, category)
Run:
python3 - <<'PY'
import json
from pathlib import Path
from urllib.parse import urlparse
entries = []
for line in Path('docs/books/claude-agents/sources/index.jsonl').read_text(encoding='utf-8').splitlines():
data = json.loads(line)
if 'anthropic.com/' in data.get('url',''):
entries.append(data)
for item in entries:
path = urlparse(item['url']).path
slug = path.strip('/').split('/')[-1]
print(slug, item['title'], item['url'], item['path'])
PY
Expected: list of all Anthropic items with slug and snapshot path.
Step 2: Update index to reflect progress after each batch
- Re-run the existing index generator (or edit manually) after each batch.
Task 2: Engineering batch (10 remaining articles)¶
Repeat the following steps for each Engineering article not yet translated (slug list from Task 1).
Files (per article):
- Read: docs/books/claude-agents/<snapshot>.md
- Create: docs/books/claude-agents/<slug>.md
- Create: docs/books/claude-agents/<slug>-interpretation.md
- Create: docs/assets/books/claude-agents/<slug>/...
- Modify: docs/books/claude-agents/anthropic-articles-index.md
Step 1: Extract images from the live page and download locally
Run (replace URL and slug each time):
python3 - <<'PY'
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
from urllib.parse import urlparse, parse_qs, unquote
from pathlib import Path
url = "https://www.anthropic.com/engineering/<slug>"
slug = "<slug>"
req = Request(url, headers={
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36"
})
html = urlopen(req).read().decode("utf-8", errors="ignore")
soup = BeautifulSoup(html, "html.parser")
article = soup.find("article")
if not article:
print("No article content found")
raise SystemExit(1)
out_dir = Path("docs/assets/books/claude-agents") / slug
out_dir.mkdir(parents=True, exist_ok=True)
figs = []
for fig in article.find_all("figure"):
img = fig.find("img")
if not img:
continue
src = img.get("src", "")
if src.startswith("/_next/image"):
q = parse_qs(urlparse(src).query)
if "url" in q:
src = unquote(q["url"][0])
cap = ""
figcap = fig.find("figcaption")
if figcap:
cap = figcap.get_text(" ", strip=True)
figs.append((src, cap))
for i, (src, cap) in enumerate(figs, 1):
if not src:
continue
ext = Path(urlparse(src).path).suffix or ".png"
dest = out_dir / f"figure-{i:02d}{ext}"
req = Request(src, headers={"User-Agent": "Mozilla/5.0"})
with urlopen(req) as r, dest.open("wb") as f:
f.write(r.read())
print(dest, cap)
PY
Expected: images downloaded into docs/assets/books/claude-agents/<slug>/ and captions printed.
Step 2: Write the full Chinese translation
- Use the existing snapshot file as the source text.
- Preserve headings, lists, tables, and code blocks.
- Insert local images with captions using:

- Add a top header with URL, publish date, and author list, and cite the correct reference number.
Step 3: Write the interpretation page
- 5–8 concise bullets: 主旨、关键洞察、工程可执行要点、与本书关联、结论。
- Cite the same reference number.
Step 4: Update the index
- Ensure
anthropic-articles-index.mdpoints to the new translation and interpretation.
Task 3: Research batch (4 articles)¶
Repeat Task 2 for /research/ articles. Same file structure and image-localization process.
Task 4: News batch (8 articles)¶
Repeat Task 2 for /news/ articles. Same file structure and image-localization process.
Task 5: Verification¶
Step 1: Run citations check
python3 tools/check_citations.py
Expected: no missing citations.
Step 2: Run strict MkDocs build
mkdocs build --strict
Expected: build succeeds with no warnings.
Task 6: Final consistency sweep¶
- Ensure all translations link to the correct snapshot and use relative
.mdlinks. - Ensure all images are local and referenced via relative paths.
- Ensure
mkdocs.ymlincludes only the unified index entry for Anthropic translations.