naftiko: 1.0.0-alpha2 info: label: Perforce Helix Swarm API — Changes description: 'Perforce Helix Swarm API — Changes. 3 operations. Lead operation: Perforce Get Projects Affected by Change. Self-contained Naftiko capability covering one Perforce business surface.' tags: - Perforce - Changes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PERFORCE_API_KEY: PERFORCE_API_KEY capability: consumes: - type: http namespace: helix-swarm-changes baseUri: '' description: Perforce Helix Swarm API — Changes business capability. Self-contained, no shared references. resources: - name: changes-change-affectsprojects path: /changes/{change}/affectsprojects operations: - name: getchangeaffectsprojects method: GET description: Perforce Get Projects Affected by Change outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: change in: path type: integer description: The changelist number. required: true - name: changes-change-defaultreviewers path: /changes/{change}/defaultreviewers operations: - name: getchangedefaultreviewers method: GET description: Perforce Get Default Reviewers for Change outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: change in: path type: integer description: The changelist number. required: true - name: changes-id-check path: /changes/{id}/check operations: - name: checkchange method: GET description: Perforce Check Change Against Workflow Rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The changelist number. required: true - name: type in: query type: string description: The type of check to perform. required: true authentication: type: basic username: '{{env.PERFORCE_USER}}' password: '{{env.PERFORCE_PASS}}' exposes: - type: rest namespace: helix-swarm-changes-rest port: 8080 description: REST adapter for Perforce Helix Swarm API — Changes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/changes/{change}/affectsprojects name: changes-change-affectsprojects description: REST surface for changes-change-affectsprojects. operations: - method: GET name: getchangeaffectsprojects description: Perforce Get Projects Affected by Change call: helix-swarm-changes.getchangeaffectsprojects with: change: rest.change outputParameters: - type: object mapping: $. - path: /v1/changes/{change}/defaultreviewers name: changes-change-defaultreviewers description: REST surface for changes-change-defaultreviewers. operations: - method: GET name: getchangedefaultreviewers description: Perforce Get Default Reviewers for Change call: helix-swarm-changes.getchangedefaultreviewers with: change: rest.change outputParameters: - type: object mapping: $. - path: /v1/changes/{id}/check name: changes-id-check description: REST surface for changes-id-check. operations: - method: GET name: checkchange description: Perforce Check Change Against Workflow Rules call: helix-swarm-changes.checkchange with: id: rest.id type: rest.type outputParameters: - type: object mapping: $. - type: mcp namespace: helix-swarm-changes-mcp port: 9090 transport: http description: MCP adapter for Perforce Helix Swarm API — Changes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: perforce-get-projects-affected-change description: Perforce Get Projects Affected by Change hints: readOnly: true destructive: false idempotent: true call: helix-swarm-changes.getchangeaffectsprojects with: change: tools.change outputParameters: - type: object mapping: $. - name: perforce-get-default-reviewers-change description: Perforce Get Default Reviewers for Change hints: readOnly: true destructive: false idempotent: true call: helix-swarm-changes.getchangedefaultreviewers with: change: tools.change outputParameters: - type: object mapping: $. - name: perforce-check-change-against-workflow description: Perforce Check Change Against Workflow Rules hints: readOnly: true destructive: false idempotent: true call: helix-swarm-changes.checkchange with: id: tools.id type: tools.type outputParameters: - type: object mapping: $.