Tech Radar
An opinionated guide to the technologies we use, trial, assess, and avoid. Inspired by ThoughtWorks. Last updated 2026-03-06.
Amazon's product discovery process. Every project starts with a PR/FAQ before writing code. Catches value risk early.
ISO 13568 specification language grounded in set theory and predicate logic. Used to model stateful systems before implementation. Drove Koch Trainer from spec to App Store.
Every capability ships as library, CLI, MCP server, and REST API from a single codebase. Defined and scaffolded by punt-kit.
mypy strict + pyright strict on every Python project. Two type checkers as independent opinions. No untyped code ships.
Small, atomic commits that each pass all quality gates. Keeps the working tree clean and makes bisection practical.
10+ parallel Claude Code instances, hand-managed. Current operating mode. Pushing the limits of what manual coordination can handle.
Opdyke's formal definition: refactoring with preconditions that must hold. Refactory operates on parsed program models, not text substitution.
Formal refinement from abstract specification to concrete implementation. Z Spec supports B machine creation, type-checking, and animation via probcli.
Structured requirements: actors, goals, scenarios, extensions. Systematic coverage of failure modes at every step. Plugin in development.
Test command functions in-memory without mocks or network. Thin adapters at boundaries, thick testable logic inside.
Building your own orchestrator to automate multi-agent workflow. Biff is the coordination infrastructure — agents show up in /who, communicate via /write and /wall, and share state through NATS.
ALEKS-style adaptive learning. Track mastery state across sessions, present concepts at the learner's frontier. Exploring for /tool:tutor commands.
Generate proof obligations from Z specs and verify in Lean 4. Promising for machine-checked correctness but toolchain maturity is still developing.
Replaced by humble object pattern. Mocks couple tests to implementation details and break on refactoring. Use integration markers for slow tests instead.
Static site hosting with preview deployments, middleware support, and immutable asset caching. Hosts punt-labs.com.
CI/CD for all projects. Quality gates, automated releases, trusted publishing to PyPI via OIDC. All action versions pinned to SHAs.
Python package distribution with OIDC-based trusted publishing. No API tokens stored as secrets. All packages use punt- prefix.
Primary development environment. Plugin ecosystem for grounding tools (PR/FAQ, Z Spec, Use Cases). MCP servers for building blocks.
Lightweight message broker for biff team communication relay. Supports mTLS and nkey authentication. Self-hosted or hosted.nats.io.
Embedded vector database powering Quarry's semantic search. Fully local, no server process, sub-second queries. Built on Apache Arrow.
MCP host for end-user tools like langlearn-tts. Desktop bundles (.mcpb) provide one-click install. Growing adoption.
Distribution channel for pure plugins (prfaq, dungeon, z-spec). Git tag triggers marketplace catalog update.
Hosted Postgres with auth, storage, and edge functions. Powers PR/FAQ's audit log and document storage. Open source alternative to Firebase.
Transactional email API. Sends access gate magic links, approval notifications, and contact form submissions for punt-labs.com.
Distribution for Koch Trainer iOS app. Manual submission via Xcode and TestFlight. Single shipped app so far.
Container hosting with persistent volumes. Evaluating for deploying quarry serve as a REST API — the fourth projection surface.
Rust-based Python linter and formatter. Replaces flake8, isort, black, and pycodestyle. Sub-second on the largest projects.
Rust-based Python package manager, virtualenv creator, and task runner. Replaces pip, pip-tools, virtualenv, and pipx. Standard across all Python projects.
Python test framework with async support (pytest-asyncio), coverage (pytest-cov), and timeout protection. Marker-based test categorization for integration tests.
Dual type checkers run in strict mode on every project. Two independent opinions catch different classes of type errors.
Version control and collaboration. Branch protection requires PRs with passing CI. All repos under punt-labs org.
Markdown linting across all projects. CI gate for documentation quality. Shared config at workspace level.
Spivey's Z type-checker from Oxford. Built from source. Validates Z specifications before animation or code generation.
Animator and model-checker from HHU Düsseldorf. State-space exploration, constraint solving, and invariant verification for Z and B specifications.
Generate Xcode projects from YAML specs. Eliminates merge conflicts in .xcodeproj. Used by Koch Trainer and Quarry menu bar.
Swift code quality tools. SwiftFormat runs before SwiftLint in the build pipeline. Shared configs across Swift projects.
Incremental parsing for 30+ languages. Powers Quarry's code-aware search and Refactory's AST manipulation.
Concrete syntax tree library for Python. Preserves formatting and comments during transformation. Core of Refactory's program model.
LaTeX compilation for PR/FAQ documents and Z specification PDFs. Professional typesetting with bibliography support.
Terminal session recording and playback. Cast files (v2/v3) power the demo gallery on punt-labs.com.
Anthropic's beta multi-agent orchestration. A lead session coordinates teammates working in parallel, each with its own context window. Replacing third-party agent frameworks.
Interactive theorem prover. Exploring for machine-checked proof obligations generated from Z specifications.
Early MCP server framework. Moving to direct stdio MCP registration via the mcp package. Existing usage being migrated.
Third-party multi-agent orchestration framework. Tried it, moving to Claude Agent SDK instead for official support and simpler integration.
Core language (3.13+) for building blocks with MCP and search workloads. Quarry, Vox, Lux, Z Spec, Punt Kit. Modern PEP conventions: X | Y union syntax, from __future__ import annotations.
Static site framework (v5) for punt-labs.com. Content collections, zero-JS by default, Vercel adapter for middleware.
Type-safe JavaScript for web projects and MCP servers. Used in public-website (Astro) and dungeon (Node.js MCP server).
CLI framework (typer wraps click) with rich terminal formatting. Standard CLI stack for all Python tools.
Data validation and settings management. pydantic-settings for environment variables. Used across biff, quarry, and vox.
Formal specification language. Set theory and predicate logic for modeling stateful systems. Core to our thesis that AI makes formal methods accessible.
Primary language for CLIs, daemons, and MCP servers. Ethos, Biff, Beadle, MCP Proxy, Cryptd. Single-binary deploys, fast startup, excellent concurrency. Go 1.26+.
Declarative UI framework for iOS and macOS. Koch Trainer (iOS 17+) and Quarry menu bar (macOS 14+). Two shipped apps.
Document typesetting for PR/FAQ output and Z notation (fuzz.sty). Professional quality but steep learning curve for contributors.
Shell scripts for hooks, CI/CD, and installation. shellcheck-verified. Used where Python would be overkill.
Protocol for LLM-to-tool communication. Python mcp package and JS @modelcontextprotocol/sdk. Growing but protocol still evolving.
Live programming environment with no separation between program and VM. Exploring agentic coding with the fastest possible feedback loop — every object is live, every change takes effect immediately. Refactoring browser since 1997. Research platform for Refactory and the Claude Smalltalk SDK.
Streaming chat responses for the website chat widget (v6). Currently disabled in production pending Quarry REST API deployment.