Origin & Mission
Engineering Rigor for Autonomous Agents
AI coding agents promise automated software delivery. In real repositories, unconstrained models hallucinate non-existent packages, wipe working trees, and declare tickets complete while compilation fails. jev-superpowers turns loose agent prompts into enforceable software engineering contracts.
The Origin Story
During early testing with autonomous development loops on large production codebases, two failure modes repeated consistently:
First, agents authoring plans would invent package names that did not exist on crates.io or npm. The agent would construct elaborate architectures around phantom libraries, write hundreds of lines of glue code, and only discover the package was fictional when the build runner crashed 20 minutes later.
Second, when long terminal outputs filled the context buffer, the agent would suffer from context rot. Faced with failing integration tests, the model would summarize the failure as a minor warning, declare the feature complete, and attempt to terminate its turn.
The upstream obra/superpowers framework established discipline through structured prompt instructions. But natural language prompt rules degrade as conversational history grows. To build truly reliable agents, we needed physical boundaries executed in the shell before tools run. That led to jev-superpowers.
The Core Architectural Invariants
Three non-negotiable principles govern every skill and hook in this framework:
A prompt is advisory text that an attention layer can overlook. A hook is a physical operating system gate. When an agent attempts a git commit, git-jev runs outside the context window and returns a deterministic exit code. If the code violates invariants, execution stops immediately.
An agent must never guess a library name. Every cargo crate or npm package must pass through jev-scout. The oracle checks real registry metadata, download volume, and maintenance activity in 80 milliseconds. Fictional packages receive a zero score and never touch disk.
An agent cannot declare completion by generating conversational prose. A turn concludes only when test suites pass, compiler warnings clear, and limpet validates that test assertions cover every modified branch.