Spike. Detect signature drift / library misuse by parsing the external-symbol signatures the SCIP oracle pass already produces but discards.
Key finding: oracle/scip.rs::from_index parses only document.occurrences (+ def sites) and drops the document.symbols / index.external_symbols arrays — which carry SymbolInformation { documentation, signature_documentation } for dependency symbols. rag-rat already tags external call sites (oracle resolved-external, imports imported_external, the moniker). Connecting the two is the whole feature.
Deterministically catches: removed/renamed API, arity mismatch (call's N args vs current sig's M), deprecated-but-compiling usage, cross-version shape drift (re-index on lockfile change, diff sigs).
Honest caveat: the compiler already catches hard signature breaks at build for typed langs. Differentiated value: dynamically-typed langs, deprecation, inline agent context (the new signature at the call site), and it works on code that doesn't currently build.
Out of scope (semantic misuse — wrong order, missing await, unhandled error): not signature-shaped; surface the parsed doc as drive-by context anchored to the external moniker and let the agent reason — do NOT assert a verdict.
Thin slice: (1) parse external SymbolInformation → moniker-keyed side table; (2) check_library_usage MCP tool flagging removed/arity/deprecated only; (3) optionally auto-seed external-contract memories.
Ref: docs/plans/2026-06-14-agent-value-strategy.md §4b.
Spike. Detect signature drift / library misuse by parsing the external-symbol signatures the SCIP oracle pass already produces but discards.
Key finding:
oracle/scip.rs::from_indexparses onlydocument.occurrences(+ def sites) and drops thedocument.symbols/index.external_symbolsarrays — which carrySymbolInformation { documentation, signature_documentation }for dependency symbols. rag-rat already tags external call sites (oracleresolved-external,importsimported_external, the moniker). Connecting the two is the whole feature.Deterministically catches: removed/renamed API, arity mismatch (call's N args vs current sig's M), deprecated-but-compiling usage, cross-version shape drift (re-index on lockfile change, diff sigs).
Honest caveat: the compiler already catches hard signature breaks at build for typed langs. Differentiated value: dynamically-typed langs, deprecation, inline agent context (the new signature at the call site), and it works on code that doesn't currently build.
Out of scope (semantic misuse — wrong order, missing await, unhandled error): not signature-shaped; surface the parsed doc as drive-by context anchored to the external moniker and let the agent reason — do NOT assert a verdict.
Thin slice: (1) parse external
SymbolInformation→ moniker-keyed side table; (2)check_library_usageMCP tool flagging removed/arity/deprecated only; (3) optionally auto-seed external-contract memories.Ref:
docs/plans/2026-06-14-agent-value-strategy.md§4b.