Deep analysis of the full `lore` CLI command surface (34 commands across 6 categories) covering command inventory, data flow, overlap analysis, and optimization proposals. Document structure: - Main consolidated doc: docs/command-surface-analysis.md (1251 lines) - Split sections in docs/command-surface-analysis/ for navigation: 00-overview.md - Summary, inventory, priorities 01-entity-commands.md - issues, mrs, notes, search, count 02-intelligence-commands.md - who, timeline, me, file-history, trace, related, drift 03-pipeline-and-infra.md - sync, ingest, generate-docs, embed, diagnostics 04-data-flow.md - Shared data source map, command network graph 05-overlap-analysis.md - Quantified overlap percentages for every command pair 06-agent-workflows.md - Common agent flows, round-trip costs, token profiles 07-consolidation-proposals.md - 5 proposals to reduce 34 commands to 29 08-robot-optimization-proposals.md - 6 proposals for --include, --batch, --depth 09-appendices.md - Robot output envelope, field presets, exit codes Key findings: - High overlap pairs: who-workload/me (~85%), health/doctor (~90%) - 5 consolidation proposals to reduce command count by 15% - 6 robot-mode optimization proposals targeting agent round-trip reduction - Full DB table mapping and data flow documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 KiB
Intelligence Commands
Reference for: who, timeline, me, file-history, trace, related, drift
who (People Intelligence)
Five sub-modes, dispatched by argument shape.
| Mode | Trigger | Purpose |
|---|---|---|
| expert | who <path> or who --path <path> |
Who knows about a code area? |
| workload | who @username |
What is this person working on? |
| reviews | who @username --reviews |
Review pattern analysis |
| active | who --active |
Unresolved discussions needing attention |
| overlap | who --overlap <path> |
Who else touches these files? |
Shared Flags
| Flag | Type | Default | Purpose |
|---|---|---|---|
-p, --project |
string | — | Scope to project |
-n, --limit |
int | varies | Max results (1-500) |
--fields |
string | — | Preset: minimal |
--since |
duration/date | — | Time window |
--include-bots |
flag | — | Include bot users |
--include-closed |
flag | — | Include closed issues/MRs |
--all-history |
flag | — | Query all history |
Expert-Only Flags
| Flag | Type | Default | Purpose |
|---|---|---|---|
--detail |
flag | — | Per-MR breakdown |
--as-of |
date/duration | — | Score at point in time |
--explain-score |
flag | — | Score breakdown |
DB Tables by Mode
| Mode | Primary Tables |
|---|---|
| expert | notes (INDEXED BY idx_notes_diffnote_path_created), merge_requests, mr_reviewers |
| workload | issues, merge_requests, mr_reviewers |
| reviews | merge_requests, discussions, notes |
| active | discussions, notes, issues, merge_requests |
| overlap | notes, mr_file_changes, merge_requests |
Robot Output (expert)
{
"ok": true,
"data": {
"mode": "expert",
"input": { "target": "src/auth/", "path": "src/auth/" },
"resolved_input": { "mode": "expert", "project_id": 1, "project_path": "group/repo" },
"result": {
"experts": [
{
"username": "jdoe", "score": 42.5,
"detail": { "mr_ids_author": [99, 101], "mr_ids_reviewer": [88] }
}
]
}
}
}
Robot Output (workload)
{
"data": {
"mode": "workload",
"result": {
"assigned_issues": [{ "iid": 42, "title": "Fix auth", "state": "opened" }],
"authored_mrs": [{ "iid": 99, "title": "Refactor auth", "state": "merged" }],
"review_mrs": [{ "iid": 88, "title": "Add SSO", "state": "opened" }]
}
}
}
Robot Output (reviews)
{
"data": {
"mode": "reviews",
"result": {
"categories": [
{
"category": "approval_rate",
"reviewers": [{ "name": "jdoe", "count": 15, "percentage": 85.0 }]
}
]
}
}
}
Robot Output (active)
{
"data": {
"mode": "active",
"result": {
"discussions": [
{ "entity_type": "mr", "iid": 99, "title": "Refactor auth", "participants": ["jdoe", "reviewer"] }
]
}
}
}
Robot Output (overlap)
{
"data": {
"mode": "overlap",
"result": {
"users": [{ "username": "jdoe", "touch_count": 15 }]
}
}
}
Minimal Presets
| Mode | Fields |
|---|---|
| expert | username, score |
| workload | iid, title, state |
| reviews | name, count, percentage |
| active | entity_type, iid, title, participants |
| overlap | username, touch_count |
timeline
Reconstruct chronological event history for a topic/entity with cross-reference expansion.
| Flag | Type | Default | Purpose |
|---|---|---|---|
<QUERY> |
positional | required | Search text or entity ref (issue:42, mr:99) |
-p, --project |
string | — | Scope to project |
--since |
duration/date | — | Filter events after |
--depth |
int | 1 | Cross-ref expansion depth (0=none) |
--no-mentions |
flag | — | Skip "mentioned" edges, keep "closes"/"related" |
-n, --limit |
int | 100 | Max events |
--fields |
string | — | Preset: minimal |
--max-seeds |
int | 10 | Max seed entities from search |
--max-entities |
int | 50 | Max expanded entities |
--max-evidence |
int | 10 | Max evidence notes |
Pipeline: SEED -> HYDRATE -> EXPAND -> COLLECT -> RENDER
DB tables: issues, merge_requests, discussions, notes, entity_references, resource_state_events, resource_label_events, resource_milestone_events, documents (for search seeding)
Robot Output
{
"ok": true,
"data": {
"query": "authentication", "event_count": 25,
"seed_entities": [{ "type": "issue", "iid": 42, "project": "group/repo" }],
"expanded_entities": [
{
"type": "mr", "iid": 99, "project": "group/repo", "depth": 1,
"via": {
"from": { "type": "issue", "iid": 42 },
"reference_type": "closes"
}
}
],
"unresolved_references": [
{
"source": { "type": "issue", "iid": 42, "project": "group/repo" },
"target_type": "mr", "target_iid": 200, "reference_type": "mentioned"
}
],
"events": [
{
"timestamp": "2026-01-15T10:30:00Z",
"entity_type": "issue", "entity_iid": 42, "project": "group/repo",
"event_type": "state_changed", "summary": "Reopened",
"actor": "jdoe", "is_seed": true,
"evidence_notes": [{ "author": "jdoe", "snippet": "..." }]
}
]
},
"meta": {
"elapsed_ms": 150, "search_mode": "fts",
"expansion_depth": 1, "include_mentions": true,
"total_entities": 5, "total_events": 25,
"evidence_notes_included": 8, "discussion_threads_included": 3,
"unresolved_references": 1, "showing": 25
}
}
Minimal preset: timestamp, type, entity_iid, detail
me (Personal Dashboard)
Personal work dashboard with issues, MRs, activity, and since-last-check inbox.
| Flag | Type | Default | Purpose |
|---|---|---|---|
--issues |
flag | — | Open issues section only |
--mrs |
flag | — | MRs section only |
--activity |
flag | — | Activity feed only |
--since |
duration/date | 30d |
Activity window |
-p, --project |
string | — | Scope to one project |
--all |
flag | — | All synced projects |
--user |
string | — | Override configured username |
--fields |
string | — | Preset: minimal |
--reset-cursor |
flag | — | Clear since-last-check cursor |
Sections (no flags = all): Issues, MRs authored, MRs reviewing, Activity, Inbox
DB tables: issues, merge_requests, resource_state_events, projects, issue_labels, mr_labels
Robot Output
{
"ok": true,
"data": {
"username": "jdoe",
"summary": {
"project_count": 3, "open_issue_count": 5,
"authored_mr_count": 2, "reviewing_mr_count": 1,
"needs_attention_count": 3
},
"since_last_check": {
"cursor_iso": "2026-02-25T18:00:00Z",
"total_event_count": 8,
"groups": [
{
"entity_type": "issue", "entity_iid": 42,
"entity_title": "Fix auth", "project": "group/repo",
"events": [
{ "timestamp_iso": "...", "event_type": "comment",
"actor": "reviewer", "summary": "New comment" }
]
}
]
},
"open_issues": [
{
"project": "group/repo", "iid": 42, "title": "Fix auth",
"state": "opened", "attention_state": "needs_attention",
"status_name": "In progress", "labels": ["auth"],
"updated_at_iso": "..."
}
],
"open_mrs_authored": [
{
"project": "group/repo", "iid": 99, "title": "Refactor auth",
"state": "opened", "attention_state": "needs_attention",
"draft": false, "labels": ["backend"], "updated_at_iso": "..."
}
],
"reviewing_mrs": [],
"activity": [
{
"timestamp_iso": "...", "event_type": "state_changed",
"entity_type": "issue", "entity_iid": 42, "project": "group/repo",
"actor": "jdoe", "is_own": true, "summary": "Closed"
}
]
}
}
Minimal presets: Items: iid, title, attention_state, updated_at_iso | Activity: timestamp_iso, event_type, entity_iid, actor
file-history
Show which MRs touched a file, with linked discussions.
| Flag | Type | Default | Purpose |
|---|---|---|---|
<PATH> |
positional | required | File path to trace |
-p, --project |
string | — | Scope to project |
--discussions |
flag | — | Include DiffNote snippets |
--no-follow-renames |
flag | — | Skip rename chain resolution |
--merged |
flag | — | Only merged MRs |
-n, --limit |
int | 50 | Max MRs |
DB tables: mr_file_changes, merge_requests, notes (DiffNotes), projects
Robot Output
{
"ok": true,
"data": {
"path": "src/auth/middleware.rs",
"rename_chain": [
{ "previous_path": "src/auth.rs", "mr_iid": 55, "merged_at": "..." }
],
"merge_requests": [
{
"iid": 99, "title": "Refactor auth", "state": "merged",
"author": "jdoe", "merged_at": "...", "change_type": "modified"
}
],
"discussions": [
{
"discussion_id": 123, "mr_iid": 99, "author": "reviewer",
"body_snippet": "...", "path": "src/auth/middleware.rs"
}
]
},
"meta": { "elapsed_ms": 30, "total_mrs": 5, "renames_followed": true }
}
trace
File -> MR -> issue -> discussion chain to understand why code was introduced.
| Flag | Type | Default | Purpose |
|---|---|---|---|
<PATH> |
positional | required | File path (future: :line suffix) |
-p, --project |
string | — | Scope to project |
--discussions |
flag | — | Include DiffNote snippets |
--no-follow-renames |
flag | — | Skip rename chain |
-n, --limit |
int | 20 | Max chains |
DB tables: mr_file_changes, merge_requests, issues, discussions, notes, entity_references
Robot Output
{
"ok": true,
"data": {
"path": "src/auth/middleware.rs",
"resolved_paths": ["src/auth/middleware.rs", "src/auth.rs"],
"trace_chains": [
{
"mr_iid": 99, "mr_title": "Refactor auth", "mr_state": "merged",
"mr_author": "jdoe", "change_type": "modified",
"merged_at_iso": "...", "web_url": "...",
"issues": [42],
"discussions": [
{
"discussion_id": 123, "author_username": "reviewer",
"body_snippet": "...", "path": "src/auth/middleware.rs"
}
]
}
]
},
"meta": { "tier": "api_only", "total_chains": 3, "renames_followed": 1 }
}
related
Find semantically related entities via vector search.
| Flag | Type | Default | Purpose |
|---|---|---|---|
<QUERY_OR_TYPE> |
positional | required | Entity type (issues, mrs) or free text |
[IID] |
positional | — | Entity IID (required with entity type) |
-n, --limit |
int | 10 | Max results |
-p, --project |
string | — | Scope to project |
Two modes:
- Entity mode:
related issues 42— find entities similar to issue #42 - Query mode:
related "auth flow"— find entities matching free text
DB tables: documents, embeddings (vec0), projects
Requires: Ollama running (for query mode embedding)
Robot Output (entity mode)
{
"ok": true,
"data": {
"query_entity_type": "issue",
"query_entity_iid": 42,
"query_entity_title": "Fix SSO authentication",
"similar_entities": [
{
"entity_type": "mr", "entity_iid": 99,
"entity_title": "Refactor auth module",
"project_path": "group/repo", "state": "merged",
"similarity_score": 0.87,
"shared_labels": ["auth"], "shared_authors": ["jdoe"]
}
]
}
}
drift
Detect discussion divergence from original intent.
| Flag | Type | Default | Purpose |
|---|---|---|---|
<ENTITY_TYPE> |
positional | required | Currently only issues |
<IID> |
positional | required | Entity IID |
--threshold |
f32 | 0.4 | Similarity threshold (0.0-1.0) |
-p, --project |
string | — | Scope to project |
DB tables: issues, discussions, notes, embeddings
Requires: Ollama running
Robot Output
{
"ok": true,
"data": {
"entity_type": "issue", "entity_iid": 42,
"total_notes": 15,
"detected_drift": true,
"drift_point": {
"note_index": 8, "similarity": 0.32,
"author": "someone", "created_at": "..."
},
"similarity_curve": [
{ "note_index": 0, "similarity": 0.95, "author": "jdoe", "created_at": "..." },
{ "note_index": 1, "similarity": 0.88, "author": "reviewer", "created_at": "..." }
]
}
}