To fix this, I built nSOUL. The core philosophy is simple: the agent cannot claim a task is finished unless it provides external proof. If the proof isn't there, the agent isn't allowed to say "done"—it has to report exactly where it stopped and why.
The Architecture of Honesty #
This isn't just a set of prompt engineering tricks; it's a system design. nSOUL uses a decoupled structure to ensure the agent doesn't just hallucinate progress.
Bounded Agents: I use six specialized agents with strict scopes. For example, the planner cannot write files, and the reviewer can only read.Skill Sets: Eleven distinct skills handle the end-to-end process, including adversarial review and state hand-offs for "cold" starts.Enforcement Hooks: This is the critical part. Four hooks act as gates. If an agent claims a test passed, the hook demands the actual observed output. No output means the turn is rejected.
Real-World Performance #
The difference between a standard LLM agent and this "fail-closed" approach is massive. In a live demo, the agent tried to claim a task was finished when it wasn't. Instead of me catching the lie, the system's own check rejected the self-report and kicked the work back as unfinished automatically.
For anyone building an AI workflow or a custom LLM agent, the takeaway is that the agent should be the last entity to decide if the work is successful.
nSOUL is designed to run on Claude Code and Codex. It integrates external adapters for memory and browser interaction, ensuring that nothing "phones home" and everything is locally owned.
Agent: "I have fixed the bug in auth.ts and the tests pass."
Hook: "Verification failed. No test output detected. Reverting status to: In Progress."
Next AI Mastery: Essential Skills for Future Professionals →