Skip to content

feat(calm-suite): add CALM Guard and CALM Studio projects#2329

Merged
rocketstack-matt merged 10 commits intofinos:mainfrom
rocketstack-matt:feat/add-calm-suite
Apr 11, 2026
Merged

feat(calm-suite): add CALM Guard and CALM Studio projects#2329
rocketstack-matt merged 10 commits intofinos:mainfrom
rocketstack-matt:feat/add-calm-suite

Conversation

@rocketstack-matt
Copy link
Copy Markdown
Member

@rocketstack-matt rocketstack-matt commented Apr 11, 2026

Description

Adds the CALM Suite projects (CALMGuard and CALMStudio) into the monorepo under calm-suite/ as proposed in #2320.

  • Clones from finos-labs/dtcch-2026-opsflow-llc (calm-guard) and opsflo/calmstudio (calm-studio)
  • Cleans up both projects for monorepo standards: removes duplicate governance/legal files, CI workflows, git hooks, lockfiles, hackathon artifacts, and screenshots
  • Migrates CI workflows to monorepo root (build-calm-guard.yml, build-calm-studio.yml, build-calm-studio-desktop.yml, automated-release-calm-studio.yml)
  • Adds calm-suite to commitlint.config.js scope-enum and .github/CODEOWNERS
  • Updates README.md projects table with @opsflowanoop, @gjs-opsflo, and @eddie-knight as maintainers
  • Renames CLAUDE.md to AGENTS.md per project standards, adds new CLAUDE.md files pointing to them
  • Fixes pre-existing recharts type error in calm-guard
  • Updates root .gitignore with patterns for Next.js, SvelteKit, Tauri/Rust, Playwright, and Docusaurus sub-projects

Both projects currently use pnpm internally. The CI workflows install pnpm and use working-directory scoping as a pragmatic first step.

Follow-up issues

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • 🔧 Chore (maintenance, dependencies, CI, etc.)

Affected Components

  • CI/CD
  • Dependencies

Commit Message Format ✅

All commits use feat(calm-suite):, chore(calm-suite):, fix(calm-suite):, or fix(ci): scopes following conventional commit format.

Testing

  • I have tested my changes locally
  • All existing tests pass

Monorepo (npm workspaces):

  • npm run build — all existing workspaces pass
  • npm run lint — pass (warnings only, no errors)
  • npm test — all existing workspaces pass

calm-guard (pnpm):

  • pnpm lint — pass
  • pnpm typecheck — pass
  • pnpm test:run — 111 tests pass
  • pnpm build — pass

calm-studio (pnpm):

Checklist

  • My commits follow the conventional commit format
  • I have updated documentation if necessary
  • My changes follow the project's coding standards

Closes #2320

Add calm-suite directory containing CALMGuard (from finos-labs) and
CALMStudio (from opsflo) as proposed in finos#2320. Rename existing CLAUDE.md
files to AGENTS.md per project standards and add new CLAUDE.md files
pointing to them. Update README.md projects table and CODEOWNERS with
@opsflowanoop, @gjs-opsflo, and @eddie-knight as maintainers.
Migrate CI workflows to monorepo root:
- build-calm-guard.yml (lint, test, build)
- build-calm-studio.yml (build, lint, test, e2e)
- build-calm-studio-desktop.yml (Tauri cross-platform build)
- automated-release-calm-studio.yml (multi-package semantic release)

Remove files superseded by monorepo root:
- .github/ directories (CI, templates, CODEOWNERS, CoC)
- .husky/ directories (root husky handles hooks)
- Legal/governance duplicates (LICENSE, NOTICE, CONTRIBUTING,
  SECURITY, CODE_OF_CONDUCT, MAINTAINERS, CHANGELOG)
- pnpm-lock.yaml, .npmrc, .gitignore, commitlint.config.cjs
- .reuse/, LICENSES/ (calm-studio REUSE metadata)
- .planning/ directories

Remove hackathon artifacts and screenshots:
- calm-guard: PDF presentation, PNGs, submission docs
- calm-studio: 8 AWS diagram PNGs

