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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
nathan-standards.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
nathan-standardsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 コマンドを使用します。
/shape-spec- 仕様の初期化と整形/write-spec- 詳細な仕様書を作成/create-tasks- 仕様からタスクリストを生成/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:
/shape-spec- Initialize and shape specification/write-spec- Write detailed spec document/create-tasks- Generate task list from spec/orchestrate-tasks- Delegate to subagents
Specs live in agent-os/specs/[spec-name]/ with:
spec.md- Feature specificationtasks.md- Implementation tasks with checkboxesorchestration.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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (4,900 bytes)
- 📎 references/n8n-workflow-patterns.md (7,019 bytes)
- 📎 references/python-patterns.md (9,649 bytes)