This directory contains AI tools, prompts, and configuration for integrating AI assistants with FINOS Common Architecture Language Model (CALM) architectures.
The CALM AI tools provide:
- Specialized prompts to guide AI assistants in creating, validating, and documenting CALM architectures
- Configuration files for multiple AI assistant providers (GitHub Copilot, AWS Kiro/Q)
- Template system using Handlebars to generate provider-specific prompt files
- CLI integration via the
calm init-aicommand for automated setup
These tools enable AI assistants to provide context-aware assistance for CALM architecture development directly within IDEs and development environments.
calm-ai/
├── ai-assistants/ # AI provider configuration files
│ ├── copilot.json # GitHub Copilot configuration
│ └── kiro.json # AWS Kiro/Q configuration
├── templates/ # Handlebars templates
│ └── CALM.chatmode_template.md # Base prompt template
├── tools/ # Individual tool prompt files
│ ├── architecture-creation.md
│ ├── calm-cli-instructions.md
│ ├── control-creation.md
│ ├── documentation-creation.md
│ ├── flow-creation.md
│ ├── interface-creation.md
│ ├── metadata-creation.md
│ ├── node-creation.md
│ ├── pattern-creation.md
│ ├── relationship-creation.md
│ └── standards-creation.md
└── package.json # Package metadata
Individual markdown files providing detailed guidance for specific CALM modeling tasks:
| File | Purpose |
|---|---|
architecture-creation.md |
Guide for creating complete CALM architecture documents with required schema structure |
calm-cli-instructions.md |
Summary of CALM CLI commands, validation modes, and usage flags |
control-creation.md |
Guide for defining control requirements and compliance configurations |
documentation-creation.md |
Guide for generating documentation from CALM models |
flow-creation.md |
Guide for modeling business process flows through architecture |
interface-creation.md |
Critical guidance for interface definitions and oneOf constraints |
metadata-creation.md |
Guide for adding metadata arrays with proper validation |
node-creation.md |
Guide for creating nodes (components) with proper validation |
pattern-creation.md |
Guide for defining reusable architectural patterns |
relationship-creation.md |
Guide for creating relationships between nodes |
standards-creation.md |
Guide for creating JSON Schema Standards extending CALM with organizational requirements |
Each tool prompt follows a consistent structure:
- Overview and purpose
- Required schema structures
- Creation checklists
- Validation requirements
- Working examples
- Common pitfalls and solutions
Configuration files in ai-assistants/ define how to integrate CALM prompts with specific AI providers. These JSON files are used by the calm init-ai command to generate provider-specific prompt files.
{
// Human-readable description of the integration
"description": string,
// Directory where AI assistant looks for custom prompts
// Examples: ".github/chatmodes" (Copilot), ".kiro" (Kiro)
"topLevelDirectory": string,
// Filename for the main prompt file (may include subdirectory)
// This file is located within the context of "topLevelDirectory"
// Examples: "CALM.chatmode.md", "steering/CALM.chatmode.md"
"topLevelPromptFileName": string,
// Delimiter placed before skill prompt references in templates
// Examples: "`" (Copilot), "#[[" (Kiro)
"skillPrefix": string,
// Delimiter placed after skill prompt references
// Examples: "`" (Copilot), "]]" (Kiro)
"skillSuffix": string,
// YAML frontmatter inserted at top of generated prompt files
// provider-specific metadata (model, tools, description, etc.)
"frontmatter": string,
// Array of relative paths to tool prompt files to include
// These become references in the generated prompt
"skillPrompts": string[]
}| Property | Description | Example Values |
|---|---|---|
description |
Short description for display/README | "Github Copilot integrated with FINOS CALM" |
topLevelDirectory |
Where provider expects custom prompts | .github/chatmodes, .kiro |
topLevelPromptFileName |
Name of generated prompt file | CALM.chatmode.md, steering/CALM.chatmode.md |
skillPrefix |
Opening delimiter for skill references | `, #[[ |
skillSuffix |
Closing delimiter for skill references | `, ]] |
frontmatter |
YAML metadata for the provider | Model, tools, inclusion rules |
skillPrompts |
List of tool prompts to reference | Paths relative to workspace root |
{
"description": "Github Copilot integrated with FINOS CALM",
"topLevelDirectory": ".github/chatmodes",
"topLevelPromptFileName": "CALM.chatmode.md",
"skillPrefix": "`",
"skillSuffix": "`",
"frontmatter": "---\ndescription: An AI Assistant for FINOS CALM development.\ntools: ['codebase', 'editFiles', 'fetch', 'runInTerminal']\nmodel: Claude Sonnet 4.5\n---",
"skillPrompts": [
"calm-prompts/architecture-creation.md",
"calm-prompts/calm-cli-instructions.md",
"calm-prompts/node-creation.md",
"calm-prompts/relationship-creation.md",
"calm-prompts/interface-creation.md",
"calm-prompts/metadata-creation.md",
"calm-prompts/control-creation.md",
"calm-prompts/flow-creation.md",
"calm-prompts/pattern-creation.md",
"calm-prompts/documentation-creation.md",
"calm-prompts/standards-creation.md"
]
}GitHub Copilot specifics:
- Uses backticks (
`) to reference skill files - Frontmatter specifies Claude Sonnet 4.5 model and available tools
- Prompts placed in
.github/chatmodes/directory - Skill prompts referenced as
`calm-prompts/architecture-creation.md`
{
"description": "AWS Kiro/Q integrated with FINOS CALM",
"frontmatter": "---\ninclusion: manual\n---",
"topLevelDirectory": ".kiro",
"topLevelPromptFileName": "steering/CALM.chatmode.md",
"skillPrefix": "#[[",
"skillSuffix": "]]",
"skillPrompts": [
"calm-prompts/architecture-creation.md",
"calm-prompts/calm-cli-instructions.md",
"calm-prompts/node-creation.md",
"calm-prompts/relationship-creation.md",
"calm-prompts/interface-creation.md",
"calm-prompts/metadata-creation.md",
"calm-prompts/control-creation.md",
"calm-prompts/flow-creation.md",
"calm-prompts/pattern-creation.md",
"calm-prompts/documentation-creation.md",
"calm-prompts/standards-creation.md"
]
}AWS Kiro/Q specifics:
- Uses
#[[and]]delimiters for skill references - Frontmatter specifies manual inclusion mode
- Prompts placed in
.kiro/steering/directory - Skill prompts referenced as
#[[calm-prompts/architecture-creation.md]]
The CALM.chatmode_template.md file is a Handlebars template that generates provider-specific prompt files. It defines the structure and instructions for AI assistants working with CALM architectures.
The template uses these Handlebars variables populated from configuration files:
{{frontmatter}}- provider-specific YAML frontmatter{{topLevelDirectory}}- Directory for custom prompts{{skillPrefix}}- Opening delimiter for skill references{{skillSuffix}}- Closing delimiter for skill references{{#each skillPrompts}}- Iterates over skill prompt paths
The template includes:
- Frontmatter - provider-specific metadata
- Role Definition - Describes the AI assistant's purpose
- CALM Overview - What CALM is and what it models
- First Interaction Instructions - How to load skill prompts on first use
- Guidelines - Best practices for CALM assistance
- Reads configuration from
ai-assistants/<provider>.json - Processes Handlebars template with configuration
- Generates provider-specific prompt files in appropriate directories
- Copies skill prompt files to workspace locations
- Provides modular, focused guidance for specific CALM tasks
- Enforces validation requirements and best practices
- References CALM schema v1.1 for accuracy
- Includes working examples and common pitfall warnings
- Abstracts provider differences through configuration
- Supports multiple delimiter styles for skill references
- Handles different directory structures per provider
- Enables easy addition of new providers via JSON config
- Integrated with
calmCLI viacalm init-ai <provider>command - Automated setup reduces manual configuration
- Ensures consistent prompt structure across projects
# Initialize GitHub Copilot integration
calm init-ai copilot
# Initialize AWS Kiro/Q integration
calm init-ai kiroThis command:
- Reads the corresponding configuration file from
ai-assistants/ - Processes the Handlebars template
- Creates the provider-specific directory structure
- Generates the main prompt file with skill references
- Copies skill prompts to the appropriate location
Once initialized, AI assistants automatically:
- Load the main prompt on first interaction
- Read referenced skill prompts for detailed guidance
- Apply CALM-specific validation and best practices
- Provide context-aware assistance for architecture modeling
- Create a new
.mdfile intools/following the existing structure - Include overview, required schema, checklist, validation requirements
- Add working examples and common pitfalls
- Update all configuration files in
ai-assistants/to reference the new prompt - Test by running
calm init-aiand verifying AI assistant behavior
- Create
<provider>.jsoninai-assistants/ - Define all required schema properties:
description,topLevelDirectory,topLevelPromptFileNameskillPrefix,skillSuffix,frontmatter,skillPrompts
- Determine provider-specific delimiters and directory structure
- Update CLI to recognize the new provider
- Test generation with
calm init-ai <provider>
When editing templates/CALM.chatmode_template.md:
- Maintain Handlebars variable syntax
- Test with all existing provider configurations
- Ensure backwards compatibility
- Update this README if new variables are added
All tool prompts must:
- Reference CALM schema v1.1
- Include mandatory validation steps
- Provide
calm validatecommands - Emphasize
hasErrors: falserequirement - Document common pitfalls and solutions
- Follow consistent markdown formatting
- CALM CLI: See
cli/AGENTS.mdfor CLI command details - CALM Schema: https://calm.finos.org/release/1.1/meta/calm.json
- User Docs: https://calm.finos.org
- VSCode Extension: See
calm-plugins/vscode/AGENTS.md