Skip to content
CAI
Software that uses CAICheck a score

dev-cycles/contextive

65.6

Adequate · 21 September 2026

2.7k

lines of production code

F#

with Kotlin

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Contextive is a cross-platform development tool that provides glossary-based autocomplete and hover definitions for software projects. It consists of a core F\# library for term normalization and glossary parsing, a language server for code intelligence, and native extensions for VS Code, Visual Studio, and IntelliJ. The system manages multi-root workspaces, remote file imports, and automated releases, ensuring consistent term definitions across diverse IDE environments.

How it got here

2021–2023 — Language server rewrite and modernization

21 changes.

This period focused on a complete rewrite of the language server in F\#, introducing a new architecture for managing glossaries and improving performance. The team also modernized the development environment with Nix/devenv, automated the release process, and significantly expanded test coverage for both the core logic and the VS Code extension.

2024–2025 — multi-IDE plugin and test expansion

12 changes.

This period focused on expanding the Contextive ecosystem by adding official plugins for IntelliJ and Visual Studio, alongside an initial CLI scaffolding. The work was supported by comprehensive test coverage for the language server and the creation of test fixtures for various domains.

Features

Add Visual Studio extension for Contextive

The Visual Studio extension for Contextive is now available, allowing developers to use the tool within the Visual Studio IDE. The extension integrates with the Visual Studio Extensibility model, launching the Contextive Language Server to provide hover-based definitions and auto-complete from a project glossary. This brings the same domain-specific language support found in the VS Code version to Visual Studio users.

src/visualstudio/contextive · high confidence

Add build and publish pipeline for the IntelliJ plugin

A new build script (build.fsx) has been added for the IntelliJ plugin, introducing a CI pipeline that handles signing the plugin and uploading it as a GitHub release asset. The pipeline also includes a 'Publish Package' stage that triggers the Gradle 'publishPlugin' task, enabling the automated publication of the plugin to the IntelliJ marketplace when a new version is released.

src/intellij · high confidence

Add build script for Visual Studio extension

A new build script (build.fsx) has been added to automate the build, packaging, and publishing of the Visual Studio extension. The script handles copying the language server artifact, downloading release assets, running dotnet publish, and uploading the .vsix file to GitHub releases. It also includes a stage to publish the extension to the Visual Studio Marketplace using the vsixPublisher.exe tool.

src/visualstudio · high confidence

Add development environment configuration with devenv

The repository now includes a standardized development environment setup using devenv (Nix-based). This includes devenv.nix, devenv.yaml, and devenv.lock files that define the required tools (dotnet, node, java) and tasks (dotnet tool restore, npm install) to bootstrap the project. A start.sh script is provided to enter the development shell. This change simplifies local development setup by ensuring all contributors use a consistent, reproducible environment.

(repo-wide) · high confidence

Automated publishing to Open-VSX Marketplace

The VS Code extension build pipeline now automatically publishes the extension to the Open-VSX Marketplace in addition to the Microsoft VS Marketplace. This ensures that users can discover and install the extension directly from the Open-VSX registry, providing an alternative source for the extension.

src/vscode · high confidence

Automated release process and versioning

The repository has adopted an automated release workflow using Semantic Release. This introduces a new \.releaserc.json\ configuration that manages versioning for the language server, Visual Studio extension, and IntelliJ plugin, while also generating changelogs and updating documentation links. The release process is orchestrated by a new \release.fsx\ script that validates build statuses before triggering the release pipeline.

src · high confidence

Contextive VS Code extension structure and build configuration

The Contextive VS Code extension now includes standard project scaffolding files: a .gitignore and .vscodeignore to manage build artifacts and test files, a webpack configuration to bundle the extension's source code, and a test-specific webpack config for running VS Code extension tests. Additionally, the extension's README and CHANGELOG are present, providing users with installation instructions, feature overviews, and a detailed history of past updates and bug fixes.

src/vscode/contextive · high confidence

Initial scaffolding for the Contextive CLI tool

This change introduces the initial structure for the Contextive CLI, including the main program entry point, a placeholder check module, and a basic test suite using Expecto. It also adds a build script to automate building, testing, and releasing the CLI tool, alongside shared CI configuration files for the CLI and core components.

src/cli · high confidence

IntelliJ plugin introduces automatic language server download and background execution

The IntelliJ plugin now automatically downloads the Contextive language server if it is not already present on the local system. This download is performed in the background to avoid blocking the IDE, and a progress indicator is shown to the user during the process. The plugin also ensures the language server is activated for all projects, allowing it to scan the project for glossary files.

src/intellij/contextive/src · high confidence

IntelliJ plugin project structure and documentation added

The Contextive IntelliJ plugin project has been initialized with a standard Gradle build structure, including a .gitignore file, Gradle wrapper scripts (gradlew, gradlew.bat), and a Nix shell configuration for Java 21. A comprehensive README.md was added, detailing the plugin's features (auto-complete, hover definitions, multi-root workspaces), supported IDEs, and compatibility notes for IntelliJ Platform 2024 and 2025. The documentation also links to external guides for setting up glossaries and defines known issues such as auto-completion limitations and Rider compatibility constraints.

src/intellij/contextive · high confidence

Introduce core data models for glossary files and contexts

