Claude Primitives & Model Family — June 2026 Snapshot

claude-primitives-2026-06

reference confidence verified status active 2026-06-18 owner principal-architect
source Curated capture, 2026-06-18. Model IDs / context / pricing from the `claude-api` skill catalog (cached 2026-05-26) corroborated by the session's harness-authoritative model context. Primitive facts grounded by the claude-code-guide agent against PRIMARY docs (code.claude.com/docs, platform.claude.com/docs); URLs in Sources. This is a DISTILLED reference, NOT a scan/mirror of the docs (per the no-scan call, [[0050-do-not-mirror-anthropic-docs-distill-references]], recorded in `knowledge/log.md`, 2026-06-18).

Claude Primitives & Model Family — June 2026 Snapshot

Type note. reference is a custom concept type — a dated, provenance-bearing external-knowledge snapshot (see TypeScript Toolchain Competitive Landscape — June 2026 Scan and OKF Upstream — GoogleCloudPlatform/knowledge-catalog — June 2026 Scan for the established pattern, and Dossier — The Knowledge Model (v0) for why custom types are allowed). It is not a decision: it records what Claude's primitives/models look like, not a judgment Dossier made. The judgment that consumed this evidence is Claude-primitives-first build strategy.

This is a DISTILLED capture, not a scan. On 2026-06-18 we deliberately decided not to mirror Anthropic's docs into the KB (Do not scan/mirror Anthropic's docs into the KB — distill curated references instead) — they're Anthropic's (the OKF-upstream situation: reference, don't absorb) and they rot fast. This atom holds only the stable, high-churn-resistant facts we re-derive constantly. For anything live (a new model, a changed param, an edge case), use the live primitives — the claude-api skill, the claude-code-guide agent, WebFetch against the docs — never this snapshot.

Recency caveat: the model family in particular moves fast (Fable 5 and Opus 4.8 are recent). Treat model IDs/pricing as a 2026-06-18 snapshot; re-verify before relying on them downstream.

Context

Dossier is Claude-primitives-first (Claude-primitives-first build strategy): we build with subagents, Agent Skills, hooks, MCP, and the Agent SDK, and ship as Claude Code plugin(s) — the same primitives we ship. Agents kept re-reading the docs in-session to recall the same stable facts (which file a subagent lives in, the hook event names, the current Opus model ID). This atom captures that recurring core once, so future agents start from a known baseline instead of re-fetching.

Part 1 — The six primitives Dossier builds on

1. Subagents

Specialized agents, each with its own isolated context window, system prompt, tool restrictions, and model choice.

  • Where: .claude/agents/*.md (project) · ~/.claude/agents/*.md (user) · plugin-root/agents/*.md (plugin).
  • Markdown + YAML frontmatter: name, description, model, tools, system_prompt.
  • Auto-selected when a task matches the description, or invoked directly. Run within a session (distinct from background/parallel sessions).
  • This repo's expert team lives here.claude/agents/ (the FDE, log-auditor, layer engineers).
  • Docs: code.claude.com/docs/en/subagents

2. Agent Skills

Model-invoked, reusable capabilities packaged as markdown + optional supporting files.

  • Where: .claude/skills/<name>/SKILL.md (project) · ~/.claude/skills/ (user) · plugin-root/skills/ (plugin).
  • Progressive disclosure: frontmatter (name + description, ~100 tokens) always loaded; SKILL.md body loaded only when triggered; bundled files loaded on demand — net-zero context cost for unused content.
  • Frontmatter: name (≤64 chars, lowercase+hyphens), description (≤1024 chars, what and when), optional disable-model-invocation (user-only).
  • Plugin skills are namespaced /<plugin>:<skill>. Follows the open AgentSkills.io standard; Claude Code extends it with invocation control + dynamic context injection.
  • Docs: code.claude.com/docs/en/skills · platform.claude.com/docs/en/agents-and-tools/agent-skills/overview

3. Hooks

Deterministic, event-driven callbacks at lifecycle points — the governance layer.

  • Where: ~/.claude/settings.json · .claude/settings.json · .claude/settings.local.json (not shared) · plugin-root/hooks/hooks.json.
  • Lifecycle events (primary): SessionStart, SessionEnd, UserPromptSubmit, PreToolUse (can block), PostToolUse, Stop, PermissionRequest (plus more — compaction, file watches, etc.).
  • Handler types: command (shell), http (POST), mcp_tool, prompt (LLM decision), agent (subagent eval).
  • matcher filters by tool name (e.g. "Edit|Write"). Exit 0 = success (JSON parsed for decisions); exit 2 = blocking error (stderr → user). Input arrives on stdin as JSON.
  • This repo uses these — the win32 capture-trace.cmd PostToolUse hook + the PreToolUse lease gate in Agentic "sprint board" architecture — a git-resident OKF task board worked by bounded, hook-governed Agent SDK loops. Note our hook wiring may pre-date or diverge from current doc schema — verify against the docs, not this summary, when editing hooks.
  • Docs: code.claude.com/docs/en/hooks

4. MCP (Model Context Protocol)

Open standard connecting Claude to external tools, data, and services.

5. Agent SDK

Python + TypeScript library that runs Claude with built-in tool execution and the agent loop inside your own process — Claude Code's capabilities in CI/CD, custom apps, production automation.

  • Packages: @anthropic-ai/claude-agent-sdk (npm) · claude-agent-sdk (pip, Python 3.10+). Formerly "Claude Code SDK".
  • Shares Claude Code's feature set: subagents, hooks, MCP, skills, commands, CLAUDE.md memory, permissions, session resume/fork. Built-in tools (Read/Write/Edit/Bash/Glob/Grep/WebSearch/WebFetch…).
  • The orchestration runtime Dossier's platform layer is built on (ingest→extract→OKF per client).
  • Auth note: as of now the Agent SDK / claude -p run on a Pro/Max subscription (Anthropic postponed the move to dedicated credits) — keep runtime auth swappable.
  • Docs: code.claude.com/docs/en/agent-sdk

6. Plugins

The packaging/distribution unit that bundles skills + agents + hooks + MCP + commands (+ LSP) — Dossier's ship vehicle.

  • Manifest: plugin-root/.claude-plugin/plugin.jsonname (unique, lowercase), description, optional version (defaults to commit SHA), author, homepage, repository, license.
  • Layout: skills/<name>/SKILL.md · agents/*.md · hooks/hooks.json · .mcp.json · .lsp.json · settings.json (defaults when enabled).
  • Installed via a marketplace (marketplace.json) or --plugin-dir ./path for local testing. Skills namespaced /<plugin>:<skill>.
  • The packaging decision lives in Plugin + marketplace packaging — distribution as the agency wedge, built from the canonical .claude/ primitives.
  • Docs: code.claude.com/docs/en/plugins · code.claude.com/docs/en/plugins-reference

Official Claude Code surfaces: Terminal CLI (claude), VS Code extension, Desktop app (Mac/Windows), Web (claude.ai/code), JetBrains plugins. Docs: code.claude.com/docs/en/overview

Part 2 — Claude model family (snapshot 2026-06-18)

Model IDs are exact strings — never append date suffixes to an alias (claude-opus-4-8, not a dated variant). Default to the latest/most-capable model when building AI features.

Model ID Context Max output Input $/1M Output $/1M Notes
Claude Fable 5 claude-fable-5 1M 128K $10 $50 Most powerful; new tier above Opus
Claude Opus 4.8 claude-opus-4-8 1M 128K $5 $25 Current default — most capable Opus; 1M at standard pricing (no long-context premium)
Claude Opus 4.7 claude-opus-4-7 1M 128K $5 $25 Previous-gen Opus
Claude Opus 4.6 claude-opus-4-6 1M 128K $5 $25 Older Opus
Claude Sonnet 4.6 claude-sonnet-4-6 1M 64K $3 $15 Best speed/intelligence balance
Claude Haiku 4.5 claude-haiku-4-5 200K 64K $1 $5 Fastest/cheapest (full id claude-haiku-4-5-20251001)

Stable API-surface facts worth not re-deriving:

  • Adaptive thinking is the model: thinking: {type: "adaptive"}. budget_tokens is removed on Fable 5 / Opus 4.8 / 4.7 (400s); deprecated on Opus 4.6 / Sonnet 4.6. Sampling params (temperature/top_p/top_k) are removed on Fable 5 / Opus 4.8 / 4.7.
  • Effort via output_config: {effort: "low"|"medium"|"high"|"xhigh"|"max"} (default high; xhigh is the coding/agentic sweet spot and Claude Code's default). Not on Haiku.
  • Structured outputs: output_config: {format: {...}} (the old output_format is deprecated). Last-assistant-turn prefills 400 on Fable 5 and the 4.6/4.7/4.8 family.
  • Stream for max_tokens above ~16K to avoid SDK HTTP timeouts.

Caveats — preserve honestly

  • Fast-moving: the model family especially. This is a 2026-06-18 snapshot; re-verify model IDs/pricing/params via the claude-api skill or the live docs before relying on them.
  • Distilled, not exhaustive: intentionally omits the long tail (full hook event list, every plugin sub-file, Managed Agents, per-SDK syntax). For depth, go to the source — that's the point of not scanning.
  • Our own wiring may diverge from current docs: the repo's hooks predate parts of this snapshot. When editing .claude/hooks/ or plugin packaging, treat the docs (or claude-code-guide) as authoritative, not this atom.
  • Flagged-uncertain (per claude-code-guide): the hooks JSON schema is dense and may have shifted; plugin-marketplace sync timing has a publish delay; Agent SDK third-party/subscription auth status is in flux.

Implication for Dossier (assessment, NOT a decision)

The primitive set is exactly the surface Claude-primitives-first build strategy commits us to build on and ship through — this atom confirms that bet and lowers the recall cost of working in it; it changes nothing. The model facts confirm we should default AI features to the latest Opus (currently claude-opus-4-8) with adaptive thinking. No decision is taken in this atom. If a primitive or model shift ever forces a real choice (e.g. a new packaging model, a runtime-auth migration), capture it then as its own decision atom — don't amend this snapshot to imply a judgment.

Sources

Curated capture, 2026-06-18 (confidence: verified for the core facts; recency-caveated):