Claude-native starter kit that bootstraps multi-agent team infrastructure for any project. Clone once, install as a global skill, run /kit-install in any project directory. Includes: - 3-tier profile system (minimal/standard/full: 3-12 agents) - 16 agent archetype templates with personality spectrum - 18 skill templates using domain-action naming convention - Stakeholder persona panel for workshops and PR reviews - SQLite ticketing DB with CLI tools (config-based DB paths) - Decision tracking, sprint lifecycle, workshop orchestration - Multi-git-host support (GitHub, Gitea, GitLab) - /kit-update skill for syncing with source repo evolution - Naming theme support for agent identity/flavor - Smoke tests for all three profile tiers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
197 lines
7.5 KiB
Markdown
197 lines
7.5 KiB
Markdown
# {Project Name}
|
|
|
|
{Project description — one paragraph summarizing what the project is, its core mechanics or purpose, and the technology stack.}
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
{tech-stack-specific directories — e.g.:}
|
|
{ src/ # Application source}
|
|
{ lib/ # Shared libraries}
|
|
{ assets/ # Static assets}
|
|
docs/
|
|
discussions/ # Discussion rounds (archived per round)
|
|
briefings/ # Per-agent context briefings
|
|
architecture/ # Technical architecture documents
|
|
design/ # Design documents
|
|
sprints/ # Sprint briefings per team
|
|
workshops/ # Workshop briefs and outputs
|
|
db/
|
|
schema.sql # Database schema
|
|
connectors/ # Connector scripts for SQLite and Qdrant
|
|
config.json # Endpoint configuration
|
|
ticket # Ticket CLI (list, show, create, assign, sprint, etc.)
|
|
sqlite_connector.py # SQLite mini MCP
|
|
qdrant_connector.py # Qdrant + ollama mini MCP
|
|
.claude/
|
|
agents/ # Agent personality files
|
|
skills/ # Skill definitions
|
|
decisions/ # Decision domain files (source of truth)
|
|
README.md # Domain index and query examples
|
|
architecture.md # Architecture decisions
|
|
scope.md # Scope decisions
|
|
process.md # Process decisions
|
|
questions.md # Open questions
|
|
rejected.md # Rejected alternatives
|
|
```
|
|
|
|
## DevOps
|
|
|
|
See [docs/DEVOPS.md](docs/DEVOPS.md) for build, test, lint, and CI procedures. All development operations go through the top-level `Makefile` — run `make` for a summary of targets.
|
|
|
|
## Agent Instructions
|
|
|
|
### Worktree boundaries
|
|
|
|
{If using git worktrees:}
|
|
|
|
This project uses **git worktrees** in a shared parent directory. Each team branch is checked out in its own worktree under that parent. The parent directory also contains shared resources like the ticketing database.
|
|
|
|
Each worktree contains the full repository. The worktree root IS the git root — use `git rev-parse --show-toplevel` if in doubt.
|
|
|
|
Unless there is a direct instruction or a functional need (e.g. accessing the shared database in the parent directory), **all work must remain within the scope of the git root Claude is running in.**
|
|
|
|
- All file paths are relative to the worktree/git root.
|
|
- Do not navigate to or access sibling worktrees unless explicitly instructed.
|
|
- Do not navigate above the git root unless explicitly instructed.
|
|
|
|
{If single-branch workflow:}
|
|
|
|
All work happens on feature branches from `main`. All file paths are relative to the repository root.
|
|
|
|
### Database
|
|
|
|
The ticketing database (`{db_name}`) lives {in the parent directory shared across worktrees | in the repository root}. Access via CLI wrappers — never use the `sqlite3` CLI directly (it crashes in Claude Code due to std::bad_alloc):
|
|
|
|
```bash
|
|
db/connectors/ticket list --sprint N --team {team}
|
|
db/connectors/ticket show N
|
|
db/connectors/sprint status
|
|
```
|
|
|
|
### Before starting work
|
|
|
|
1. Read your sprint briefing at `docs/sprints/sprint-N/{team}.md` for current tasks
|
|
2. Use `db/connectors/ticket show <id>` for full ticket details
|
|
3. Read the relevant `decisions/*.md` domain file(s) referenced in the briefing
|
|
4. Background context: `docs/briefings/{your-name}.md`, `docs/discussions/`
|
|
|
|
### Ticket and database access
|
|
|
|
**Prefer the ticket CLI over raw SQL.** The CLI handles column names, joins, and output formatting correctly:
|
|
|
|
```bash
|
|
db/connectors/ticket list [--status S] [--sprint N] [--team T]
|
|
db/connectors/ticket show <id>
|
|
db/connectors/ticket sprint --active
|
|
```
|
|
|
|
Only fall back to raw SQL for queries the CLI doesn't support. **Never use the `sqlite3` CLI** — use the wrapper scripts instead:
|
|
|
|
```bash
|
|
db/connectors/sqlite-query "SELECT * FROM tickets WHERE status='in_progress'"
|
|
db/connectors/sqlite-exec "UPDATE tickets SET status='done' WHERE id=1"
|
|
```
|
|
|
|
### Sprint CLI
|
|
|
|
**Use the sprint CLI for sprint-scoped operations.** It batches ticket queries and formats output for agent consumption:
|
|
|
|
```bash
|
|
db/connectors/sprint status # Current sprint progress
|
|
db/connectors/sprint status --team {team} # Team-scoped view
|
|
db/connectors/sprint start-work [--team T] # Full context dump for starting work
|
|
db/connectors/sprint prepare # Prepare next sprint (candidates + gaps)
|
|
db/connectors/sprint start # Activate a planned sprint
|
|
db/connectors/sprint stop # Complete an active sprint
|
|
```
|
|
|
|
Team is auto-detected from the current git branch (if not `main`). Sprint is auto-detected from DB state.
|
|
|
|
### Document search
|
|
|
|
If Qdrant + Ollama are configured for semantic search:
|
|
|
|
```bash
|
|
db/connectors/qdrant-search "query text"
|
|
db/connectors/qdrant-index docs/briefings/agent.md
|
|
db/connectors/qdrant-health
|
|
db/connectors/qdrant-count
|
|
```
|
|
|
|
### Git host access
|
|
|
|
{For GitHub — use `gh` CLI:}
|
|
|
|
```bash
|
|
gh pr list --state open
|
|
gh pr view <number>
|
|
gh pr create --title "feat(scope): description" --body "PR body"
|
|
gh pr comment <number> --body "comment"
|
|
```
|
|
|
|
{For Gitea — use `tea` CLI with all required flags to avoid interactive prompts:}
|
|
|
|
```bash
|
|
tea pr list --login {login} --repo {owner/repo} --state open --output simple
|
|
tea pr create --login {login} --repo {owner/repo} --title "title" --description "body" --base main --head branch
|
|
tea comment --login {login} --repo {owner/repo} <number> "comment body"
|
|
```
|
|
|
|
{For GitLab — use `glab` CLI:}
|
|
|
|
```bash
|
|
glab mr list --state opened
|
|
glab mr create --title "title" --description "body"
|
|
glab mr comment <number> --message "comment"
|
|
```
|
|
|
|
Key rules:
|
|
- **All flags must be explicit** — omitting required flags triggers interactive prompts that crash in Claude Code (no TTY)
|
|
- **Use machine-readable output** where available
|
|
- **Never delete protected branches** — `main` and team branches are protected
|
|
|
|
### File conventions
|
|
|
|
- Decisions: domain files in `decisions/` (see `decisions/README.md` for index)
|
|
- Decision IDs: `D-NNN` (confirmed), `Q-NNN` (open questions), `R-NNN` (rejected)
|
|
- Discussion rounds: numbered sequentially, archived to `docs/discussions/` when complete
|
|
- Briefings: one per agent, updated after decision-producing rounds
|
|
- Tickets: managed via `db/connectors/ticket` CLI
|
|
|
|
### Commit conventions
|
|
|
|
Use conventional commits with project-specific scopes:
|
|
|
|
```
|
|
<type>(<scope>): <description>
|
|
```
|
|
|
|
Types: `feat`, `fix`, `chore`, `docs`, `refactor`, `test`, `ci`, `style`
|
|
Scopes: {project-specific scopes — e.g. `agents`, `skills`, `docs`, `briefings`, `discussions`, `schema`, `db`, `config`, `meta`}
|
|
|
|
### Pull requests
|
|
|
|
{Git host CLI commands — see "Git host access" above for the appropriate CLI.}
|
|
|
|
Always provide all required flags to ensure non-interactive execution. Include a clear title following commit conventions and a description body.
|
|
|
|
### Large content pushes (team pattern)
|
|
|
|
When producing many files (wiki pages, content batches, bulk docs):
|
|
|
|
1. **Librarian agent** (read-only): ingests all source material, answers focused context queries from writers, tracks cross-file consistency
|
|
2. **Multiple writer agents** (parallel, by domain): each gets a task slice, writes directly to disk using the Write tool — one file at a time, write often, no text accumulation
|
|
3. **Reviewer agents** (blocked until writing done): check voice consistency, attribute uniformity, style
|
|
|
|
Key: writers use Write tool directly (no transcription bottleneck), librarian catches contradictions early, split work by domain not volume.
|
|
|
|
### Local services
|
|
|
|
{Configure as needed:}
|
|
|
|
- Git host: `{url}` (login: `{user}`)
|
|
- Qdrant: `{url}`
|
|
- Ollama: `{url}` ({embedding model})
|
|
- Collection: `{name}` ({dimensions}, {distance metric})
|