Thank you for your interest in contributing to Teamwork! This guide covers everything you need to get started.
- Go 1.22+ (for building from source)
- Docker (alternative: build and test without Go installed)
- Git (with
user.nameanduser.emailconfigured) - GitHub CLI (
gh) — optional, for issue/PR management
# Clone the repository
git clone https://github.com/JoshLuedeman/teamwork.git
cd teamwork
# Run initial setup
make setup
# Verify everything works
make check# Build the CLI binary (requires Go)
make build-cli # outputs bin/teamwork
# Or build with Docker (no Go required)
make docker-build # builds teamwork:latest image# Run Go tests (requires Go)
make test-cli
# Run tests via Docker (no Go required)
docker run --rm -v "$(pwd):/src" -w /src golang:1.24-alpine go test ./...make lintmake checkcmd/teamwork/ — CLI entry point and cobra commands
internal/
config/ — Config parsing (.teamwork/config.yaml)
handoff/ — Handoff artifact management
installer/ — Install/update framework files
memory/ — Structured project memory
metrics/ — JSONL metrics logging and aggregation
state/ — Workflow state machine
tui/ — Terminal UI dashboard
validate/ — Validation checks
workflow/ — Workflow engine (ties everything together)
agents/
roles/ — Role definitions (legacy — see .github/agents/)
workflows/ — Workflow step guides (legacy — see .github/skills/)
.github/
agents/ — Custom Agent definitions (11 agents)
skills/ — Skill definitions (10 workflow types)
instructions/ — Path-specific instructions
docs/ — Documentation and ADRs
.teamwork/ — Orchestration state (config, handoffs, memory, metrics)
scripts/ — Build, test, and lint scripts
Use prefixed branch names with lowercase kebab-case:
feature/<short-description>— new functionalitybugfix/<short-description>— fixing broken behaviorrefactor/<short-description>— restructuring without behavior changedocs/<short-description>— documentation-only changeschore/<short-description>— tooling, dependencies, CI
Follow Conventional Commits:
<type>(<scope>): <short summary>
Types: feat, fix, docs, refactor, test, chore, ci
Examples:
feat(cli): add teamwork doctor command
fix(state): handle missing state directory
docs(contributing): add development setup guide
test(metrics): add defect tracking tests
- One logical change per PR — don't mix features, fixes, and refactors
- Tests required — every behavioral change needs a corresponding test
- Passing checks —
make checkmust pass before submitting - Clear description — explain what changed, why, and how to verify
- Link issues — reference related GitHub issues (e.g.,
Fixes #42)
Agent files live in .github/agents/. To add a new agent:
- Create
.github/agents/<agent-name>.agent.mdfollowing the existing template - Include all required sections: Identity, Model Requirements, Responsibilities, Inputs, Outputs, Rules, Quality Bar, Escalation
- Add the agent to
docs/role-selector.mdwith its tier and selection criteria - Update
docs/glossary.mdif the role introduces new terminology - Run
teamwork validateto check the new role file
Skills live in .github/skills/. To add a new skill:
- Create
.github/skills/<skill-name>/SKILL.mdwith step-by-step instructions - Add the workflow type to the
definitionsmap ininternal/workflow/engine.go - Define the step sequence (step number, role, action description)
- Update
docs/cli.mdto list the new workflow type underteamwork start - Add tests for the new workflow type
- Open a PR with a clear title and description
- Automated checks run lint, test, and build
- Human review — the repository owner reviews for correctness, style, and scope
- Address feedback — make requested changes as new commits (don't force-push during review)
- Merge — the reviewer merges once all checks pass and feedback is addressed
Issues use prefix labels in their titles:
[CODE]— implementation tasks[DOCS]— documentation tasks[PLAN]— planning/design tasks[DX]— developer experience improvements[TEST]— testing tasks
Milestones track phased work (Phase 3, Phase 4, Backlog).
Open a GitHub issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Environment details (OS, Go version, Docker version)
Do not open a public issue for security vulnerabilities. Instead, please report them privately:
- Use GitHub's private vulnerability reporting
- Or email the repository owner directly
See docs/secrets-policy.md for the project's secrets and credentials policy.
A GitHub Actions workflow template is available at .github/workflows/teamwork-ci.yaml.example. Copy it to .github/workflows/teamwork-ci.yaml to enable automatic Teamwork structure validation on push and PR.
The workflow validates:
.teamwork/directory structure- Required agent and skill files
- MCP server configuration
Be respectful and constructive. We follow the Contributor Covenant code of conduct.
By contributing, you agree that your contributions will be licensed under the MIT License.