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.
-
Primary language (3.13+). Modern PEP conventions: X | Y union syntax, from __future__ import annotations. Every building block starts here.
-
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.
-
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.
-
Streaming chat responses for the website chat widget (v6). Currently disabled in production pending Quarry REST API deployment.