C.W.K.
Stream
Lesson 05 of 08 · published

Docs as Source of Truth, Models as Suspect

~12 min · docs, knowledge-cutoff, verification

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

Models lie about themselves

Every Claude model has a knowledge cutoff date. Ask the model what the newest model is and it answers from training data — sometimes years stale. The same goes for SDK names, function signatures, default options, and pricing. Models speak with confidence about a world that has moved on.

Trust order

For SDK or model questions, the trust order is: (1) docs you can fetch right now, (2) the source code installed in your environment, (3) the model's own answer. Reverse this order and you will ship code against an SDK shape that has been deprecated, or pin a model id that no longer exists.

How cwkPippa works around this

cwkPippa's docs index lives in the Obsidian vault as canonical text. When Claude-Pippa needs to answer an SDK question, the system prompt already carries the latest fingerprints of backend/adapters/claude.py and the relevant Anthropic docs. The model is a reasoner over current text, not a knowledge base.

Principle: Trust the docs you fetched five minutes ago. Distrust the model's recollection of last year.

Code

Verify SDK shape from the installed package·bash
# What is actually installed in this venv?
pip show anthropic | head -n 5
python -c "from anthropic import Anthropic; import anthropic; print(anthropic.__version__)"

# What does this version expose?
python -c "from anthropic.types import Message; print([f for f in Message.model_fields])"
Pull docs into the model's context, don't trust memory·python
import httpx
from anthropic import Anthropic

docs = httpx.get("https://docs.claude.com/llms.txt").text  # Anthropic publishes a flat llms.txt index.

client = Anthropic()
resp = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=512,
    system="Answer using ONLY the docs provided. Quote the section you used.",
    messages=[
        {"role": "user", "content": f"<docs>\n{docs}\n</docs>\n\nWhat package is the renamed Agent SDK on PyPI?"},
    ],
)
print(resp.content[0].text)

External links

Exercise

Open one Claude SDK tutorial older than six months that you have bookmarked. List every name, model id, or option that has since changed. Treat the count as a stale-tutorial budget.
Hint
Look for ClaudeCodeOptions, claude-code-sdk imports, and model ids without the current major-minor pattern.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.