name: add-block description: | Add new block (Discord, Slack, Notion integrations etc.) workflow. Use when adding new integration blocks or system blocks to the workflow engine.
Add New Block Workflow
新規ブロック(Discord, Slack, Notion等の外部連携)を追加する際のワークフロー。
必読ドキュメント
以下を必ず先に読むこと:
-
docs/designs/UNIFIED_BLOCK_MODEL.md- Block execution architecture -
docs/BLOCK_REGISTRY.md- Existing block definitions -
backend/migrations/011_unified_block_model.sql- 既存パターン確認
標準手順(Migration追加)
ほとんどのブロックはこの方式で追加する:
- Migrationファイル作成:
backend/migrations/XXX_{name}_block.sql -
block_definitionsテーブルにINSERT-
tenant_id = NULLでシステムブロック -
codeにJavaScriptコード(ctx.http等を使用) -
ui_configにアイコン・カラー・設定スキーマ
-
- Migration実行:
make db-reset -
docs/BLOCK_REGISTRY.mdを更新
コード例
INSERT INTO block_definitions (tenant_id, slug, name, category, code, ui_config, is_system)
VALUES (
NULL, -- システムブロック
'discord',
'Discord通知',
'integration',
$code$
const webhookUrl = config.webhook_url || ctx.secrets.DISCORD_WEBHOOK_URL;
const payload = { content: renderTemplate(config.message, input) };
return await ctx.http.post(webhookUrl, payload);
$code$,
'{"icon": "message-circle", "color": "#5865F2", "configSchema": {...}}',
TRUE
);
ctx インターフェース
| Interface | Purpose |
|---|---|
ctx.http |
HTTP requests (GET, POST, etc.) |
ctx.llm |
LLM API calls |
ctx.workflow |
Workflow control |
ctx.human |
Human-in-loop interactions |
ctx.secrets |
Access to stored secrets |
Go Adapterが必要な例外ケース
| ケース | 理由 |
|---|---|
| LLMプロバイダー追加 | ctx.llm経由で呼び出すため |
| 複雑な認証フロー | OAuth2等、JSでは困難な場合 |
| バイナリ処理 | 画像・ファイル処理等 |
Go Adapter追加が必要な場合:
- Create
backend/internal/adapter/{name}.go - Implement
Adapterinterface - Register in registry
- Add test
{name}_test.go - Update
docs/BACKEND.md
参考
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
0
GitHub Forks
0
Created
Jan 2026
Last Updated
5 months ago
tools
tools productivity tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!