Stay organized and in control with adaptive LLM workflow prompts.
Project description
A Python CLI tool that installs, swaps, and synchronizes battle-tested LLM workflow prompts across projects, supporting version tracking and project-specific overrides to keep documentation consistent while preserving customizations.
Why project-guide?
The go-project-guide prompt provides the LLM with a structured workflow:
- Adapts for your current development mode (plan, code, debug, etc.)
- Lets you stay in charge: guiding features, flow, and taste
- Handles the typing so you can stay focused on the big picture
How It Works
- Install project-guide in any repository
- Initialize the Project-Guide system.
- (optional) Set the project mode (plan, code, debug, etc.)
- Tell your LLM to read the
go-project-guide.md(in your IDE, or however you prefer).
Human-in-the-Loop Development
This is "HITLoop" (human-in-the-loop) development: you direct, the LLM executes—It is not vibe-coding. Instead you are following the development closely and interactively guiding and improving the flow. The pace is "flaming agile"—an entire production-ready backend can be completed in 6-12 hours.
Customization and Updates
When you customize a prompt for your project, mark it as overridden so future package updates skip it. When you want the latest workflow improvements, run project-guide update to sync all non-overridden prompts.
Key Features
- 📚 Battle-Tested Workflows - Crafted workflow prompts from concept through production release in one place
- Adaptive — Switch project between plan, code, and debug modes to get the right instructions for each task
- 🔄 Version Management - Track and update all prompt docs in a project with a single command
- 🔒 Custom Doc Lock - Lock customized prompts to prevent update overwrites
- Gentle Force Updates — Automatic
.bakfiles created if you--forceupdate a custom prompt document - 🎨 CLI Interface - Eight intuitive commands for all operations
- 🧪 Well Tested - 92% test coverage with 112 comprehensive tests
- ⚡ Zero Configuration - Works with sensible defaults out of the box
- 🌐 Cross-Platform - Runs on macOS, Linux, and Windows with Python 3.11+
Installation
Via pip
pip install project-guide
Via pipx (recommended for CLI coding tools)
pipx install project-guide
Quick Start
1. Initialize in your project
cd /path/to/your/project
project-guide init
This creates:
.project-guide.yml- Configuration filedocs/project-guide/- Mode templates, artifact templates, and metadatadocs/specs/go-project-guide.md- Rendered LLM instructions (default mode)
2. Tell your LLM to read the guide
Read docs/specs/go-project-guide.md
The LLM follows the instructions, asks clarifying questions, and generates artifacts. Type go to advance through steps.
3. Switch modes as you progress
project-guide mode plan_concept # Define problem & solution
project-guide mode plan_features # Define requirements
project-guide mode plan_tech_spec # Define architecture
project-guide mode plan_stories # Break into stories
project-guide mode code_velocity # Implement stories fast
project-guide mode debug # Debug with test-first approach
Each mode regenerates docs/specs/go-project-guide.md with focused instructions for that workflow.
4. List available modes
project-guide mode
Output:
Current mode: plan_concept
Available modes:
→ default Getting started -- full project lifecycle overview
plan_concept Generate a high-level concept (problem and solution space)
plan_features Generate feature requirements (what the project does)
plan_tech_spec Generate a technical specification prompt (how it's built)
plan_stories Generate a user stories prompt
code_velocity Generate code with velocity
code_test_first Generate code with a test-first approach
debug Debug code with a test-first approach
...
5. Update templates
pip install --upgrade project-guide
project-guide update
Overridden templates are skipped. Modified templates prompt for confirmation. Backups are always created before overwrites.
6. Customize a template (optional)
project-guide override templates/modes/debug-mode.md "Custom debugging for this project"
Command Reference
init
Initialize project-guide in the current directory.
project-guide init [OPTIONS]
Options:
--target-dir PATH- Directory for templates (default:docs/project-guide)--force- Overwrite existing configuration
Examples:
# Initialize with default settings
project-guide init
# Use custom directory
project-guide init --target-dir documentation/workflows
# Force reinitialize
project-guide init --force
mode
Set or show the active development mode.
project-guide mode [MODE_NAME]
Without argument: Lists current mode and all available modes.
With argument: Switches to the specified mode and re-renders go-project-guide.md.
Examples:
# Show current mode and list all modes
project-guide mode
# Switch to velocity coding mode
project-guide mode code_velocity
# Switch to debugging mode
project-guide mode debug
status
Show status of all installed templates and current mode.
project-guide status
Output includes:
- Current package version
- Installed version in project
- Status of each guide (current, outdated, overridden, missing)
- Override reasons
update
Update guides to the latest version.
project-guide update [OPTIONS]
Options:
--guides NAME- Update specific guides only (repeatable)--force- Update even overridden guides (creates backups)--dry-run- Show what would change without applying
Examples:
# Update all guides (skips overridden)
project-guide update
# Update specific guides
project-guide update --guides project-guide.md --guides debug-guide.md
# Force update all (creates backups for overridden)
project-guide update --force
# Preview changes
project-guide update --dry-run
override
Mark a guide as customized to prevent automatic updates.
project-guide override GUIDE_NAME REASON
Arguments:
GUIDE_NAME- Name of the guide fileREASON- Why this guide is customized
Example:
project-guide override debug-guide.md "Custom debugging workflow with project-specific tools"
unoverride
Remove override status from a guide.
project-guide unoverride GUIDE_NAME
Example:
project-guide unoverride debug-guide.md
overrides
List all overridden guides.
project-guide overrides
Output:
Overridden guides:
debug-guide.md
Reason: Custom debugging workflow with project-specific tools
Since: v0.12.0
Last updated: 2026-03-03
purge
Remove all project-guide files from the current project.
project-guide purge [OPTIONS]
Options:
--force- Skip confirmation prompt
Examples:
# Purge with confirmation prompt
project-guide purge
# Purge without confirmation
project-guide purge --force
What gets removed:
.project-guide.ymlconfiguration file- Guides directory (e.g.,
docs/guides/) and all contents
Warning: This action cannot be undone. Use with caution.
Configuration
The .project-guide.yml file stores project configuration:
version: "2.0"
installed_version: "2.0.7"
target_dir: "docs/project-guide"
current_mode: "code_velocity"
overrides:
templates/modes/debug-mode.md:
reason: "Custom debugging workflow for this project"
locked_version: "2.0.0"
last_updated: "2026-04-07"
Fields:
version- Config file format versioninstalled_version- Version of templates currently installedtarget_dir- Where templates are storedcurrent_mode- Active development modeoverrides- Map of customized templates with metadata
Available Modes
Planning Modes
| Mode | Command | Output |
|---|---|---|
| Concept | project-guide mode plan_concept |
docs/specs/concept.md |
| Features | project-guide mode plan_features |
docs/specs/features.md |
| Tech Spec | project-guide mode plan_tech_spec |
docs/specs/tech-spec.md |
| Stories | project-guide mode plan_stories |
docs/specs/stories.md |
| Phase | project-guide mode plan_phase |
New phase added to stories |
Coding Modes
| Mode | Command | Workflow |
|---|---|---|
| Velocity | project-guide mode code_velocity |
Direct commits, fast iteration |
| Test-First | project-guide mode code_test_first |
TDD red-green-refactor cycle |
| Debug | project-guide mode debug |
Test-driven debugging |
Documentation Modes
| Mode | Command | Output |
|---|---|---|
| Branding | project-guide mode document_brand |
docs/specs/brand-descriptions.md |
| Landing Page | project-guide mode document_landing |
GitHub Pages + MkDocs docs |
Troubleshooting
"Configuration file not found"
Problem: Running commands outside a project-guide initialized directory.
Solution:
project-guide init
"Guide already exists"
Problem: Trying to initialize when guides already exist.
Solution:
# Use --force to overwrite
project-guide init --force
# Or manually remove existing guides
rm -rf docs/guides .project-guide.yml
project-guide init
"Permission denied"
Problem: Insufficient permissions to write files.
Solution:
# Check directory permissions
ls -la docs/
# Fix permissions if needed
chmod -R u+w docs/
Updates not appearing
Problem: Guides show as current but you expect updates.
Solution:
# Check if guide is overridden
project-guide overrides
# Force update if needed
project-guide update --force
Development
Setup
# Clone repository
git clone https://github.com/pointmatic/project-guide.git
cd project-guide
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
Running Tests
# Run all tests
pytest tests/
# Run with coverage
pytest tests/ --cov=project_guide --cov-report=term-missing
# Run specific test file
pytest tests/test_cli.py -v
Code Quality
# Linting
ruff check project_guide/ tests/
# Type checking
mypy project_guide/
# Format code
ruff format project_guide/ tests/
Documentation Development
The project uses MkDocs with Material theme for documentation.
# Install documentation dependencies
pip install -e ".[docs]"
# Preview documentation locally (with live reload)
mkdocs serve
# Open http://127.0.0.1:8000
# Build documentation
mkdocs build
# Build with strict mode (fails on warnings)
mkdocs build --strict
Directory Structure:
docs/site/- Documentation source files (markdown)site/- Built documentation (generated, gitignored)mkdocs.yml- MkDocs configuration.github/workflows/deploy-docs.yml- Automated deployment to GitHub Pages
Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository and create a feature branch
- Write tests for new functionality
- Ensure all tests pass and maintain coverage above 80%
- Run linting and type checks before submitting
- Write clear commit messages referencing issues when applicable
- Submit a pull request with a description of changes
Development Workflow
# Create feature branch
git checkout -b feature/your-feature-name
# Make changes and test
pytest tests/
ruff check .
mypy project_guide/
# Commit and push
git commit -m "Add feature: description"
git push origin feature/your-feature-name
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Copyright (c) 2026 Pointmatic
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Documentation
📚 Full documentation is available at pointmatic.github.io/project-guide
- Getting Started - Installation and quick start
- User Guide - Commands, workflows, and override management
- Developer Guide - Contributing and development setup
- Workflow Guides - Bundled LLM workflow guides in your project
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: GitHub Pages
Made with ❤️ for LLM-assisted development workflows
Project details
Release history Release notifications | RSS feed
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 project_guide-2.0.14.tar.gz.
File metadata
- Download URL: project_guide-2.0.14.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f3821f60d817851ba4747f7a2ddc031f4aa2d5d0d54e29644130bbeeed06356
|
|
| MD5 |
b3c7911baf7a7e227da1598f1c81eb9b
|
|
| BLAKE2b-256 |
baacbeffa600327fc29ed8598e7a0e97ec3c1b2ffb2530e706cb3ab7f8aea1ff
|
Provenance
The following attestation bundles were made for project_guide-2.0.14.tar.gz:
Publisher:
publish.yml on pointmatic/project-guide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_guide-2.0.14.tar.gz -
Subject digest:
0f3821f60d817851ba4747f7a2ddc031f4aa2d5d0d54e29644130bbeeed06356 - Sigstore transparency entry: 1261885968
- Sigstore integration time:
-
Permalink:
pointmatic/project-guide@5d2bfbef5d4c11bf71bacc2c8390b2d120713ae1 -
Branch / Tag:
refs/tags/v2.0.14 - Owner: https://github.com/pointmatic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5d2bfbef5d4c11bf71bacc2c8390b2d120713ae1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file project_guide-2.0.14-py3-none-any.whl.
File metadata
- Download URL: project_guide-2.0.14-py3-none-any.whl
- Upload date:
- Size: 110.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e03b5538c463a44b8402565f43eb2c6053e206a28e9c55ff8c0a9bd440f606b
|
|
| MD5 |
dc965c94e17d27d4c765da667ec1d89d
|
|
| BLAKE2b-256 |
658d15622d5558cdb709276809ffd4485c5a935e0a9eb8002c5ded3a0a4430ee
|
Provenance
The following attestation bundles were made for project_guide-2.0.14-py3-none-any.whl:
Publisher:
publish.yml on pointmatic/project-guide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_guide-2.0.14-py3-none-any.whl -
Subject digest:
4e03b5538c463a44b8402565f43eb2c6053e206a28e9c55ff8c0a9bd440f606b - Sigstore transparency entry: 1261885987
- Sigstore integration time:
-
Permalink:
pointmatic/project-guide@5d2bfbef5d4c11bf71bacc2c8390b2d120713ae1 -
Branch / Tag:
refs/tags/v2.0.14 - Owner: https://github.com/pointmatic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5d2bfbef5d4c11bf71bacc2c8390b2d120713ae1 -
Trigger Event:
release
-
Statement type: