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.