finos / finos/architecture-as-code

[Track B] Capability convergence — validators, MCP, VS Code extension

Open
#2,650 0 comments 0 reactions 0 assignees View on GitHub
calm-hub enhancement shared validator vscode
Dominant language
TypeScript
Stars
399
Forks
138
Avg merge
2d 14h
Merged PRs (30d)
37

Description

# [Track B] Capability convergence — validators, MCP, VS Code extension

_Sub-task of #2600 — Track B. Supersets #2562 (MCP)._

## Goal

Converge platform-wide duplicated capabilities onto single implementations: one CALM type model + validator, one MCP server, one VS Code extension.

## Scope (B1–B4 from #2600)

- [ ] **B1.** `calm-guard` consumes in-repo `@finos/calm-models` + shared validation library **in-process** (not by shelling out to `@finos/calm-cli`). Retire bespoke Zod model.
- [ ] **B2.** **[Highest-risk]** Fold `@calmstudio/calm-core`'s Ajv + semantic rules into `@finos/calm-shared` — **additive**, preserving:
- Orphan/dangling/self-loop checks
- Spectral + document-position enrichment
- No net loss of coverage (parity-gated tests required before removing `calm-core`'s engine)
- [ ] **B3.** **MCP consolidation per #2562 Option B** — see linked discussion issue for MCP-vs-skills decision:
- Rename `@calmstudio/mcp` → `@finos/calm-mcp`
- Add `hub_*` tools wrapping CALM Hub REST API
- Deprecate then remove the Java MCP in CALM Hub (REST API unchanged)
- *(The relocation #2562 proposes is subsumed by Track A's A3.)*
- [ ] **B4.** Remove the studio VS Code extension:
- Preview superseded by FINOS `CALM Tools`
- MCP bundling superseded by published `@finos/calm-mcp`
- "Open in editor" capability replaced by Hub-initiated launchers (C7)

## Testing Strategy

- **B2 parity gate:** unified `shared` validator must reproduce every existing `calm-core` semantic check + retain Spectral + position enrichment before `calm-core`'s engine is removed
- **B3:** MCP tool-parity tests between old CALM Hub Java `@Tool` methods and new `hub_*` tools; CALM Hub REST API unchanged
- **B4:** test that FINOS extension registers `@finos/calm-mcp` without bundling it

## Why this matters

Removes:
- Three CALM type models / validators (B1, B2)
- Two non-interoperable MCP servers (B3)
- Two VS Code extensions, one bundling its own MCP — supply-chain liability for regulated users (B4)

## Out of scope

- Studio editor behaviour (Track C)
- Hub-initiated deep-link launchers (Track C — C7)
- Diagram renderer unification (deferred per #2600 C9)

## References

- Parent: #2600
- Subsumes / supersedes: #2562 (MCP consolidation)
- Depends on: Track A (A3 relocation)
- MCP-vs-skills decision: #2648
- Track A (structural): #2649
- Blocks: C4–C7 indirectly (Studio integration depends on `@finos/calm-mcp` shape)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.