Journey Overview
1. SCAN Journey (Primary Use Case)
The main workflow for scanning codebases for AI artifacts.Entry Points
| Entry | User Goal | Typical User |
|---|---|---|
ai-finder scan . | Quick scan, text output | Developer exploring |
ai-finder scan . -f cyclonedx | Generate SBOM for compliance | Security team |
ai-finder scan . -f spdx | Generate SBOM (SPDX format) | Compliance officer |
ai-finder scan . -r | Include relationships | Architect |
ai-finder scan . --no-enrich | Fast scan, no API calls | CI/CD pipeline |
Journey Flow
Scan Exit States
| Exit | Event | User Action |
|---|---|---|
| Success - No findings | scan.findings.none | May run on different path |
| Success - Few findings | scan.findings.few | Review SBOM |
| Success - Many findings | scan.findings.many | Compliance review |
| Error - File not found | error.scan.file_not_found | Check path |
| Error - Permission denied | error.scan.permission_denied | Fix permissions |
| Error - Parse error | error.scan.parse_error | Report bug |
2. IDENTIFY Journey
Single file model identification workflow.Entry Points
| Entry | User Goal |
|---|---|
ai-finder identify model.gguf | Identify unknown model file |
ai-finder identify model.gguf -f json | Get structured metadata |
ai-finder identify model.gguf --no-enrich | Quick local-only check |
Journey Flow
Identify Exit States
| Exit Code | Meaning | Event |
|---|---|---|
| 0 | Model recognized | identify.recognized.yes |
| 1 | Model not recognized | identify.recognized.no |
| 2 | Error occurred | error.identify.* |
3. KB Journey
Knowledge Base setup and maintenance workflow.Entry Points
| Entry | User Goal |
|---|---|
ai-finder kb init | Initialize local KB |
ai-finder kb status | Check KB state |
ai-finder kb crawl huggingface | Populate with HuggingFace models |
ai-finder kb crawl all | Full KB population |
ai-finder kb lookup pkg:huggingface/... | Search KB |
Journey Flow
4. Error Paths
All possible error scenarios across the application.5. Funnel Definitions
Pre-built funnels for analytics.Primary SBOM Generation Funnel
scan.findings.none→ No AI found (wrong directory?)enrichment.live_fetch_failed→ Network issueserror.scan.*→ Crashes
Model Identification Funnel
identify.recognized.no→ Unknown formatidentify.kb_match.not_found→ Model not in KB
KB Adoption Funnel
kb.crawl.result.empty→ Crawl failedkb.crawl.*.errors.yes→ Partial failure
Error Recovery Funnel
6. Key Metrics
| Metric | Calculation | Target |
|---|---|---|
| SBOM Success Rate | scan.completed(success) / scan.started | >95% |
| Enrichment Hit Rate | enrichment.kb_hit / (kb_hit + live_fetch + not_found) | >70% |
| Model Recognition Rate | identify.recognized.yes / identify.started | >80% |
| KB Adoption | scan.kb_source.local / scan.enrich.enabled | >50% |
| Error Rate by Type | error.*.{category} counts | <5% each |
| Network Failure Rate | enrichment.live_fetch_failed / live_fetch | <10% |
7. User Segments
| Segment | Identifying Events | Behavior |
|---|---|---|
| Compliance User | scan.format.cyclonedx OR scan.format.spdx | Generates SBOMs |
| Developer | scan.format.text + identify.* | Exploring codebase |
| CI/CD Pipeline | --no-enrich flag, quiet mode | Automated scanning |
| Power User | kb.crawl.* + scan.kb_source.local | Local KB setup |
| New User | cli.started without kb.init | First-time use |