Skip to content

Precise navigation with SCIP

Precise navigation is an optional accelerator. Frigg’s source-backed heuristic navigation remains valid when no precise artifacts or generator tools are available.

Place SCIP protobuf or Frigg JSON precise-graph artifacts under:

.frigg/scip/

Frigg rejects artifacts that resolve outside the repository through symlinks or escaping paths.

Full SCIP document ingest is enabled by default. The explicit equivalent is:

Terminal window
frigg index --full-scip-ingest

Set FRIGG_FULL_SCIP_INGEST=false only when reduced ingest is intentional.

Frigg can discover and run precise generators for:

  • Rust
  • Go
  • TypeScript and JavaScript
  • PHP
  • Python
  • Kotlin in matching Gradle/KTS workspaces

Generators are host-owned tools. Frigg discovers repository-local and PATH candidates but does not install language servers, compilers, package managers, or SCIP generators.

Generation can use a filtered workspace under .frigg/tmp/precise-generation/ and writes artifacts under .frigg/scip/. PHP generation can also report repository-local patch risk for compatible vendor tooling. Inspect the generator status before enabling precise generation in automation.

Configure generator and ingest behavior in .frigg/precise.json:

{
"disabled_generators": ["php"],
"generation_excludes": ["vendor/**", "node_modules/**", "dist/**"],
"ingest_excludes": ["generated/**"],
"generator_extra_args": {
"rust": ["--features", "docs"]
}
}
Field Effect
disabled_generators Disable selected automatic generator families.
generation_excludes Remove paths from filtered generator input.
ingest_excludes Ignore matching paths while ingesting artifacts.
generator_extra_args Append arguments for a selected generator.

workspace exposes compact precise status and detailed task state. The aggregate state is:

State Meaning
ok Usable precise coverage is available.
partial Some precise data is usable, but coverage is incomplete.
failed Generation or ingest reached a terminal failure.
unavailable No usable precise source is available. Heuristic navigation remains the fallback.

Generation lifecycle phases distinguish running, timeout, and terminal failed outcomes. Failure details can include the tool, failure class, summary, and recommended action. Generator scorecards also report expected artifact paths, artifact counts, duration, and repository-local writes, executions, or patch risk.

Do not block the default search loop on precise generation. Use heuristic results while a generator runs, and verify incomplete or provisional navigation with exact search and source reads.

Common failure classes include missing tool, timeout, environment failure, invalid output, upstream tool failure, and tool panic. Follow the returned recommendation:

  • install the missing host tool
  • check its environment or runtime
  • rerun frigg index
  • use heuristic mode while the external tool is unavailable
  • ../frigg/README.md
  • ../frigg/docs/operator-runbook.md
  • ../frigg/crates/cli/src/cli_args.rs
  • ../frigg/crates/cli/src/mcp/types/workspace.rs
  • ../frigg/crates/cli/src/mcp/server/precise_graph/config.rs
  • ../frigg/crates/cli/src/mcp/server/precise_graph/generation.rs
  • ../frigg/crates/cli/src/mcp/server/precise_graph/ingest.rs
  • ../frigg/crates/cli/tests/security.rs