Rebuild Vibeflow as an n8n safety gate

This commit is contained in:
Felipe Domingues 2026-07-22 11:43:41 -03:00
parent 79fc67166a
commit febec32131
101 changed files with 2405 additions and 3557 deletions

View file

@ -1,171 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/vibeflow-n8n/schemas/plan.schema.json",
"title": "Vibeflow n8n Plan",
"type": "object",
"required": [
"plan_version",
"objective",
"trigger",
"systems",
"steps",
"credentials",
"assumptions",
"validation"
],
"properties": {
"plan_version": {
"type": "string"
},
"workflow_name": {
"type": "string"
},
"objective": {
"type": "string"
},
"trigger": {
"type": "object",
"required": [
"type",
"summary"
],
"properties": {
"type": {
"type": "string"
},
"summary": {
"type": "string"
},
"schedule": {
"type": "string"
},
"input_shape": {
"type": "string"
}
},
"additionalProperties": true
},
"systems": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"steps": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"id",
"name",
"action"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"action": {
"type": "string"
},
"depends_on": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
},
"branching": {
"type": "array",
"items": {
"type": "object",
"required": [
"condition",
"path"
],
"properties": {
"condition": {
"type": "string"
},
"path": {
"type": "string"
}
},
"additionalProperties": true
}
},
"credentials": {
"type": "array",
"items": {
"type": "object",
"required": [
"system",
"status"
],
"properties": {
"system": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"required",
"optional",
"configured",
"placeholder"
]
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"risks": {
"type": "array",
"items": {
"type": "string"
}
},
"validation": {
"type": "object",
"required": [
"checks"
],
"properties": {
"checks": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"manual_steps": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}

View file

@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/domfelipe/vibeflow-n8n/schemas/vibeflow-config.schema.json",
"title": "Vibeflow configuration",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": { "type": "string" },
"rules": {
"type": "object",
"additionalProperties": false,
"properties": {
"VF001": { "$ref": "#/$defs/severity" },
"VF002": { "$ref": "#/$defs/severity" },
"VF003": { "$ref": "#/$defs/severity" },
"VF004": { "$ref": "#/$defs/severity" },
"VF005": { "$ref": "#/$defs/severity" },
"VF006": { "$ref": "#/$defs/severity" },
"VF007": { "$ref": "#/$defs/severity" },
"VF008": { "$ref": "#/$defs/severity" },
"VF009": { "$ref": "#/$defs/severity" }
}
},
"terms": {
"type": "object",
"additionalProperties": false,
"properties": {
"killSwitch": { "$ref": "#/$defs/terms" },
"humanHandoff": { "$ref": "#/$defs/terms" },
"idempotency": { "$ref": "#/$defs/terms" }
}
},
"bannedNodeTypes": {
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 200 },
"maxItems": 1000,
"uniqueItems": true
}
},
"$defs": {
"severity": { "enum": ["error", "warning", "off"] },
"terms": {
"type": "array",
"items": { "type": "string", "minLength": 1, "maxLength": 100 },
"minItems": 1,
"maxItems": 100,
"uniqueItems": true
}
}
}