The leading software methodology,
reborn for AI agents

The balanced-team practices that shipped world-class software for 30 years, adapted for a world where the builders are AI agents. A highly regimented delivery process with strict role boundaries, hard quality gates, and a living knowledge graph that agents read from and write to at runtime, so context compounds instead of getting lost.

> git clone .../paivot-graph && make install Click to copy

Available now for Claude Code, Codex, and OpenCode.

AI agents are powerful but undisciplined

Left unconstrained, AI coding agents exhibit predictable failure modes that compound over time.

Superficial Testing

Skip testing entirely or write tests that verify nothing meaningful. Mocks everywhere, no real integration.

Isolated Components

Build components that work alone but never integrate. Vertical slices replaced by horizontal layers.

Lost Context

Lose context across sessions and compaction. Make contradictory decisions after forgetting earlier constraints.

Technical Novelty Bias

Ignore business requirements in favor of technically interesting work. Build what's fun, not what's needed.

Premature Completion

Mark work as "done" without proof it actually works. Claim success without running real tests against real services.

Repeated Mistakes

Rediscover the same problems every session. No mechanism to retain what was learned, so the same errors recur at full cost.

Paivot solves this by applying proven balanced-team engineering practices through specialized AI agents with strict role boundaries, enforced workflows, and hard quality gates. An Obsidian vault serves as an evolving knowledge graph where decisions, patterns, and methodology survive across sessions and compound over time. Three purpose-built Go binaries power the system: pvg (scope guard and lifecycle hooks), nd (git-native issue tracker), and vlt (vault CLI). They sit outside the LLM, so the orchestrator cannot "forget" or be "convinced" to skip steps.

Three layers, one flywheel

Agents operate across identity, knowledge, and execution. Each layer feeds the others, compounding value with every session.

Identity

AGENTS.md / CLAUDE.md

Your constitution. Principles, values, hard rules. Loaded every session. Rarely changes. Defines coding philosophy, testing requirements, and communication style.

Knowledge

Obsidian Vault

Your brain. Everything learned across all projects. Methodology, conventions, patterns, decisions, and debugging knowledge. Grows continuously via vlt.

Execution

nd

Your hands. Work items, blockers, dependencies for the current project. nd is a git-native issue tracker that stores issues as Obsidian-compatible markdown.

nd produces experience → Vault captures knowledge → Knowledge informs future work → Better work produces richer experience
You (Human)
Business Owner
Discovery & Framing
BA
Business outcomes
Designer
User experience
Architect
Technical approach
Optional adversarial review (specialist_review)
BA Challenger
APPROVED / REJECTED
Design Challenger
APPROVED / REJECTED
Arch Challenger
APPROVED / REJECTED
Sr. PM
Creates backlog
→ backlog → ← gaps found ←
Anchor
Adversarial review
Execution Phase
Orchestrator + Vault
Dispatches all work, never writes code
Developer
Implements + proves
→ delivered → ← rejected ←
PM-Acceptor
Evidence-based review
Retro
Harvests learnings
Traditional Balanced TeamsPaivot
Persistent human teamsEphemeral agents, spawned per task
Pair programmingOrchestrated dispatch with PM review
Implicit shared contextSelf-contained stories with ALL context embedded
Trust-based reviewEvidence-based delivery with recorded proof
Centralized project trackernd (git-native, CLI-first, Obsidian-compatible)
INVEST stories for team clarityINVEST stories as structural requirement (Independence enables parallel agent execution)
Organic learning through pairingVault-captured knowledge with governance and promotion workflow
Flexible role boundariesStrict enforcement (agents lack judgment to flex)
Prompt-based remindersStructural enforcement via scope guard + vault governance

Eleven agents, each with a single job

Agents cannot spawn subagents. Only the orchestrator dispatches work. This ensures a single point of coordination.

Business Analyst opus

