homelabby/.planning/research/FEATURES.md

193 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Feature Research
**Domain:** Self-hosted AI-powered hardware inventory management (homelab)
**Researched:** 2026-04-09
**Confidence:** MEDIUM-HIGH (training knowledge + web research; AI intake patterns are novel)
## Feature Landscape
### Table Stakes (Users Expect These)
Features users assume exist. Missing these = product feels incomplete.
| Feature | Why Expected | Complexity | Notes |
|---------|--------------|------------|-------|
| Asset record CRUD | Fundamental inventory operation — without this there's no product | LOW | Delegated to NetBox via API; HWLab provides the UI layer |
| Unique asset identifiers | Every inventory tool assigns IDs; users expect stable references | LOW | HW-XXXXX scheme; NetBox asset_tag field |
| Asset search / filter | Users need to find items by name, serial, category | LOW | Table search + AI natural language; NetBox query API |
| Asset status tracking | "Available / In Use / Retired / Unknown" is baseline expectation | LOW | NetBox status field; surfaced in dashboard |
| Category / type classification | Users expect grouping by device type (server, cable, SFP, etc.) | LOW | NetBox device types + custom tags |
| Manufacturer + model fields | Every ITAM tool tracks make/model; users expect this | LOW | NetBox native fields, populated by AI intake |
| Serial number field | Required for warranty claims, RMA, deduplication | LOW | NetBox native field; extracted by AI from photo |
| Location / rack / site tracking | Physical placement is core to homelab inventory | MEDIUM | NetBox rack/location hierarchy; populated during intake |
| Attachment / photo storage | Attaching a photo to a record is expected in any modern ITAM tool | LOW | Photo stored in NetBox attachment; used as intake source |
| Audit trail / history | Who did what, when — expected in any system managing physical assets | MEDIUM | NetBox change log; surfaced in record detail |
| Export capability | Users expect to get their data out (CSV, JSON) | LOW | NetBox REST API; direct export via UI or API |
| Label / tag printing | Physical assets need physical labels — QR or barcode is standard | MEDIUM | PRT Qutie via USB; thermal ZPL or ESC/POS printing |
### Differentiators (Competitive Advantage)
Features that set the product apart. Not required, but valued.
| Feature | Value Proposition | Complexity | Notes |
|---------|-------------------|------------|-------|
| AI photo intake (zero-entry) | Upload photo → record created — eliminates manual data entry for 8090% of items | HIGH | Gemma 4 via oMLX; multimodal vision + structured extraction |
| Three-tier AI escalation | Local-first (Gemma 4) → research agent (OpenRouter) → Lab Advisor (Opus) — cost-optimal and offline-capable | HIGH | Tier routing logic is the novel architectural piece |
| Lab Advisor chat | Strategic homelab Q&A backed by full inventory context — no other ITAM tool offers this | HIGH | Claude Opus via OpenRouter; context injection from NetBox |
| Cable test workflow integration | Automated cable continuity results attached to cable records — unique to physical-lab use cases | HIGH | Treedix USB/DP/HDMI + FNIRSI FNB58; USB serial parsing |
| Live USB power measurement | FNIRSI FNB58 readings (voltage, current, watt) captured and stored against cable/PSU records | HIGH | USB serial; firmware-level protocol reverse engineering |
| Catalog quality gate | Draft → indexed → needs_research → researched → complete lifecycle prevents "garbage in, garbage out" | MEDIUM | State machine on NetBox custom field; AI drives transitions |
| SearXNG product research | AI agent uses private search instance to auto-fill missing specs, EAN/part numbers, pricing | MEDIUM | OpenRouter agent + SearXNG JSON API already available |
| Natural language inventory search | "Show me all SFP+ modules I haven't tested" — no SQL required | MEDIUM | LLM query translation → NetBox API filter; local Gemma 4 |
| NetBox as data store (not a silo) | All data lives in NetBox — reachable by existing NetBox integrations, Ansible, Terraform, etc. | MEDIUM | Constraint that becomes a feature; no vendor lock-in to HWLab |
| Fully offline operation | Standard intake, search, label print work with no internet — OpenRouter only for Tier 2/3 | MEDIUM | Local Gemma 4 + local NetBox + USB printer; already architectured |
| Universal HW-XXXXX ID scheme | Category-agnostic stable IDs printed on QR labels — works for cables, SFPs, servers equally | LOW | ID assigned at intake; encoded in QR URL |
### Anti-Features (Commonly Requested, Often Problematic)
| Feature | Why Requested | Why Problematic | Alternative |
|---------|---------------|-----------------|-------------|
| Multi-user / RBAC | "What if someone else needs access?" | Solo operator tool — RBAC adds schema, middleware, UI complexity with zero immediate payoff | NetBox has RBAC if truly needed; HWLab inherits it |
| Real-time collaboration / chat | Looks modern, like Slack for inventory | Websockets, presence, conflict resolution — massive complexity for a single-operator homelab | Lab Advisor chat is async and single-session; sufficient |
| Mobile companion app / PWA | "I want to scan in the rack" | Separate build pipeline, offline sync, camera API surface area — diverges from web-first | Responsive web UI is good enough for homelab bench work |
| SNMP / network auto-discovery | "Discover everything automatically" | SNMP is unreliable for physical inventory; discovers only what's online; misses cables, SFPs, offline gear | AI photo intake covers the full physical layer including dark equipment |
| Barcode scanner (USB HID) | Fast intake for bulk items | USB HID scanners are commodity; the value is in AI vision, not scan-gun ergonomics | Photo intake is more universal; scanner can be added later as an enhancement |
| Bulk CSV import | "I have a spreadsheet already" | Creates data quality debt immediately; bypasses quality gate and AI enrichment pipeline | Migrate via NetBox native import; use AI intake as the canonical path |
| Predictive failure / warranty alerts | "Alert me when warranty expires" | Date tracking is simple but alert infrastructure (email, push, cron) is disproportionate to homelab context | Add expiry dates as custom fields; query via Lab Advisor when needed |
| Network topology auto-update | Reflect cable changes in NetBox topology diagrams | Topology inference from cable test results is ambiguous; NetBox topology is already manually maintained | Cable test results stored as records; topology updates remain manual |
| Local LLM fine-tuning UI | "Train it on my specific hardware" | MLX fine-tuning is a separate workload; out-of-scope for an inventory tool | Prompt engineering + SearXNG research agent handles novel hardware adequately |
## Feature Dependencies
```
[NetBox API connectivity]
└──requires──> [All inventory CRUD operations]
└──requires──> [AI intake record creation]
└──requires──> [Natural language search]
└──requires──> [Lab Advisor context injection]
[AI photo intake]
└──requires──> [oMLX + Gemma 4 setup]
└──requires──> [NetBox API connectivity]
└──requires──> [NetBox custom fields schema]
└──enhances──> [Catalog quality gate] (sets initial state to "indexed")
[Three-tier AI escalation]
└──requires──> [AI photo intake] (Tier 1 base)
└──requires──> [OpenRouter API key] (Tiers 2+3)
└──requires──> [SearXNG connectivity] (Tier 2 research)
[QR label printing]
└──requires──> [HW-XXXXX ID assignment] (at intake)
└──requires──> [PRT Qutie USB driver / protocol] (hardware arrives 2026-04-13)
└──enhances──> [AI photo intake] (print label as final intake step)
[Cable test workflow]
└──requires──> [NetBox API connectivity] (attach results to cable records)
└──requires──> [Treedix / FNIRSI USB serial protocol] (hardware arrives 2026-04-13)
└──enhances──> [Catalog quality gate] (test result moves cable to "complete")
[Lab Advisor chat]
└──requires──> [NetBox API connectivity] (inventory context)
└──requires──> [OpenRouter API key] (Opus model)
└──enhances──> [Natural language search] (richer Q&A vs bare search)
[Natural language search]
└──requires──> [oMLX + Gemma 4 setup] (local query translation)
└──requires──> [NetBox API connectivity]
[Catalog quality gate]
└──requires──> [NetBox custom fields schema] (status field)
└──enhances──> [AI photo intake] (drives research escalation)
└──enhances──> [Cable test workflow] (marks completion)
```
### Dependency Notes
- **NetBox API connectivity is the foundation**: Every feature reads or writes through it. NetBox setup (custom fields, netbox-inventory plugin) must be Phase 1.
- **oMLX + Gemma 4 requires hardware verification**: 26B A4B variant needs TurboQuant testing on Mac Mini M4 16GB. If it doesn't fit, fall back to E4B. This gates all AI intake features.
- **USB hardware arrives 2026-04-13**: Label printing and cable testing are blocked until then. Protocol reverse engineering is a separate workload.
- **QR label printing enhances but doesn't block intake**: A record can be created without a label; printing is the final step.
- **Lab Advisor requires OpenRouter** — it's the only feature with a hard cloud dependency (Opus is too large for local inference).
## MVP Definition
### Launch With (v1)
Minimum viable to validate the core value proposition (photo → record → label, zero manual entry).
- [ ] NetBox connectivity + custom fields schema — all features depend on this
- [ ] AI photo intake via Gemma 4 (Tier 1) — the core differentiator, must validate
- [ ] HW-XXXXX ID assignment at intake — required for QR label content
- [ ] QR label printing via PRT Qutie — closes the intake loop physically
- [ ] Catalog quality gate (draft/indexed/complete minimum) — prevents garbage records
- [ ] Inventory dashboard with basic search — users need to find what they cataloged
- [ ] Natural language search (basic) — validates the AI search value prop
### Add After Validation (v1.x)
Add once core photo → record → label loop is validated.
- [ ] SearXNG research agent (Tier 2) — add when Tier 1 produces records with gaps
- [ ] Lab Advisor chat (Tier 3) — add after inventory has enough data to be useful for Q&A
- [ ] Cable test workflow (Treedix + FNIRSI) — add once USB protocol is understood
- [ ] Full catalog quality gate state machine (all 5 states) — add after MVP states work
### Future Consideration (v2+)
- [ ] Barcode scanner HID support — only if photo intake proves too slow for high-volume intake
- [ ] Bulk import / migration mode — only if migrating from an existing spreadsheet becomes a real need
- [ ] Advanced audit trail UI — NetBox change log is sufficient for v1
- [ ] Export / reporting views — NetBox API already provides this; UI wrapper is low priority
## Feature Prioritization Matrix
| Feature | User Value | Implementation Cost | Priority |
|---------|------------|---------------------|----------|
| NetBox API + custom fields setup | HIGH | LOW | P1 |
| AI photo intake (Gemma 4 Tier 1) | HIGH | HIGH | P1 |
| HW-XXXXX ID scheme | HIGH | LOW | P1 |
| QR label printing (PRT Qutie) | HIGH | HIGH (USB protocol) | P1 |
| Inventory dashboard + basic search | HIGH | MEDIUM | P1 |
| Natural language search | HIGH | MEDIUM | P1 |
| Catalog quality gate | MEDIUM | MEDIUM | P1 |
| SearXNG research agent (Tier 2) | MEDIUM | MEDIUM | P2 |
| Lab Advisor chat (Tier 3 / Opus) | HIGH | MEDIUM | P2 |
| Cable test workflow (Treedix) | MEDIUM | HIGH (USB protocol) | P2 |
| USB power measurement (FNIRSI) | MEDIUM | HIGH (USB protocol) | P2 |
| Audit trail UI | LOW | LOW | P3 |
| Export / reporting | LOW | LOW | P3 |
| Barcode scanner HID | LOW | LOW | P3 |
**Priority key:**
- P1: Must have for launch
- P2: Should have, add when possible
- P3: Nice to have, future consideration
## Competitor Feature Analysis
| Feature | NetBox (standalone) | Snipe-IT | Homebox | HWLab approach |
|---------|---------------------|----------|---------|----------------|
| Asset CRUD | Yes — full API + UI | Yes | Yes (home focus) | Delegates to NetBox |
| Photo intake / AI vision | No | No | Photo attachments only | AI extracts structured data from photo |
| Label printing | No native | Barcode labels | No | QR thermal label via PRT Qutie at intake |
| Natural language search | No | No | No | Local Gemma 4 query translation |
| AI chat / advisor | No | No | No | Lab Advisor via Opus + full inventory context |
| Cable test integration | No | No | No | Direct USB integration with Treedix/FNIRSI |
| Quality gate / lifecycle | No | Asset status only | No | 5-state AI-driven catalog lifecycle |
| Network documentation | Full (DCIM) | No | No | Inherits via NetBox |
| Self-hosted | Yes | Yes | Yes | Yes — all components local |
| Offline operation | Yes | Partial | Yes | Yes — Tier 1 AI + label print fully offline |
## Sources
- NetBox feature set: https://github.com/netbox-community/netbox (training knowledge, HIGH confidence)
- Snipe-IT feature set: https://github.com/grokability/snipe-it + https://blog.invgate.com/snipe-it-alternative (WebSearch + training, HIGH confidence)
- Homebox (home inventory): https://selfh.st/post/homebox/ (WebSearch, MEDIUM confidence)
- netbox-inventory plugin: https://github.com/ArnesSI/netbox-inventory (WebSearch, MEDIUM confidence)
- ITAM industry standards: training knowledge (MEDIUM confidence — verify against current tool feature lists)
- AI photo intake patterns: training knowledge, no direct competitor exists (LOW confidence for "zero-entry" claims — validate after v1)
---
*Feature research for: AI-powered self-hosted homelab hardware inventory (HWLab)*
*Researched: 2026-04-09*