Use when: adding a new playbook automation component, implementing a PlaybookComponent interface, or registering a new playbook step
68
82%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
PLAYBOOK_MY_COMPONENT).Location: opencti-platform/opencti-graphql/src/modules/playbook/components/<name>-component.ts.
Define a TypeScript interface for the config and a JSONSchema for validation.
export interface MyComponentConfig {
key: string;
}
const SCHEMA: JSONSchemaType<MyComponentConfig> = {
type: 'object',
properties: {
key: { type: 'string' },
},
required: ['key'],
};Implement PlaybookComponent<MyComponentConfig>.
export const PLAYBOOK_MY_COMPONENT: PlaybookComponent<MyComponentConfig> = {
id: 'PLAYBOOK_MY_COMPONENT',
name: 'My Component',
description: 'Does something useful',
icon: 'icon-name',
is_entry_point: false,
is_internal: true,
ports: [{ id: 'out', type: 'out' }],
configuration_schema: SCHEMA,
schema: async () => SCHEMA,
executor: async ({ bundle, playbookNode }) => {
// Business logic here
const config = playbookNode.configuration;
return { output_port: 'out', bundle };
},
};Import and add to PLAYBOOK_COMPONENTS in src/modules/playbook/playbook-components.ts.
cdafc20
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.