Files
STTracker/docs/DECISIONS.md
T
Lucas WintherandClaude Opus 5.5 560c27c04d chore: bootstrap agent-ready docs, rules and Bun workspace
Adds the approved v1 design spec, UI mockups, AGENTS.md (with CLAUDE.md
and GEMINI.md pointers), architecture/decisions/todo/permissions docs,
agent permission files, and an empty Bun workspaces skeleton.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:06:58 +01:00

2.3 KiB

Decisions

Append-only. Never edit or delete an entry. Supersede it with a new one that links back. One entry per decision a future maintainer would otherwise have to reverse-engineer. No index: grep -n '^## ' docs/DECISIONS.md lists every entry (date, title, line number).

2026-10-30: Product design decisions recorded in spec 001

Status: accepted Context: Brainstorming with the owner produced the v1 design. Decision: See docs/specs/001-sttracker-v1-design.md §13 for the designer's calls. Owner decisions:

  • Phase 1 is read-only.
  • Write-back is opt-in per connection.
  • Conflicts between sources go to the Changes inbox.
  • Backloggd waits for its official export.
  • The app UI is Hardcover-style; the public page is scrapbook + river. Alternatives: Recorded in the spec. Consequences: Phase 1 has no push implementations.

2026-10-30: Bun workspaces monorepo with Kysely for both databases

Status: accepted Context: The owner requires Bun with SQLite and Postgres options. Decision:

  • Bun workspaces (apps/*, packages/*, plugins/*).
  • Kysely is the single query layer, with portable migrations.
  • SQLite runs through bun:sqlite and Postgres through Bun.sql.

Alternatives:

  • Drizzle needs a separate schema per dialect.
  • Prisma does not fit Bun-native drivers.
  • Raw SQL would duplicate every query per dialect.

Consequences: We may need a small custom Kysely dialect for Bun.sql or bun:sqlite. Every DB test runs on both databases.

2026-10-30: Adopt AGENTS.md as single source of truth

Status: accepted Context: Agents had no durable project context and no consistent workflow between sessions. Decision:

  • AGENTS.md is canonical; CLAUDE.md and GEMINI.md are pointers.
  • Specs are permanent in docs/specs/.
  • Plans live in docs/plans/ only while work is in progress and are removed before the merge request.
  • Both locations override the superpowers default paths.

Alternatives:

  • Per-tool rule files: they drift and create synchronisation debt.
  • No rules file: agents re-explore the repo every session, which is measurably slower and costs more tokens.

Consequences: Rule changes happen in one file, and the pointer files must stay thin. Plans are working artefacts: kept after merge, they go stale and contradict the code, so the spec is the record.