claw-code/.guardrails/cmd/team-cli/README.md

273 lines
4.6 KiB
Markdown

# Team CLI
A command-line interface for managing standardized team layouts across projects.
## Overview
The Team CLI provides a fast, intuitive interface for the team management system defined in `scripts/team_manager.py`. It supports all core team operations including initialization, role assignments, status tracking, and backups.
## Installation
### From Source
```bash
cd cmd/team-cli
make install
```
Or manually:
```bash
cd cmd/team-cli
go build -o team .
```
### Cross-Platform Build
```bash
make cross-compile
```
This creates binaries for:
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64)
## Usage
```
team [command] [flags]
```
### Global Flags
- `-p, --project string` - Project name (required for most commands)
- `-o, --output string` - Output format: `text`, `json` (default: `text`)
- `--version` - Show version information
## Commands
### init
Initialize a new project with the standardized 12-team structure.
```bash
team init my-project
```
### list
List all teams for a project.
```bash
team list -p my-project
team list -p my-project --phase "Phase 1"
```
### assign
Assign a person to a role.
```bash
team assign -p my-project -t 7 -r "Technical Lead" --person "Jane Developer"
```
### unassign
Remove a person from a role.
```bash
team unassign -p my-project -t 7 -r "Technical Lead"
```
### start
Mark a team as started/in-progress.
```bash
team start -p my-project -t 7
```
### complete
Mark a team as completed.
```bash
team complete -p my-project -t 7
```
### status
Show project or phase status.
```bash
team status -p my-project
team status -p my-project --phase "Phase 1"
```
### validate
Validate team sizes meet the 4-6 member requirement.
```bash
team validate -p my-project
```
### phase-gate
Check phase gate requirements.
```bash
team phase-gate -p my-project --from 1 --to 2
```
### agent-map
Get team mapping for an agent type.
```bash
team agent-map backend
team agent-map security
```
Supported agent types:
- `planner` - Team 2, Phase 1
- `architect` - Team 2, Phase 1
- `infrastructure` - Team 4, Phase 2
- `platform` - Team 5, Phase 2
- `backend` - Team 7, Phase 3
- `frontend` - Team 7, Phase 3
- `security` - Team 9, Phase 4
- `qa` - Team 10, Phase 4
- `sre` - Team 11, Phase 5
- `ops` - Team 12, Phase 5
### export
Export project data.
```bash
team export -p my-project -f json
team export -p my-project -f csv
```
### import
Import team assignments from a file.
```bash
team import -p my-project -f data.json --format json
team import -p my-project -f data.csv --format csv
```
### backup
List available backups.
```bash
team backup -p my-project
```
### restore
Restore from a backup.
```bash
team restore -p my-project -b .teams/backups/my-project_20250215_120000.json.gz
```
### delete
Delete a team or entire project.
```bash
# Delete a specific team
team delete -p my-project -t 7
# Delete entire project (with confirmation)
team delete -p my-project
# Force delete without confirmation
team delete -p my-project --force
```
## Examples
### Initialize and Setup a Project
```bash
# Create new project
team init web-platform
# Assign team members
team assign -p web-platform -t 2 -r "Solution Architect" --person "Alice Johnson"
team assign -p web-platform -t 2 -r "Domain Architect" --person "Bob Smith"
team assign -p web-platform -t 4 -r "Cloud Architect" --person "Carol White"
team assign -p web-platform -t 7 -r "Technical Lead" --person "David Brown"
# Check status
team status -p web-platform
# Validate team sizes
team validate -p web-platform
```
### Check Phase Gate
```bash
# Validate phase 1 is complete before moving to phase 2
team phase-gate -p web-platform --from 1 --to 2
```
### JSON Output for Scripting
```bash
# Get status in JSON format for automation
team status -p web-platform -o json | jq '.teams[] | select(.phase == "Phase 1")'
```
## Environment Variables
- `TEAM_MANAGER_PATH` - Path to the `team_manager.py` script (optional)
- `TEAM_ENCRYPTION_KEY` - Key for encrypted project data (optional)
## Requirements
- Go 1.23.2 or later
- Python 3.x (for team_manager.py backend)
- team_manager.py must be accessible (usually in `../../scripts/` relative to the binary)
## Development
### Build
```bash
make build
```
### Test
```bash
make test
```
### Format
```bash
make fmt
```
### Lint
```bash
make lint
```
## Architecture
The Team CLI is a Go application that wraps the existing `team_manager.py` Python script. Commands are translated to Python subprocess calls, with output formatted for the terminal using Charm's Lipgloss and Log libraries.
## License
Part of the Agent Guardrails Template project.