jpskill.com
💼 ビジネス コミュニティ

nathan-standards

n8nとJiraを連携させる自動化システム「Nathan」の開発標準をまとめたもので、n8nのワークフローやPythonのパターン、プロジェクトのルールなどを理解し、効率的な開発を行うためのSkill。

📜 元の英語説明(参考)

Development standards for the Nathan n8n-Jira agent automation system. Covers n8n workflows, Python patterns, and project conventions.

🇯🇵 日本人クリエイター向け解説

一言でいうと

n8nとJiraを連携させる自動化システム「Nathan」の開発標準をまとめたもので、n8nのワークフローやPythonのパターン、プロジェクトのルールなどを理解し、効率的な開発を行うためのSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o nathan-standards.zip https://jpskill.com/download/16827.zip && unzip -o nathan-standards.zip && rm nathan-standards.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16827.zip -OutFile "$d\nathan-standards.zip"; Expand-Archive "$d\nathan-standards.zip" -DestinationPath $d -Force; ri "$d\nathan-standards.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して nathan-standards.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → nathan-standards フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
3

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Nathan 開発標準

Nathan プロジェクト(n8n-Jira エージェント自動化システム)内で開発を行うための標準とパターンです。

使用場面

このスキルは、以下の場合に呼び出してください。

  • n8n ワークフローの JSON ファイルを作成または修正する場合
  • Nathan ヘルパーまたはテンプレートモジュールのための Python コードを記述する場合
  • Webhook コマンドのコントラクトを設計する場合
  • ワークフローレジストリの構成を構築する場合
  • agent-os を介して、仕様駆動型の機能を実装する場合

プロジェクトアーキテクチャ

Nathan は、階層化されたアーキテクチャに従っています。

外部サービス (Jira) <-- n8n ワークフロー <-- Python エージェントサービス
                             (認証情報)      (webhook 呼び出し)

コア原則: n8n がすべての外部認証情報を所有します。Python サービスは、共有シークレット認証を使用して n8n webhook を呼び出します。

n8n ワークフロースタンダード

詳細なワークフローパターンについては、references/n8n-workflow-patterns.md をロードしてください。

標準ワークフロー構造

すべての webhook ワークフローは、このパターンに従う必要があります。

Webhook --> シークレットの検証 --> 操作 --> Webhook への応答
               |                   |              |
               v                   v              v
           不正な認証       エラー応答   成功応答
           応答 (401)     (500)            (200)

必須ノードパターン

{
  "id": "validate-secret",
  "name": "Validate Secret",
  "type": "n8n-nodes-base.if",
  "typeVersion": 2,
  "parameters": {
    "conditions": {
      "conditions": [{
        "leftValue": "={{ $json.headers['x-n8n-secret'] }}",
        "rightValue": "={{ $env.N8N_WEBHOOK_SECRET }}",
        "operator": { "type": "string", "operation": "equals" }
      }]
    }
  }
}

応答フォーマット

すべての応答は、次の形式に従う必要があります。

{ "success": true, "data": {...}, "status_code": 200, "error": null }
{ "success": false, "data": {}, "status_code": 500, "error": "message" }

JQL 式のエスケープ

JSON 内の n8n 式では、適切にエスケープしてください。

間違い 正しい
.map(x => "${x}") .map(x => '"' + x + '"')
.join('\n') .join('\\n')
.replaceAll('\n', ' ') .replaceAll('\\n', ' ')

Python スタンダード

詳細なパターンについては、references/python-patterns.md をロードしてください。

モジュール構造

nathan/
  helpers/           # 共有ユーティリティ (ワークフローレジストリなど)
  workflows/         # n8n ワークフロー JSON + カテゴリごとの registry.yaml
  templating/        # YAML-to-JSON テンプレートエンジン
  scripts/           # スタンドアロンで実行可能なスクリプト

コードスタイル

# 必須のインポートパターン
from __future__ import annotations
from typing import Any
from pathlib import Path
import logging

logger = logging.getLogger(__name__)

# 型ヒントは必須、Optional[T] ではなく T | None を使用
async def trigger_workflow(url: str, params: dict[str, Any]) -> dict[str, Any]:
    ...

レジストリパターン

# registry.yaml
version: "1.0.0"
description: "レジストリの説明"

commands:
  command_name:
    endpoint: /webhook/endpoint-path
    method: POST
    required_params:
      - param1
    optional_params:
      - param2
    description: このコマンドの機能
    example:
      param1: "value"

仕様駆動開発

機能開発には agent-os コマンドを使用します。

  1. /shape-spec - 仕様の初期化と整形
  2. /write-spec - 詳細な仕様書を作成
  3. /create-tasks - 仕様からタスクリストを生成
  4. /orchestrate-tasks - サブエージェントに委譲

仕様は agent-os/specs/[spec-name]/ に保存されます。

  • spec.md - 機能仕様
  • tasks.md - チェックボックス付きの実装タスク
  • orchestration.yml - サブエージェント委譲構成

クイックリファレンス

一般的なコマンド

