OpenPAUL

Plan-Apply-Unify Loop โ€” Structured AI-assisted development for OpenCode

npm version License GitHub stars

Why OpenPAUL?

๐Ÿ”„ Loop Integrity

Every plan closes with UNIFY. No orphan plans. Every unit of work gets reconciled.

๐ŸŽฏ In-Session Context

Execution stays in-session. Subagents reserved for discovery. Better quality, less cleanup.

โœ… Acceptance-Driven

Define done before starting. BDD format: Given/When/Then for every feature.

Quick Start

Installation

Add to your opencode.json:

{
  "plugins": {
    "npm": ["openpaul"]
  }
}

The Core Loop

PLAN โ”€โ”€โ–ถ APPLY โ”€โ”€โ–ถ UNIFY

Your First Loop

# Initialize OpenPAUL
/openpaul:init

# Create a plan
/openpaul:plan

# Review and approve, then execute
/openpaul:apply

# Close the loop (required!)
/openpaul:unify

Using with OpenCARL (Recommended)

OpenCARL is a dynamic rule injection system that auto-enforces OpenPAUL workflow discipline. Together, they create a powerful AI-assisted development experience.

Install Both

{
  "plugins": {
    "npm": ["openpaul", "@krisgray/opencarl"]
  }
}

What OpenCARL Enforces

RuleWhat It Does
Loop EnforcementNo skipping UNIFY. Every plan needs closure.
Boundary ProtectionDO NOT CHANGE sections are sacred.
AC-First DevelopmentAcceptance criteria defined before tasks.
Verification RequiredEvery task needs a verify step.
State ConsistencySTATE.md reflects reality after each phase.

Combined Workflow

# OpenCARL auto-loads OpenPAUL rules when it detects .openpaul/

/openpaul:init
โœ“ Created .openpaul/ structure

/openpaul:plan
โœ“ Created PLAN.md with AC, tasks, boundaries

/openpaul:apply
โœ“ Task 1/3: Complete
โœ“ Task 2/3: Complete
โœ“ Task 3/3: Complete

/openpaul:unify
โœ“ Created SUMMARY.md
โœ“ Updated STATE.md
โœ“ Loop complete

Essential Commands

Core Loop

  • /openpaul:init โ€” Initialize project
  • /openpaul:plan โ€” Create plan
  • /openpaul:apply โ€” Execute plan
  • /openpaul:unify โ€” Close loop

Session

  • /openpaul:progress โ€” Status + next action
  • /openpaul:pause โ€” Create handoff
  • /openpaul:resume โ€” Restore context
  • /openpaul:help โ€” Full reference