Skip to content

Latest commit

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PRP - Product Requirement Prompts

Bootstrap context-driven development workflow based on Product Requirement Prompts (PRPs) and orchestrate execution with LOOP MODE

By Vasilisa Versus

What is PRP?

PRP is both a methodology and a CLI tool that revolutionizes how you approach software development:

  • 📋 PRP Methodology - Context-driven development using Product Requirement Prompts as living documents
  • 🔄 LOOP MODE - Continuous agent iteration guided by signals and progress tracking
  • 🤖 Agent Orchestration - AI agents collaborate through standardized PRPs with emotional signals
  • ⚡ Signal System - Track progress and emotional state with 14+ signals (ATTENTION, BLOCKED, ENCANTADO, etc.)
  • 🚀 Project Scaffolding - Bootstrap new projects with best practices and complete infrastructure

The PRP Workflow (Autonomous Orchestration)

Key Principle: AI Orchestrator makes decisions autonomously. Humans are subordinate agents, not decision makers.

Every development task follows this cycle:

  1. 📖 Read ALL PRPs - Load context across entire project
  2. 🔍 Analyze ALL Signals - Identify highest priority signal (10→1)
  3. ⚡ React to Strongest Signal - Work on highest priority across ALL PRPs
  4. 🔨 Execute Work - Implement changes, write code, solve problems
  5. 💬 Update Progress - Leave detailed comment in progress log
  6. 🎯 Leave Signal - Express current state (TIRED, CONFIDENT, BLOCKED, etc.)
  7. 🔄 Loop - Continue until DoD met or checkpoint reached

Orchestrator Rules:

  • NO QUESTIONS to humans for decisions
  • DECIDE AUTONOMOUSLY based on signal analysis
  • DOCUMENT decisions in PRP progress log
  • EXECUTE immediately without waiting
  • ⚠️NUDGE only for critical blocks (Priority 10)

Quick Start with PRPs:

# List all PRPs
ls PRPs/
# Start working on a PRP# 1. Read the PRP file# 2. Check Progress Log for latest signal# 3. Follow signal's algorithm (see AGENTS.md)# 4. Do work# 5. Update Progress Log with your signal

Signal Examples:

  • 🔴 ATTENTION (10) - New work or need user input (triggers NUDGE system)
  • 🚫 BLOCKED (9) - Can't proceed, need external help
  • CONFIDENT (3) - Work done, ready for review
  • 🏁 COMPLETED (1) - PRP finished, DoD met

For detailed workflow instructions, see AGENTS.mdFor contributing guidelines, see CONTRIBUTING.md

npm versionLicense: MITNode.js Version

Project Scaffolding Features

  • 🚀 Interactive CLI with beautiful TUI powered by Ink (React for terminal)
  • 🎨 Multiple Templates - FastAPI, NestJS, React, TypeScript libraries, and more
  • 📝 Complete Project Setup - LICENSE, README, CONTRIBUTING, Code of Conduct, and more
  • 🤖 AI Integration - Optional AI-powered code generation (OpenAI, Anthropic, Google)
  • 🔧 GitHub Actions - Pre-configured CI/CD workflows
  • 📦 Dependency Management - Auto-install with npm, yarn, or pnpm
  • 🐳 Docker Support - Optional Dockerfile and docker-compose configuration
  • ⚙️ Configurable - Choose exactly what to include in your project

Quick Start

Using npx (no installation required)

npx @dcversus/prp

Global Installation

npm install -g @dcversus/prp
prp

Local Installation

npm install @dcversus/prp
npx prp

Usage

Interactive Mode (Default)

Simply run the command and follow the prompts:

prp

The interactive CLI will guide you through:

  1. Project metadata (name, description, author)
  2. Template selection (FastAPI, NestJS, React, etc.)
  3. Feature selection (LICENSE, Code of Conduct, GitHub Actions, etc.)
  4. AI integration options (optional)

Non-Interactive Mode

Pass all options via command-line arguments:

prp \
--name my-project \
--description "My awesome project" \
--author "Your Name" \
--email "you@example.com" \
--template react \
--license MIT \
--no-interactive

Command-Line Options

Options:
-n, --name <name> Project name
-d, --description <desc> Project description
-a, --author <author> Author name
-e, --email <email> Author email
-t, --template <template> Template (fastapi, nestjs, react, typescript-lib, none)
--no-interactive Run in non-interactive mode
--yes Use default values for all options
--license <license> License type (default: MIT)
--no-git Skip git initialization
--no-install Skip dependency installation
-h, --help Display help
-V, --version Display version

Supported Templates

TemplateDescriptionTech Stack
noneMinimal setup with docs onlyN/A
fastapiFastAPI Python web servicePython, FastAPI, Uvicorn
nestjsNestJS TypeScript backendTypeScript, NestJS, Node.js
reactReact web applicationTypeScript, React, Vite
typescript-libTypeScript library/packageTypeScript, Node.js
expressExpress.js backendTypeScript, Express, Node.js

More templates coming soon!

What Gets Generated

Core Project Files

  • README.md - Project documentation with badges and sections
  • LICENSE - Your chosen license (default: MIT)
  • .gitignore - Language/framework-specific ignores
  • package.json / requirements.txt - Dependency management
  • .editorconfig - Consistent coding styles

Open Source Best Practices

  • CONTRIBUTING.md - Contribution guidelines
  • CODE_OF_CONDUCT.md - Contributor Covenant
  • SECURITY.md - Security policy and vulnerability reporting
  • CHANGELOG.md - Keep a Changelog format

GitHub Templates

  • .github/ISSUE_TEMPLATE/ - Bug reports and feature requests
  • .github/PULL_REQUEST_TEMPLATE.md - PR checklist
  • .github/workflows/ci.yml - CI/CD workflows

Development Tools

  • ESLint configuration (for JS/TS projects)
  • Prettier configuration (for JS/TS projects)
  • TypeScript configuration (for TS projects)
  • Jest/pytest configuration (testing)
  • Docker configuration (optional)

AI Integration

PRP can optionally integrate with AI coding assistants to generate boilerplate code:

Supported Providers

  • OpenAI (GPT-4, Codex) - OPENAI_API_KEY
  • Anthropic (Claude) - ANTHROPIC_API_KEY
  • Google (Gemini) - GOOGLE_API_KEY

Configuration

Set your API key as an environment variable:

export OPENAI_API_KEY="your-api-key"
prp

Or create a .prprc file in your home directory:

{
"aiProvider": "openai",
"apiKey": "your-api-key"
}

Development

Prerequisites

  • Node.js >= 20.0.0
  • npm >= 10.0.0

Setup

# Clone the repository
git clone https://github.com/dcversus/prp.git
cd prp
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Run tests
npm test# Lint and format
npm run lint
npm run format

Project Structure

prp/
├── src/
│ ├── cli.ts # CLI entry point
│ ├── index.ts # Main module
│ ├── types.ts # TypeScript types
│ ├── ui/ # Ink UI components
│ │ ├── App.tsx
│ │ └── components/
│ ├── generators/ # Template generators
│ ├── templates/ # Template files
│ ├── ai/ # AI integration
│ └── utils/ # Helper functions
├── tests/ # Test files
├── dist/ # Compiled output
└── docs/ # Documentation

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE file for details.

Credits

Inspired by:

Built with:

Links


Made with ❤️ by dcversus

About

Autonomous Software Development Orchestration - AI-powered development system using PRPs and autonomous agent coordination

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages