All notable changes to the Monte Carlo Agent Toolkit plugin for OpenCode will be documented in this file.
Format follows Keep a Changelog. This project uses Semantic Versioning.
- New
/manage-macskill: create, edit, validate, and import Monitors-as-Code YAML files — CLI-first: usesmontecarlo monitors compileto validate andapplyto deploy; falls back to MC MCP tools then manual validation - Schema validation gates injected into
monitoring-advisorandtune-monitor— agents now validate generated YAML against the published schema before presenting it to the user
- Add
MC_PREVENT_HOOKS_DISABLED=1env var to disable prevent hooks (block-edit, pre-commit, turn-end) for users who want the skills without the gating behavior.
- Clarify telemetry disclosure in plugin README: explicit opt-out instructions and confirmation that no prompts/arguments/code are sent.
- Polish
plugin.jsonmetadata for Anthropic plugin directory submission (expanded description,author.email,homepage). - Add
"category": "monitoring"to the marketplace.json entry.
- Instrument Agent skill — walks Monte Carlo Agent Observability customers through instrumenting a new Python AI agent for Monte Carlo. Detects AI libraries in the codebase, proposes the Monte Carlo OpenTelemetry SDK install with matching instrumentors, generates tracing setup tailored to serverless or long-running runtimes, suggests where workflow and task decorators belong, and verifies traces appear in Monte Carlo. Always asks before editing any file. Trigger by asking to "instrument my agent" or "set up Monte Carlo tracing".
- 1b2f114 fix(hooks): replace lib symlinks with real file copies (#82)
- 39c4dd6 AI-256: analyze-root-cause runs TSA first when an incident UUID is present (#79)
- Internal tracking only: MCP route updated to
/mcp/toolkit.
- Correct
alert_assessmentoutput field descriptions in automated-triage skill: replace the stale "natural-language summary" reference with explicitalert_description(what happened) andtriage_summary(scoring reasoning) fields, and clarify thatalert_descriptionis used in triage comments for untroubleshot alerts.
- Version sync with claude-code (welcome-hook removal). No functional changes here.
/mc-validate runsubcommand — extends the Monte Carlo Prevent skill's validation workflow to actually execute the generated queries./mc-validatealone still generates the validation SQL as before;/mc-validate runadditionally builds the changed model into your dev database (dbt build --select <model>) and runs the validation queries through the Snowflake MCP, reporting per-query verdicts against each query's "What to look for" guidance.- Workflow 4 (sandbox build) in the Prevent skill — parses
profiles.yml, classifies the active database as personal/dev/shared-dev/prod/unknown, detects hard-codeddatabase:kwargs in model{{ config() }}blocks, and runsdbt build --select <model>. Hard-stops against shared prod. Skipped automatically for YAML-only diffs. - Workflow 5 (execute validation) in the Prevent skill — substitutes
<YOUR_DEV_DATABASE>with the user-confirmed value, shows the full execution plan (including any literal prod databases referenced for parity checks), enforces read-only before execution, runs each query via Snowflake MCP, and produces ✅/⚠️ /🔴 per-query verdicts plus a consolidated summary. All execution-time scratch output lives undervalidation/run/. - Five new sandbox helper scripts under
skills/prevent/scripts/sandbox/:parse_profiles.py,classify_sandbox.py,detect_hardcoded_db.py,substitute_placeholders.py,readonly_check.py. All independently tested and composable via CLI-emitted JSON. - Session markers
MC_BUILD_RANandMC_VALIDATE_RANfor hook coordination across the new workflows.
- Workflow 3 (generate validation queries) now always ends by offering
/mc-validate runas the next step, regardless of how it was triggered.
- Slim the prevent skill: delegate Workflow 1 (table health check) to
monte-carlo-asset-healthand Workflow 6 (add monitor) tomonte-carlo-monitoring-advisor. Remove the alert-triage workflow entirely. - Renumber the impact-assessment and validation-query workflows to W2 and W3. Workflow numbers 4 and 5 are reserved for sandbox-build and execute-validation steps from the in-flight
mc-validate runwork. - Single-line
descriptionfield inskills/prevent/SKILL.mdper the ≤250-char authoring rule. - Drop alert-mutation tools (
updateAlert,setAlertOwner,createOrUpdateAlertComment) from the prevent skill's MCP tool table — those belong to the incident-response peer skill.
- Clear the
MC_MONITOR_GAPcache marker after the post-edit / pre-commit prompt has been delivered, so subsequent prompts don't re-nag for the same gap (Python hooks and OpenCode TS hooks).
monitoring-advisor: hardened thecreate_*_monitor_macguidance against the top failure modes seen in production over the last 7 days (70 events across 14 categories). Changes spandata-monitor-creation.md(domain-uuid resolution, warehouse-UUID requirement, column-verification gate, enum discipline, table existence check) and the per-type references (alert_conditionshape constraints indata-validation-monitor, metric-name and operator-enum corrections indata-metric-monitor/data-custom-sql-monitor,change-threshold documentation indata-custom-sql-monitor, datetime-type requirement foraggregate_time_field, arg-shape constraints indata-table-monitoranddata-validation-monitor, predicate/field-type semantics indata-validation-monitor,threshold_valuerequirement clarification indata-comparison-monitor). See PR #66 for the full error → fix mapping.
scripts/bump-version.shnormalizes drifted plugin versions. Before this release, claude-code was at 1.8.1 while codex/copilot/cursor/opencode were stuck at 1.7.0 because the script's sed only matched the claude-code version. The non-monotonic 1.7.0 → 1.8.2 jump on those four plugins is intentional — they caught up to the canonical version in this PR. Future bumps stay in sync automatically.
- feat(automated-triage): add mark_event_as_normal guidance and scope interactive triage by domain/audience
- Add tune-monitor skill for monitor noise reduction analysis
- Add connection-auth-rules skill for building Connection Auth Rules configs
- Consolidate
monitor-creation,agent-monitoring, andmonitoring-advisorinto a singlemonitoring-advisorskill - Add
data-monitor-creation.mdandagent-monitor-creation.mdmid-level creation procedures - Move per-type references with
data-/agent-prefixes and distribute constraints - Fix MCP tool names to snake_case across all skill docs
- Update trigger evals: direct monitor creation and agent monitoring now trigger this skill
- Add asset-health skill (#33)
- Add AI agent monitoring to monitoring-advisor skill (#48)
- c4842c4 fix: add missing skill registrations — READMEs, symlinks, and sync rules (#46)
- 647669a feat: add automated-triage skill (#40)
- 9477ae1 feat: add analyze-root-cause skill for incident investigation (#37)
- f46cdfb Add remediation skill for investigating and fixing data quality alerts (#39)
- c5dd6a5 feat: add agent-monitoring skill and plugin (AI-167) (#35)
- 9884442 feat: add storage cost analysis and performance diagnosis skills (#36)
- f40f262 fix: add --force flag to release script to skip branch check
- 9155214 fix: release script PR flow + awk multiline bug
- ad388c7 fix: register monitoring-advisor as plugin command + add trigger evals (#38)
- 9147282 K2-287: add monitoring-advisor skill (#34)
- 930a745 feat: add prevent trigger evals and shared eval runner (#29)
- cf09cb8 fix: add missing name field to generate-validation-notebook SKILL.md (#32)
- 44f85ab Add monitor-creation skill and wire into all editor plugins (#31)
- 6bc245d fix: correct marketplace add command to use repo name (#30)
- e8597c9 fix: improve release script post-run message (#28)
- Restructure from per-skill
@montecarlo/opencode-preventto unified@montecarlo/mc-agent-toolkitplugin - Plugin directory is now
plugins/opencode/(wasplugins/opencode/prevent/) - Prevent feature module namespaced under
src/prevent/for multi-skill support - Top-level
src/index.tsentry point registers all feature modules
Existing users should re-run the install script to pick up the new structure.
History prior to the unified toolkit restructure (when this was @montecarlo/opencode-prevent):
- TypeScript plugin porting all 4 Claude Code prevent hooks to OpenCode's event system:
tool.execute.before— pre-edit gate blocking dbt model edits until impact assessment runstool.execute.after— post-edit tracking accumulating edited table names per turntool.execute.before(bash) — pre-commit gate prompting for validation on staged dbt filessession.idleevent — turn-end prompt for validation queries and monitor coverage
apply_patchsupport with multi-file patchText parsing- Install script (
install.sh) that sets up plugin, skill, command, and MCP config in one step /mc-validateslash command for generating validation queriesopencode.jsontemplate with Monte Carlo MCP server config and plugin registration- 84 unit tests covering cache, detection, and all hook behaviors
- Plugin must be explicitly registered in
opencode.json"plugin"array (OpenCode does not auto-discover subdirectory plugins) - Package.json
exportsfield required for OpenCode to resolve the entry point ("."and"./server") - Use
writeSecure(O_TRUNC) instead ofappendSecure(O_APPEND) for turn files — O_APPEND files disappeared under Bun on macOS