12 Boring Primitives Framework
- Entity ID:
ent-20260419-a1b2c3d4e509 - Type:
concept - Scope:
shared - Status:
active - Aliases: Nate Jones 12 primitives, 80% plumbing framework
Description
Nate Jones' architectural framing of Claude Code as '20% LLM, 80% plumbing,' organized into 12 primitives across three build tiers. Day One: (1) tool registry with metadata-first design, (2) permission system with four trust tiers evaluated per tool call, (3) JSONL append-only session persistence, (4) separate workflow-state vs conversation-state stores. Week One: (5) pre-turn token-budget checks, (6) streaming event architecture (tool calls emit events to all listeners, no polling), (7) structured logging with correlation IDs (session+turn+tool+timestamp), (8) verification step separate model call. Month One: (9) per-task tool-pool assembly (never load all 40 tools), (10) multi-tier compaction (Layers 1-5 at different cost points), (11) security architecture depth (18 independent modules protecting Bash alone), (12) six agent types with role specialization (explore/plan/implement/review/debug/general-purpose) each with own budget and tool subset. Claim: most custom agents implement 1/3/6, skip 2/4/5/7/8, and never reach 9-12.
Key claims
clm-20260419-a1b2c3d4e605: Claude Code is 20% LLM call and 80% plumbing (12 primitives)clm-20260419-a1b2c3d4e606: Permission tiers in Claude Code evaluate per tool call, not per sessionclm-20260419-a1b2c3d4e607: Workflow state and conversation state are stored separately so compaction preserves task memoryclm-20260419-a1b2c3d4e608: Token budget is checked before each turn, not afterclm-20260419-a1b2c3d4e609: Tool calls emit events to all listeners simultaneously — no pollingclm-20260419-a1b2c3d4e60a: Verification is a separate model call, not a self-check in the main loopclm-20260419-a1b2c3d4e60b: Claude Code does not load all 40 tools into every contextclm-20260419-a1b2c3d4e60c: Six role-specialized agent types each have their own context budget and tool subsetclm-20260419-a1b2c3d4e612: 18 independent security modules protect the Bash tool aloneclm-20260423-p2c005000001: Deny rules always win over allow rules regardless of specificity
Relations
rel-20260419-a1b2c3d4e70c: Nate Jones --[owns]--> 12 Boring Primitives Frameworkrel-20260419-a1b2c3d4e70d: 12 Boring Primitives Framework --[summarizes]--> Claude Coderel-20260419-a1b2c3d4e70e: 12 Boring Primitives Framework --[supports]--> 7-Agent Feature Modelrel-20260419-a1b2c3d4e70f: 12 Boring Primitives Framework --[supports]--> Bash Security Pipelinerel-20260423-p2r00000001: plan Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000002: default Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000003: acceptEdits Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000004: auto Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000005: dontAsk Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000006: bypassPermissions Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000007: bubble Permission Mode --[part_of]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000008: Coordinator Permission Branch --[implements]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000009: Swarm Worker Permission Branch --[implements]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000010: Speculative Classifier Permission Branch --[implements]--> 12 Boring Primitives Frameworkrel-20260423-p2r00000011: Interactive Permission Branch --[implements]--> 12 Boring Primitives Framework- ... and 8 more