<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cogitate</title><description>Writing on AI agents, developer tooling, and software architecture — by Björn Roberg.</description><link>https://bjro.dev/</link><item><title>xAI shipped the names of every knob. They withheld the values. Which mistake is that?</title><link>https://bjro.dev/posts/xai-schema-disclosure-oopsie-or-onpurpose/</link><guid isPermaLink="true">https://bjro.dev/posts/xai-schema-disclosure-oopsie-or-onpurpose/</guid><description>When xAI open-sourced their For You ranker on 2026-05-15, they redacted every numeric weight, every threshold, every Kafka topic, every config string — but they left every symbol name in source. For a serious competitor, the list of names is the more useful artifact. So either someone messed up, or that was always the plan.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>I tagged every blog post by cognitive mode. Most of mine are knowledge-telling — and that&apos;s fine.</title><link>https://bjro.dev/posts/tagging-posts-by-cognitive-mode/</link><guid isPermaLink="true">https://bjro.dev/posts/tagging-posts-by-cognitive-mode/</guid><description>Adding one optional frontmatter field to my blog produced a taxonomy I couldn&apos;t have written without doing the work. The categories come from Bereiter &amp; Scardamalia (1987), and applying them to my own corpus was uncomfortable in useful ways.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>MeMo prompting, deconstructed: it&apos;s just self-routing</title><link>https://bjro.dev/posts/memo-deconstructed/</link><guid isPermaLink="true">https://bjro.dev/posts/memo-deconstructed/</guid><description>MeMo claims near-SOTA prompting via Munger&apos;s mental models. Strip the framing: what&apos;s left is one trick — ask the LLM to name its reasoning strategy first.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Genetic programming, deconstructed: four of five assumptions are 1990s artifacts</title><link>https://bjro.dev/posts/gp-deconstructed/</link><guid isPermaLink="true">https://bjro.dev/posts/gp-deconstructed/</guid><description>Classical GP bundles five independent design choices behind one biology metaphor. Four of them are compute-era assumptions that don&apos;t survive contact with frontier LLMs. What&apos;s left is a different algorithm.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Verifier-native search: the 2026 shape</title><link>https://bjro.dev/posts/verifier-native-search/</link><guid isPermaLink="true">https://bjro.dev/posts/verifier-native-search/</guid><description>LLM generation costs roughly 1000× more than verification. The serious program-search systems already exploit this. The agent-scaffold mainstream doesn&apos;t — and nobody yet compounds search traces into a domain-specific mutator.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code&apos;s Bash tool returns exit 1 with no output? Check /tmp.</title><link>https://bjro.dev/posts/claude-code-bash-exit-1-no-output-tmpfs-full/</link><guid isPermaLink="true">https://bjro.dev/posts/claude-code-bash-exit-1-no-output-tmpfs-full/</guid><description>If Claude Code&apos;s Bash tool returns &apos;Exit code 1&apos; with empty stdout and empty stderr for every command, including `true` and `echo ok`, your /tmp is almost certainly full. Here is the fix.</description><pubDate>Wed, 15 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Scanners produce reports. Insurance needs witnesses.</title><link>https://bjro.dev/posts/agent-attestation-needs-an-expiry/</link><guid isPermaLink="true">https://bjro.dev/posts/agent-attestation-needs-an-expiry/</guid><description>The AI-supply-chain cohort is already crowded: Invariant, Snyk Agent Scan, JFrog, Klaimee, a dozen more. They all ship the same artifact, a point-in-time report. That is not what underwriters can price against. The primitive insurance needs is a falsifiable attestation with a TTL that re-verifies on drift. Nobody ships that yet.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Firmbyte Gap: Why the Most Valuable Connections Never Happen</title><link>https://bjro.dev/posts/the-firmbyte-gap/</link><guid isPermaLink="true">https://bjro.dev/posts/the-firmbyte-gap/</guid><description>The biggest breakthroughs come from connecting unrelated fields — but the mechanism that produces them is broken. Hidalgo&apos;s firmbyte concept explains why.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Inversion of Control at the Agentic Boundary</title><link>https://bjro.dev/posts/ioc-agentic-boundaries/</link><guid isPermaLink="true">https://bjro.dev/posts/ioc-agentic-boundaries/</guid><description>Applying IoC and dependency injection patterns to agentic service boundaries — and why technical plumbing alone won&apos;t prevent control inversion.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building a Behavioral Health Monitor and Feedback Loop for AI Agents</title><link>https://bjro.dev/posts/claude-autohealth/</link><guid isPermaLink="true">https://bjro.dev/posts/claude-autohealth/</guid><description>Applying signal processing concepts to coding agent actions — from FFT and Markov models to a pragmatic health scoring algorithm for Claude Code hooks.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Introducing slog: structured logging for every JS runtime</title><link>https://bjro.dev/posts/introducing-slog/</link><guid isPermaLink="true">https://bjro.dev/posts/introducing-slog/</guid><description>slog is a zero-dependency structured logger for Node.js, Deno, Bun, and Cloudflare Workers with pluggable transports and a Hono waitUntil middleware.</description><pubDate>Sat, 21 Mar 2026 12:00:00 GMT</pubDate></item><item><title>Show HN: Cairn — append-only SQLite event store, immutability enforced by triggers</title><link>https://bjro.dev/posts/introducing-cairn/</link><guid isPermaLink="true">https://bjro.dev/posts/introducing-cairn/</guid><description>cairn is an append-only SQLite event store where immutability is enforced by triggers, not convention. Go, TypeScript, and Rust SDKs share one test spec.</description><pubDate>Wed, 18 Mar 2026 12:00:00 GMT</pubDate></item><item><title>New Domain: bjro.dev</title><link>https://bjro.dev/posts/new-domain-bjro-dev/</link><guid isPermaLink="true">https://bjro.dev/posts/new-domain-bjro-dev/</guid><description>The blog has moved to bjro.dev — a short domain that&apos;s easier to share and signals a long-term commitment to writing about software and technology.</description><pubDate>Tue, 17 Mar 2026 12:00:00 GMT</pubDate></item><item><title>The npm problem nobody wants to work on</title><link>https://bjro.dev/posts/the-npm-problem-nobody-wants-to-work-on/</link><guid isPermaLink="true">https://bjro.dev/posts/the-npm-problem-nobody-wants-to-work-on/</guid><description>Every Node.js production system depends on a single corporate-controlled npm registry with no real alternative — a structural risk the ecosystem ignores.</description><pubDate>Thu, 12 Mar 2026 12:00:00 GMT</pubDate></item><item><title>Debian: Why the Universal Operating System Still Matters in 2026</title><link>https://bjro.dev/posts/debian/</link><guid isPermaLink="true">https://bjro.dev/posts/debian/</guid><description>Debian turns 33 and keeps earning its title as the universal OS — community governance, 59,000 packages, and the foundation of over 1,000 Linux distributions.</description><pubDate>Sat, 28 Feb 2026 13:00:00 GMT</pubDate></item><item><title>Currying AI Agents: Partial Application for Reusable Agent Configurations</title><link>https://bjro.dev/posts/currying-agents/</link><guid isPermaLink="true">https://bjro.dev/posts/currying-agents/</guid><description>Apply partial application from functional programming to AI agents — pre-configure agent parameters to create reusable, composable agent building blocks.</description><pubDate>Wed, 11 Feb 2026 04:00:00 GMT</pubDate></item><item><title>Linear Types for Agent Safety - An Approach to Trustworthy AI Systems</title><link>https://bjro.dev/posts/linear-agentics/</link><guid isPermaLink="true">https://bjro.dev/posts/linear-agentics/</guid><description>Linear types applied to AI agent safety — a type system that enforces single-use for destructive operations and statically rejects unsafe agent code.</description><pubDate>Mon, 09 Feb 2026 00:45:00 GMT</pubDate></item><item><title>MarkyMarkov - Markov Chain-Based Code Guidance for LLM Agents and Humans Alike</title><link>https://bjro.dev/posts/markymarkov/</link><guid isPermaLink="true">https://bjro.dev/posts/markymarkov/</guid><description>MarkyMarkov uses Markov chains to learn patterns from your codebase and provide fast, explainable code guidance that complements LLM agents.</description><pubDate>Sun, 08 Feb 2026 22:45:00 GMT</pubDate></item><item><title>Building Smarter AI Agents With Ideas From Philosophy</title><link>https://bjro.dev/posts/building-smarter-ai-agents-with-ideas-from-philosophy/</link><guid isPermaLink="true">https://bjro.dev/posts/building-smarter-ai-agents-with-ideas-from-philosophy/</guid><description>Philosophically informed AI agent design — modeling belief, knowledge, and epistemic norms — makes agent behavior more reliable and inspectable.</description><pubDate>Sat, 07 Feb 2026 23:00:00 GMT</pubDate></item><item><title>Markov chains and LLMs - hybrid architectures for smarter agents</title><link>https://bjro.dev/posts/markov-chains-and-llms-hybrid-architectures/</link><guid isPermaLink="true">https://bjro.dev/posts/markov-chains-and-llms-hybrid-architectures/</guid><description>Combine Markov chains with LLMs to build structured, interpretable agents — Markov chains enforce predictable state; LLMs provide semantic flexibility.</description><pubDate>Sat, 07 Feb 2026 22:45:00 GMT</pubDate></item><item><title>AI Agents in Business Processes: Temporal, FSMs, and MCP</title><link>https://bjro.dev/posts/notes-on-agentic-applications-in-business-processes/</link><guid isPermaLink="true">https://bjro.dev/posts/notes-on-agentic-applications-in-business-processes/</guid><description>How to pair agentic workflows with Temporal for durability, finite state machines for structure, and MCP servers to scale from pilot to production.</description><pubDate>Sat, 07 Feb 2026 22:45:00 GMT</pubDate></item><item><title>Context Management for AI Agents: Why MINDMAP Changes Everything</title><link>https://bjro.dev/posts/context-context-context/</link><guid isPermaLink="true">https://bjro.dev/posts/context-context-context/</guid><description>Context is the most underrated lever in AI agent design — this post makes the case for MINDMAP-style context objects as a first-class agent primitive.</description><pubDate>Mon, 02 Feb 2026 13:00:00 GMT</pubDate></item><item><title>Cloud LLMs in Production: The Hidden Trust Boundary You’re Already Crossing</title><link>https://bjro.dev/posts/cloud-llms-in-prod/</link><guid isPermaLink="true">https://bjro.dev/posts/cloud-llms-in-prod/</guid><description>Infra teams quietly feed logs, configs, and schemas to cloud LLMs when troubleshooting — extending the trust boundary into a black box they don’t control.</description><pubDate>Thu, 29 Jan 2026 13:00:00 GMT</pubDate></item><item><title>Software Development Opinions: LLMs, Agentic Tooling, and What Actually Changes</title><link>https://bjro.dev/posts/software-development-topics-opinion-1/</link><guid isPermaLink="true">https://bjro.dev/posts/software-development-topics-opinion-1/</guid><description>Opinionated notes on software development in the age of agentic tooling — where LLMs genuinely change how we work and where the hype outpaces the reality.</description><pubDate>Sun, 25 Jan 2026 13:00:00 GMT</pubDate></item><item><title>Using casq for Content-Addressable Storage in CI Pipelines</title><link>https://bjro.dev/posts/using-casq-in-ci/</link><guid isPermaLink="true">https://bjro.dev/posts/using-casq-in-ci/</guid><description>casq brings content-addressable storage to CI pipelines, eliminating redundant builds and test runs by identifying identical inputs with a git-style hash.</description><pubDate>Sat, 24 Jan 2026 14:00:00 GMT</pubDate></item><item><title>mise: Per-Project Tool Version Manager and Task Runner</title><link>https://bjro.dev/posts/mise/</link><guid isPermaLink="true">https://bjro.dev/posts/mise/</guid><description>mise pins tool versions per project — Node, Python, Go, and more — in a single .mise.toml, replacing nvm, pyenv, and Makefiles with one unified tool.</description><pubDate>Fri, 23 Jan 2026 13:00:00 GMT</pubDate></item><item><title>whosthere: LAN Discovery Tool with a Modern TUI in Go</title><link>https://bjro.dev/posts/whosthere-lan-tool/</link><guid isPermaLink="true">https://bjro.dev/posts/whosthere-lan-tool/</guid><description>whosthere is a Go-based LAN discovery tool with a modern terminal UI — fast, intuitive network exploration that shows who and what is on your local network.</description><pubDate>Fri, 23 Jan 2026 13:00:00 GMT</pubDate></item><item><title>Introducing casq: Content-Addressable File Storage CLI in Rust</title><link>https://bjro.dev/posts/introducing-casq/</link><guid isPermaLink="true">https://bjro.dev/posts/introducing-casq/</guid><description>casq is a Rust CLI and library for content-addressed file storage — git-style deduplication without the overhead of a full version control system.</description><pubDate>Thu, 22 Jan 2026 13:00:00 GMT</pubDate></item><item><title>Terminal Multiplexers: Why I Switched from tmux to zellij</title><link>https://bjro.dev/posts/terminal-multiplexers/</link><guid isPermaLink="true">https://bjro.dev/posts/terminal-multiplexers/</guid><description>A quick comparison of tmux and zellij as terminal multiplexers — zellij wins on discoverability with visible, mnemonic keybinds right out of the box.</description><pubDate>Wed, 21 Jan 2026 11:00:00 GMT</pubDate></item><item><title>Locking Down AI Agents: Limiting Blast Radius in Production Systems</title><link>https://bjro.dev/posts/locking-down-agents/</link><guid isPermaLink="true">https://bjro.dev/posts/locking-down-agents/</guid><description>Practical techniques for sandboxing AI agents and limiting blast radius — filesystem restrictions, network controls, and permission scoping in production.</description><pubDate>Tue, 20 Jan 2026 17:00:00 GMT</pubDate></item><item><title>Remap Caps Lock to Left Control on Linux and Windows</title><link>https://bjro.dev/posts/making-use-of-the-caps-lock-key/</link><guid isPermaLink="true">https://bjro.dev/posts/making-use-of-the-caps-lock-key/</guid><description>Remap Caps Lock to Left Control for a more ergonomic keyboard layout — instructions for Debian/Linux via XKBOPTIONS and Windows via SharpKeys.</description><pubDate>Tue, 20 Jan 2026 13:00:00 GMT</pubDate></item></channel></rss>