Documentation Index
Fetch the complete documentation index at: https://panopticon-cli.com/llms.txt
Use this file to discover all available pages before exploring further.
Project Registry
Panopticon’s project registry enables multi-project management with intelligent issue routing and label-based workspace creation.Overview
Projects are registered in~/.panopticon/projects.yaml. Each project can have:
- Issue routing rules - Route issues to different subdirectories based on labels
- Custom workspace commands - For complex polyrepo setups
- Linear team mapping - Connect projects to Linear teams
Registering Projects
Project Configuration
Projects are defined in~/.panopticon/projects.yaml:
Configuration Fields
| Field | Required | Description |
|---|---|---|
name | Yes | Human-readable project name |
path | Yes | Absolute path to project root |
issue_prefix | Yes* | Issue prefix for standard format IDs (e.g., “MIN”, “PAN”) |
tracker | No | Tracker type: linear, github, gitlab, rally |
issue_prefixes | No | Array of prefixes for multi-prefix trackers (e.g., [F, US, DE, TA]) |
issue_pattern | No | Custom regex for issue ID parsing: ^(PREFIX)-(\\d+)$ |
issue_routing | No | Label-based routing rules |
workspace_command | No | Custom workspace creation script |
workspace_remove_command | No | Custom workspace cleanup script |
workspace | No | Polyrepo/progressive workspace configuration |
issue_prefixes or issue_pattern is specified.
Label-Based Routing
Issues are routed to different subdirectories based on their labels:- Labeled issues - Matched against
issue_routingrules in order - Default route - Issues without matching labels use the
default: truepath - Fallback - If no default, uses the project root path
/home/user/projects/myn/splash/workspaces/feature-min-xxx/.
Linear Project Mapping
If you have multiple Linear projects, configure which local directory each maps to. Create/edit~/.panopticon/project-mappings.json:
Custom Workspace Commands (Legacy)
Note: For most polyrepo projects, use the built-in workspace configuration (see Polyrepo Configuration) instead of custom scripts. Custom commands are only needed for highly specialized setups.
For projects that need logic beyond what the configuration supports, you can specify custom workspace scripts:
workspace_command is specified, Panopticon calls your script instead of creating a standard git worktree. The script receives the normalized issue ID (e.g., min-123) as an argument.
When workspace_remove_command is specified, Panopticon calls your script when deleting workspaces (e.g., aborting planning with “delete workspace” enabled). This is important for complex setups that need to:
- Stop Docker containers and remove volumes
- Clean up root-owned files created by containers
- Remove git worktrees from multiple repositories
- Release port assignments
- Remove DNS entries
- Creating git worktrees for multiple repositories (polyrepo structure)
- Setting up Docker Compose files and dev containers
- Configuring environment variables and
.envfiles - Setting up DNS entries for workspace-specific URLs (e.g., Traefik routing)
- Creating a
./devscript for container management - Copying agent configuration templates (CLAUDE.md, .mcp.json, etc.)
pan workspace create command will automatically detect and use your custom script.
Project Initialization
When registering a new project with Panopticon (pan project add), the system will:
- Check for existing PRD - Look for
docs/PRD.md,PRD.md,README.md, or similar - If found: Use it to create/update the canonical PRD format, prompting for any missing crucial information
- If not found: Generate one by:
- Analyzing the codebase structure
- Identifying key technologies and patterns
- Asking discovery questions about the product
Progressive Workspaces
For large projects with 10+ repositories, progressive workspaces provide on-demand repo checkout. Enable inworkspace config:
| Field | Description |
|---|---|
progressive | When true, only always_include repos created on workspace init |
always_include | Repo names to always include (typically meta/docs repos) |
groups_file | Path to repo-groups.yaml for named repo groups |
pr_target | Default PR target branch (e.g., 'qa') |
Related Guides
- Polyrepo Configuration - Multi-repository workspace setup
- Progressive Polyrepo - Large-scale polyrepo with on-demand checkout
- Setup Wizard - Interactive project configuration
- Meta Repos - Team conventions and onboarding kits
- Issue Tracker Integration - Connecting to Linear, GitHub, Rally, etc.
- Workspaces - Workspace management