---
id: "action-build-metadata-registry"
type: "action-item"
source_timestamps: ["00:05:31"]
tags: ["system-design"]
related: ["concept-metadata-first-tool-registry", "concept-dynamic-tool-pool-assembly"]
action: "Define agent tools as data structures before implementing execution logic."
outcome: "Enables safe runtime filtering and introspection of agent capabilities without triggering side effects."
speakers: ["Nate B. Jones"]
sources: ["s46-anthropic-25b-leak"]
sourceVaultSlug: "s46-anthropic-25b-leak"
originDay: 46
---
# Build a Metadata-First Tool Registry

## Action
Before writing any execution logic, **define all agent tools as queryable data structures** containing names, source hints, and responsibility descriptions.

## Outcome
Enables **safe runtime filtering** and **introspection** of agent capabilities without triggering side effects.

## Implementation Sketch
1. Choose a single source-of-truth format (JSON, YAML, typed config).
2. For each tool/command, capture: `name`, `source_hint`, `responsibility`, plus access tier.
3. Build the registry **before** wiring in any execution code.
4. Add a query API: `list_tools(context)` → returns subset.
5. Layer execution on top of the registry, never inside it.

## Why This Is the First Action
Without this, none of the higher-leverage primitives — [[concept-dynamic-tool-pool-assembly]], [[concept-contextual-permission-handlers]], [[concept-multi-level-verification]] — can be built safely.

## Underlying Concept
[[concept-metadata-first-tool-registry]].
