MECHANISM · EXTENSIBILITY · CORE

Extension Runtime

Load and execute hooks, plugins, skills, custom tools, or provider adapters without collapsing extension code into the core loop.

3 lessons6 agent snapshots0 experiments
extensibilityextension-runtimeproblem → policy → evidence
L0Intuitionpartial
L1Buildmissing
L2Engineeringpartial
L3Architecturepartial
L4Researchpartial
DEPENDENCY GRAPH · READER PATH

What feeds it, and what does it unlock?

Arrows show learning and design dependencies, not runtime data flow. Follow any node to continue through the Atlas.

extension-runtimeExtension RuntimeCurrent research boundary
UnlocksNo dependents yet
Bilingual deep dive missing

Load and execute hooks, plugins, skills, custom tools, or provider adapters without collapsing extension code into the core loop.

The structured record is in the Atlas, but the L0–L4 article has not passed content review.

AGENT MAPPING · EVIDENCE ONLY

Snapshot implementations

An implementation enters the map only when both a snapshot and claims exist; unknowns remain visible.

UNKNOWN · EVIDENCE GAPReference Harness

No implementation currently clears the Snapshot + Claim threshold; this is not a claim that the product lacks the capability.

Inspect coverage boundary
CLAIMS · EVIDENCE LEDGER6 RECORDS
official-docreviewed

claude-code-doc-hooks

Claude Code's official hook contract exposes lifecycle events including pre- and post-tool use, permission requests, session start/end, and stop; PreToolUse hooks can deny a call before normal permission-mode checks, while allow decisions cannot override stricter deny rules.

Agent
Claude Code
Snapshot
claude-code-2026-08-10-docs
Reviewed
2026-08-10
source + source + sourcereviewed

opencode-source-extension-runtime

OpenCode's pinned source discovers local skills, loads configured plugins, and imports MCP tools into the common tool-resolution boundary, with trust and permission still configuration-dependent.

Agent
OpenCode
Snapshot
opencode-2026-08-10-source
Reviewed
2026-08-10
EXPERIMENTS · EXERCISES

What has actually been tested?

Formal experiments are separate from course exercises. Exercises can validate the reference implementation but cannot replace Native evidence from a real agent.

Formal experiment · not registered

No experiment record means untested, not passed. The course checks below cover only the deterministic reference harness.

s03-tool-dispatchobserve
Verify the tool roundtrip

The request, result, and second model request appear in causal order.

python3 -m curriculum.golden verify s03-tool-dispatch
s03-tool-dispatchmodify
Test the dispatch contract

The tool result returns to the next turn as a tool message bound to tool_call_id.

python3 -m unittest curriculum.tests.test_vertical_slice.VerticalSliceTests.test_s03_tool_roundtrip -v
s05-instructionsobserve
Verify instruction input

The run matches the committed trace without leaking a local absolute path.

python3 -m curriculum.golden verify s05-instructions
s05-instructionsmodify
Test root-to-leaf precedence

Root instructions remain before package instructions and an external cwd is rejected.

python3 -m unittest curriculum.tests.test_vertical_slice.VerticalSliceTests.test_s05_root_to_leaf_instructions curriculum.tests.test_vertical_slice.VerticalSliceTests.test_instruction_discovery_rejects_external_cwd -v
s09-memory-skillsobserve
Verify on-demand loading

memory.read and skill.load each appear once with source or skill identity.

python3 -m curriculum.golden verify s09-memory-skills
s09-memory-skillsmodify
Test the retrieval contract

Queries return only relevant source-attributed memory; unknown skills fail explicitly rather than being silently injected.

python3 -m unittest curriculum.tests.test_vertical_slice.VerticalSliceTests.test_s09_retrieves_memory_and_loads_skill -v
OPEN QUESTIONS · L4
01

Which extension capabilities require an explicit trust decision?

02

How should hook conflicts and non-deterministic completion order be surfaced?

03

Can one portable extension API preserve each harness's safety model?