# Implementation Plan: Inventory Core (040) **Branch**: `feat/040-inventory-core` | **Date**: 2026-01-07 | **Spec**: `specs/040-inventory-core/spec.md` ## Summary Implement a tenant-scoped inventory catalog (“last observed”) and an observable sync run system with deterministic selection scoping. Ensure no snapshots/backups are created by sync. ## Constitution Check - Inventory-first, snapshots-second (sync never creates snapshots) - Read/write separation (sync is read-only; any future writes require preview/confirmation/audit/tests) - Single contract path to Graph (Graph access only through existing abstractions/contracts) - Deterministic capabilities (capabilities resolver output testable) - Tenant isolation (non-negotiable) - Automation observable + idempotent (locks, run records, stable error codes, 429/503 handling) - Data minimization + safe logging ## Deliverables (Phase-friendly) - Data model for inventory items and sync runs - Sync engine orchestration and locking strategy - Deterministic selection hashing - Capabilities resolver output snapshot tests - Minimal Filament/CLI surface to trigger and observe sync runs (if required by tasks) ## Out of Scope - Dependency graph hydration (spec 042) - Cross-tenant promotion (spec 043) - Drift reporting (spec 044) - Lifecycle “deleted” semantics (feature 900)