docs(config): prefer ticket CLI over raw SQL in CLAUDE.md

Agents were writing raw SQL with incorrect column names (e.g. `sprint`
instead of `sprint_id`). Leading with the ticket CLI as the preferred
approach avoids this class of errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-12 00:39:16 +01:00
co-authored by Claude Opus 4.6
parent 7b81871ba4
commit 2da6923189
+8 -3
View File
@@ -57,10 +57,15 @@ See [docs/DEVOPS.md](docs/DEVOPS.md) for build, test, lint, and CI procedures. A
3. Read the relevant `decisions/*.md` domain file(s) referenced in the briefing
4. Background context: `docs/briefings/{your-name}.md`, `docs/discussions/`
### SQLite access
**Never use the `sqlite3` CLI** - it crashes in Claude Code due to a known std::bad_alloc bug.
### 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 --sprint 2 --team server
db/connectors/ticket show 78
db/connectors/ticket sprint --active
```
Use the whitelistable wrapper scripts:
Only fall back to raw SQL for queries the CLI doesn't support. **Never use the `sqlite3` CLI** — it crashes in Claude Code due to a known std::bad_alloc bug. 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"