Remove the db/connectors → tooling/db/ symlink added in Sprint 21 (#274) and migrate all references to use tooling/db/ directly. - Delete tracked symlink from db/connectors - Remove duplicate db/connectors/* permission patterns from settings - Update project-structure.md to reflect removal - Move whatsinagame/static/db/connectors/ to whatsinagame/static/tooling/db/ - Update 20 whatsinagame template, skill, and test files - Update comment references in client/tests/test_anti_tedium.gd - Historical docs (old sprint briefings, changelog, discussions) left as-is Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.0 KiB
DevOps
Build, test, lint, and CI procedures for {Project Name}.
Quick Start
make setup # Initialize dev environment
make # Show all available targets
Database
The project uses SQLite for ticketing and decision tracking.
Initialize
tooling/db/sqlite-init
Query
tooling/db/sqlite-query "SELECT * FROM tickets WHERE status='in_progress'"
tooling/db/sqlite-exec "UPDATE tickets SET status='done' WHERE id=1"
Never use the sqlite3 CLI — it crashes in Claude Code (std::bad_alloc). Use the wrapper scripts.
Ticket CLI
tooling/db/ticket list [--status S] [--sprint N] [--team T]
tooling/db/ticket show <id>
tooling/db/ticket create --title "Title" --team T --priority P
tooling/db/ticket assign <id> --agent name
Sprint CLI
tooling/db/sprint status # Current sprint progress
tooling/db/sprint status --team T # Team-scoped view
tooling/db/sprint start-work [--team T] # Full context dump for starting work
tooling/db/sprint prepare # Prepare next sprint
tooling/db/sprint start # Activate a planned sprint
tooling/db/sprint stop # Complete an active sprint
Decision Tracking
Decisions live in decisions/*.md domain files and sync to SQLite:
make decisions-sync # Parse decisions/*.md into SQLite
make decisions-coverage # Decision-to-ticket coverage report
make decisions-active # List all active confirmed decisions
make decisions-orphan # Decisions without associated tickets
Document Search (optional)
If Qdrant + Ollama are configured for semantic search:
tooling/db/qdrant-health # Check service status
tooling/db/qdrant-search "query text" # Semantic search
tooling/db/qdrant-index path/to/doc.md # Index a document
tooling/db/qdrant-count # Collection stats
Git Hooks
Install hooks:
make setup-hooks
Hook directory: .config/hooks/
The pre-commit hook runs project-specific validation checks. Add new checks by editing .config/hooks/pre-commit and adding run_check calls.
Pre-PR Checklist
make pre-pr
This runs:
- Decision sync (ensures SQLite index is current)
- {Add project-specific checks as needed}
Worktree Workflow (if configured)
If the project uses git worktrees for team branches:
{parent}/
main/ # Integration branch (worktree)
server/ # Server team branch (worktree)
client/ # Client team branch (worktree)
{team}/ # Additional team branches
{db_name} # Shared ticketing database
Each worktree is a full checkout. The shared database lives in the parent directory. Agents should stay within their worktree root unless accessing the shared database.
Branch management
# Update worktree branch from main
git merge main
# Check worktree status
git worktree list
Protected branches (never delete): main, and all team branches.