Captures business outcomes through iterative questioning. Owns BUSINESS.md. Part of the Balanced Leadership Team. Cannot ask user questions directly; relays through orchestrator.

Designer opus

Captures user needs and DX for all product types: UI, API, CLI, database. Owns DESIGN.md. Part of the Balanced Leadership Team.

Architect opus

Designs system architecture and defines technical constraints. Owns ARCHITECTURE.md. Ensures technical coherence across the system.

Sr. PM opus

Final gatekeeper for D&F. Creates the backlog from D&F documents. Embeds ALL context into self-contained stories so agents need nothing else.

Anchor opus

Adversarial reviewer in two modes: backlog review (gaps, walking skeletons, integration stories) and milestone review (real delivery, no mocks, skills consulted).

Developer opus

Ephemeral. Implements one story, runs tests, records proof. Supports optional hard-tdd mode: RED phase (tests only) or GREEN phase (implementation only, test files locked by git).

PM-Acceptor sonnet

Reviews one delivered story using evidence-based approach. Accepts (closes) or rejects with structured EXPECTED/DELIVERED/GAP/FIX notes.

Retro sonnet

Harvests learnings from completed epics. Writes actionable insights to .vault/knowledge/ with actionable: pending for future sessions.

BA Challenger sonnet

Adversarial reviewer of BUSINESS.md. Checks for omissions, hallucinations, and scope creep against user context. Returns APPROVED or REJECTED. Only spawned when specialist_review is enabled.

Designer Challenger sonnet

Adversarial reviewer of DESIGN.md. Checks for unmet user needs, hallucinations, and contradictions with BUSINESS.md. Returns APPROVED or REJECTED. Only spawned when specialist_review is enabled.

Architect Challenger sonnet

Adversarial reviewer of ARCHITECTURE.md. Checks for unmet requirements, untraceable decisions, and contradictions across D&F documents. Returns APPROVED or REJECTED. Only spawned when specialist_review is enabled.

Two-tier vault: system and project

Knowledge lives in Obsidian and is accessed at runtime via vlt. System knowledge is shared across projects; project knowledge stays local.

System Vault

Shared across all projects. Contains methodology, conventions, patterns, decisions, and debugging knowledge. Protected by the scope guard. Changes require proposals and triage.

  • methodology/ Paivot methodology as atomic notes
  • conventions/ Working conventions (testing, Python, etc.)
  • decisions/ Architectural decisions with rationale
  • patterns/ Reusable solutions and idioms
  • debug/ Problems and their resolutions
  • _inbox/ Writable directly for proposals and captures

Project Vault

Lives at .vault/knowledge/ in each repo. Contains project-specific knowledge, settings, and session artifacts. Accessed through vlt only; direct file edits are blocked.

  • Project-specific patterns and decisions
  • Session operating mode and settings
  • Local knowledge that doesn't belong in the system vault
  • Managed via /vault-settings command

Slash Commands

/vault-capture

Deliberate knowledge capture pass. Routes knowledge to the global vault or project vault based on scope.

/vault-evolve

Identifies improvements to vault content. Creates proposals for system notes; edits project notes directly.

/vault-triage

Reviews and accepts/rejects pending proposals for system-scoped vault notes. The approval gate for knowledge changes.

/vault-settings

View and configure project-level settings. Key settings: architecture.c4 (C4 model), workflow.fsm (status machine), project_vault_git (git tracking), default_scope, stack_detection, proposal expiry, and more.

/vault-status

Shows vault health: note counts by folder, project vault status, and pending proposals.

/intake

5-phase feedback-to-backlog pipeline: collect user feedback, gather vault context, detect project stack, delegate to the Sr. PM agent for story creation, then triage into the backlog. The primary entry point for turning ideas into work.

/piv-loop

Unattended execution loop. Dispatches delivered stories to PM-Acceptor, rejected stories back to Developer, and ready stories to Developer. Runs until blocked or protected-main handoff.

/piv-cancel-loop

