Starting a Pairing Session
1
Install Liza and run global setup
Install the Liza binary and run one-time global setup to write contracts and skills to
~/.liza/:2
Initialize your project
In your repository, run This writes
liza init to create contract discovery files and project-local settings:.claude/settings.json, creates CLAUDE.md (a symlink to ~/.liza/CORE.md), and adds GUARDRAILS.md if the file doesn’t already exist.3
Start your agent and say hello
Launch your coding agent CLI from the project directory:Greet the agent. This triggers the Hello Protocol: the agent reads your project, builds mental models of what “ready” and “done” mean for this codebase, and responds with:
- The project purpose as it understands it
- Project-specific stop conditions and red flags
- A 5-bullet assessment of the behavioral contract — including genuine points of friction
The Task Cycle
Every task you give the agent flows through a fixed state machine. The agent cannot skip or reorder steps.Approval Request Formats
The agent scales its proposal format to match the complexity and risk of the change:Fast Path
Trivial, zero-risk changes. One-line intent plus a “Proceed?” prompt. No ceremony beyond confirmation.
Compact
Single-file changes with high confidence. Covers intent, scope, doc/test impact, validation plan, and risk level.
Full
Complex or multi-file changes. Adds understanding summary, success criteria, tagged assumptions, diff preview, failure modes, rollback path, and alternatives considered.
"P, but also handle the empty-input edge case" — the agent classifies the addition as either a clarification within scope (it proceeds) or a scope expansion (it re-proposes with an updated plan). You always know which.
Collaboration Modes
The default mode is Autonomous. You can switch modes at any time without justification. The agent announces each switch:"Switching to [Mode] — [reason]".
- Autonomous
- Coach
- Challenger
- User Duck
- Agent Duck
- True Pairing
- Spike
The agent proposes, you approve, the agent executes. Every state change goes through a gate — not as a rubber stamp, but as a collaboration opportunity. You can redirect, challenge, or take over at any gate.Best for: Clear requirements, low-risk changes, steady-state development.
Magic Phrases
Magic phrases are interrupt signals. When you invoke one, the agent stops current work, executes the specified behavior, and waits for your confirmation before resuming. You never need to justify invoking a magic phrase — the phrase itself is sufficient authority.Tier 0: The Safety Net
Five invariants are built into the contract and are never violated — not under context pressure, not in degraded mode, not for any reason. These are the behaviors the agent structurally cannot perform:1. No unapproved state change
Every mutation to your codebase, filesystem, or environment requires your prior approval. The agent cannot act first and report later.
2. No fabrication
Every claim the agent makes must be verified against actual evidence — code it has read, tests it has run, output it has captured. The agent does not invent answers.
3. No test corruption
Tests are never modified to accept buggy behavior. When code is unknown and tests are red, the agent stops and investigates — it does not “fix” the test.
4. No unvalidated success
“Done” requires validation evidence. The agent runs tests, captures output, and verifies the changed behavior specifically — not just unrelated green tests.
5. No secrets exposure
API keys, tokens, and passwords are never logged, displayed, committed, or included in diffs under any circumstances.
"GUIDELINE VIOLATION: [Rule — description]", enters RESET state, and proposes options: Resume, Undo, or Abandon. A second violation of the same rule triggers a mandatory halt.
Grace Under Pressure
During long sessions or complex tasks, lower-priority rules are explicitly suspended rather than silently violated. When this happens the agent announces it:
"DEGRADED MODE — Enforcing Tier 0-1 only. Tier 2-3 suspended until context restored."
When you see
DEGRADED MODE, finish the current task cleanly and start a new session to restore full contract enforcement.