# Synthetic n8n content pipeline lab

This is an isolated contract lab, not a client deployment. It uses synthetic records, no credentials, no customer data, and no external network access.

The run exercises Discovery, Normalize, Deduplicate, Editorial Queue, Human Approval gate, Create Draft, Review, Publish, and Per-channel status tracking. The publish node records each attempted channel in a local lab state file. The same payload is submitted twice to prove deduplication. A partial failure is then retried without the failure instruction to prove that the successful channel is not called again and the existing draft is reused.

`approved` is a synthetic approval assertion supplied by the probe. The lab proves the fail-closed workflow branch, not a production editor identity, authentication method, or approval UI.

Public artifacts: `workflow.json`, `summary.json`, `state.json`, `requests.json`, and `SHA256SUMS`.

To reproduce without overwriting the canonical run:

```sh
AUTOMATION_NOTE_RUN_ID="content-pipeline-$(date +%s)" \
AUTOMATION_NOTE_PUBLIC_ROOT=/tmp/automation-note-content-public \
AUTOMATION_NOTE_PRIVATE_ROOT=/tmp/automation-note-content-private \
bash lab/n8n/scripts/run-content-pipeline-lab.sh
```
