diff --git a/README.md b/README.md index 673b4dc..75a0cf6 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ It treats infrastructure like a medical record: every asset and component has a complete, queryable history of location, firmware, incidents, and reliability over time. +## Project Tracking + +Development milestones and execution checklist are in `TODO.md`. + ## What Reanimator Solves - Inventory and shipment tracking diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..ea006f3 --- /dev/null +++ b/TODO.md @@ -0,0 +1,140 @@ +# Reanimator Development Milestones + +Use this file as the single source of truth for progress tracking and AI task delegation. + +Status legend: `[ ] todo` `[-] in progress` `[x] done` `[!] blocked` + +## Milestone 0 - Project Bootstrap + +**Goal:** initialize repository structure and baseline tooling. + +- [ ] Initialize Go module (`go mod init`) +- [ ] Create folders: `cmd/reanimator-api`, `internal/{domain,repository,api,ingest,events,connectors,jobs}` +- [ ] Add app entrypoint (`cmd/reanimator-api/main.go`) +- [ ] Add config loading (env-based, minimal) +- [ ] Add migration framework and first migration folder +- [ ] Add Makefile targets (`build`, `test`, `migrate-up`, `migrate-down`) + +**Definition of done:** +- `go build ./...` passes +- project starts and exposes health endpoint + +**AI task prompt:** +> Implement Milestone 0 from TODO.md. Keep changes minimal and production-oriented. Update TODO.md status as you complete tasks. + +--- + +## Milestone 1 - Core Schema + Registry API + +**Goal:** implement core data model and CRUD for registry entities. + +- [ ] Migration: `customers`, `projects`, `locations` +- [ ] Migration: `assets`, `components`, `lots`, `installations` +- [ ] Add required indexes from README +- [ ] Repositories for registry entities +- [ ] API endpoints for create/list/get assets/components/projects +- [ ] Basic request validation and error mapping + +**Definition of done:** +- schema is applied end-to-end +- registry APIs work with real MariaDB + +**AI task prompt:** +> Implement Milestone 1 from TODO.md with SQL migrations and REST endpoints. Include tests for repository and handler layers. + +--- + +## Milestone 2 - Log Ingestion Pipeline + +**Goal:** support idempotent upload and observation persistence. + +- [ ] Migration: `log_bundles`, `observations` +- [ ] `POST /ingest/logbundle` with idempotency by bundle hash +- [ ] Store raw metadata + parsed observations +- [ ] Parser adapter interface (pluggable parsers) +- [ ] Error handling for partial parse failures (without data loss) + +**Definition of done:** +- same bundle upload is idempotent +- observations are persisted and queryable + +**AI task prompt:** +> Implement Milestone 2 from TODO.md. Focus on idempotency and clean ingest abstractions. Add integration test for duplicate bundle upload. + +--- + +## Milestone 3 - Derived Events + Timeline + +**Goal:** generate lifecycle events from observations and expose timeline APIs. + +- [ ] Migration: `timeline_events` +- [ ] Observation diffing service +- [ ] Generate events: `LOG_COLLECTED`, `INSTALLED`, `REMOVED`, `MOVED`, `FIRMWARE_CHANGED` +- [ ] APIs: `GET /assets/{id}/timeline`, `GET /components/{id}/timeline` +- [ ] Ensure deterministic ordering and pagination + +**Definition of done:** +- timeline is generated from observation deltas +- API returns consistent chronological history + +**AI task prompt:** +> Implement Milestone 3 from TODO.md. Add deterministic event generation and timeline pagination. Include tests for move/install/remove scenarios. + +--- + +## Milestone 4 - Ticket Correlation + Failure Events + +**Goal:** connect service cases to assets/components and track failures explicitly. + +- [ ] Migration: `tickets`, `ticket_links`, `failure_events` +- [ ] Connector endpoint: `POST /connectors/tickets/sync` +- [ ] Link tickets to project/asset/component +- [ ] Implement component ticket visibility through installation time windows +- [ ] Create failure event ingestion path (`log`/`ticket`/`manual`) + +**Definition of done:** +- tickets are synced and linked +- failure events can be created and queried + +**AI task prompt:** +> Implement Milestone 4 from TODO.md with time-window ticket correlation and explicit failure events. Add tests for inherited component visibility. + +--- + +## Milestone 5 - Reliability Analytics (MVP) + +**Goal:** provide first operational analytics for decision making. + +- [ ] Aggregations by LOT, firmware, and component type +- [ ] AFR/MTBF calculation jobs (initial version) +- [ ] API endpoint(s) for reliability summary +- [ ] Background job scheduling for periodic recomputation + +**Definition of done:** +- analytics endpoint returns stable metrics +- recalculation jobs run successfully on schedule + +**AI task prompt:** +> Implement Milestone 5 from TODO.md. Prioritize correctness and reproducibility of AFR/MTBF metrics. Add test fixtures for edge cases. + +--- + +## Cross-Cutting Tasks + +- [ ] Observability: structured logs + request IDs +- [ ] AuthN/AuthZ baseline for non-public endpoints +- [ ] OpenAPI spec and API examples +- [ ] CI pipeline: build, test, migration check +- [ ] Release notes/changelog discipline + +--- + +## Progress Snapshot + +Update this section each time work is merged. + +- Last update: 2026-02-04 +- Current milestone: Milestone 0 +- Overall progress: 0/6 milestones completed +- Active blockers: none +