Cancel the active execution loop. Stops dispatching new work while letting in-flight agents complete.

Skills

vault-knowledge

Teaches agents how to interact with the vault: when to capture, what to capture, how to format notes, and how to search effectively.

vlt-skill

Complete vlt command reference, agentic patterns, and advanced techniques. Fetched from GitHub at install time.

nd

Vault-backed issue tracker storing issues as Obsidian-compatible markdown. Multi-session work, dependency tracking, and persistent context that survives compaction.

c4

Architecture-as-code using the C4 model and Structurizr DSL. Teaches agents to maintain workspace.dsl, validate boundaries, and generate diagrams.

Project Settings

All settings are project-local, stored in .vault/knowledge/.settings.yaml, and managed via pvg settings <key>=<value>. Run pvg settings to see current values.

dnf.specialist_review

Enable adversarial Challenger agents to review each D&F document. Default: false

dnf.max_iterations

Max challenger review loops before user escalation. Range 1-5. Default: 3

workflow.fsm

Structural enforcement of nd status transitions (open → in_progress → delivered → closed). Default: false

architecture.c4

Maintain a Structurizr DSL file alongside ARCHITECTURE.md as a machine-checkable twin. Default: false

bug_fast_track

Allow PM-Acceptor to create bugs directly during review instead of routing through Sr. PM. Default: false

project_vault_git

Git tracking for .vault/knowledge/ notes. Options: tracked, ignored, ask. Default: ask

default_scope

Default scope for new vault notes. Options: system, project. Default: system

auto_capture

Automatically capture knowledge notes during work sessions. Default: true

stack_detection

Detect and output tech stack at session start for concurrency limit selection. Default: false

loop.persist_across_sessions

Whether execution loop state persists across sessions. Default: false

proposal_expiry_days

Days before system vault proposals are flagged as stale. Default: 30

session_start_max_notes

Max vault notes summarized per subfolder at session start. Default: 10

"Advisory instructions do not work for subagents."

LLMs can be "convinced" to deviate and lose rules after context compaction. The pvg Go binary implements structural enforcement at the hook level. It sits outside the LLM and cannot be circumvented by prompt manipulation.

Scope guard in action

1
Agent attempts Edit methodology/Testing Philosophy.md
2
PreToolUse hook fires pvg guard intercepts Edit call
3
Protected directory detected BLOCKED: Direct modification of system-scoped vault content
4
Agent uses correct path vlt vault="Claude" append ... -- ALLOWED

Protected directories

methodology/ conventions/ decisions/ patterns/ debug/ concepts/ projects/ people/ _inbox/ (writable) _templates/ (writable)

System vault directories are protected. Only _inbox/ and _templates/ are writable directly. All other changes require /vault-evolve to create a proposal and /vault-triage to apply it. The vlt CLI always bypasses the guard.

Scope Guard

PreToolUse hook intercepts Edit, Write, and Bash commands. Blocks direct writes to protected vault directories. Exit code 2 = blocked.

vlt-Only Access

Project vault at .vault/knowledge/ requires vlt commands for all access. Direct file edits are blocked. vlt provides locking for concurrent agent safety.

Concurrency Limits

