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

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:

  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

# Update worktree branch from main
git merge main

# Check worktree status
git worktree list

Protected branches (never delete): main, and all team branches.