finos / finos/architecture-as-code
[Track B] Capability convergence — validators, MCP, VS Code extension
- 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
Assessment
This issue has not been assessed yet.