Document scanner product roadmap and Gitea workflow
This commit is contained in:
+74
-15
@@ -5,14 +5,17 @@ This document is the source of truth for project intent, scope, runtime facts, a
|
||||
For implementation structure, see [ARCHITECTURE.md](ARCHITECTURE.md). For engineering standards, see [CONVENTIONS.md](CONVENTIONS.md).
|
||||
For the latest Inventory-Kamera comparison work, see
|
||||
[scanner-ik-progress-report.md](scanner-ik-progress-report.md).
|
||||
For the next scan-result and artifact-inventory product phase, see
|
||||
[scanner-results-inventory-roadmap.md](scanner-results-inventory-roadmap.md).
|
||||
For the 2026-07-09 scanner merge evidence, see [MERGE_READINESS.md](MERGE_READINESS.md).
|
||||
For Gitea push/authentication setup, see [GITEA_AUTH.md](GITEA_AUTH.md).
|
||||
|
||||
## Project Identity
|
||||
|
||||
| Field | Value |
|
||||
| --- | --- |
|
||||
| Project name | Genshin Artifact Assistant |
|
||||
| Status | Scanner baseline merged to `main`; repeatability, corpus growth, and recommendation work are next |
|
||||
| Status | Scanner baseline merged to `main`; scan result rail, artifact inventory, extraction quality, and corpus growth are next |
|
||||
| Platform | Windows desktop |
|
||||
| Target users | Genshin Impact players who want artifact decisions without complex optimizer setup |
|
||||
| Runtime | Electron app with React UI and TypeScript |
|
||||
@@ -29,6 +32,9 @@ The app is not intended to replace deep min-max tools. It prioritizes time savin
|
||||
- Build one local canonical Genshin data package for artifact sets, pieces, slots, stats, and characters.
|
||||
- Parse artifact name, slot, main stat, substats, set, equipped state, and confidence deterministically against that package.
|
||||
- Save weak or failed reads automatically as review samples and turn corrections into reusable local fixes.
|
||||
- Present finished scan results as a compact artifact list instead of a debug-heavy live stats surface.
|
||||
- Keep extraction confidence separate from artifact value so uncertain OCR becomes review, not a misleading low score.
|
||||
- Provide a browsable local artifact inventory with detail views before promoting broader recommendations.
|
||||
- Keep the app offline-first and usable without Genshin Optimizer, Inventory Kamera, Enka, or HoYoLAB.
|
||||
- Re-introduce recommendations only after the scanner base is trustworthy.
|
||||
|
||||
@@ -54,6 +60,9 @@ The app is not intended to replace deep min-max tools. It prioritizes time savin
|
||||
| FR-009 | Provide account-level artifact triage after scanner trust is acceptable. | Should | Pending |
|
||||
| FR-010 | Provide 1-3 simple build suggestions per character from owned artifacts after scanner trust is acceptable. | Should | Pending |
|
||||
| FR-011 | Farming overlay for reward scans. | Later | Prototype shell |
|
||||
| FR-012 | Show active scan results as a minimal right-side rail with artifact number, name or compact fallback, value score, and status pill. | Should | Planned |
|
||||
| FR-013 | Provide a scanned artifact inventory view with compact score pills, filters, sorting, and click-through detail. | Should | Planned |
|
||||
| FR-014 | Provide artifact detail evaluation with screenshot/crops, parsed fields, OCR confidence, value reasons, and optional upgrade projection. | Should | Planned |
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
@@ -64,6 +73,7 @@ The app is not intended to replace deep min-max tools. It prioritizes time savin
|
||||
| IK target | First 100 artifacts should scan with accuracy at least as good as Inventory Kamera and equal or better speed. | `npm run scan:goal:compare:validated` or `npm run scan:goal:compare:validated:wait` quality-gated report |
|
||||
| Privacy | Captures and parsed data stay local by default. | No remote upload in scanner path |
|
||||
| Reliability | Uncertain OCR must be visible to the user. | Confidence and details view |
|
||||
| Score integrity | Extraction confidence and artifact value are separate concepts. | Review state can block or qualify a value score |
|
||||
| Learning loop | Scanner mistakes should become reusable local review samples. | `review-samples.jsonl` |
|
||||
| Maintainability | Scanner heuristics must be isolated and documented. | Parser tests, scan-loop tests, data generator, review sample pipeline |
|
||||
|
||||
@@ -128,8 +138,11 @@ The app is not intended to replace deep min-max tools. It prioritizes time savin
|
||||
2026-07-08.
|
||||
- OCR quality is still inconsistent enough that some fields are recovered by fallback and derivation more often than they should be.
|
||||
- Learned fixes currently focus on text replacements; they do not yet update crop offsets, UI profile variants, or scanner targeting rules in a structured way.
|
||||
- The scan page is cleaner than before, but it still exposes too much operator/debug state in the main flow.
|
||||
- Recommendations and build logic exist, but the scanner is not yet reliable enough to make them the core focus.
|
||||
- The scan page is cleaner than before, but it still needs the next minimalist
|
||||
result-rail pass so the main flow shows preview plus completed artifact
|
||||
outcomes instead of live diagnostic/stat content.
|
||||
- Recommendations and build logic exist, but artifact inventory, detail review,
|
||||
and value scoring should land first so recommendations have trustworthy inputs.
|
||||
- The latest source has completed the final current-vs-IK-traineddata live
|
||||
comparison for this environment. Repeatability and 3 artifacts/second are
|
||||
still open.
|
||||
@@ -140,9 +153,10 @@ The app has crossed from OCR-demo/prototype into a validated scanner baseline on
|
||||
`main`. The current merge-ready path is the visible-inventory scan flow: the
|
||||
operator opens Artifact inventory with a visible detail card, the app verifies
|
||||
the state, scans read-only, persists parsed artifacts, and keeps uncertain data
|
||||
reviewable. The next product phase is not another broad scanner rewrite; it is
|
||||
repeatability, corpus growth, UI polish, and then recommendations on top of the
|
||||
trusted artifact store.
|
||||
reviewable. The next product phase is not another broad speed rewrite; current
|
||||
speed is acceptable for now. The priority is better content extraction, a
|
||||
minimal scan-result rail, a browsable artifact inventory, detail evaluation, and
|
||||
corpus growth before recommendations become the core product surface.
|
||||
|
||||
## Product Direction
|
||||
|
||||
@@ -151,6 +165,11 @@ trusted artifact store.
|
||||
- Team building stays out of the critical path until artifact ingestion is stable.
|
||||
- Inventory Kamera remains a reference for scan choreography and page movement, not a runtime dependency.
|
||||
- Self-learning stays deterministic and local first: review samples, aliases, crop offsets, and UI profile tuning before any ML retraining discussion.
|
||||
- The scan workspace should be an operator surface: preview, live result rail,
|
||||
Stop, status, and review access. Detailed stats and debug evidence belong in
|
||||
diagnostics, summaries, or artifact detail.
|
||||
- Artifact value scoring must not hide OCR uncertainty. `Review` is a distinct
|
||||
outcome, not just a weak artifact score.
|
||||
|
||||
## Execution Plan
|
||||
|
||||
@@ -270,31 +289,69 @@ Status:
|
||||
crop adjustment proposals, and UI-profile adjustment proposals. Crop/profile
|
||||
changes still require live review before being auto-applied.
|
||||
|
||||
### Phase 6 - Recommendations come back on top of a trusted scanner
|
||||
### Phase 6 - Minimal scan result rail and artifact inventory
|
||||
|
||||
Outcome:
|
||||
- The scan page shows a large screenshot/preview and a compact right-side rail
|
||||
of finished artifact evaluations.
|
||||
- Each row shows scan number, artifact name or compact fallback, value score,
|
||||
and a colored status pill.
|
||||
- Debug stats, confidence breakdowns, and OCR internals move out of the main
|
||||
scan surface.
|
||||
- A new artifact inventory menu provides compact browsing, filters, sorting,
|
||||
and click-through details.
|
||||
|
||||
Status:
|
||||
- Planned. See
|
||||
[scanner-results-inventory-roadmap.md](scanner-results-inventory-roadmap.md)
|
||||
for the implementation phases and acceptance criteria.
|
||||
|
||||
### Phase 7 - Artifact detail evaluation and upgrade projection
|
||||
|
||||
Outcome:
|
||||
- Artifact detail explains parsed fields, OCR confidence, scoring reasons, and
|
||||
review needs.
|
||||
- Upgrade projection is available only when enough data is known and is labeled
|
||||
as probabilistic, with worst/middle/best projected value scores.
|
||||
- Low-confidence OCR disables or qualifies value conclusions instead of showing
|
||||
false certainty.
|
||||
|
||||
Status:
|
||||
- Planned after the scan result rail and inventory data contracts.
|
||||
|
||||
### Phase 8 - Recommendations come back on top of a trusted scanner
|
||||
|
||||
Outcome:
|
||||
- Account snapshot and build suggestions are only promoted once scan quality is high enough to trust owned artifacts.
|
||||
- Recommendations explain uncertainty and surface conflicts instead of pretending perfect certainty.
|
||||
|
||||
Status:
|
||||
- Next major product area after repeatability and corpus work. Do not promote
|
||||
recommendation UX until stored artifact quality is backed by more confirmed
|
||||
review samples and repeat live scan runs.
|
||||
- Next major product area after inventory, detail evaluation, repeatability, and
|
||||
corpus work. Do not promote recommendation UX until stored artifact quality is
|
||||
backed by more confirmed review samples and repeat live scan runs.
|
||||
|
||||
## Immediate Next Implementation Order
|
||||
|
||||
1. Keep the visible-inventory scanner path as the production baseline and avoid
|
||||
promoting `auto-entry`, `direct-inventory`, or `paimon-menu` until they pass
|
||||
their own low-limit live validations.
|
||||
2. Grow the confirmed OCR corpus from review samples exported by
|
||||
2. Implement the scan result and inventory data contracts from
|
||||
[scanner-results-inventory-roadmap.md](scanner-results-inventory-roadmap.md),
|
||||
preserving separate extraction confidence and artifact value.
|
||||
3. Rework the scan page into preview plus minimal result rail; keep diagnostic
|
||||
stats out of the primary scan surface.
|
||||
4. Add the artifact inventory menu and detail view before expanding broad build
|
||||
recommendations.
|
||||
5. Grow the confirmed OCR corpus from review samples exported by
|
||||
`npm run eval:review-candidates` and prepared through
|
||||
`npm run eval:prepare-confirmed`.
|
||||
3. Repeat live scanner runs in later sessions to prove repeatability across
|
||||
6. Repeat live scanner runs in later sessions to prove repeatability across
|
||||
pages, locked/unlocked artifacts, equipped footers, and duplicate handling.
|
||||
4. Continue the optional `3 artifacts/second` work only if the next change can
|
||||
7. Continue the optional `3 artifacts/second` work only if the next change can
|
||||
reduce OCR/capture transport time without weakening quality gates.
|
||||
5. Start recommendation/product UX work only after repeat scan quality and
|
||||
confirmed corpus coverage are strong enough to trust stored artifacts.
|
||||
8. Start recommendation/product UX work only after inventory/detail evaluation,
|
||||
repeat scan quality, and confirmed corpus coverage are strong enough to trust
|
||||
stored artifacts.
|
||||
|
||||
## Open Questions
|
||||
|
||||
@@ -303,4 +360,6 @@ Status:
|
||||
| Is the current C# helper sufficient for production packaging, or does a later Rust/C++ sidecar still materially reduce latency or packaging risk? | Open |
|
||||
| When should UI-profile learning be allowed to change crop geometry automatically versus requiring review approval? | Open |
|
||||
| What scan-quality threshold is high enough before recommendations should be considered user-facing again? | Open |
|
||||
| What exact first-pass value formula should drive the `0-100` artifact score before build-aware recommendations exist? | Open |
|
||||
| Which upgrade projection model is honest enough for early UX: deterministic roll buckets, probability-weighted outcomes, or a deliberately simple best/middle/worst estimate? | Open |
|
||||
| Which Genshin UI languages should be supported after English once the scanner contract is stable? | Open |
|
||||
|
||||
Reference in New Issue
Block a user