The TUI chat, MCP server, and skills loader that make pg_hardstorage
answerable in natural language without ever giving an LLM the keys to the
cluster.
A constrained chat surface that converses with a provider
(internal/plugin/llmprovider), a tool-use layer that maps model calls to
read-only CLI invocations, a safety/privacy filter chain that redacts before any
byte leaves the host, and a YAML-declared skills system. Also an MCP server so
external assistants (Claude Desktop, IDE plugins) can reach the same tool
surface over stdio.
chat/— REPL session, validator-retry loop, anti-hallucination guardstools/— tool registry;cli_runner.goshells out only to the allowlistedpg_hardstoragesubcommands;livestate.gosnapshots healthsafety/— destructive-action gate, anomaly heuristics, refusal taxonomyprivacy/— strict / standard / open / local-only modes; PII + DSN redactormcp/— Model Context Protocol stdio server (third-party clients)skills/— YAML skill loader;builtin/{ask,explain,incident,restore}.skill.yamlship;runbookandpostmortemare v1.0 deferreddocs/— embedded runbooks + grounding corpus the model retrieves againsthistory/— conversation persistence + summarisation (derive.go)
../plugin/llmprovider/README.md— wire-level provider plumbing../approval/— every destructive intent routes through here, not the chat../audit/— every tool call is journaled
- Anything that mutates cluster state — wrap it in an
internal/approvalworkflow first. - Provider-specific HTTP code — that's
internal/plugin/llmprovider. - Free-form prompts that bypass
skills/— every conversation must be anchored to a declared skill.