Update root .gitignore with patterns for new tech stacks:
- Next.js (next-env.d.ts, .next/)
- SvelteKit (.svelte-kit/)
- Tauri/Rust (src-tauri/target/, src-tauri/gen/)
- Playwright (playwright-report/, test-results/)
Remove explicit type annotation on Tooltip formatter callback that
was incompatible with the recharts ValueType union. Let TypeScript
infer the parameter type from the generic instead.
Add patterns for pnpm lockfiles (until npm workspace migration),
SvelteKit build output, Docusaurus sub-project artifacts, and
TypeDoc generated API docs.
Copilot AI review requested due to automatic review settings April 11, 2026 09:21
@rocketstack-matt rocketstack-matt requested a review from a team as a code owner April 11, 2026 09:21
Add @rocketstack-matt, @markscott-ms, and @jpgough-ms as code owners
for the calm-suite directory alongside the Opsflow maintainers.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds CALM Suite projects (CALMGuard + CALM Studio) into the monorepo and wires them into repo standards (CI, ownership, docs). The included CALMGuard changes add a Next.js dashboard app with agent-driven architecture/compliance analysis, streamed events UI, and supporting API routes + tests.

Changes:

  • Adds CALMGuard app (UI, agents, API routes, graph visualization) and CALM Studio integration.
  • Introduces monorepo CI workflows for CALMGuard/CALM Studio and updates CODEOWNERS/README project listings.
  • Adds skill guides, agent YAML configs, and expands Vitest coverage for CALM parsing + learning utilities.

Reviewed changes

