使用说明
n8n Development Framework
24 n8n workflows from a running system, and the 65-point audit each one passes before it goes live.
Building n8n workflows by hand stops scaling somewhere around 5. You remember the node patterns. At 40, you are guessing at property names, copying from broken examples, and finding failure modes in production.
Governance is the second problem. Workflows that start clean drift. Credentials get hardcoded. Error handling gets skipped. A workflow that ran fine last month can start failing because a full API update stripped its credentials. No error and no alert. You find out through downstream failures.
So I brought Claude into the build from the start, and I wrote the audit before I scaled the workflow count. I have built more than 40 workflows. 26 are active. 36 are published across these repos, and 24 of them are here.
The other 10 live with their domain: 2 in security-governance-framework, 2 in database-security-framework, 1 in rag-knowledge-base, and 5 in back-office-automation. The catalog lists all 33.
What's here
Knowledge
| Workflow | What it does | Trigger | Level | Nodes |
|---|---|---|---|---|
| AOS - Intel Asset-Wikifier | Extracts signals from a business asset with Claude, routes them to wiki pages, and writes or updates those pages. | webhook | L2 | 37 |
| HAIOS-Intel-Wiki-Explore | Picks recent analyses and sends each one to the wikifier. | schedule, webhook | - | 12 |
| HAIOS-Intel-Wiki-Lint | Checks wiki pages with Claude and records new issues. | schedule, webhook | - | 22 |
| HAIOS-Intel-Wiki-Lint-Triage | Classifies open wiki issues with Claude Haiku, dismisses false positives, and writes fix instructions for the rest. | schedule, webhook | - | 25 |
| HAIOS-Intel-Wiki-Query | Answers a question from the wiki pages with Claude. | webhook | - | 15 |
Comms
| Workflow | What it does | Trigger | Level | Nodes |
|---|---|---|---|---|
| HAIOS - Comms - Daily Digest | Compiles overnight messages, expenses, health checks, intel, pending remediations and wiki issues into one Slack digest. | schedule | L2 | 29 |
| HAIOS - Comms - Slack Inbound (Control Plane) | Receives Slack commands (kill, resume, status, help), ignores the bot's own messages, and routes each command. | Slack | L2 | 27 |
| HAIOS - Comms - Slack Outbound | Shared send service. Any workflow calls it to post a Slack message. | webhook | L2 | 9 |
| HAIOS - Comms - Weekly Report | Monday summary of landscape intelligence and win/loss. | schedule | L2 | 12 |
| Utility - Gmail Query | Lists Gmail labels on demand for other workflows. | manual/chat | L1 | 7 |
Intel
| Workflow | What it does | Trigger | Level | Nodes |
|---|---|---|---|---|
| AOS - Intel - Email Collector | Collects signals from platform and vendor emails each night. | schedule | L2 | 15 |
| AOS - Intel - Stack Updates Collector | Collects release news from the tools the system runs on, nightly. | schedule, feeds | L2 | 23 |
| AOS-Intel-n8n-Metrics-Collector | Every 6 hours, aggregates execution metrics from n8n and stores them. | schedule, webhook | - | 16 |
| HAIOS - Intel - 3P Collector | Collects third-party signals from social and blog sources into the intel tables. | schedule | L2 | 27 |
| HAIOS - Intel - Analyzer | Analyzes collected signals with Claude and semantic search, classifies them, and writes the analyses. | schedule | L2 | 31 |
| HAIOS - Intel - Disposition | Webhook that records what was decided about an analysis. | webhook | L2 | 14 |
Infra
| Workflow | What it does | Trigger | Level | Nodes |
|---|---|---|---|---|
| AOS - Infra - Site Restore | Rolls a site back to a known-good commit after a confirmed failure. 15-minute cooldown, 5 restores per 24 hours. | webhook | L2 | 48 |
| AOS-Infra-Site-Validator | Checks a site on a schedule and calls the restore workflow after a confirmed failure. (not in production) | schedule, webhook | - | 22 |
| HAIOS - Infra - CC Config Weekly Digest | Weekly Slack digest of open findings about the coding agent's configuration. | schedule | L2 | 9 |
| HAIOS - Infra - Doc Governance | Weekly check that workflow folders, snapshots and documentation match what is live. Writes remediation rows. | schedule | L2 | 20 |
| HAIOS - Infra - Log Retention | Monthly archive-then-prune of resolved remediation rows older than 90 days. Copies them to an archive table first, verifies, then deletes from the hot table. | schedule | L2 | 7 |
| HAIOS - Infra - Remediation Cleanup | Deletes stale remediation prompt files and clears their references. | schedule | L2 | 12 |
| HAIOS - Infra - Remediation Trigger | Counts errors per workflow, catches silent failures, and drafts a remediation prompt when a threshold is met. | webhook, schedule | L2 | 28 |
| HAIOS - Infra - Weekly Audit | Sunday audit of workflow liveness, errors, coverage, backlog, naming, database security and registry gaps. | schedule | L2 | 20 |
| Other files | What it is |
|---|---|
| sql/health-and-remediation-schema.sql | The shared health log, the workflow registry, and the remediation log every workflow writes to. |
| LICENSE | MIT. |
Every export is sanitized. Hostnames, credential IDs, webhook paths, Slack IDs and similar are placeholders such as {{N8N_HOST}} and {{CREDENTIAL}}. Execution data has been removed. Workflows tagged "not in production" are exported as they last ran.
The audit itself is a skill and lives in ai-skills-framework, with the full checklist.
How a workflow gets built
DESIGN Claude, given the real node specs, drafts the workflow.
BUILD The n8n API creates it directly. No JSON import.
Test after each major node.
AUDIT 65 points in 2 phases. Pass mark 48.
DEPLOY Error handling confirmed, README written, indexed for search.
Claude reads real node definitions through the n8n MCP server. Without them, Claude writes JSON that looks right and has wrong property names or missing required fields. With them, it knows what each node needs. That's the gap between "looks right" and "is right."
The build steps:
- Name it with a layer, a domain and a capability, and a maturity tag.
- Start it at L1. It moves up after testing.
- Look at similar workflows before drawing a new one.
- Build through the API. Never fall back to JSON import on the first error.
- Test after each major node.
- Audit before deploy.
The audit
Every workflow gets scored against 65 points in 2 phases. A few defects are blockers whatever the score, such as a Code node in the wrong execution mode.
Phase 1: JSON analysis, 43 points. Runs on the workflow file. Nothing has to execute.
| Category | Points | What gets checked |
|---|---|---|
| A: Triggers | 6 | One trigger, right type, valid schedule or path |
| D: Strategy | 3 | Purpose fits the domain and layer |
| G: Metrics | 4 | Logs to the health table, on success and on error |
| I: Tech stack | 3 | Current node versions, credentials referenced and not hardcoded |
| J: Cadence | 5 | Schedule matches the purpose, no conflicts |
| L: Parameters | 5 | No secrets in node parameters |
| M: Error handling | 12 | Error Trigger present, retries, connected error paths, logging |
| N: Remediation maturity | 5 | Logging and error paths match the workflow's maturity level |
Phase 2: runtime verification, 22 points. Runs after Phase 1 passes.
| Category | Points | What gets checked |
|---|---|---|
| B: Outputs | 5 | Recent executions, success rate at or above 80% |
| C: Database | 4 | Target tables exist, recent records, no test data |
| E: Testing | 4 | A test run passes without side effects |
| F: Docs | 4 | A README exists and is current |
| K: Indexed | 5 | The README turns up in semantic search |
Thresholds: 48 or more passes. 36 to 47 is conditional, fix and re-audit. Under 36 fails.
The audit runs in a fresh Claude context, separate from the one that built the workflow. Builders rate their own work too high, and the skill says never to audit a workflow you just built.
Error handling on every workflow
All 36 published workflows have an Error Trigger and write to the health table.
Any workflow error
-> Error Trigger writes state='error' to the health table
-> Daily digest surfaces errors each morning
-> Slack alert only for critical, time-sensitive failures
4 failures that changed how I work
Credential stripping. A full API update silently removed the credentials from every node. No error and no warning. I found it days later through authentication failures downstream. Now there is a mandatory check before any full workflow update, and it is a standing item in the audit.
Two call paths, two payload shapes. The same workflow called from MCP and from a webhook received its input in different places. Failures were intermittent and looked random. Now every utility workflow checks both.
Green run, empty database. An execution showed success and wrote nothing. An upstream node had returned an unexpected shape and passed nothing forward, with no error. Phase 2 category C now catches this by looking for recent records in the target tables, since execution status alone missed it.
Stale search index after a rename. I renamed a workflow folder and the old path stayed in the index. Search returned documents pointing at a location that no longer existed. Renames now trigger an index update.
A related lesson from the tooling side: installing the n8n MCP server through npx broke Claude's connection, because download messages landed in the protocol stream. Installing it globally first fixed it. The write-up is in mcp-server-installation-framework.
Why this matters
Workflow governance is release management and change control under a different name. You apply standards consistently. You don't rely on remembering them. The credential failure and the empty-database failure share a cause: no step asked whether the workflow did what it was supposed to do. Phase 2 is that step.
Built with
n8n, the n8n MCP server, Claude, Supabase (Postgres) for logging and health checks.
Jordan Waxman · LinkedIn · GitHub profile