uv sync                              # 依存関係をインストール
uv run pytest                        # テストを実行
uv run pytest path/to/test.py -v     # 単一のテストファイル
uvx ruff check .                     # リント
uvx ruff format .                    # フォーマット
docker compose -f docker-compose.n8n.yml up -d  # n8n を起動

環境変数

変数 目的
N8N_WEBHOOK_SECRET webhook 認証用の共有シークレット
N8N_API_KEY n8n Public API キー
JIRA_DOMAIN Jira Cloud ドメイン
JIRA_EMAIL Jira アカウントのメールアドレス
JIRA_API_TOKEN Jira API トークン

ファイル命名規則

タイプ 規則
ワークフロー JSON kebab-case.json jira-get-ticket.json
Python モジュール snake_case.py n8n_workflow_registry.py
テストファイル test_*.py test_parser.py
レジストリ registry.yaml ワークフローカテゴリごと
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Nathan Development Standards

Standards and patterns for developing within the Nathan project - an n8n-Jira agent automation system.

When to Use

Invoke this skill when:

  • Creating or modifying n8n workflow JSON files
  • Writing Python code for the Nathan helpers or templating modules
  • Designing webhook command contracts
  • Building workflow registry configurations
  • Implementing spec-driven features via agent-os

Project Architecture

Nathan follows a layered architecture:

External Service (Jira) <-- n8n Workflows <-- Python Agent Service
                             (credentials)      (webhook calls)

Core Principle: n8n owns all external credentials. Python services call n8n webhooks with shared secret authentication.

n8n Workflow Standards

For detailed workflow patterns, load references/n8n-workflow-patterns.md.

Standard Workflow Structure

Every webhook workflow must follow this pattern:

Webhook --> Validate Secret --> Operation --> Respond to Webhook
               |                   |              |
               v                   v              v
           Unauthorized       Error Response   Success Response
           Response (401)     (500)            (200)

Required Node Pattern

{
  "id": "validate-secret",
  "name": "Validate Secret",
  "type": "n8n-nodes-base.if",
  "typeVersion": 2,
  "parameters": {
    "conditions": {
      "conditions": [{
        "leftValue": "={{ $json.headers['x-n8n-secret'] }}",
        "rightValue": "={{ $env.N8N_WEBHOOK_SECRET }}",
        "operator": { "type": "string", "operation": "equals" }
      }]
    }
  }
}

Response Format

All responses must follow this shape:

{ "success": true, "data": {...}, "status_code": 200, "error": null }
{ "success": false, "data": {}, "status_code": 500, "error": "message" }

JQL Expression Escaping

In n8n expressions within JSON, escape properly:

Wrong Correct
.map(x => "${x}") .map(x => '"' + x + '"')
.join('\n') .join('\\n')
.replaceAll('\n', ' ') .replaceAll('\\n', ' ')

Python Standards

For detailed patterns, load references/python-patterns.md.

Module Structure

nathan/
  helpers/           # Shared utilities (workflow registry, etc.)
  workflows/         # n8n workflow JSON + registry.yaml per category
  templating/        # YAML-to-JSON template engine
  scripts/           # Standalone runnable scripts

Code Style

# Required imports pattern
from __future__ import annotations
from typing import Any
from pathlib import Path
import logging

logger = logging.getLogger(__name__)

# Type hints required, use T | None not Optional[T]
async def trigger_workflow(url: str, params: dict[str, Any]) -> dict[str, Any]:
    ...

Registry Pattern

# registry.yaml
version: "1.0.0"
description: "Registry description"

commands:
  command_name:
    endpoint: /webhook/endpoint-path
    method: POST
    required_params:
      - param1
    optional_params:
      - param2
    description: What this command does
    example:
      param1: "value"

Spec-Driven Development

Use agent-os commands for feature development:

  1. /shape-spec - Initialize and shape specification
  2. /write-spec - Write detailed spec document
  3. /create-tasks - Generate task list from spec
  4. /orchestrate-tasks - Delegate to subagents

Specs live in agent-os/specs/[spec-name]/ with:

  • spec.md - Feature specification
  • tasks.md - Implementation tasks with checkboxes
  • orchestration.yml - Subagent delegation config

Quick Reference

Common Commands

uv sync                              # Install dependencies
uv run pytest                        # Run tests
uv run pytest path/to/test.py -v     # Single test file
uvx ruff check .                     # Lint
uvx ruff format .                    # Format
docker compose -f docker-compose.n8n.yml up -d  # Start n8n

Environment Variables

Variable Purpose
N8N_WEBHOOK_SECRET Shared secret for webhook auth
N8N_API_KEY n8n Public API key
JIRA_DOMAIN Jira Cloud domain
JIRA_EMAIL Jira account email
JIRA_API_TOKEN Jira API token

File Naming Conventions

Type Convention Example
Workflow JSON kebab-case.json jira-get-ticket.json
Python modules snake_case.py n8n_workflow_registry.py
Test files test_*.py test_parser.py
Registry registry.yaml per workflow category

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。