Offline RF signal reconnaissance and triage from capture files (defensive, lawful-by-design). Detects, fingerprints, and classifies RF emitters from standard capture files using pure-Python DSP.
Single tool 'analyze_capture' has a complete input schema with 5 parameters, all typed and described. Tool description is clear (127 chars, within 10-1024 range) and explains what it does. However, output schema is not documented, the response structure (content, isError, structuredContent) is inferred from code but not formally declared in the tool definition. Parameter descriptions are adequate but lack constraint details (e.g., valid scenario values, nperseg range, threshold_db bounds). No error recovery guidance. Naming is verb-noun compliant but generic ('analyze_capture' could be more specific like 'analyze_rf_capture'). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite being read-only.
Analyze an RF capture file offline and return structured emitter findings (detection, classification, decision trace, interference flags). Defensive analysis only; no payload demodulation.
Output schema not documented. Response structure (content, isError, structuredContent) is inferred from code but not formally declared in tool definition. LLMs cannot plan downstream operations without knowing return fields.
Parameter constraints missing. 'scenario' accepts 8 enum values (noise, tone, wifi, drone-link, ble, gnss, sweep, barrage) but not declared as enum in schema, only mentioned in description. 'nperseg' and 'threshold_db' lack min/max bounds. LLMs may pass invalid values.
No error recovery guidance. Tool catches exceptions and returns isError=true with plain text message, but does not guide LLM on next steps (e.g., 'File not found. Check path or try scenario=noise to generate synthetic data.').
Tool annotations missing. 'analyze_capture' is read-only and idempotent but lacks readOnlyHint and idempotentHint annotations. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
Parameter 'path' and 'scenario' are mutually exclusive but not formally declared. Schema should use oneOf or explicit description stating exactly one is required.