Purpose-Driven Development Framework - A CLI tool for maintaining project purpose throughout development
Project description
Purposely
Purpose-Driven Development (PDD) Framework
Purposely helps you stay aligned with your project's core purpose throughout the entire development lifecycle.
🎯 Core Concept
Every project must have a GLOBAL_PURPOSE that defines:
- Why does this project exist? (Why)
- What problem does it solve? (Problem)
- How will it solve the problem? (Solution)
- How do we measure success? (Success Metrics)
All Phases, Designs, and Implementations must continuously align with this GLOBAL_PURPOSE.
🚀 Quick Start
Prerequisites
Install uv (recommended):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Initialize Your Project
Run directly without installation using uvx:
# In your project directory
uvx --from git+https://github.com/nicered/purposely purposely init --lang en
# Or in Korean
uvx --from git+https://github.com/nicered/purposely purposely init --lang ko
Note: After PyPI publication, you can simply use
uvx purposely init --lang en
This command creates:
.purposely/config.json- Project configurationdocs/- Documentation directory.claude/- Claude Code slash commands and templates
Upgrading Purposely
When a new version of Purposely is released, upgrade your project templates:
# Check for updates and upgrade
purposely upgrade
# Force reinstall templates even if at latest version
purposely upgrade --force
This updates:
- Slash commands (
.claude/commands/) - Instructions (
.claude/instructions.md) - Config version (
.purposely/config.json)
Your documents are preserved - only templates are updated.
Creating Documents
Use the purposely create command to create documents:
# Create GLOBAL_PURPOSE
purposely create global-purpose
# Create a new phase
purposely create spec 01
# Create research documents
purposely create research 01 01 "Technology Stack Research"
# Create design documents
purposely create design-overview 01
purposely create design 01 01 "UserService"
# Create plan and implementation
purposely create plan 01
purposely create implementation 01
Using with Claude Code
Purposely is designed for AI-guided collaborative development. Use slash commands for interactive document creation:
-
Create GLOBAL_PURPOSE:
/purposely-init- AI asks probing questions to understand your true purpose
- Challenges vague answers, requires measurable metrics
- Writes the document based on conversation
-
Start a Phase:
/purposely-phase- AI reads GLOBAL_PURPOSE first, validates alignment
- Challenges scope creep ruthlessly
- Ensures all objectives connect to GLOBAL_PURPOSE
-
Document Research:
/purposely-research- AI validates research necessity against SPEC
- Prevents analysis paralysis
- Connects findings to design decisions
-
Write Design:
/purposely-design- AI reads GLOBAL_PURPOSE + SPEC + RESEARCH
- Challenges over-engineering
- Validates design against Success Criteria
-
Create Plan:
/purposely-plan- AI reads all previous documents
- Validates plan achieves all Success Criteria
- Checks timeline feasibility
-
Track Implementation:
/purposely-implement- AI compares actual vs planned
- Extracts honest learnings
- Prepares notes for next phase
The AI is your alignment guardian - it reads all previous documents and validates every decision against GLOBAL_PURPOSE.
📁 Document Structure
your-project/
├── .purposely/
│ └── config.json
├── docs/
│ ├── GLOBAL_PURPOSE.md
│ └── phase-01/
│ ├── 00_SPEC.md
│ ├── 01_XX_RESEARCH_*.md
│ ├── 02_XX_DESIGN_*.md
│ ├── 03_PLAN.md
│ └── 04_IMPLEMENTATION.md
└── .claude/
├── commands/
└── instructions.md
🌟 Key Features
- Purpose-Driven Development: All documents reference GLOBAL_PURPOSE
- Structured Documentation: 7 document types with clear hierarchy
- i18n Support: English and Korean
- Claude Code Integration: Easy document creation with slash commands
- Consistency Checking: AI automatically checks alignment with purpose
📚 Document Types
GLOBAL_PURPOSE
The core purpose of your project. The foundation of everything.
SPEC (00_SPEC.md)
Defines objectives, scope, and success criteria for each phase.
RESEARCH (01_XX_RESEARCH_*.md)
Research and investigation results. Evidence for design decisions.
DESIGN (02_XX_DESIGN_*.md)
System design. How will it be implemented?
PLAN (03_PLAN.md)
Concrete implementation plan. Timeline, dependencies, risks.
IMPLEMENTATION (04_IMPLEMENTATION.md)
Actual implementation log. What was learned? How did it differ from the plan?
🔧 Development
Local Installation
git clone https://github.com/nicered/purposely
cd purposely
# Using uv (recommended)
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
# Or using pip
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Run Tests
pytest tests/ -v
Build
uv build
# Or: python -m build
🤝 Contributing
Issues and Pull Requests are welcome!
📄 License
MIT License
🙏 Acknowledgments
Purposely was created to help developers complete projects without losing sight of their purpose.
Made with Purpose ❤️
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file purposely-0.2.2.tar.gz.
File metadata
- Download URL: purposely-0.2.2.tar.gz
- Upload date:
- Size: 47.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47adaec42e711226917baa992a8418fe341f1c8fae7c992a0cc2acf987d4b6ef
|
|
| MD5 |
8993db6060a6385099391af077c83d93
|
|
| BLAKE2b-256 |
1c2a4af5c300416ff752512a0e9e817135ccd43a94d47c6b9b925d4bbef9ceff
|
File details
Details for the file purposely-0.2.2-py3-none-any.whl.
File metadata
- Download URL: purposely-0.2.2-py3-none-any.whl
- Upload date:
- Size: 63.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f947bfa1d550a2827956353233411c0aa154a47db27c97e12967437e64829f60
|
|
| MD5 |
808bb44591e6368f05615bd584447954
|
|
| BLAKE2b-256 |
c4144f6b1bc0d1b7c594efabd70e65bd910f6a3400ca2fa2ab86a864ee3ce1a5
|