Stack-aware defaults. Heavy stacks (Rust, iOS, C#, CloudFlare Workers): 2 dev + 1 PM = 3 total. Light stacks (Python, TypeScript): 4 dev + 2 PM = 6 total. Auto-detected from project files. Users can override these defaults.

Five Lifecycle Hooks

SessionStart loads context. PreToolUse guards scope. PreCompact captures knowledge. Stop checks the capture checklist. SessionEnd logs the session.

Agent Operating Rules

Three rules every agent must follow: invoke skills via the Skill tool (never Bash), never edit vault files directly (SHA-256 integrity verification), and stop immediately on system errors instead of retrying.

Dispatcher Guard

PreToolUse hook blocks the orchestrator from writing D&F files (BUSINESS.md, DESIGN.md, ARCHITECTURE.md) unless a BLT agent is active. Prevents the main agent from bypassing the balanced team.

Beyond enforcement: built-in intelligence

Machine-checkable architecture, convergence protocols, and unattended execution -- capabilities that make Paivot more than a process framework.

C4 Architecture-as-Code

A Structurizr DSL file lives alongside ARCHITECTURE.md as a machine-checkable twin. Defines containers, components, and their allowed dependencies. The Anchor agent validates that code respects declared boundaries. Generated diagrams keep documentation in sync with reality.

Opt-in via architecture.c4 setting · Structurizr DSL · Auto-generated diagrams

BLT Convergence Protocol

After all three Discovery & Framing documents exist (BUSINESS.md, DESIGN.md, ARCHITECTURE.md), every BLT agent cross-reviews the other two for consistency. Contradictions are surfaced before the backlog is created. The system must reach BLT_ALIGNED status before the Sr. PM begins story creation.

BA + Designer + Architect cross-review · Must reach BLT_ALIGNED

Mandatory Questioning Rounds

BLT agents follow a structural execution sequence: their first output must be QUESTIONS_FOR_USER, never a document. The orchestrator relays questions to the user, then resumes the agent with answers. This ensures requirements are clarified before any document is produced. Light D&F means fewer rounds, not zero rounds.

First output = QUESTIONS_FOR_USER · Relay loop via orchestrator

Execution Loop (/piv-loop)

Unattended dispatch loop that runs the full delivery pipeline autonomously. Priority order: accept delivered stories first, fix rejected stories second, implement ready stories third. Concurrency-limited to 2 developer agents + 1 PM-Acceptor (3 total subagents max).

Priority: delivered > rejected > ready · Concurrency defaults by stack type (configurable)

FSM Workflow Enforcement

Optional state machine on nd issue status transitions. pvg guard validates that every status change follows the allowed graph -- for example, you cannot skip from open directly to closed without passing through in-progress and delivered. Invalid transitions are blocked with a clear error message.

Configurable via workflow.fsm setting · pvg guard validates transitions

Dispatcher Mode

When Paivot is engaged, the orchestrator becomes coordinator-only. It spawns agents and relays questions but never writes code, documents, or stories itself. This is enforced structurally by the pvg hook system, not just by prompt instructions. The orchestrator dispatches; agents deliver.

Orchestrator = coordinator only · Enforced by pvg hook · Agents deliver

Specialist Review (Adversarial D&F)

When specialist_review is enabled, each D&F document is adversarially reviewed by a dedicated Challenger agent before proceeding to the next phase. Challengers check for omissions, hallucinations, and contradictions. If rejected, the creator agent revises and resubmits. Up to max_iterations rounds (default 3) before escalating to the user.

Opt-in via dnf.specialist_review · 3 challengers · Binary APPROVED/REJECTED

Hard-TDD Mode

Opt-in per story via the hard-tdd label. Splits development into two phases: RED (write tests only, no implementation) and GREEN (write implementation only, test files locked). Git diff verifies test immutability between phases. The PM-Acceptor adjusts its review criteria based on the current phase.

Opt-in via hard-tdd label · RED/GREEN phases · Git-enforced test lock

Trunk-Based Development

All work happens on short-lived story/<ID> branches off main. No long-lived feature branches. Developer agents create branches, implement, and the orchestrator manages merges back to main after acceptance. Protected-main handoff pauses the loop when human review is needed.

main + story/<ID> branches · Protected-main handoff · No long-lived branches

Every story follows a strict delivery pipeline

No shortcuts. Verification before review. Evidence before acceptance. Learnings before forgetting.

01
Implement Developer builds + tests
02
Record Proof Test results, coverage, output
03
Deliver Mark delivered, NOT closed
04
Verify Integration tests must pass
05
PM Review Evidence-based acceptance
06
Accept PM closes or rejects

Testing Philosophy

Mocks in integration tests are an automatic rejection. Only real calls prove functionality.

TypeMocks?Required
UnitOK80% coverage
IntegrationNeverEvery story
E2ENeverMilestones

Evidence-Based Review

PM-Acceptor trusts developer proof unless suspicious. Every rejection must include four parts:

PartPurpose
ExpectedQuote the AC
DeliveredWhat code does
GapWhere it falls short
FixActionable guidance

Knowledge Lifecycle

AI agents cannot learn implicitly. Knowledge must be captured, stored, and injected deliberately via the vault.

StageActor
RecordDeveloper notes in story
HarvestRetro agent extracts
Store.vault/knowledge/ (actionable: pending)
Promote/vault-evolve + /vault-triage

Hard-TDD Mode

Opt-in per story via hard-tdd label. Two-phase developer workflow with git-enforced test immutability.

PhaseWhat happens
REDTest Author writes tests only
ReviewPM verifies tests cover all ACs
GREENImplementer writes code (cannot touch tests)
VerifyGit diff confirms test immutability

Intake Pipeline

The /intake command converts raw user feedback into a prioritized backlog through five structured phases.

PhaseWhat happens
CollectGather user feedback and intent
ContextSearch vault for related knowledge
DetectIdentify project stack and constraints
DelegateSr. PM creates stories from context
TriagePrioritize and slot into backlog

Vault Integrity

SHA-256 checksums protect vault content from accidental or unauthorized modification. Agents never edit vault files directly.

MechanismPurpose
SHA-256 baselineDetects unauthorized file changes
vlt-only writesAll edits go through the CLI
Scope guardBlocks direct Edit/Write to vault
AcknowledgementExternal changes require explicit ack

Up and running in four steps

Requires vlt 0.9.5+, nd 0.10.5+, an Obsidian vault, and Go 1.26.1+.

1

Install Prerequisites

Install vlt (vault CLI) and nd (git-native issue tracker). Pre-built binaries are available on each project's GitHub Releases page -- no Go compiler needed. You also need an Obsidian vault named "Claude".

# Option A: Download pre-built binaries from GitHub Releases
# https://github.com/paivot-ai/vlt/releases
# https://github.com/paivot-ai/nd/releases

# Option B: Build from source (requires Go 1.26.1+)
go install github.com/paivot-ai/vlt@latest
go install github.com/paivot-ai/nd@latest

vlt version  # should print vlt 0.9.5+
2

Install Paivot Graph

Clone the repo and run the installer. This installs the pvg binary (downloaded or built from source), fetches the vlt skill, and registers the plugin with Claude Code.

git clone https://github.com/paivot-ai/paivot-graph.git
cd paivot-graph
make install
3

Seed the Vault

Populate your Obsidian vault with agent prompts, methodology notes, and behavioral conventions. This is idempotent and safe to run again.

make seed

# Force-update all notes with latest content
make reseed
4

Start a Session

Restart Claude Code. The SessionStart hook will automatically search your vault for project context, load the operating mode, and display relevant knowledge.

# Start Claude Code in your project
claude

# Check vault health
/vault-status

One methodology, three platforms

Paivot is designed to be platform-agnostic. The same vault-as-runtime architecture adapts to any AI coding agent. All three implementations share the same agents, tools, and methodology.

Claude Code
Available Now

Full plugin with scope guard, 11 specialized agents, vault governance, and 5 lifecycle hooks. Install via paivot-graph.

Codex
Available Now

OpenAI's coding agent with full Paivot methodology via global skills and AGENTS.md. Install via paivot-codex.

OpenCode
Available Now

Vendor-agnostic AI coding framework with Paivot agents, commands, and workflow enforcement. Install via paivot-opencode.

Special thanks to Cibertrend, Inc. and Hextropian Systems, Inc. for sponsoring the development of Paivot.

Cibertrend Hextropian