Skip to main content

Purpose-Driven Development Framework - A CLI tool for maintaining project purpose throughout development

Project description

Purposely

한국어 문서 | Documentation

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 configuration
  • docs/ - 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:

  1. 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
  2. Start a Phase: /purposely-phase

    • AI reads GLOBAL_PURPOSE first, validates alignment
    • Challenges scope creep ruthlessly
    • Ensures all objectives connect to GLOBAL_PURPOSE
  3. Document Research: /purposely-research

    • AI validates research necessity against SPEC
    • Prevents analysis paralysis
    • Connects findings to design decisions
  4. Write Design: /purposely-design

    • AI reads GLOBAL_PURPOSE + SPEC + RESEARCH
    • Challenges over-engineering
    • Validates design against Success Criteria
  5. Create Plan: /purposely-plan

    • AI reads all previous documents
    • Validates plan achieves all Success Criteria
    • Checks timeline feasibility
  6. 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

purposely-0.2.1.tar.gz (46.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

purposely-0.2.1-py3-none-any.whl (63.3 kB view details)

Uploaded Python 3

File details

Details for the file purposely-0.2.1.tar.gz.

File metadata

  • Download URL: purposely-0.2.1.tar.gz
  • Upload date:
  • Size: 46.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for purposely-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ecfdb9c9e2722869f89db567c1e228e1cf33182c61d571e808e167c77859ff06
MD5 3ec9d206b093bb67625685f1b2084b5d
BLAKE2b-256 7e4fd4d3c8e2b61630416da6969ff5e4a47370f9735c20109d8d673148e2c23c

See more details on using hashes here.

File details

Details for the file purposely-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: purposely-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 63.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for purposely-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b9ec27a845824509b8696f0d4ec04e5a1a9ec98996976ef2b79bac49b1ade57a
MD5 4816fcaefaff3068d77cbb3b9af8a3e6
BLAKE2b-256 652edb83ca643da0a1c467f9a58951d4bebc585abb9a2b09e91cceb653911ad5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page