Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
89jobrien avatar

Nathan Standards

  • 27 installs
  • 4 repo stars
  • Updated April 11, 2026
  • 89jobrien/steve

nathan-standards is a Claude Code skill that defines the development standards, n8n workflow patterns, and Python conventions for the Nathan n8n-Jira agent automation system.

About

nathan-standards is a Claude Code skill that defines development standards for the Nathan project, an n8n-Jira agent automation system. It specifies the required webhook workflow pattern (validate secret, operate, respond), standard response shapes, Python module structure and style, a YAML command registry, and spec-driven development commands. A developer uses it when creating n8n workflows or Python code within the Nathan project.

  • Standard secure webhook pattern: validate shared secret then operate then respond (200/401/500)
  • Layered architecture where n8n owns external credentials and Python calls its webhooks
  • Python module structure, style, and a YAML command registry convention

Nathan Standards by the numbers

  • 27 all-time installs (skills.sh)
  • Ranked #1,239 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

nathan-standards capabilities & compatibility

Free skill; requires Jira API token, n8n API key, and webhook secret to run the system.

Capabilities
workflow automation · webhook security · jira integration · python conventions
Works with
n8n · jira · docker
Use cases
orchestration · project management · api development
Pricing
Bring your own API key
From the docs

What nathan-standards says it does

Standards and patterns for developing within the Nathan project - an n8n-Jira agent automation system.
SKILL.md
n8n owns all external credentials. Python services call n8n webhooks with shared secret authentication.
SKILL.md
Every webhook workflow must follow this pattern:
SKILL.md
npx skills add https://github.com/89jobrien/steve --skill nathan-standards

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs27
repo stars4
Last updatedApril 11, 2026
Repository89jobrien/steve

What it does

Follow the Nathan project's standards for building n8n-Jira webhook workflows and Python service code.

Who is it for?

Developers working inside the Nathan project who need its n8n workflow, webhook, and Python conventions.

Skip if: Projects unrelated to the Nathan n8n-Jira system, since the standards are project-specific.

When should I use this skill?

Creating or modifying Nathan n8n workflow JSON, writing Nathan Python code, or designing webhook command contracts.

What you get

n8n workflows and Python code that follow Nathan's secure-webhook pattern, response shapes, and registry conventions.

  • standardized n8n workflows
  • Python service code
  • workflow command registry

By the numbers

  • 4-node standard webhook pattern (webhook, validate secret, operation, respond)
  • 2 reference files (n8n-workflow-patterns, python-patterns)
  • 5 documented environment variables

Files

SKILL.mdMarkdownGitHub ↗

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:

WrongCorrect
.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

VariablePurpose
N8N_WEBHOOK_SECRETShared secret for webhook auth
N8N_API_KEYn8n Public API key
JIRA_DOMAINJira Cloud domain
JIRA_EMAILJira account email
JIRA_API_TOKENJira API token

File Naming Conventions

TypeConventionExample
Workflow JSONkebab-case.jsonjira-get-ticket.json
Python modulessnake_case.pyn8n_workflow_registry.py
Test filestest_*.pytest_parser.py
Registryregistry.yamlper workflow category

Related skills

FAQ

What is Nathan?

Nathan is an n8n-Jira agent automation system where n8n owns external credentials and Python services call n8n webhooks with shared-secret authentication.

What is the required webhook pattern?

Webhook then validate secret then operation then respond, returning 401 for unauthorized, 500 for errors, and 200 for success.

Automation & Workflowsintegrationsbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.