Skip to content
View ek33450505's full-sized avatar

Highlights

  • Pro

Block or report ek33450505

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ek33450505/README.md

Edward Kubiak

Agent infrastructure engineer — I build the layer between you and the agent loop.

CAST License: MIT Tests

Columbus, Ohio · edwardkubiak.com · LinkedIn · edward.kubiak.dev@gmail.com

By day I architect and maintain production EdTech at META Solutions — 5 apps serving 4,200+ users across 900+ Ohio school districts. Nights and weekends I build agent infrastructure for Claude Code.

Focus: agent infrastructure, developer tools, and AI platform engineering.


What I work on

Multi-agent systems fail in predictable ways: routing is opaque, memory bleeds across agents, policy is aspirational, and observability stops at the tool call. I build CAST to close those gaps — a local-first control plane for Claude Code — and a family of standalone, zero-LLM guardrails that fell out of building it. More at castframework.dev.

CAST ecosystem metrics card — version, agents, tests, db tables, commands, skills, packages (exact counts in the CAST section below)

One control plane. Two observability surfaces. A family of deterministic, zero-LLM guardrails — all local-first, all recorded to a single SQLite execution log. Nothing leaves your machine, and nothing calls a model to grade itself.

Projects at a glance

Project What it does Stack
CAST Local-first multi-agent control plane for Claude Code Bash · SQLite
claude-code-dashboard Web observability UI — 21+ views, live SSE streaming React · Express
cast-desktop Native macOS observability app + embedded terminal Tauri 2 · Rust
attest Zero-LLM gate: verifies a subagent's DONE vs the git delta Python
looptrip Zero-LLM detector for multi-agent loop pathologies Python · PyPI
misfire Turns the rules your agents ignore into enforcement hooks Python

Deep-dives below — click any project to expand.


CAST

claude-agent-team · Bash · MIT · 23 agents · 2115 tests · 39 tables · 21 commands · 17 skills · 9 packages

A local-first control plane for Claude Code. Multi-agent systems need observability, persistence, and unforgeable policy — CAST ships all three by construction, hung off Claude Code's own lifecycle hooks and recorded in a SQLite database that two surfaces read from.

flowchart LR
  SS["SessionStart"] --> R["router"]
  PT["PreToolUse"] --> G["policy gate"]
  SUB["SubagentStop"] --> T["telemetry"]
  R --> DB[("cast.db")]
  G --> DB
  T --> DB
  DB --> WEB["claude-code-dashboard · web"]
  DB --> NAT["cast-desktop · native"]
Loading
  • Hook-driven dispatch over polling. Routing, telemetry, and policy hang off lifecycle events (SessionStart, PreToolUse, SubagentStop, Stop) — no daemon, no background loop, no missed events.
  • Local-first SQLite everywhere. Agent runs, routing decisions, memory, and quality gates all live in ~/.claude/cast.db, replicated off the blast radius via Litestream — the database survives a full ~/.claude wipe.
  • Per-agent memory, not shared context. Each agent keeps scoped memory; isolation by default, coordination only when asked for.
  • Hard-blocking policy gates. Force-pushes, raw git commit, destructive shell ops — refused at the hook seam, not left to agent discipline.
# Claude Code plugin (recommended)
/plugin marketplace add ek33450505/claude-agent-team
/plugin install cast && /plugin enable cast@cast
# or: brew tap ek33450505/cast && brew install cast

Observability — two surfaces, one data layer

Everything CAST records lands in cast.db. Read it on the web, or natively — same data, two delivery models.

claude-code-dashboard ✨ — web observability UI for CAST (21+ views, live SSE)

claude-code-dashboard · React 19 · TypeScript · Vite 6 · Express 5 · better-sqlite3 · Tailwind v4

A browser dashboard for everything CAST records. Reads ~/.claude/ directly and streams live session data over SSE — which agents fired, what they cost, whether the guards are holding. 21+ views across sessions, analytics, agents, hook health, a memory browser, plans, and a database explorer. No accounts, no telemetry, nothing leaves your machine.

git clone https://github.com/ek33450505/claude-code-dashboard
cd claude-code-dashboard && npm install && npm run dev
cast-desktop — native macOS observability app with an embedded terminal

cast-desktop · Tauri 2 · Rust · TypeScript

The same cast.db, packaged as a self-contained native app — no Node, no server to run. An embedded PTY terminal with persistent pane-to-session binding, an inline CodeMirror editor that dispatches agents on selection, 11 dashboard views over 70+ read-only loopback routes, and live per-session cost streaming ($/min plus a 4-hour projection).

brew tap ek33450505/cast-desktop && brew install cast-desktop

Guardrails & detectors

Three standalone, deterministic, zero-LLM tools for Claude Code. None calls a model — so none adds tokens or can hallucinate its own verdict. They grade the act against ground truth on disk.

attest — catches a subagent's false DONE against the real git delta

attest · Python 3 (stdlib-only) · MIT

"DONE" is a claim, not proof. Grade the act, not the output.

A subagent reports Status: DONE after a Write that returned success but never landed on disk — a silent write-failure behind a confident claim. attest snapshots the git tree on SubagentStart, recomputes the delta on SubagentStop, and checks whether the files it claimed to change actually changed. If a claimed file never landed, it (opt-in) blocks the completion so the same agent is forced to fix it. Fail-open on every doubt; verified end-to-end against real Claude Code with captured payloads committed to the repo.

/plugin marketplace add https://github.com/ek33450505/attest
# or: brew tap ek33450505/attest && brew install attest
looptrip — trips multi-agent loops at iteration 2, not on the invoice

looptrip · Python 3 · Apache-2.0 · PyPI

Catch the loop at iteration 2 — not on the invoice.

