git-product-manager

module
v0.1.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2026 License: MIT

README

Git Product Manager (GPM)

BETA.

A Git-native project management system that stores tickets as structured YAML + Markdown files within your repository, eliminating context-switching between code and project management.

Philosophy

Single Source of Truth: Keep tasks and code together in one repository. No context switching between JIRA tabs and your IDE. Everything you need to understand what to build and why lives alongside the code itself.

LLM-Native Design: AI code assistants can read tickets directly from your repository—no API keys, no integrations, no external services. Your LLM has full context of requirements, acceptance criteria, and implementation status without leaving your codebase.

Familiar Workflow: Uses the same concepts developers already know from JIRA—epics, stories, tasks, bugs, status workflows, assignees. The only difference: it's all version-controlled files instead of a web UI.

Additional Benefits:

  • GitOps Workflow: All ticket operations are git commits
  • Process as Code: Workflows and labels are version-controlled
  • Auditability: Git history is the immutable audit trail; rely on audit and team conventions instead of restrictions (e.g., valid state transitions and permissions)

Who's It For

Here's what AI told me when I discussed whether or not I was wasting my time with this:

GPM is best suited for solo developers and small teams (roughly 2–8 people) who:

  • live in the terminal
  • work heavily with AI coding assistants
  • want project context to travel with the code.

If you've ever pasted a JIRA ticket into a chat window so your LLM could understand what you're building, GPM solves that problem structurally — tickets are just files in the repo, so your AI assistant already has them.

It's a poor fit if you have:

  • non-engineer stakeholders who need a web UI
  • a team large enough to require dashboards and reporting
  • workflows that depend on tight GitHub PR ↔ issue automation.

For those cases, GitHub Issues, Linear, or JIRA will serve you better.

Quick Start

# Initialize in your project
pm init . --prefix MYPROJECT

# Create tickets
pm new "Add user authentication"
pm new "Auth overhaul" --type epic
pm new "Login form" --parent MYPROJECT-2

# Browse and triage
pm list
pm list --active
pm list --parent MYPROJECT-2
pm show MYPROJECT-1

# Move work forward
pm move MYPROJECT-1 in-progress
pm edit MYPROJECT-1 --field priority=high
pm assign MYPROJECT-1 alice

# Collaborate
pm comment MYPROJECT-1 -m "Started implementation"
pm link MYPROJECT-1 --depends-on MYPROJECT-3
pm blocked

# Search
pm search "authentication"

# Milestones
pm milestone create "v1.0 Release" --due 2026-06-01
pm list --milestone v1-0-release

# AI/LLM integration
pm ai init
pm ai guide

Installation

From Source
# Clone the repository
git clone https://github.com/yourusername/git-product-manager.git
cd git-product-manager

# Build the binary
./scripts/build.sh

# Install to $GOPATH/bin
go install ./cmd/pm

# Or use the local binary
./bin/pm --help
Using Go Install
go install github.com/yourusername/git-product-manager/cmd/pm@latest

Shell Completion

Enable tab completion for ticket IDs, commands, and flags. The completion system supports:

  • Ticket IDs: pm show GPM-<TAB> lists all matching tickets (case-insensitive)
  • Commands: pm li<TAB> completes to pm list
  • Status values: pm move GPM-1 <TAB> shows valid states from workflow.yaml
  • Flag values: pm new --type <TAB> shows story, task, bug, epic
  • Parent filtering: pm list --parent <TAB> completes ticket IDs
Bash

Add to ~/.bashrc:

eval "$(pm completion bash)"
Zsh

Add to ~/.zshrc:

eval "$(pm completion zsh)"
Fish

Add to ~/.config/fish/config.fish:

pm completion fish | source
PowerShell

Add to your PowerShell profile:

pm completion powershell | Out-String | Invoke-Expression

Development

Local Development
# Build
make build

# Run tests
make test

# Test locally in sandbox
make test-local

# Clean build artifacts
make clean
Development with DevContainer (Isolated Copilot CLI)

This project supports containerized development with GitHub Copilot CLI for safe AI assistance. The container provides isolation - Copilot can only access your project directory, not your entire system.

Setup (one-time)
# Build and start the container
./scripts/dev-start.sh

# Authenticate Copilot (first time only)
./scripts/dev-shell.sh
copilot
# Follow interactive authentication flow...
exit
Workflow
# 1. Start container (if not running)
./scripts/dev-start.sh

# 2. Edit code with your system editor (Neovim, VS Code, etc.)
nvim cmd/pm/list.go

# 3. Use Copilot from inside container
./scripts/dev-copilot.sh

# 4. Build and test inside container
./scripts/dev-shell.sh
make build
pm list
go test ./...
exit

# 5. Stop container when done (or leave running)
./scripts/dev-stop.sh

Architecture: Your editor runs on the host, the codebase is mounted into the container, and Copilot CLI runs inside the container. The dev-copilot.sh wrapper script bridges commands from host to container.

Documentation

See AGENTS.md for the complete technical specification.

Features

  • Ticket management — Create, edit, move, and view tickets across types: story, task, bug, epic
  • Hierarchies — Parent/child relationships with --parent flag; visualize with pm tree
  • Milestones — Group tickets toward a release goal with progress tracking
  • Relationships & dependencies — Link tickets with pm link (depends-on, blocks, related); surface blockers with pm blocked
  • Comments & history — Conflict-free comment threads; full status-change audit trail via pm history
  • Assignees — Assign tickets with pm assign; configurable member list with domain suffix support
  • Full-text search — Search across ticket IDs, titles, and body content with pm search
  • Smart filtering — Filter by status, type, parent, milestone, assignee, or relationship (--depends-on, --blocks, --related)
  • Shell completion — Tab completion for ticket IDs, commands, statuses, and flags (bash, zsh, fish, PowerShell)
  • Color output — Status- and type-aware color coding across all commands; disable with --no-color
  • SQLite index — Fast queries backed by auto-syncing cache; YAML files remain the source of truth
  • AI/LLM integrationpm ai guide provides embedded workflow guidance; pm ai init bootstraps your LLM tool config
  • Cross-branch syncpm sync propagates ticket changes across branches
  • GitOps workflow — All ticket data is version-controlled; git history is the audit trail
  • Process as code — Workflows, labels, and members are version-controlled config files

License

MIT License - See LICENSE file for details

Contributing

Contributions welcome! Please read the specification in AGENTS.md before submitting PRs.

Directories

Path Synopsis
cmd
pm command
internal
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL