daax-dev / daax-dev/agentic-retrospective

Claude-native telemetry: durable telemetry ledger (trends past log rotation)

Open
#42 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
3
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Problem

Claude prunes session JSONL on a rolling window. A retrospective that reads only live logs cannot compute cross-sprint trends because old data disappears. Trend tracking (#18) needs durable, deduplicated history under our control.

Capability

Snapshot normalized, deduplicated telemetry into a local store that is the source of truth for historical aggregates and trends, surviving log rotation.

Behaviour

  • Local store (SQLite recommended) with uniqueness constraints (e.g. (sessionId, message_id)); idempotent insert-or-ignore; recompute aggregates from rows, never additively.
  • Incremental scan via per-file mtime / line counts.
  • Retain rows beyond Claude's rolling window for cross-sprint trends.
  • Optional opt-in Stop-hook (via hooks/hooks.json) ingests after each response.

Acceptance criteria

  • Re-ingesting the same sessions twice yields identical aggregates (idempotency).
  • A trend query spans sprints whose source JSONL is gone, using stored rows.
  • Incremental re-scan skips unchanged files (no-op second run).
  • Stop-hook is opt-in and a no-op when disabled.

Privacy: store lives under .logs/ (gitignored), never committed. Enables trends for all dimensions. Tier 4. Depends on #36, #37. PRD: docs/prd/features/07-durable-telemetry-ledger.md.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/prd/features/07-durable-telemetry-ledger.md and review the existing trend-tracking work in #18, then inspect how session JSONL is currently read. Check hooks/hooks.json for the opt-in Stop-hook path. Done means durable deduplicated rows under .logs/, idempotent and incremental ingestion, trends that survive log rotation, and a disabled hook that does nothing.

Written by the indexing model from the issue text.

Assessment

Tech stack
sqlite, typescript
Domain
backend, databases, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.