Added new F\# modules (File.fs, GlossaryFile.fs) defining the core data structures for the application. This includes the Term, Context, and GlossaryFile types, along with a YAML deserializer that validates and indexes terms and their aliases for efficient lookup. The implementation ensures that aliases are properly indexed alongside main terms, and null-safety is handled for context and term lists.

Contextive.Core · high confidence

Introduce core modules for term normalization and glossary schema validation

The Contextive.Core library now includes new modules for handling term normalization and glossary file schema validation. Term normalization is split into a dedicated module that processes terms through lowercasing, singularization, and Unicode normalization (including specific handling for German characters and combining marks). Additionally, a new CandidateTerms module handles tokenization and candidate extraction, with specific support for CJK (Chinese, Japanese, Korean) characters. A GlossaryFileSchema module defines the JSON schema for glossary files, and a ValidatingDeserializer module enforces data annotations on deserialized objects, ensuring that glossary files meet structural requirements.

src/core/Contextive.Core · high confidence

Behavioural changes

Add support for multi-root workspaces with a shared definitions file

The VS Code extension now supports multi-root workspaces, allowing users to work across multiple project roots that share a common set of definitions. This change introduces a new middleware component (Middleware.fs) that handles workspace configuration, enabling the extension to manage settings and state across different workspace roots simultaneously.

Contextive.VsCodeExtension · medium confidence

Centralized CI build and publish logic

The CI pipeline for .NET components now uses a shared \common.fsx\ script to handle build, test, and publish stages. This refactoring introduces a \Fun.Build\-based approach for managing .NET builds and asset uploads, ensuring consistent behavior across components and fixing issues with version numbers and working directories.

src/ci · medium confidence

Complete rewrite of the language server implementation

The language server has been completely rewritten in F\#, introducing a new architecture for managing glossaries, including support for remote file imports, hierarchical folder scanning, and case-sensitive completion. Users will see improved performance for large glossaries, better handling of special characters in file paths, and more robust error handling for missing configuration files.

src/language-server/Contextive.LanguageServer · high confidence

Language server build process refactored into Fun.Build scripts

The build and release process for the language server has been restructured using Fun.Build scripts (app.fsx, ls-build.fsx). This change introduces a new 'Check Release' stage that runs the language server with a timeout to verify it starts successfully, and updates the pipeline to use dotnet local tools for dependency management and testing.

src/language-server · medium confidence

Refactor VS Code extension into modular F\# files

The VS Code extension source code has been refactored from a single file into multiple modular F\# files (Extension, HoverContent, Initialize, MultiRoot, PromiseBuilderUtils, PromiseUtils, ThenableUtils, Waiter, and LanguageServer bindings). This change improves code organization and maintainability, with specific modules handling the language client lifecycle, multi-root workspace path resolution, and promise utilities.

src/vscode/contextive/src · medium confidence

Removal of legacy .devcontainer configuration files

The legacy .devcontainer setup has been removed, including the Dockerfile, devcontainer.json, setup\_tools.sh, and \_dotnet\_bash\_complete.sh. This eliminates the previous containerized development environment configuration that relied on .NET 5.0 and specific tooling like dotnet-suggest and paket.

.devcontainer · high confidence

Fixes

Updated Gradle wrapper to version 9.1.0

The Gradle wrapper has been updated to use Gradle 9.1.0, ensuring the project uses a consistent and supported version of the build tool. This change aligns the build environment with the latest Gradle release, which may include performance improvements and bug fixes.

src/intellij/contextive/gradle · medium confidence

Test coverage

Add end-to-end tests for single-root workspace scenarios; Added component tests for language server modules; Added end-to-end tests for language server features; Added end-to-end tests for multi-root workspace support; Added performance test fixtures for large glossaries; Added test fixture for marketing domain concepts; Added test fixtures for Payments and Shipping domains; Added test helper utilities for the VS Code extension; Added test helpers for the language server; Added test project entry point and dependencies; Added test suite for core normalization and candidate term logic; Consolidate and enable VS Code extension tests in the test explorer; Updated test fixtures for Cargo and Billing domains.

Dependencies

Updated dependencies across the project

This update refreshes the dependency trees for the documentation site, CI tools, .NET projects, and VS Code extension. The docs site now uses Astro 5.5.2 and Starlight 0.32.2. The CI tooling includes markdown-it 14.0.0 and semantic-release-replace-plugin 1.2.7. All .NET projects (CLI, Core, Language Server, and VS Code extension) have been migrated to target .NET 8.0. The VS Code extension has been updated to require VS Code 1.85.0 or later and uses vscode-languageclient 9.0.1. The IntelliJ plugin build has been updated to use Kotlin 2.2.20, the IntelliJ Platform 2025.1.5.1, and Java 21.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 60 → 66 (+5.7)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 96 → 97 (+0.6)
  • Maturity 74 → 78 (+3.4)
  • Readiness 52 → 57 (+4.9)
  • Security 50 → 59 (+9.1)

Resolved (92)

  • A short CI/build note describing build.fsx per-component but no installation or usage guidance for the tooling itself. (src/ci/README.md)
  • Critical CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • Dependency hygiene not measured — no packages were read
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • …and 72 more

New (97)

  • Critical CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/ci/semantic-release-markdown-to-html/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • High CVE: [GHSA redacted] (src/vscode/contextive/package-lock.json)
  • …and 77 more

Architecture

  • Unchanged — 0 containers · 2 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

dev-cycles/contextive was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 382d6d071a91a10c89c4872c146a6eda0836ba35 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.