Files
settled-reach/whatsinagame/templates/DEVOPS.md
T
jpmschweitzerandClaude Opus 4.6 b025fe8152 chore(db): remove db/connectors backwards-compat symlink (#568)
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>
2026-02-28 22:13:26 +01:00

121 lines
3.0 KiB
Markdown

# DevOps
Build, test, lint, and CI procedures for {Project Name}.
## Quick Start
```bash
make setup # Initialize dev environment
make # Show all available targets
```
## Database
The project uses SQLite for ticketing and decision tracking.
### Initialize
```bash
tooling/db/sqlite-init
```
### Query
```bash
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
```bash
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
```bash
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:
```bash
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:
```bash
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:
```bash
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
```bash
make pre-pr
```
This runs:
1. Decision sync (ensures SQLite index is current)
2. {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
```bash
# Update worktree branch from main
git merge main
# Check worktree status
git worktree list
```
**Protected branches** (never delete): `main`, and all team branches.