Implement the full architectural plan: unified ingest.Service entry point for archive and Redfish payloads, modular redfishprofile package with composable profiles (generic, ami-family, msi, supermicro, dell, hgx-topology), score-based profile matching with fallback expansion mode, and profile-driven acquisition/analysis plans. Vendor-specific logic moved out of common executors and into profile hooks. GPU chassis lookup strategies and known storage recovery collections (IntelVROC/HA-RAID/MRVL) now live in ResolvedAnalysisPlan, populated by profiles at analysis time. Replay helpers read from the plan; no hardcoded path lists remain in generic code. Also splits redfish_replay.go into domain modules (gpu, storage, inventory, fru, profiles) and adds full fixture/matcher/directive test coverage including Dell, AMI, unknown-vendor fallback, and deterministic ordering. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
LOGPile Bible
bible-local/ is the project-specific source of truth for LOGPile.
Keep top-level docs minimal and put maintained architecture/API contracts here.
Rules
- Documentation language: English only
- Update relevant bible files in the same change as the code
- Record significant architectural decisions in
10-decisions.md - Do not duplicate shared rules from
bible/
Read order
| File | Purpose |
|---|---|
| 01-overview.md | Product scope, modes, non-goals |
| 02-architecture.md | Runtime structure, state, main flows |
| 04-data-models.md | Stable data contracts and canonical inventory |
| 03-api.md | HTTP endpoints and response contracts |
| 05-collectors.md | Live collection behavior |
| 06-parsers.md | Archive parser framework and vendor coverage |
| 07-exporters.md | Raw export, Reanimator export, batch convert |
| docs/hardware-ingest-contract.md | Reanimator ingest schema mirrored locally |
| 08-build-release.md | Build and release workflow |
| 09-testing.md | Test expectations and regression rules |
| 10-decisions.md | Architectural Decision Log |
Fast orientation
- Entry point:
cmd/logpile/main.go - HTTP layer:
internal/server/ - Core contracts:
internal/models/models.go - Live collection:
internal/collector/ - Archive parsing:
internal/parser/ - Export conversion:
internal/exporter/ - Frontend consumer:
web/static/js/app.js
Maintenance rule
If a document becomes stale, either fix it immediately or delete it. Stale docs are worse than missing docs.