
Every time you switch AI coding assistants, you re-teach it your conventions. How you want it to ask before assuming. When to stop and clarify. Which terms to define before using them. Bob, Claude Code, and Cursor are three different agents — three different config formats, three different file locations, three times the work. Praxis is one Bob mode that closes that loop. Point Praxis at a project (or a planning document, before any code exists) and it generates the configuration files each agent expects, in the format that agent expects, in the location that agent automatically loads. For Bob IDE: a loadable .bob/custom_modes.yaml plus supporting skill files. For Claude Code: a single CLAUDE.md at the project root. For Cursor: .mdc files under .cursor/rules/ with proper YAML frontmatter. Same methodology, three idiomatic outputs, loadable on day one without any manual import step. Praxis encodes seven default methodology principles — prompt-first execution, proactive issue resolution, second-agent code review, logging discipline, definitional rigor, simplicity bias, and a security baseline. The trigger keywords "design" and "scope" in a user prompt activate strict mode: the agent produces a six-field structured response (restated request, assumptions, scope IN, scope OUT, proposed approach, open questions) and waits for explicit approval before touching code. In plan mode, Praxis reads a spec and bakes the unanswered design questions directly into the generated AGENTS.md — so the next time Bob, Claude Code, or Cursor opens the project, those questions are surfaced again. Bob is the inference engine. Praxis itself is a zero-dependency Python CLI that runs in two phases: Phase 1 reads the project and emits a prompt for Bob, Bob answers, Phase 2 takes the answer and writes the configuration.
17 May 2026