This page covers the pip install deployment. If you installed via the Claude Code Plugin, all components are deployed automatically and pactkit.yaml is not used.
Deployed Files
pactkit init deploys the following to ~/.claude/:
| Path | Contents |
|---|---|
CLAUDE.md | Constitution root (references 6 rule modules) |
rules/01-core-protocol.md | Core behavioral rules |
rules/02-hierarchy-of-truth.md | Spec > Tests > Code |
rules/03-file-atlas.md | File location reference |
rules/04-routing-table.md | Command routing table |
rules/05-workflow-conventions.md | Git/PR conventions |
rules/06-mcp-integration.md | MCP server integration |
agents/*.md | 9 agent definitions |
commands/*.md | 13 command playbooks |
skills/*/ | 3 skill tools with scripts |
Constitution Rules
The 6 rule modules form the "constitution" that governs agent behavior:
| Module | Purpose |
|---|---|
| Core Protocol | Think-hard mode, atomic tools preference, Visual First, strict TDD, output conventions |
| Hierarchy of Truth | Spec > Tests > Code precedence, conflict resolution rules |
| File Atlas | Standard file locations and their purposes |
| Routing Table | Maps commands to agents and playbooks |
| Workflow Conventions | Conventional Commits, branch naming, PR conventions |
| MCP Integration | Conditional MCP server usage by PDCA phase |
Language Profiles
PactKit auto-detects the project stack and configures the appropriate test runner:
| Language | Test Runner | Test Dir | Package File |
|---|---|---|---|
| Python | pytest | tests/ | pyproject.toml |
| Node.js | npx jest | __tests__/ | package.json |
| Go | go test ./... | *_test.go | go.mod |
| Java | mvn test | src/test/java/ | pom.xml |
Detection is automatic based on file extensions found in the project.
Idempotent Updates
pactkit updateSafe to re-run at any time. Re-deploys all managed files while preserving your custom rules (any files without the 01- through 06- prefixes in the rules directory).
Preview
Preview the deployment without modifying ~/.claude/:
pactkit init -t /tmp/preview
ls /tmp/preview/