Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>IC3 MonitoringAsCodeNew to Visual Studio Code? Get it now.
IC3 MonitoringAsCode

IC3 MonitoringAsCode

IC3 Platform MonitoringAsCode

|
8 installs
| (0) | Free
IC3 MonitoringAsCode authoring assistant for VS Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

IC3 MonitoringAsCode

VS Code authoring assistant for Microsoft.IC3.MonitoringAsCode C# definitions.

Current features:

  • Dashboard link checker — validates AddDashboardLink(...) paths against the configured Geneva dashboard tree, with diagnostics, inline decorations, hover info, autocomplete, and quick fixes.
  • .LastModified() auto-update — optionally stamps timestamp and author on save.
  • Agent tools — a set of Language Model tools (mac_listDiagnostics, mac_getSuggestedFixes, mac_applyFix, mac_verifyDiagnostics, mac_describeCapabilities) so GitHub Copilot Chat — and any other VS Code chat agent — can find, fix, and verify MaC problems on your behalf.

More MonitoringAsCode authoring helpers will be added here over time.

Install

From the Extensions view in VS Code, search for IC3 MonitoringAsCode and install. Or from the command line:

code --install-extension IC3PlatformMonitoringAsCode.ic3-monitoringascode

Marketplace listing: https://marketplace.visualstudio.com/items?itemName=IC3PlatformMonitoringAsCode.ic3-monitoringascode

Activation

No configuration is needed. The extension activates automatically when you open a C# file inside a properly-configured MaC project — i.e. one produced by MacConverter (or hand-set up to look the same). Everything just works.

How the Geneva source path is resolved

The extension walks up from the active C# file looking for a MonitoringAsCode.props and reads its <MaCOutputDir> — the same value the build uses to write Geneva JSON artifacts — so the extension and the build can never disagree about the path. The folder must contain a Dashboards/ subfolder for the dashboard link checker to activate. $(MSBuildThisFileDirectory) and $(MSBuildProjectDirectory) are the only MSBuild macros expanded; absolute and plain-relative paths also work. Any other unresolved $(...) macro causes the props file to be skipped (the walk continues further up the tree).

Features

Dashboard link checker

Validates AddDashboardLink("…") calls in C# against the dashboard JSON tree under the resolved Geneva source folder's Dashboards/ subfolder.

You'll see:

  • A red squiggle and ❌ decoration on any path that doesn't resolve to a dashboard JSON file under the configured root.
  • A green ✅ decoration when the path resolves.
  • Hover over the path to see the resolved dashboard file.
  • Autocomplete inside the string literal to pick from known dashboards.
  • A "Replace with: …" code action when the path differs only by case.

Toggle via ic3Mac.dashboardLinkChecker.enabled.

.LastModified() auto-update

When enabled, on save the extension rewrites the .LastModified("date", "author") argument with the current timestamp and the configured author.

Toggle via ic3Mac.autoUpdateLastModified; set the author via ic3Mac.author.

Agent tools

The extension contributes five VS Code Language Model tools that let chat agents (GitHub Copilot Chat and any other LM-tool-aware agent) discover, fix, and verify MaC problems without you having to copy-paste filenames or quick-fix titles. They are registered as soon as the extension activates — no configuration needed.

Tool What it does
mac_describeCapabilities Self-describing surface: which diagnostic categories, fix kinds, and tool versions are available. Agents should call this first to avoid stale assumptions.
mac_listDiagnostics Lists current MaC warnings/errors (optionally scoped to a file or category). Returns a stable id per diagnostic.
mac_getSuggestedFixes Returns ranked fix candidates for the given diagnostic ids, plus a safety signal (auto / review / ask) so the agent knows whether to apply directly or ask you.
mac_applyFix Applies the chosen {diagnosticId, fixId} pairs. Saves the modified files to disk by default so git diff reflects the changes immediately (pass save: false to keep buffers dirty). Always prompts for confirmation before editing.
mac_verifyDiagnostics Re-runs analysis on the affected files and reports which ids are resolved, still present, or newly appeared.

Using them from chat

In most cases you don't need to do anything special — ask in natural language and the agent will pick the right tools:

Fix the broken dashboard links in this project.

The agent will typically chain mac_listDiagnostics → mac_getSuggestedFixes → mac_applyFix → mac_verifyDiagnostics, asking you to disambiguate when a fix is safety: "review" or "ask".

You can also reference a tool explicitly with # to force the agent to use it:

#macDiagnostics what's broken under Monitors/?

#macFixes for the diagnostics above, then #macApply the top suggestion for each.

The reference names (macCapabilities, macDiagnostics, macFixes, macApply, macVerify) are listed in the chat tool picker.

Using them from a custom agent

If you're building your own agent / chat extension, invoke the tools via vscode.lm.invokeTool('mac_listDiagnostics', { input: { /* see schema */ } }, token). Every tool returns a single JSON LanguageModelTextPart with shape { ok: true, data: ... } on success or { ok: false, error: { code, message, details? } } on failure — use the diagnostic / fix ids as opaque handles across calls.

Configuration

Settings contributed under ic3Mac.*:

Setting Default Description
ic3Mac.dashboardLinkChecker.enabled true Enable dashboard link validation, hover info, autocomplete, and quick fixes.
ic3Mac.autoUpdateLastModified false Automatically update .LastModified() timestamp and author on save.
ic3Mac.author "" Author name for .LastModified() updates. Falls back to git config user.name.

The Geneva source path itself is not a setting — see Activation.

Reporting issues

File a bug or feature request against the ic3_monitoring repository.

Contributing

See CONTRIBUTING.md for build, debug, packaging, and publish instructions.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft