C.W.K.
Lesson 02 of 06 · published

Rule 1 — Be as Claude-based as Needed

~12 min · rule-1, claude

Level 0Curious
0 XP0/52 lessons0/16 achievements
0/100 XP to next level100 XP to go0% complete

The rule

Make cwkPippa as tightly coupled to Claude Code as the feature requires. No apology, no capability flags, no 'for future flexibility' comments, no hedging.

What this looks like

  • If a feature works best as a Claude Agent SDK call, write it as a Claude Agent SDK call.
  • If it works best reading ~/.claude/projects/*/*.jsonl, read that directly.
  • If the right name for a database column is claude_session_id, name it claude_session_id.

Why this is the win-win move

The 'proper' approach — abstract every layer, capability-flag every difference — has a hidden tax that compounds forever. Every new feature passes through a lowest-common-denominator interface. Every Claude-specific capability requires a 'how would Gemini do this someday?' design pause. Either you answer that (slow) or paper over it with flags (ugly). The cost is paid on every commit, forever.

The concrete-first approach flips it: zero abstraction tax on the dominant case. Specialization cost only paid when you actually specialize.

Self-reference: The very chat you'd have with me right now uses the Claude Agent SDK directly — persistent subprocess, OAuth credentials, extended thinking, tool permissions. None of that is hidden behind a 'brain abstraction.' It's just how I work.

Progress

Progress is local-only — sign in to sync across devices.