Copilot reviewed 138 out of 536 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
calm-suite/calm-guard/src/lib/agents/architecture-analyzer.ts New agent: architecture analysis w/ SSE events + retries
calm-suite/calm-guard/src/components/ui/tooltip.tsx New shadcn tooltip wrapper
calm-suite/calm-guard/src/components/ui/tabs.tsx New shadcn tabs wrapper
calm-suite/calm-guard/src/components/ui/sonner.tsx New toaster wrapper (theme-aware)
calm-suite/calm-guard/src/components/ui/skeleton.tsx New skeleton component
calm-suite/calm-guard/src/components/ui/separator.tsx New separator component
calm-suite/calm-guard/src/components/ui/select.tsx New select component
calm-suite/calm-guard/src/components/ui/scroll-area.tsx New scroll-area component
calm-suite/calm-guard/src/components/ui/odometer-score.tsx New animated compliance score UI
calm-suite/calm-guard/src/components/ui/label.tsx New label component
calm-suite/calm-guard/src/components/ui/input.tsx New input component
calm-suite/calm-guard/src/components/ui/dialog.tsx New dialog component
calm-suite/calm-guard/src/components/ui/checkbox.tsx New checkbox component
calm-suite/calm-guard/src/components/ui/card.tsx New card components
calm-suite/calm-guard/src/components/ui/button.tsx New button + variants
calm-suite/calm-guard/src/components/ui/badge.tsx New badge + variants
calm-suite/calm-guard/src/components/layout/dashboard-layout.tsx New dashboard layout (sidebar/header/feed)
calm-suite/calm-guard/src/components/graph/utils/layout.ts Dagre layout + trust-boundary parent sizing
calm-suite/calm-guard/src/components/graph/utils/calm-to-flow.ts CALM → React Flow nodes/edges mapping
calm-suite/calm-guard/src/components/graph/nodes/webclient-node.tsx New React Flow node renderer
calm-suite/calm-guard/src/components/graph/nodes/trust-boundary-node.tsx New trust boundary group node renderer
calm-suite/calm-guard/src/components/graph/nodes/system-node.tsx New React Flow node renderer
calm-suite/calm-guard/src/components/graph/nodes/service-node.tsx New React Flow node renderer + compliance colors
calm-suite/calm-guard/src/components/graph/nodes/default-node.tsx New fallback React Flow node renderer
calm-suite/calm-guard/src/components/graph/nodes/database-node.tsx New React Flow node renderer
calm-suite/calm-guard/src/components/graph/nodes/actor-node.tsx New React Flow node renderer
calm-suite/calm-guard/src/components/graph/edges/protocol-edge.tsx New edge renderer w/ protocol label
calm-suite/calm-guard/src/components/dashboard/sidebar.tsx Dashboard navigation + agent squad status
calm-suite/calm-guard/src/components/dashboard/pipeline-preview-skeleton.tsx Loading skeleton UI
calm-suite/calm-guard/src/components/dashboard/header.tsx Demo selector + analyze CTA + parse badges
calm-suite/calm-guard/src/components/dashboard/export-report-modal.tsx Modal for report preview + markdown download
calm-suite/calm-guard/src/components/dashboard/compliance-card-skeleton.tsx Loading skeleton UI
calm-suite/calm-guard/src/components/dashboard/architecture-graph-skeleton.tsx Loading skeleton UI
calm-suite/calm-guard/src/components/dashboard/analyze-button.tsx Analyze button component
calm-suite/calm-guard/src/components/dashboard/agent-feed.tsx Agent event feed panel
calm-suite/calm-guard/src/components/dashboard/agent-feed-skeleton.tsx Loading skeleton UI
calm-suite/calm-guard/src/components/dashboard/agent-feed-event.tsx Agent event row renderer
calm-suite/calm-guard/src/components/calm/parse-error-display.tsx UI for CALM parse/validation error display
calm-suite/calm-guard/src/components/calm/github-input.tsx Fetch CALM from GitHub UI + validation
calm-suite/calm-guard/src/app/page.tsx Landing page + demo runner
calm-suite/calm-guard/src/app/layout.tsx Root layout + theme provider + toaster
calm-suite/calm-guard/src/app/globals.css Tailwind theme vars + animations
calm-suite/calm-guard/src/app/dashboard/pipeline/page.tsx Pipeline page
calm-suite/calm-guard/src/app/dashboard/layout.tsx Dashboard app layout wrapper
calm-suite/calm-guard/src/app/dashboard/findings/page.tsx Findings page
calm-suite/calm-guard/src/app/dashboard/compliance/page.tsx Compliance page
calm-suite/calm-guard/src/app/dashboard/architecture/page.tsx Architecture graph page
calm-suite/calm-guard/src/app/api/pipeline/route.ts Returns last pipeline result
calm-suite/calm-guard/src/app/api/github/status/route.ts GitHub integration status endpoint
calm-suite/calm-guard/src/app/api/github/fetch-calm/route.ts Fetch + parse CALM file from GitHub repo
calm-suite/calm-guard/src/app/api/calm/validate/route.ts CALM CLI validation endpoint (node runtime)
calm-suite/calm-guard/src/app/api/calm/parse/route.ts CALM parse-only endpoint
calm-suite/calm-guard/src/app/api/analyze/route.ts SSE analyze endpoint + stores last results
calm-suite/calm-guard/src/tests/learning/pre-check.test.ts Tests for deterministic learning pre-checks
calm-suite/calm-guard/src/tests/learning/fingerprint.test.ts Tests for fingerprint generation
calm-suite/calm-guard/src/tests/learning/extractor.test.ts Tests for pattern extraction
calm-suite/calm-guard/src/tests/calm/parser.test.ts Tests for CALM parsing (multi-version)
calm-suite/calm-guard/src/tests/calm/extractor.test.ts Tests for analysis input extraction
calm-suite/calm-guard/src/tests/api/parse.test.ts Contract tests for parse API route
calm-suite/calm-guard/src/tests/agents/schemas.test.ts Tests for Zod schemas
calm-suite/calm-guard/skills/PROTOCOL-SECURITY.md Skill guide for grounded protocol upgrades
calm-suite/calm-guard/skills/DEVSECOPS-PIPELINE.md Skill guide for pipeline generation
calm-suite/calm-guard/skills/CLOUD-INFRASTRUCTURE.md Skill guide for AWS Terraform generation
calm-suite/calm-guard/postcss.config.mjs Tailwind PostCSS config
calm-suite/calm-guard/package.json App deps/scripts and pnpm manager pin
calm-suite/calm-guard/next.config.ts Next config (serverExternalPackages)
calm-suite/calm-guard/examples/index.ts Demo architectures registry
calm-suite/calm-guard/examples/api-gateway.calm.v10.json New demo CALM v1.0 fixture
calm-suite/calm-guard/eslint.config.mjs ESLint flat config
calm-suite/calm-guard/docs/tsconfig.json Docusaurus TS config
calm-suite/calm-guard/docs/src/css/custom.css Docusaurus theme CSS
calm-suite/calm-guard/docs/sidebars.ts Docusaurus sidebar config
calm-suite/calm-guard/docs/package.json Docusaurus package manifest
calm-suite/calm-guard/docs/docusaurus.config.ts Docusaurus site config
calm-suite/calm-guard/docs/docs/uploading-architectures.md User docs: CALM + uploading
calm-suite/calm-guard/docs/docs/security.md Security documentation
calm-suite/calm-guard/docs/docs/reading-reports.md User docs: interpreting dashboard
calm-suite/calm-guard/docs/docs/intro.md Docs home/overview
calm-suite/calm-guard/docs/docs/getting-started.md Local setup instructions
calm-suite/calm-guard/docs/docs/contributing.md Contribution guide
calm-suite/calm-guard/docs/docs/compliance/frameworks.md Framework descriptions + mapping methodology
calm-suite/calm-guard/docs/README.md Docusaurus template readme
calm-suite/calm-guard/docs/.gitignore Docs ignore rules
calm-suite/calm-guard/components.json shadcn/ui config
calm-suite/calm-guard/agents/risk-scorer.yaml Agent definition
calm-suite/calm-guard/agents/pipeline-generator.yaml Agent definition + skill
calm-suite/calm-guard/agents/orchestrator.yaml Agent definition
calm-suite/calm-guard/agents/compliance-mapper.yaml Agent definition + skills
calm-suite/calm-guard/agents/cloud-infra-generator.yaml Agent definition + skill
calm-suite/calm-guard/agents/calm-remediator.yaml Agent definition + protocol skill
calm-suite/calm-guard/agents/architecture-analyzer.yaml Agent definition
calm-suite/calm-guard/CLAUDE.md Points to AGENTS.md
calm-suite/calm-guard/AGENTS.md Project agent/developer instructions
README.md Adds CALM Guard + CALM Studio to projects table
.github/workflows/build-calm-studio.yml CI workflow for calm-studio build/lint/test
.github/workflows/build-calm-studio-desktop.yml Desktop build + release workflow
.github/workflows/build-calm-guard.yml CI workflow for calm-guard
.github/workflows/automated-release-calm-studio.yml Automated calm-studio release
.github/CODEOWNERS Adds owners for /calm-suite/

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread calm-suite/calm-guard/src/components/ui/sonner.tsx
Comment thread calm-suite/calm-guard/src/components/ui/skeleton.tsx
Comment thread calm-suite/calm-guard/src/components/graph/utils/layout.ts
Comment thread calm-suite/calm-guard/src/components/graph/utils/layout.ts
Comment thread calm-suite/calm-guard/src/components/graph/utils/layout.ts
Comment thread calm-suite/calm-guard/src/components/dashboard/agent-feed.tsx
Comment thread calm-suite/calm-guard/docs/README.md
Comment thread calm-suite/calm-guard/docs/docs/uploading-architectures.md
Comment thread calm-suite/calm-guard/docs/docusaurus.config.ts Outdated
- Re-add pnpm-lock.yaml files needed for --frozen-lockfile in CI
- Point pnpm/action-setup to calm-guard's package.json for version
  detection (root package.json uses npm, not pnpm)
- Remove gitignore pattern that was preventing lockfile tracking
The docs-site uses Docusaurus 3.9 which has a webpack ProgressPlugin
compatibility issue. Exclude it from the build and lint steps until
the upstream fix is available.
@rocketstack-matt rocketstack-matt marked this pull request as draft April 11, 2026 09:29
The calm-studio coverage thresholds are a pre-existing issue from the
source repo. Use plain test runs until the maintainers address the
coverage gaps.
- Update docs footer from MIT to Apache-2.0 to match package.json
- Update docs README from yarn to pnpm commands
- Update GitHub link to point to monorepo location
@rocketstack-matt rocketstack-matt marked this pull request as ready for review April 11, 2026 09:39
@rocketstack-matt rocketstack-matt merged commit 6acb298 into finos:main Apr 11, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adding CALMSuite

3 participants