mirror of
https://github.com/domfelipe/vibeflow-n8n.git
synced 2026-08-07 05:56:46 +00:00
Rebuild Vibeflow as an n8n safety gate
This commit is contained in:
parent
79fc67166a
commit
febec32131
101 changed files with 2405 additions and 3557 deletions
28
plugins/vibeflow/.codex-plugin/plugin.json
Normal file
28
plugins/vibeflow/.codex-plugin/plugin.json
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "vibeflow",
|
||||
"version": "0.8.0",
|
||||
"description": "Audit and repair AI-generated n8n workflows before production",
|
||||
"author": {
|
||||
"name": "Felipe Domingues",
|
||||
"url": "https://github.com/domfelipe"
|
||||
},
|
||||
"homepage": "https://github.com/domfelipe/vibeflow-n8n",
|
||||
"repository": "https://github.com/domfelipe/vibeflow-n8n",
|
||||
"license": "MIT",
|
||||
"keywords": ["n8n", "workflow", "security", "quality", "ai-agents"],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "Vibeflow",
|
||||
"shortDescription": "Safety checks for AI-generated n8n workflows",
|
||||
"longDescription": "Run deterministic safety and contract checks on n8n workflow exports, explain findings, and repair blocking issues before deployment.",
|
||||
"developerName": "Felipe Domingues",
|
||||
"category": "Productivity",
|
||||
"capabilities": ["Read", "Write"],
|
||||
"websiteURL": "https://github.com/domfelipe/vibeflow-n8n",
|
||||
"defaultPrompt": [
|
||||
"Audit this n8n workflow before production.",
|
||||
"Fix the blocking Vibeflow findings.",
|
||||
"Explain the safety risks in this workflow."
|
||||
]
|
||||
}
|
||||
}
|
||||
40
plugins/vibeflow/skills/vibeflow/SKILL.md
Normal file
40
plugins/vibeflow/skills/vibeflow/SKILL.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
name: vibeflow
|
||||
description: Audit and repair exported n8n workflow JSON with deterministic safety and contract checks. Use when reviewing AI-generated or customer-facing n8n workflows before deployment, investigating Vibeflow VF000-VF009 findings, adding kill switches or human handoffs, checking secrets, retries, and webhook exposure, or preparing workflow changes for CI and pull requests.
|
||||
---
|
||||
|
||||
# Vibeflow
|
||||
|
||||
Use the CLI as the source of truth. Do not infer that a workflow is safe from its README, prompt, or visual layout.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Locate the exported workflow JSON. Never inspect or mutate a live production workflow unless the user explicitly requests it.
|
||||
2. Run Vibeflow from a repository checkout:
|
||||
|
||||
```bash
|
||||
node bin/vibeflow.mjs check path/to/workflow.json
|
||||
```
|
||||
|
||||
For a released version without a checkout:
|
||||
|
||||
```bash
|
||||
npx --yes github:domfelipe/vibeflow-n8n#v0.8.0 check path/to/workflow.json
|
||||
```
|
||||
|
||||
3. Read [references/policies.md](references/policies.md) when interpreting or repairing a finding.
|
||||
4. Fix errors before warnings. Preserve credential references, expressions, node IDs, and unrelated workflow behavior.
|
||||
5. Re-run the check after every repair. Stop only when blocking findings are gone or explicitly waived in `.vibeflow.json` with a documented reason.
|
||||
6. Report changed nodes, remaining warnings, and what still needs runtime validation in n8n.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Never copy literal credentials into a workflow to silence `VF001`.
|
||||
- Never disable `VF006` for customer-facing agents without explicit user approval; an off switch must block inference and all AI responses.
|
||||
- Treat static analysis as a preflight, not proof of runtime correctness.
|
||||
- Prefer fixing a shared upstream node over duplicating guards across branches.
|
||||
- Keep fixes local to the exported workflow until the user authorizes deployment.
|
||||
|
||||
## Output
|
||||
|
||||
Return the CLI result, the smallest safe repair, and any unresolved runtime check. Use SARIF for GitHub code scanning and JSON for automation.
|
||||
4
plugins/vibeflow/skills/vibeflow/agents/openai.yaml
Normal file
4
plugins/vibeflow/skills/vibeflow/agents/openai.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
interface:
|
||||
display_name: "Vibeflow"
|
||||
short_description: "Safety checks for AI-generated n8n workflows"
|
||||
default_prompt: "Use $vibeflow to audit this n8n workflow and fix blocking findings."
|
||||
16
plugins/vibeflow/skills/vibeflow/references/policies.md
Normal file
16
plugins/vibeflow/skills/vibeflow/references/policies.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Vibeflow policy reference
|
||||
|
||||
| ID | Default | Meaning | Minimum repair |
|
||||
|---|---|---|---|
|
||||
| VF000 | error | Invalid workflow export | Export valid n8n JSON with a `nodes` array. |
|
||||
| VF001 | error | Literal secret in parameters | Use n8n credentials, a vault, or an environment expression. |
|
||||
| VF002 | error | Host-level node | Remove it or explicitly approve the node type in policy. |
|
||||
| VF003 | warning | Webhook without supported auth and a credential reference | Add header/basic/JWT auth backed by an n8n credential. |
|
||||
| VF004 | warning | External action without a connected failure path | Connect a `continueErrorOutput` branch or configure `settings.errorWorkflow`. |
|
||||
| VF005 | warning | Inbound side effects without an atomic deduplication gate | Use a claim that emits no item for duplicates, such as `INSERT ... ON CONFLICT DO NOTHING ... RETURNING`, on every path. |
|
||||
| VF006 | error | An AI entry path bypasses the structural kill switch | Put a real IF/Switch/Code gate that reads agent status on every entry path. |
|
||||
| VF007 | warning | AI Agent without a reachable external handoff action | Add a downstream ticket, chat, email, or equivalent human escalation action. |
|
||||
| VF008 | warning | Missing or excessive execution timeout | Set the workflow timeout between 1 and 3600 seconds. |
|
||||
| VF009 | warning | Unsafe retry policy | Add idempotency, bound attempts, and configure backoff. |
|
||||
|
||||
Configuration changes severity or domain vocabulary; it does not prove the suppressed risk is safe. Keep waivers visible in `.vibeflow.json` and explain them in the pull request.
|
||||
Loading…
Add table
Add a link
Reference in a new issue