Closing the loop on AI-assisted development drift
PAUL enforces a Plan-Apply-Unify loop inside Claude Code to prevent context rot, orphaned plans, and unverified output.

What it does
PAUL is a command framework that layers project-management discipline over Claude Code. It prompts you to define acceptance criteria in Given/When/Then format before any work starts, then tracks execution through a mandatory three-phase loop: Plan, Apply, Unify. State persists across sessions in a local .paul/ directory, so resuming work means reading STATE.md rather than reconstructing context from scratch.
The interesting bit
The framework deliberately resists the usual subagent sprawl: implementation stays in-session where context is richest, while subagents are relegated to research and discovery. A forced UNIFY phase reconciles what was planned against what actually happened, producing a SUMMARY.md and updated state—no orphan plans allowed. It is essentially an opinionated workflow encoded as slash commands and markdown artifacts.
Key highlights
- Scope-adaptive planning that auto-routes work as quick-fix, standard, or complex ceremonies
- Execute/Qualify loop with escalation statuses like
DONE_WITH_CONCERNSandBLOCKEDinstead of naive pass/fail - Anti-rationalization enforcement to prevent false completion claims
- Optional BASE v2 integration turns PAUL projects into queryable nodes in a workspace knowledge graph
- Works for non-code projects—marketing campaigns, workflows, and automations are first-class citizens
Verdict
Builders who treat Claude Code as a daily shipping partner and are tired of debugging AI output should look here. If you prefer ad-hoc prompting without acceptance criteria or session bookkeeping, this will feel like bureaucratic overhead.
Frequently asked
- What is ChristopherKahler/paul?
- PAUL enforces a Plan-Apply-Unify loop inside Claude Code to prevent context rot, orphaned plans, and unverified output.
- Is paul open source?
- Yes — ChristopherKahler/paul is open source, released under the MIT license.
- What language is paul written in?
- ChristopherKahler/paul is primarily written in JavaScript.
- How popular is paul?
- ChristopherKahler/paul has 1.1k stars on GitHub.
- Where can I find paul?
- ChristopherKahler/paul is on GitHub at https://github.com/ChristopherKahler/paul.