# DSPLCE.co > A technology partner — not a vendor — that takes AI-built software the last mile: from a prototype that demos to something production-grade you can actually run a company on. ## Site - [dsplce.co](https://dsplce.co/): What we do, how we work, and the projects we ship. - [Our work](https://dsplce.co/our-work): Open-source tools we build and maintain. - [The Lab](https://dsplce.co/lab): Benchmarks you can re-run, model briefs, and field notes from developers who ship production code with AI agents every day. - [Academy](https://dsplce.co/academy): Courses, recipes and reference for the tools you point at your codebase: skills, subagents, hooks, sandboxing and MCP across Claude Code, Codex, Copilot, Cursor and the rest. ## The Lab - [Claude Opus 5: everything you need to know](https://dsplce.co/lab/claude-opus-5-everything-you-need-to-know): Claude Opus 5 is out at half the price of Fable 5, with thinking on by default — and one change that breaks existing code. The facts, from the docs. - [Kimi K3 vs Claude Fable 5 and Opus 4.8: a benchmark you can run yourself](https://dsplce.co/lab/kimi-k3-vs-claude-real-code): Everyone posts Kimi K3 benchmark scores; the benchmark itself is harder to find. So we built one vs Claude Fable 5 and Opus 4.8, read every line all three wrote, and open-sourced it. - [Building an MCP server in Python (and connecting it to Claude Code)](https://dsplce.co/lab/build-mcp-server): An MCP server lets an AI model call your own tools. Here's how to build one in Python with the official SDK and connect it to Claude Code — tested end to end. - [How to use Kimi K3 with Claude Code (subscription, not API)](https://dsplce.co/lab/kimi-k3-claude-code): Kimi K3 just shipped and it rivals Claude Fable 5. Here's how to run it inside Claude Code on a Kimi subscription — no Anthropic account, no API bill. - [Kubernetes kills your pod? Here's why](https://dsplce.co/lab/kubernetes-pod-eviction): Your pods keep getting killed. Not crashing — killed. One moment they're running fine, the next they're gone and Kubernetes is spinning up replacements. You check the logs and there's nothing useful… - [How to see running queries in Postgres and kill them](https://dsplce.co/lab/postgres-running-queries): Something is slow. Maybe a page takes forever to load, maybe a migration is hanging, maybe your Supabase dashboard just spins. You suspect a query is stuck somewhere in your database… - [HTML/CSS Animation to Video (MP4): the Headless, Deterministic Way (incl. Claude)](https://dsplce.co/lab/claude-animation-to-video): Convert an HTML/CSS animation to MP4 video the deterministic way: headless Chrome plus FFmpeg, frame-perfect every time — including animations Claude generated for you. - [How to toggle realtime on a table in Supabase migrations](https://dsplce.co/lab/supabase-realtime-migration): You set up a table locally, opened it in Supabase Studio, flipped the Realtime toggle on, and everything worked — your frontend was getting live updates, subscriptions firing perfectly… ## Academy - [Harness comparison](https://dsplce.co/academy/harness-comparison): Memory files, skills, hooks, sandboxing and MCP across Claude Code, Codex CLI, GitHub Copilot CLI, Cursor, Antigravity CLI and Kimi Code CLI — what each one calls the same job. - [Driving the harness](https://dsplce.co/academy/core): The transferable half. Everything here is true of every harness — the switcher swaps the part that isn't. ### Foundations Where the model ends and the harness begins. Every other chapter assumes this one. - [What a harness is, and why most "model quality" is harness quality](https://dsplce.co/academy/core/what-a-harness-is) - [The agent loop: read, plan, act, observe — and where each step fails](https://dsplce.co/academy/core/the-agent-loop) - [AGENTS.md, CLAUDE.md and the rest: what belongs in a memory file](https://dsplce.co/academy/core/memory-files) - [Three gates, not one: permissions, approvals and sandboxing](https://dsplce.co/academy/core/three-gates) - [Reading a session like a profiler: where the context went](https://dsplce.co/academy/core/reading-a-session) - [Verify it actually loaded: config that fails silently](https://dsplce.co/academy/core/verify-it-loaded) - [Your first repo-shaped setup, start to finish](https://dsplce.co/academy/core/first-repo-setup) ### Prompting an agent, not a chatbot The habits that transfer from chat are the ones that hurt most here. - [Why agent prompting isn't chat prompting](https://dsplce.co/academy/core/not-chat-prompting) - [Specifying done: acceptance criteria the agent can check itself against](https://dsplce.co/academy/core/specifying-done) - [Give it the shape, not the steps](https://dsplce.co/academy/core/shape-not-steps) - [When to paste code and when to point at a path](https://dsplce.co/academy/core/paste-or-point) - [Repair prompts: getting out of a bad turn without starting over](https://dsplce.co/academy/core/repair-prompts) - [Asking for a plan you can actually reject](https://dsplce.co/academy/core/a-plan-you-can-reject) ### Commands and skills One mechanism, two names — and an open standard several vendors now share. - [Skills, commands and the merge: one mechanism, two names](https://dsplce.co/academy/core/commands-and-skills) - [Anatomy of a skill: frontmatter, arguments, and who invokes it](https://dsplce.co/academy/core/anatomy-of-a-skill) - [Setting /goals](https://dsplce.co/academy/core/setting-goals) - [Writing a skill that triggers when it should — and not when it shouldn't](https://dsplce.co/academy/core/triggering) - [Writing a /review your team actually runs](https://dsplce.co/academy/core/a-review-you-run) - [Skills vs MCP: procedural knowledge or live tool access](https://dsplce.co/academy/core/skills-vs-mcp) - [Packaging so a new machine is one install away](https://dsplce.co/academy/core/packaging) - [Skill, rule, or memory file: picking the mechanism](https://dsplce.co/academy/core/which-mechanism) ### Tools and MCP Tools, not prompts. Wiring a model into the systems it has to touch. - [MCP without the hype: what the protocol actually gives you](https://dsplce.co/academy/core/mcp-without-the-hype) - [Your first server: one tool, one schema](https://dsplce.co/academy/core/first-server) - [Tool descriptions are prompts — write them like it](https://dsplce.co/academy/core/tool-descriptions) - [Scoping and auth: what a server should refuse to do](https://dsplce.co/academy/core/scoping-and-auth) - [Local or remote: where the trust boundary goes](https://dsplce.co/academy/core/local-or-remote) - [When not to reach for an MCP](https://dsplce.co/academy/core/when-not-to-mcp) - [Too many tools: what a crowded tool list costs you](https://dsplce.co/academy/core/too-many-tools) - [Debugging a server the model keeps calling wrong](https://dsplce.co/academy/core/debugging-a-server) - [MCP in 2026: stateless, standardised, and what got deprecated](https://dsplce.co/academy/core/mcp-in-2026) ### Subagents and fan-out Parallelism you can still review. - [Subagents are a config object now, not a trick](https://dsplce.co/academy/core/subagents-are-config) - [Subagent, background session, or agent team: three things people conflate](https://dsplce.co/academy/core/three-things-conflated) - [Writing a subagent brief that returns data, not prose](https://dsplce.co/academy/core/briefs-that-return-data) - [Adversarial verification: a second agent whose job is to refute the first](https://dsplce.co/academy/core/adversarial-verification) - [Judge panels: when three agents on one answer is worth it](https://dsplce.co/academy/core/judge-panels) - [Pipeline, barrier, loop-until-dry: orchestration shapes](https://dsplce.co/academy/core/orchestration-shapes) - [Worktree isolation for agents that write the same files](https://dsplce.co/academy/core/worktree-isolation) ### Hooks and guardrails Determinism around a non-deterministic core. At this speed, the gate is the design. - [The moments in a session worth intercepting](https://dsplce.co/academy/core/moments-worth-intercepting) - [Blocking the commit the agent shouldn't make](https://dsplce.co/academy/core/blocking-a-commit) - [Format, lint and test as a hook, not as a plea in the prompt](https://dsplce.co/academy/core/lint-as-a-hook) - [Failing loudly: surfacing a refusal the model will act on](https://dsplce.co/academy/core/failing-loudly) - [Permission fatigue and the middle path](https://dsplce.co/academy/core/permission-fatigue) - [Secrets and the files an agent must never read](https://dsplce.co/academy/core/secrets) - [A guardrail set for a team of six](https://dsplce.co/academy/core/guardrails-for-a-team) ### Cost and control The loudest pain in the field, and the one the two chapters above create. - [Where the money actually goes](https://dsplce.co/academy/core/where-the-money-goes) - [Reading your own usage](https://dsplce.co/academy/core/reading-your-usage) - [Budgets, caps and a kill-switch for unattended runs](https://dsplce.co/academy/core/budgets-and-kill-switches) - [What a twelve-agent sweep really bills](https://dsplce.co/academy/core/what-a-sweep-bills) - [Routing: when a cheaper model is the right answer](https://dsplce.co/academy/core/routing-cheaper) ### Headless and CI The same harness with nobody at the keyboard. - [Headless mode: what changes when there's no one to ask](https://dsplce.co/academy/core/headless-mode) - [Keyless CI: OIDC and workload identity before API keys](https://dsplce.co/academy/core/keyless-ci) - [An agent that triages issues](https://dsplce.co/academy/core/triage-agent) - [An agent that reviews pull requests](https://dsplce.co/academy/core/pr-review-agent) - [When it fails at 3am](https://dsplce.co/academy/core/fails-at-3am) - [When not to automate it](https://dsplce.co/academy/core/when-not-to-automate) ### Doing this with other people Everything above, times a team. - [Standardising a setup without a mandate](https://dsplce.co/academy/core/standardising) - [Monorepos: scoping instructions to a subtree](https://dsplce.co/academy/core/monorepos) - [The repo that explains itself to an agent](https://dsplce.co/academy/core/self-explaining-repo) - [Which agent for which job, and the handoff you still do by hand](https://dsplce.co/academy/core/which-agent-which-job) - [Reviewing each other's agent configuration](https://dsplce.co/academy/core/reviewing-config) - [Measuring whether any of this is working](https://dsplce.co/academy/core/measuring) - [Anti-patterns we've watched teams adopt](https://dsplce.co/academy/core/anti-patterns) ## Vocabulary - [Agentic engineering](https://dsplce.co/lab#agentic-engineering): Building software by directing agents that plan, edit, run and check their own work, instead of typing every change yourself. The job moves from writing to specifying and reviewing. - [Context rot](https://dsplce.co/lab#context-rot): The slow drop in quality as a long session fills up with stale detail. Starting fresh with the right three files usually beats carrying on. - [Context window](https://dsplce.co/lab#context-window): How much text a model can hold in mind at once. - [Determinism](https://dsplce.co/lab#determinism): This is when the same input yields the same output every time. LLMs are not deterministic by nature, but can be brought closer to that by e.g. prompting or providing them with callable tools. - [Eval](https://dsplce.co/lab#eval): A repeatable, scored test for a model or an agent. Without one, "it feels smarter" is your only metric, and it's wrong about as often as it's right. - [Guardrails](https://dsplce.co/lab#guardrails): What a change has to survive before it counts: types, tests, lint, a staging gate. Agents move fast enough that the gate is the design. - [Harness](https://dsplce.co/lab#harness): The code around the model: the tools it can call, the files it can see, the limits it runs under. Most of what people call model quality is actually harness quality. - [Model Context Protocol (MCP)](https://dsplce.co/lab#mcp): A widely-adopted standard for enabling LLMs to integrate with external tools and data sources. - [One-shot](https://dsplce.co/lab#one-shot): Getting a whole task right from a single prompt, without follow-ups. - [Prompt-to-PR](https://dsplce.co/lab#prompt-to-pr): The loop from an instruction to a diff someone can review. - [Slop](https://dsplce.co/lab#slop): Unreviewed AI-authored output that might work, but it's not necessarily good long term and/or is largely not human-digestible. - [Subagent](https://dsplce.co/lab#subagent): A second agent with its own clean context, handed one narrow job so its output doesn't flood the main session. - [Token](https://dsplce.co/lab#token): The unit models read, write and bill in — roughly a word-piece. Both your cost and your context are counted based on these. - [Vibe coding](https://dsplce.co/lab#vibe-coding): Prompting your way to working software without reading most of what came back. Fast for a demo, expensive the moment someone else has to maintain it. ## Feeds - [RSS](https://dsplce.co/rss.xml): RSS 2.0 feed of every write-up. - [JSON Feed](https://dsplce.co/feed.json): JSON Feed 1.1 of every write-up.