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.

Open to roles on agent infrastructure, developer tools, and Claude Code platform teams.


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 — and a set of standalone, zero-LLM guardrails that fell out of building it. More info @ castframework.dev.

CAST v8.0.0 — 23 agents, 1,797 tests, 36 db tables, 20 commands, 18 skills, 13 packages

Projects at a glance

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

Deep-dives below — click any project to expand.


CAST

claude-agent-team · Bash · MIT · v8.0.0 · 23 agents · 1797 tests · 36 tables · 20 commands · 18 skills · 13 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 · v2.5.0

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, swarm teams, 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 · v1.2.12

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 · v0.1.1 · 302 tests

"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 · 491 tests · 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 · v0.1.0 · 430 + 5 BATS tests · 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

13 Homebrew-installable packages
Repo Description Latest Install
cast-hooks 13 auditable hook scripts — observability, safety guards, quality gates. SessionStart, PreToolUse, PostToolUse, PostCompact. brew tap ek33450505/cast-hooks && brew install cast-hooks
cast-agents 23 specialist agents — commit, debug, review, plan, test, research, and more. Agent definitions with YAML frontmatter. v8-synced. brew tap ek33450505/cast-agents && brew install cast-agents
cast-memory Persistent agent memory with FTS5 search, relevance scoring, shared pool, semantic embeddings. Per-agent knowledge accumulation. brew tap ek33450505/cast-memory && brew install cast-memory
cast-routines Scheduled autonomous Claude Code routines via YAML + cron. Daily briefings, inbox triage, release celebration, weekly cost reports. brew tap ek33450505/cast-routines && brew install cast-routines
cast-parallel Parallel agent execution across worktree sessions. Agent Dispatch Manifest (ADM) support. brew tap ek33450505/cast-parallel && brew install cast-parallel
cast-observe Session-level observability — cost tracking, agent run history, token spend, event sourcing. Feeds cast.db. brew tap ek33450505/cast-observe && brew install cast-observe
cast-security Security hooks and audit trails. PII redaction, parry-guard integration, compliance logging. brew tap ek33450505/cast-security && brew install cast-security
cast-doctor Read-only health check for any Claude Code install. Validates hooks, MCP servers, agent frontmatter, cast.db schema, stale memories. 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-dash Terminal UI dashboard for live swarm monitoring. 4-panel real-time display (Textual framework). brew tap ek33450505/cast-dash && brew install cast-dash
cast-claudes_journal Session continuity — Claude's Journal auto-injects prior-day context via SessionStart hook. Obsidian vault sync. brew tap ek33450505/homebrew-claudes-journal && brew install claudes-journal
cast-website castframework.dev — marketing site and docs portal for the CAST ecosystem.
cast-desktop Tauri 2 native app — embedded PTY terminal, command palette, 11 dashboard views. v8-synced. brew tap ek33450505/homebrew-cast-desktop && brew install cast-desktop

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

    CAST: Local-first orchestration framework for Claude Code. Implements hook-driven dispatch, isolated agent memory, and deterministic policy gates.

    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 local, deterministic, zero-LLM Claude Code hook that verifies a subagent's Status: DONE / ## Handoff claim against the real git working-tree delta — and, opt-in, block…

    Python 2

  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