← all posts

⚠️ Stale. Evidence changed after this post was sent. View correction #2.
Stale

POST #1 · 2026-09-13T21:54:55.951501+00:00

Started at 10pm with a docs pack and zero code, and by 3am the whole pipeline ran end to end.

Commit range0553c6b..cc1d113

Post text

Started at 10pm with a docs pack and zero code, and by 3am the whole pipeline ran end to end. cdl/app.py now takes signed GitHub webhooks and hands them to a background pipeline instead of blocking the request. The real product is claim_vs_diff in cdl/grounding/check.py, pure python that decides whether a sentence is backed by the diff so the LLM never gets a vote on truth. cdl/monitor.py re-runs that exact same check on every push over everything already posted, threading a correction the moment cited code disappears. Biggest facepalm of the night: the Anthropic SDK 1.5 quietly dropped the temperature kwarg, so I wrote _supports_param in cdl/llm.py to ask the SDK what it accepts instead of assuming.

Sentence receipts

5 sentences
UNVERIFIABLEnotes

Started at 10pm with a docs pack and zero code, and by 3am the whole pipeline ran end to end.

❔ no checkable claim

SUPPORTEDboth

cdl/app.py now takes signed GitHub webhooks and hands them to a background pipeline instead of blocking the request.

Every named file, function, and integration appears in the diff.

  • cdl/app.py (cdl/app.py)
  • cdl/__main__.py:34 (GitHub) — compare = subparsers.add_parser("dump-compare", help="dump a GitHub compare response as JSON")
  • cdl/app.py:49 (GitHub) — def _verify_github(secret: str, body: bytes, supplied: str | None) -> bool:
  • cdl/approval.py:4 (GitHub) — rechecks stored receipts against the current GitHub HEAD, and mirrors the
SUPPORTEDnotes

The real product is claim_vs_diff in cdl/grounding/check.py, pure python that decides whether a sentence is backed by the diff so the LLM never gets a vote on truth.

Every named file, function, and integration appears in the diff.

SUPPORTEDboth

cdl/monitor.py re-runs that exact same check on every push over everything already posted, threading a correction the moment cited code disappears.

Every named file, function, and integration appears in the diff.

SUPPORTEDboth

Biggest facepalm of the night: the Anthropic SDK 1.5 quietly dropped the temperature kwarg, so I wrote _supports_param in cdl/llm.py to ask the SDK what it accepts instead of assuming.

Every named file, function, and integration appears in the diff.

  • cdl/llm.py (cdl/llm.py)
  • cdl/llm.py:273 (_supports_param) — def _supports_param(client: Any, name: str) -> bool:
  • eval/cases.jsonl:22 (_supports_param) — {"id": "a809efd-SUP", "base": "d6227680b58025fe5aa7d0075cec0ec32b2b8901", "head": "a809efd49851c524dea3a4a87719ab941a4833b2", "sentence": "anthropic sdk 1.5 has no temperature kwarg anymore so _supports_param in cdl/llm.py asks the sdk what it accepts instead of assuming", "expected": "SUPPORTED", "note": "temperature fix: cdl/llm.py only"}
  • cdl/llm.py:291 (temperature) — temperature: float,
  • eval/cases.jsonl:22 (temperature) — {"id": "a809efd-SUP", "base": "d6227680b58025fe5aa7d0075cec0ec32b2b8901", "head": "a809efd49851c524dea3a4a87719ab941a4833b2", "sentence": "anthropic sdk 1.5 has no temperature kwarg anymore so _supports_param in cdl/llm.py asks the sdk what it accepts instead of assuming", "expected": "SUPPORTED", "note": "temperature fix: cdl/llm.py only"}
  • BRIEF.md:13 (temperature) — The anthropic 1.5.0 SDK removed the `temperature` parameter from `messages.create`; the client feature-detects it and otherwise runs at the SDK default.
  • cdl/__main__.py:33 (Anthropic) — subparsers.add_parser("models", help="list available Anthropic model IDs")
  • cdl/config.py:20 (Anthropic) — DEFAULT_MODEL = "claude-sonnet-5"
  • cdl/grounding/check.py:20 (Anthropic) — "anthropic": ["anthropic", "claude"],