AgentSkillsCN

c4-integration-creation

在工程平台数据模型中,指导用户创建与编辑LikeC4集成(与外部系统的连接器)。当用户被要求在工程平台数据模型中新增集成、外部系统连接器,或数据源时,可使用此方法。

SKILL.md
--- frontmatter
name: c4-integration-creation
description: Guide for creating and editing LikeC4 integrations (connectors to external systems). Use when asked to add a new integration, external system connector, or data source in the Engineering Platform Data Model.

C4 Integration Creation

Critical Requirements

  • ALWAYS read likec4/model.c4 and likec4/relations.c4 before creating integrations
  • Every integration needs: external system + integration element + syncs relations
  • ALWAYS validate with npm run validate after changes

Overview

The Integration Layer is an ACL (Anti-Corruption Layer) that abstracts external providers from the internal data model.

code
Blueprint ←[dataSource]← Integration ←[syncs]← External System

Current Integrations

IntegrationVariableExternal SystemBlueprints Fed
GitHub ConnectorintGitHubgithubrepository, pullRequest, branch, ciPipeline, pipelineRun, artifact, containerImage, securityScorecard, securityAlert
OCI ConnectorintOCIociociResource, resource
Azure ConnectorintAzureazureazureResource, resource
Entra ID ConnectorintEntraIdentraId_user, identity, group
SonarQube ConnectorintSonarQubesonarqubecodeQuality, testCoverage
Portal NativeintPortal(internal)technologyAsset, domain, system, api, _team, template, tier, policy, etc.
Unleash ConnectorintUnleashunleashfeatureFlag, flagStrategy
Liquibase ConnectorintLiquibaseliquibasedatabaseSchema, migration
LinearB ConnectorintLinearBlinearbengineeringMetrics
Copilot MetricsintCopilotMetricsgithubcopilotMetrics

Complete Steps to Create a New Integration

Step 1: Add External System in model.c4

c4
datadog = externalSystem 'Datadog' {
  description 'Monitoring and observability platform'
  icon tech:datadog
  style {
    color slate
  }
}

Step 2: Add Integration in model.c4

Inside the integrationLayer capability:

c4
intDatadog = integration 'Datadog Connector' {
  description 'Syncs monitoring metrics, alerts, and dashboards from Datadog'
  icon tech:datadog
  style {
    color gray
    border dashed
  }
}

Rules:

  • Variable name: intCamelCase
  • Style: color gray, border dashed

Step 3: Add Relations in relations.c4

c4
// Integration ↔ External System
idp.integrationLayer.intDatadog -[syncs]-> datadog 'syncs from Datadog API' { #sync }

// Integration → Blueprints
idp.integrationLayer.intDatadog -[syncs]-> idp.starObservability.metric 'syncs metrics' { #sync }

Step 4: Add dataSource in Blueprint Files

c4
metric -[dataSource]-> idp.integrationLayer.intDatadog 'synced from Datadog' { #sync }

Step 5: Validate

bash
npm run validate
npm test

Checklist

  • External system defined in model.c4
  • Integration defined in model.c4 inside integrationLayer
  • Integration → External System syncs in relations.c4
  • Integration → Blueprint syncs in relations.c4
  • Blueprint → Integration dataSource in blueprint file
  • Variable follows intCamelCase naming
  • Style: color gray, border dashed
  • npm run validate passes

Workflow

  1. Read likec4/model.c4
  2. Read likec4/relations.c4
  3. Create external system in model.c4 (if needed)
  4. Create integration in model.c4
  5. Add syncs relations in relations.c4
  6. Add dataSource in blueprint file(s)
  7. Validate with npm run validate