chore(meta): retire legacy SQLite ticket/decision tooling (pql migration phase 6)
The pql cutover is stable, so remove the superseded SQLite planning tooling. Surgical
— only the ticket/decision/raw-SQL scripts (all settledreach.db-bound and replaced by
pql) are deleted; the asset/audio/wiki connectors and shared common.py stay.
Removed:
- tooling/db/{ticket,decision,decisions-sync,decisions_sync.py,sqlite-query,sqlite-exec,
sqlite-init,sqlite-seed,sqlite_connector.py}
- tooling/{db-backup,db-install} + docs/backups/settledreach.db.backup (the binary-DB
backup ritual; tickets now live in the git-tracked .pql/changelog/)
- tooling/check-decision-ids (dead stub, superseded by `pql decisions validate`)
- Makefile db-backup/db-install targets; SR_DB_PATH + tooling/db/{ticket,sqlite-*,
decision*} entries from .claude/settings.json (audio entries kept)
Updated docs to pql: DEVOPS.md (SQLite Access + Decisions System → pql), project
structure, ticket-cli closing note, asset-pipeline raw-SQL warning.
Kept (verified still imported by the asset connectors via common.ensure_venv): common.py,
config.json, audio/image/trellis/wiki connectors. The live settledreach.db file
(gitignored, repo-parent) is left on disk as a cold rollback only.
ruff clean; pql decisions validate ok (357 decisions / 1013 tickets).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-17
@@ -317,28 +317,26 @@ Key components:
|
||||
- **CauseChain** (production ECS component) — Tracks causal attribution for testable observation sequences (D-030).
|
||||
- **Deterministic replay** — Server simulation is deterministic given the same seed + input sequence. Replay logs enable regression testing (#201, critical).
|
||||
|
||||
## SQLite Access
|
||||
## Planning store (pql)
|
||||
|
||||
**Never use the `sqlite3` CLI** — it crashes in Claude Code (std::bad_alloc).
|
||||
|
||||
Use wrapper scripts:
|
||||
```bash
|
||||
tooling/db/sqlite-query "SELECT * FROM tickets WHERE status='open'"
|
||||
tooling/db/sqlite-exec "UPDATE tickets SET status='done' WHERE id=1"
|
||||
```
|
||||
|
||||
## Decisions System
|
||||
|
||||
Decisions are split into domain files under `decisions/` (see `decisions/README.md` for the full index). A SQLite index table syncs metadata for cross-referencing and querying.
|
||||
Tickets and decisions live in **pql**, not in the old SQLite wrapper scripts. Decisions
|
||||
are markdown-sourced under `governance/{decisions,questions,rejected}/`; tickets live in
|
||||
`.pql/pql.db`, rebuilt from the git-tracked `.pql/changelog/`. Never use the `sqlite3`
|
||||
CLI — it crashes in Claude Code (std::bad_alloc).
|
||||
|
||||
```bash
|
||||
make decisions-sync # Parse decisions/*.md into SQLite
|
||||
make decisions-coverage # Decision-to-ticket coverage by domain
|
||||
make decisions-active # List all active confirmed decisions
|
||||
make decisions-orphan # Decisions without implementing tickets
|
||||
pql ticket list --status in_progress # query tickets (T-NNN ids)
|
||||
pql ticket status T-440 done # mutate — flushed to the changelog
|
||||
pql decisions list --type confirmed # query decisions
|
||||
pql decisions show D-010 --with-tickets
|
||||
make decisions-sync # parse governance/*.md into pql.db
|
||||
make decisions-validate # malformed-record gate
|
||||
```
|
||||
|
||||
The sync runs automatically as part of `make setup` and via pre-commit hook. Markdown files are the source of truth; the DB is a derived index.
|
||||
Markdown records + the changelog are the source of truth; `pql.db` is a rebuildable
|
||||
index. The pre-commit hook runs `pql decisions validate` and exports ticket mutations to
|
||||
the changelog; post-merge/checkout/rewrite hooks replay it. Full reference:
|
||||
`.claude/rules/ticket-cli.md`.
|
||||
|
||||
## Commit Conventions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user