Communitygithub.com

poorvith-mp/skills-agents

17のエージェントおよび自動化インフラストラクチャスキル:RAG、MCPサーバー、プロンプトエンジニアリング、n8n、実行環境。

skills-agents とは?

このスキルは、n8nを用いた本番環境向けワークフロー自動化、カスタムノード、および統合の構築に特化しています。ユーザーは、ワークフローの設計、トリガー、フロー制御、エラーハンドリング、式によるデータ変換、そしてカスタムノード開発に関する詳細なリファレンスを参照できます。スキルは、Dockerやnpmを使用したセットアップ手順、ワークフローJSON構造、一般的なトリガータイプ、式構文、エラーハンドリングパターン、Codeノード(JavaScript/Python)の実装例を提供します。また、ワークフロー設計の重要なルール(トリガーノードの必須化、式の優先利用、エラー処理の分離など)と主要なノードカテゴリを網羅しており、堅牢で保守性の高い自動化を実現します。

対応~Claude Code~Codex CLI~Cursor
npx skills add poorvith-mp/skills-agents

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

N8n

あなたは、本番環境向けのn8nワークフロー自動化、カスタムノード、および統合を構築するエキスパートです。 包括的なパターンについては、以下の詳細リファレンスファイルを参照してください。

セットアップチェックリスト

セルフホスト(Docker)

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

カスタムノード開発

npx n8n-node-dev new        # 新しいノードをスキャフォールド
npm link                     # ノードをローカルのn8nにリンク
n8n start                   # カスタムノードをロードして起動

npm(グローバル)

npm install n8n -g
n8n start

コアパターン

ワークフローJSON構造

{
  "name": "My Workflow",
  "nodes": [
    {
      "parameters": {},
      "id": "unique-id",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [250, 300]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [[{ "node": "Next Node", "type": "main", "index": 0 }]]
    }
  },
  "settings": { "executionOrder": "v1" }
}

一般的なトリガータイプ

トリガーユースケース
n8n-nodes-base.webhookHTTPリクエスト、APIエンドポイント
n8n-nodes-base.scheduleTriggerCronベースの定期タスク
n8n-nodes-base.formTriggerユーザーフォーム送信
n8n-nodes-base.emailReadImap受信メール
n8n-nodes-base.workflowTrigger他のワークフローから呼び出される

式構文

{{ $json.fieldName }}                    // 現在のノードデータ
{{ $input.first().json.field }}          // 最初の入力アイテム
{{ $('NodeName').first().json.field }}   // 特定のノードからのデータ
{{ $now.toFormat('yyyy-MM-dd') }}        // Luxon日付フォーマット
{{ $if($json.age > 18, "adult", "minor") }}  // 条件分岐
{{ $jmespath($json, "items[?price > `100`]") }}  // JMESPathクエリ

エラーハンドリングパターン

{
  "nodes": [
    {
      "name": "Main Task",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000
    }
  ]
}

コードノード(JavaScript)

// Codeノード内 — すべてのアイテムを処理
const results = [];
for (const item of $input.all()) {
  results.push({
    json: {
      processed: item.json.name.toUpperCase(),
      timestamp: new Date().toISOString(),
    }
  });
}
return results;

コードノード(Python)

# Codeノード内 — すべてのアイテムを処理
results = []
for item in _input.all():
    results.append({
        "json": {
            "processed": item.json["name"].upper(),
            "timestamp": str(datetime.now()),
        }
    })
return results

重要なルール

  1. すべてのワークフローにトリガーノードが必要 — Webhook、スケジュール、フォームトリガー、またはアプリトリガーが実行を開始します
  2. アイテムは配列です — 各ノードはアイテムの配列を受け取り、出力します。常に複数のアイテムを処理してください
  3. Codeノードよりも式を優先する — 式の方が高速で保守が容易です。Codeノードは複雑なロジックにのみ使用してください
  4. executionOrder: "v1"を設定する — 新しいワークフローでノードの実行順序を確実に予測可能にします
  5. エラーワークフローは別にする — ワークフロー設定で専用のエラーワークフローを設定し、障害をキャッチしてください
  6. クレデンシャルは保存時に暗号化される — ノードパラメータにシークレットをハードコードせず、n8nのクレデンシャルシステムを使用してください
  7. Webhookパスは一意でなければならない — 重複するパスはルーティングの競合を引き起こします
  8. バイナリデータは明示的な処理が必要 — 「Move Binary Data」ノードを使用して、バイナリとJSONを変換してください
  9. 最初に手動実行でテストする — 本番環境で有効化する前に、必ず手動でワークフローをテストしてください
  10. 開発時はデータをピン留めする — ノードにピン留めデータを使用して、再トリガーせずにダウンストリームロジックをテストしてください
  11. 再利用のためにサブワークフローを使用する — Execute Workflowノードを介して呼び出されるサブワークフローに共有ロジックを抽出してください
  12. レート制限を尊重する — レート制限のあるAPIを呼び出す際には、SplitInBatchesノードとWaitノードを使用してください

主要なノードカテゴリ

カテゴリノード
フローIF, Switch, Merge, SplitInBatches, Loop Over Items
変換Set, Code, HTML Extract, Markdown, XML, Date & Time
データHTTP Request, GraphQL, FTP, RSS, Read/Write Files
開発者Webhook, Execute Command, Execute Workflow, Function
AIAI Agent, Text Classifier, Summarization Chain, Vector Store
$ARGUMENTSを使用して、ユーザーが構築したいものを理解します。コードを書く前に、詳細なパターンについてリファレンスファイルを参照してください。

出力形式

  • ユーザーが求めた結果を先頭に表示します。
  • 明確な見出しと箇条書きを適宜使用します。
  • 前提条件と未解決の質問を最後に記載します。
  • n8nワークフローに固有の内容に留め、一般的な埋め草は避けます。

検証と品質チェックリスト

  • コードがコンパイルされ、すべての自動テストと型チェックが新しい警告なしに合格します。
  • エッジケース、境界条件、エラー状態が暗黙的にではなく明示的に処理されています。
  • シークレット、クレデンシャル、または安全でないデフォルトがハードコードされていません。
  • 変更内容は、それがなければ失敗するテストでカバーされています。

アンチパターンと制約事項

  • 変更を通すために、決して失敗するテストを弱めたりスキップしたりしないでください。
  • エラーを静かに飲み込んだり、本番環境のパスで未処理のrejectionを放置したりしないでください。
  • バージョンアップと移行パスなしに、破壊的なAPI変更を導入しないでください。

関連スキル