Overview
Format compound search results for terminal and JSON output.
Module: crates/rskim-search/src/compound/output.rs (~200 lines)
Terminal format
```
src/auth/handler.rs:42 [0.87] FunctionSignature
pub async fn handle_auth(req: AuthRequest) -> Result { /* ... */ }
src/models/user.rs:15 [0.72] TypeDefinition
pub struct AuthRequest { ... }
```
JSON format
Valid JSON array with all fields: file_path, line, score, field, snippet, layers_matched.
Dependencies
Acceptance Criteria
Implementation Guidelines Checklist
Wave 3g (#199) follow-up:
#199 ships file-level AST-only output (matched pattern name + description + file path + AST score; no line numbers). Precise line spans require re-parsing each matched file because the AST index is file-level (no stored line offsets). #201 should add the line-span re-parse to produce per-match line numbers/snippets for AST-only results.
Overview
Format compound search results for terminal and JSON output.
Module:
crates/rskim-search/src/compound/output.rs(~200 lines)Terminal format
```
src/auth/handler.rs:42 [0.87] FunctionSignature
pub async fn handle_auth(req: AuthRequest) -> Result { /* ... */ }
src/models/user.rs:15 [0.72] TypeDefinition
pub struct AuthRequest { ... }
```
JSON format
Valid JSON array with all fields: file_path, line, score, field, snippet, layers_matched.
Dependencies
Acceptance Criteria
Implementation Guidelines Checklist
Wave 3g (#199) follow-up:
#199 ships file-level AST-only output (matched pattern name + description + file path + AST score; no line numbers). Precise line spans require re-parsing each matched file because the AST index is file-level (no stored line offsets). #201 should add the line-span re-parse to produce per-match line numbers/snippets for AST-only results.