The failure mode that quietly burns money: agents loop — the same subagent dispatched again and again with no progress between repeats (duplicate-work, ping-pong / livelock, deadlock, non-termination), and you find out on the bill. looptrip watches a run as a stream of normalized events and trips at the second dispatch. An observer, never a gate. Works over OpenTelemetry GenAI spans or a CAST cast.db — no new instrumentation. On two real recorded runaway sessions, tripping at iteration 2 would have averted $792.96 of duplicate-work spend (looptrip proof reproduces it).

pip install looptrip
# or: brew tap ek33450505/looptrip && brew install looptrip
misfire — measures which of your prose rules agents actually ignore, then enforces only those

misfire · Python 3 (stdlib-only) · Apache-2.0 · PyPI

Prose rules are hopes. misfire ranks the ones your agents ignore — and converts only those to hooks.

Most agent guardrails are written up front and hoped to hold. misfire works backward from evidence: it reads your CLAUDE.md, .claude/rules/*.md, and your own run history, then ranks which machine-checkable prose rules your agents demonstrably ignore — by observed violation rate, with confidence thresholds and a minimum-support floor. For the violated, convertible subset only, it scaffolds a deterministic PreToolUse/PostToolUse hook for you to review — leaving safety and judgment rules as prose. An observer and recommender, never a gate: it never auto-applies a change and never writes settings.json. The ranking is byte-reproducible against a committed fixture with no database (misfire rank reproduces it).

pip install misfire
# or: brew tap ek33450505/misfire && brew install misfire

The CAST ecosystem

Beyond the flagship, CAST has spun off a constellation of small, single-purpose tools — a read-only MCP server over the execution record, signed hash-chained session receipts, telemetry-driven dispatch prediction, persistent agent memory, a standalone install health check, a clock, and a cross-session journaling layer. Each ships independently; each installs via Homebrew.

9 Homebrew-installable packages — the full table

Core Framework

Repo Description Latest Install
claude-agent-team Local-first multi-agent control plane — specialist agents, quality gates, hook enforcement, and the tamper-evident cast.db execution record. brew tap ek33450505/cast && brew install cast

Observability

Repo Description Latest Install
claude-code-dashboard React observability UI — sessions, agent analytics, hook health, memory browser, SQLite explorer. Clone from GitHub
cast-desktop Tauri 2 native app — embedded PTY terminal, command palette, 11 dashboard views. brew tap ek33450505/homebrew-cast-desktop && brew install cast-desktop

Standalone Packages

Repo Description Latest Install
cast-mcp Read-only MCP server over the Claude Code execution record (cast.db) — dispatch decisions, incidents, cost, sessions, and full-text search as 5 MCP tools + 5 resources. stdlib-only, strictly read-only. brew tap ek33450505/cast-mcp && brew install cast-mcp
cast-ledger Signed, hash-chained, tamper-evident session receipts for Claude Code — SHA-256-stamped audit receipts from cast.db with --verify, plus an optional provenance hash-chain across sessions. brew tap ek33450505/cast-ledger && brew install cast-ledger
cast-predict Telemetry-driven dispatch prediction for Claude Code — reads cast.db to predict a task's likely cost, suggest agents, and surface related past incidents before you run it. brew tap ek33450505/cast-predict && brew install cast-predict
cast-memory Persistent agent memory for Claude Code — FTS5 full-text search, weighted relevance, temporal validity, Ollama embeddings, and weekly consolidation over cast.db. brew tap ek33450505/cast-memory && brew install cast-memory
cast-doctor Standalone read-only health check for any Claude Code install — validates hooks, MCP config, agent frontmatter, cast.db core schema, and stale memories without the full CAST framework. brew tap ek33450505/cast-doctor && brew install cast-doctor
cast-time Gives Claude Code a clock — injects local time, timezone, and a semantic time-of-day bucket at every SessionStart. brew tap ek33450505/cast-time && brew install cast-time
cast-claudes_journal Three-hook journaling for Claude Code (Stop/SessionStart/UserPromptSubmit) — maintains Claude's perspective and working memory across sessions as Obsidian-compatible markdown in ~/Documents/Claude/. brew tap ek33450505/homebrew-claudes-journal && brew install claudes-journal

Stack

Bash · Python · TypeScript · React 19 · Express 5 · SQLite · BATS · Vitest · Tauri 2 · GitHub Actions · Homebrew. macOS first, Linux supported. Anthropic API + Claude Code Agent SDK.


Building in public · edward.kubiak.dev@gmail.com · edwardkubiak.com · LinkedIn

Pinned Loading

  1. claude-agent-team claude-agent-team Public

    Local-first governance layer for Claude Code, built entirely on its native primitives — hooks, subagents, skills, MCP. Turns every session into a queryable, local SQLite record, then reads it back …

    Shell 5 1

  2. misfire misfire Public

    misfire — a trace-grounded auditor that finds which CLAUDE.md rules your agents actually ignore and turns the ones that matter into deterministic hooks.

    Python

  3. attest attest Public

    DONE is a claim, not proof — a zero-LLM Claude Code hook that verifies a subagent's DONE against the real git delta and, opt-in, blocks the ones that never landed.

    Python 1

  4. looptrip looptrip Public

    looptrip — coordination-pathology detector + handoff attribution for multi-agent LLM runs; OSS lib + OTel SpanProcessor

    Python

  5. claude-code-dashboard claude-code-dashboard Public

    CAST observability UI — React 19 + Express dashboard for cast.db session analytics, agent runs, and hooks

    TypeScript 3 1

  6. cast-desktop cast-desktop Public

    cast-desktop — native Tauri 2 desktop app for CAST with embedded PTY, command palette, and observability dashboard

    TypeScript