Project Workflow Manual

pman is an opinionated workflow for agentic programming with Claude Code.

LLMs are great at generating code and iterating through implementation problems, but they struggle with context. Context is the hardest part of software development. pman flips the dynamic: you become the context manager, while Claude focuses on code, frameworks, and documentation. Each plays to their strength.

The key insight is that most file changes happen through the agent chat as an intermediary. Instead of editing files or running commands directly, you work through Claude. Because Claude is configured with the workflow rules via CLAUDE.md and skills, it enforces conventions automatically: creating project notes before coding, updating the registry, following commit formats. You describe intent; Claude handles execution within the established structure.

This doesn't mean you can't edit files directly. Sketch out pseudocode in vim, tweak a config by hand, or use whatever tool fits the moment. The workflow is interactive: when you make changes outside the chat, tell Claude to look at what you did. Claude, your editor, and any other tool are tools in the toolbox—not the entire toolbox.

Unlike throwaway planning, pman treats plans as persistent artifacts, like source files, but managed in a separate, centralized Notes directory. By documenting every change, you build a reference set for future work. Changed service A and now service B needs updating? Pull in context from A's project note. The Notes vault becomes your cross-system memory.

Agent compatibility: This workflow is developed and tested exclusively with Claude Code. It may work with other AI coding agents, but I only test with Claude and have found it to be the most effective for this style of work. The workflow, prompts, and tooling are optimized for Claude's capabilities.

GitHub READMECLI ReferenceDownload CLAUDE.md

Quick Start

  1. Create a workspace directory (e.g., ~/src, ~/code, whatever you prefer)
  2. Start Claude Code in that directory
  3. Tell Claude: "set up https://divanv.com/pman/INSTALL.md"

Claude will read the install instructions and configure your workspace automatically. The setup works in any directory—it becomes your workspace root.

Glossary

TermMeaning
ProjectTime-bound effort to achieve an outcome (feature, bugfix, refactor)
SystemWhat the project changes—may span one or more repositories
RepositoryA git repo containing code

A project changes a system. A system is made of one or more repositories. Projects live in Notes/Projects/, repositories live in the workspace.

The Core Idea

Plan before you code. Every change starts in a project note, not in the codebase. You and Claude collaborate on the plan in writing. Only after the plan is complete do you start coding.


flowchart LR
    subgraph Workflow
        A[Create Project Note] --> B[Plan with Claude]
        B -->|Update| N[(Project Note)]
        N --> C[Execute Code]
        C --> D[Record Outcomes]
        D -->|Update| N
    end

    D --> E{Done?}
    E -->|No| B
    E -->|Yes| F[Archive]

The workflow has five steps:

  1. Create a project note: pman new creates a project note in Notes/Projects/ with a chronological PROJ-<n> id and slug.
  2. Plan collaboratively: Work with Claude to develop the plan in the project note. Goals, constraints, approach: all written down. The plan lives in the note, not in chat history.
  3. Execute: Once the plan is complete, start writing code. The plan is the spec; follow it.
  4. Record outcomes: Update the project note with what worked, what changed, and any follow-up tasks.
  5. Archive: pman archive moves the project note to Notes/Archives/Projects/ and updates the registry.

Example Session

Here's how a typical session looks:


sequenceDiagram
    actor User
    participant Claude
    participant PN as Project Note
    participant Code as System

    User->>Claude: I want to add feature X
    Claude->>PN: Create project note
    User->>Claude: Let's plan this
    Claude->>PN: Write goals and approach
    User->>Claude: What about edge cases?
    Claude->>PN: Update plan
    User->>Claude: Looks good, build it
    Claude->>Code: Implement changes
    Claude->>PN: Record outcomes
    User->>Claude: Done, archive it
    Claude->>PN: Move to Archives

Notice how Claude writes to the project note throughout. It does this based on the instructions in CLAUDE.md, but you may also want to explicitly tell it to write something down during your chat. The note becomes the single source of truth for why a change was made, while git records what changed.

Workspace Structure

pman expects a Notes directory following PARA (Projects, Areas, Resources, Archives):

Notes/
  Projects/
    _registry.md
  Areas/
  Resources/
  Archives/
    Projects/

The workspace structure for your repositories is up to you—document it in your workspace README.md.

Key concepts:

Manual Setup

If you prefer to set up manually instead of using Claude:

  1. Create a workspace directory for your projects.
  2. Create a Notes directory with PARA folders (Projects, Areas, Resources, Archives).
  3. Create Notes/Projects/_registry.md to track projects.
  4. Download CLAUDE.md and place it at your workspace root.
  5. Copy skills to ./.claude/skills/.
  6. Create a README.md documenting your workspace layout and custom tools.

See INSTALL.md for detailed instructions and file contents.

Install the CLI

cargo install --git https://github.com/divanvisagie/pman

Create a new project:

pman new "My Feature" --status active

Archive a completed project:

pman archive proj-22

Configuration

pman ships two types of configuration files:

CLAUDE.md

Generic workflow instructions for Claude. Contains workflow rules, commands, and boundaries. Written as directives for Claude, not documentation for humans.

cp resources/CLAUDE.md ./

README.md (user-maintained)

Your workspace-specific configuration. Document your:

Claude reads both files, combining generic workflow with your specific setup.

Claude Code Skills

Skills teach Claude about specific workflows. This repo includes two skills in resources/skills/:

Install to your workspace's .claude/skills/ directory:

mkdir -p ./.claude/skills
cp -r resources/skills/* ./.claude/skills/
# or symlink for automatic updates:
ln -s /path/to/pman/resources/skills/* ./.claude/skills/

Upgrading

Because CLAUDE.md and skills are generic, upgrading is simple:

cp resources/CLAUDE.md ./
cp -r resources/skills/* ./.claude/skills/

Your README.md stays untouched—no merge conflicts.

Keeping Things in Sync

The CLAUDE.md file is the contract between you and Claude. It defines commands, tools, structure, and workflow rules. Keep it up to date.

When Claude does something you don't like, ask it to update CLAUDE.md directly: "Please add to CLAUDE.md not to do X again." This way, the lesson persists across sessions.

Similarly, keep your project notes current. They're the shared context that makes collaboration with Claude effective.