"What is ZeroClaw's defining architectural principle?" Trait-driven extensibility (ADR-002). The kernel depends ONLY on zeroclaw-api traits (ModelProvider, Channel, Tool, Memory, Observer, RuntimeAdapter, Peripheral) — never on concrete impls. Adding anything is a trait impl through a factory, not a core patch. Cleanest separation of concerns in the roster. harness-engineering::dd16::recall "Name the 6 layers of ZeroClaw's safety model." (1) Channel pairing/access control (2) Autonomy level: readonly/supervised/full with risk-classified tools (3) Workspace boundary + path rules (4) Shell command policy: allowlist before exec (5) OS-level sandbox: Landlock/Bubblewrap/Seatbelt/Docker (6) Tool receipts: HMAC-SHA256 over calls+results to detect fabricated claims. harness-engineering::dd16::recall "How does ZeroClaw's safety layer interact with the model?" Security runs BETWEEN model emitting a tool call and the tool executing. A block surfaces as ToolResult::Err — the model sees it and can react. NOT a silent failure. The model cannot bypass shell policy (runs before exec) or receipts (computed by harness). harness-engineering::dd16::analysis "What is ZeroClaw's system-prompt philosophy?" No hidden system prompts injecting personality. 'The model sees what you configure.' Tool descriptions are Fluent-localized and deliberately terse. Sharply contrasts with opinionated harnesses shipping multi-thousand-token hidden prompts. harness-engineering::dd16::recall "How many LLM providers does ZeroClaw support, and how?" 25+ provider slots. Native trait impls (anthropic, openai, ollama, bedrock, gemini, etc.) plus compatible.rs OpenAI-compatible shim reused by 20+ vendors. Per-vendor OAuth. reliable.rs wrapper for retry/key-rotation. router.rs for per-call model routing. harness-engineering::dd16::recall "What is the thickness contradiction in ZeroClaw?" Stated philosophy: thin harness (single binary, no telemetry, no hidden prompts). Reality: ~700-800k Rust LOC, 1015 files, ~26 MiB binary. Config schema alone is 1.3 MB. RFC #5574 (microkernel refactor) is actively closing the gap by factoring behind feature flags. harness-engineering::dd16::analysis "What are tool receipts and why do they matter?" HMAC-SHA256 over successful tool calls + results, fed back into conversation. Purpose: detect fabricated tool claims — if the model says 'the file says X' but no receipt exists for that file_read, the harness can flag it. Caveat: not yet chained/durable — keys are ephemeral. harness-engineering::dd16::analysis "What is ZeroClaw's memory design rule?" Prompt context, tool output, files, and logs are NOT durable memory by default. A turn only becomes memory if the agent calls memory_store explicitly. Backends: SQLite (default), Postgres, Qdrant, Markdown. Separate knowledge graph tool for relationships (explicit capture). harness-engineering::dd16::recall